修改
删除S3灯颜色 统一S3和mini_g2 的rfid 增加 角度弧度转换 所有板 增加 S3根据气压获取海拔
This commit is contained in:
@@ -822,7 +822,9 @@ export const mpython_pbm_image = {
|
||||
["Water_level_0", "progres_picture.Water_level_0"],
|
||||
["Water_level_1", "progres_picture.Water_level_1"],
|
||||
["Water_level_2", "progres_picture.Water_level_2"],
|
||||
["Water_level_3", "progres_picture.Water_level_3"]
|
||||
["Water_level_3", "progres_picture.Water_level_3"],
|
||||
["YES", "informatio_picture.YES"],
|
||||
["NO", "informatio_picture.NO"]
|
||||
]
|
||||
};
|
||||
|
||||
@@ -1330,6 +1332,23 @@ export const draw_pointer = {
|
||||
}
|
||||
};
|
||||
|
||||
export const nova_draw_pointer = {
|
||||
init: function () {
|
||||
this.setColour(DISPLAY_ONBOARD_HUE);
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.DRAW_POINTER)
|
||||
.appendField(Blockly.Msg.DRAW_POINTER_ANGLE);
|
||||
this.appendValueInput('angle');
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.MIXLY_DRAW_POINTER_DU);
|
||||
this.appendValueInput('VAR')
|
||||
.appendField(Blockly.Msg.HTML_COLOUR);
|
||||
this.setPreviousStatement(true, null);
|
||||
this.setNextStatement(true, null);
|
||||
this.setInputsInline(true);
|
||||
this.setTooltip(Blockly.Msg.DRAW_POINTER_TOOLTIP);
|
||||
}
|
||||
};
|
||||
/**
|
||||
* @deprecated To be removed in the future
|
||||
*/
|
||||
|
||||
@@ -896,6 +896,22 @@ export const sensor_ms5611_extern = {
|
||||
}
|
||||
};
|
||||
|
||||
export const sensor_ms5611_extern_altitude = {
|
||||
init: function () {
|
||||
this.setColour(SENSOR_EXTERN_HUE);
|
||||
this.appendValueInput('SUB')
|
||||
.appendField(Blockly.Msg.MIXLY_Altitude + Blockly.Msg.MSG.catSensor + " MS5611")
|
||||
.setCheck("var");
|
||||
this.appendValueInput('VAR')
|
||||
.appendField(Blockly.Msg.MIXLY_REF_TO_PRESSURE);
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.MIXLY_CAL_TO_ALTITUDE);
|
||||
this.setPreviousStatement(true);
|
||||
this.setNextStatement(true);
|
||||
this.setInputsInline(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const sensor_QMC5883L_extern = {
|
||||
init: function () {
|
||||
this.setColour(SENSOR_EXTERN_HUE);
|
||||
|
||||
@@ -934,9 +934,35 @@ export const onboard_tft_display_shape_circle = function (block, generator) {
|
||||
|
||||
export const draw_pointer = function (_, generator) {
|
||||
var version = Boards.getSelectedBoardKey().split(':')[2]
|
||||
generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix";
|
||||
if (version == 'mixgo_nova'){
|
||||
generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft";
|
||||
var angle = generator.valueToCode(this, 'angle', generator.ORDER_ASSIGNMENT);
|
||||
var code = "onboard_tft.pointern(angle=" + angle + ")\n";
|
||||
}else{
|
||||
generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix";
|
||||
var angle = generator.valueToCode(this, 'angle', generator.ORDER_ASSIGNMENT);
|
||||
var code = "onboard_matrix.pointern(angle=" + angle + ")\n";
|
||||
}
|
||||
return code;
|
||||
}
|
||||
|
||||
export const nova_draw_pointer = function (_, generator) {
|
||||
var version = Boards.getSelectedBoardKey().split(':')[2]
|
||||
generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft";
|
||||
var angle = generator.valueToCode(this, 'angle', generator.ORDER_ASSIGNMENT);
|
||||
var code = "onboard_matrix.pointern(angle=" + angle + ")\n";
|
||||
var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
if (color.slice(0, 2) == "0x") {
|
||||
var code = "onboard_tft.pointern(angle=" + angle + ","+ color +")\n";
|
||||
} else {
|
||||
const rgbValues = color.match(/\d+/g);
|
||||
const r = parseInt(rgbValues[0]);
|
||||
const g = parseInt(rgbValues[1]);
|
||||
const b = parseInt(rgbValues[2]);
|
||||
var rgb = "0x" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, "0");
|
||||
var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3;
|
||||
var code = "onboard_tft.pointern(angle=" + angle + ', 0x' + rgb565.toString(16) + ")\n";
|
||||
}
|
||||
var code = "onboard_tft.pointern(angle=" + angle + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
|
||||
@@ -349,6 +349,14 @@ export const sensor_ms5611_extern = function (_, generator) {
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const sensor_ms5611_extern_altitude = function (_, generator) {
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
generator.definitions_['import_ms5611'] = 'import ms5611';
|
||||
var code = sub + '.altitude('+ v +')\n';
|
||||
return code ;
|
||||
}
|
||||
|
||||
export const sensor_ltr381_extern = function (_, generator) {
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var key = this.getFieldValue('key');
|
||||
|
||||
@@ -268,16 +268,28 @@ export const sensor_get_temperature = function (_, generator) {
|
||||
|
||||
export const rfid_readid = function (_, generator) {
|
||||
var version = Boards.getSelectedBoardKey().split(':')[2];
|
||||
generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid";
|
||||
var code = 'onboard_rfid.read_card(0, x="id")';
|
||||
if(version == 'mixgo_mini'){
|
||||
generator.definitions_['import_mini_g2'] = 'import mini_g2';
|
||||
generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid';
|
||||
var code = 'ext_rfid.read_card(0, x="id")';
|
||||
}else{
|
||||
generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid";
|
||||
var code = 'onboard_rfid.read_card(0, x="id")';
|
||||
}
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const rfid_readcontent = function (_, generator) {
|
||||
var version = Boards.getSelectedBoardKey().split(':')[2];
|
||||
var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC);
|
||||
generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid";
|
||||
var code = 'onboard_rfid.read_card(' + sector + ', x="content")';
|
||||
if(version == 'mixgo_mini'){
|
||||
generator.definitions_['import_mini_g2'] = 'import mini_g2';
|
||||
generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid';
|
||||
var code = 'ext_rfid.read_card(' + sector + ')';
|
||||
}else{
|
||||
generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid";
|
||||
var code = 'onboard_rfid.read_card(' + sector + ', x="content")';
|
||||
}
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
@@ -285,8 +297,14 @@ export const rfid_write = function (_, generator) {
|
||||
var version = Boards.getSelectedBoardKey().split(':')[2];
|
||||
var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC);
|
||||
var cnt = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC);
|
||||
generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid";
|
||||
var code = 'onboard_rfid.write_card(' + cnt + ', ' + sector + ')\n';
|
||||
if(version == 'mixgo_mini'){
|
||||
generator.definitions_['import_mini_g2'] = 'import mini_g2';
|
||||
generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid';
|
||||
var code = 'ext_rfid.write_card(' + cnt + ',' + sector + ')\n';
|
||||
}else{
|
||||
generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid";
|
||||
var code = 'onboard_rfid.write_card(' + cnt + ', ' + sector + ')\n';
|
||||
}
|
||||
return code;
|
||||
}
|
||||
|
||||
@@ -294,8 +312,13 @@ export const rfid_write_return = function (_, generator) {
|
||||
var version = Boards.getSelectedBoardKey().split(':')[2];
|
||||
var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC);
|
||||
var cnt = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC);
|
||||
generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid";
|
||||
var code = 'onboard_rfid.write_card(' + cnt + ', ' + sector + ')';
|
||||
if (version == "mixgo_mini") {
|
||||
generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid';
|
||||
var code = 'ext_rfid.write_card(' + cnt + ',' + sector + ')';
|
||||
} else {
|
||||
generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid";
|
||||
var code = 'onboard_rfid.write_card(' + cnt + ', ' + sector + ')';
|
||||
}
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
|
||||
@@ -178,16 +178,6 @@ div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(12)>div.blocklyTr
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catMINI_G2.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/sensor.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catMINI_G2.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/sensor2.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
#catExternSensor.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
|
||||
background: url('../../../../common/media/mark/sensor_extern.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
|
||||
@@ -450,6 +450,20 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_radian_to_degree">
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_degree_to_radian">
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
</category>
|
||||
<category id="catLogic" colour="210">
|
||||
<block type="logic_compare"></block>
|
||||
@@ -2183,41 +2197,6 @@
|
||||
<block type="cc_g1_read_key"></block>
|
||||
<block type="cc_g1_turnoff"></block>
|
||||
</category>
|
||||
<category id="catMINI_G2" colour="40" m-show='micropython:esp32c2:mixgo_mini'>
|
||||
<block type="mini_g2_rfid_readcontent">
|
||||
<value name="SECTOR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">0</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="mini_g2_rfid_readid"></block>
|
||||
<block type="mini_g2_rfid_write">
|
||||
<value name="SECTOR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">0</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="CONTENT">
|
||||
<shadow type="text">
|
||||
<field name="TEXT">Mixly</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="mini_g2_rfid_write_outcome">
|
||||
<value name="SECTOR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">0</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="CONTENT">
|
||||
<shadow type="text">
|
||||
<field name="TEXT">Mixly</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="mini_g2_rfid_status"></block>
|
||||
</category>
|
||||
<category id="catIot" colour="#2FAD7A">
|
||||
<category id="catBlynk" colour="#2FAD7A">
|
||||
<block type="iot_wifi_connect">
|
||||
|
||||
@@ -474,6 +474,20 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_radian_to_degree">
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_degree_to_radian">
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
</category>
|
||||
<category id="catLogic" colour="210">
|
||||
<block type="logic_compare"></block>
|
||||
|
||||
@@ -27,8 +27,10 @@ export const mini_g2_rfid_readid = function (_, generator) {
|
||||
generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid';
|
||||
var code = 'ext_rfid.read_card(0, x="id")';
|
||||
} else {
|
||||
generator.definitions_['import_mini_g2'] = 'import mini_g2';
|
||||
var code = 'mini_g2.ext_rc522.read_card(0, x="id")';
|
||||
// generator.definitions_['import_mini_g2'] = 'import mini_g2';
|
||||
// var code = 'mini_g2.ext_rc522.read_card(0, x="id")';
|
||||
generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid";
|
||||
var code = 'onboard_rfid.read_card(0, x="id")';
|
||||
}
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
@@ -40,8 +42,10 @@ export const mini_g2_rfid_readcontent = function (_, generator) {
|
||||
generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid';
|
||||
var code = 'ext_rfid.read_card(' + sector + ')';
|
||||
} else {
|
||||
generator.definitions_['import_mini_g2'] = 'import mini_g2';
|
||||
var code = 'mini_g2.ext_rc522.read_card(' + sector + ')';
|
||||
// generator.definitions_['import_mini_g2'] = 'import mini_g2';
|
||||
// var code = 'mini_g2.ext_rc522.read_card(' + sector + ')';
|
||||
generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid";
|
||||
var code = 'onboard_rfid.read_card(' + sector + ', x="content")';
|
||||
}
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
@@ -54,8 +58,10 @@ export const mini_g2_rfid_write = function (_, generator) {
|
||||
generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid';
|
||||
var code = 'ext_rfid.write_card(' + cnt + ',' + sector + ')\n';
|
||||
} else {
|
||||
generator.definitions_['import_mini_g2'] = 'import mini_g2';
|
||||
var code = 'mini_g2.ext_rc522.write_card(' + cnt + ',' + sector + ')\n';
|
||||
// generator.definitions_['import_mini_g2'] = 'import mini_g2';
|
||||
// var code = 'mini_g2.ext_rc522.write_card(' + cnt + ',' + sector + ')\n';
|
||||
generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid";
|
||||
var code = 'onboard_rfid.write_card(' + cnt + ', ' + sector + ')\n';
|
||||
}
|
||||
return code;
|
||||
}
|
||||
@@ -68,8 +74,10 @@ export const mini_g2_rfid_write_outcome = function (_, generator) {
|
||||
generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid';
|
||||
var code = 'ext_rfid.write_card(' + cnt + ',' + sector + ')';
|
||||
} else {
|
||||
generator.definitions_['import_mini_g2'] = 'import mini_g2';
|
||||
var code = 'mini_g2.ext_rc522.write_card(' + cnt + ',' + sector + ')';
|
||||
// generator.definitions_['import_mini_g2'] = 'import mini_g2';
|
||||
// var code = 'mini_g2.ext_rc522.write_card(' + cnt + ',' + sector + ')';
|
||||
generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid";
|
||||
var code = 'onboard_rfid.write_card(' + cnt + ', ' + sector + ')';
|
||||
}
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
@@ -81,8 +89,10 @@ export const mini_g2_rfid_status = function (_, generator) {
|
||||
generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid';
|
||||
var code = 'ext_rfid.scan_card()==' + key;
|
||||
} else {
|
||||
generator.definitions_['import_mini_g2'] = 'import mini_g2';
|
||||
var code = 'mini_g2.ext_rc522.scan_card()==' + key;
|
||||
// generator.definitions_['import_mini_g2'] = 'import mini_g2';
|
||||
// var code = 'mini_g2.ext_rc522.scan_card()==' + key;
|
||||
generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid";
|
||||
var code = 'onboard_rfid.scan_card()==' + key;
|
||||
}
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
@@ -448,6 +448,20 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_radian_to_degree">
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_degree_to_radian">
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
</category>
|
||||
<category id="catLogic" colour="210">
|
||||
<block type="logic_compare"></block>
|
||||
@@ -1972,6 +1986,7 @@
|
||||
<block type="cc_g1_turnoff"></block>
|
||||
</category>
|
||||
<category id="catMINI_G2" colour="40" m-show='micropython:esp32c2:mixgo_mini'>
|
||||
<block type="mini_g2_rfid_readid"></block>
|
||||
<block type="mini_g2_rfid_readcontent">
|
||||
<value name="SECTOR">
|
||||
<shadow type="math_number">
|
||||
@@ -1979,7 +1994,6 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="mini_g2_rfid_readid"></block>
|
||||
<block type="mini_g2_rfid_write">
|
||||
<value name="SECTOR">
|
||||
<shadow type="math_number">
|
||||
|
||||
@@ -448,6 +448,20 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_radian_to_degree">
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_degree_to_radian">
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
</category>
|
||||
<category id="catLogic" colour="210">
|
||||
<block type="logic_compare"></block>
|
||||
|
||||
@@ -474,6 +474,20 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_radian_to_degree">
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_degree_to_radian">
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
</category>
|
||||
<category id="catLogic" colour="210">
|
||||
<block type="logic_compare"></block>
|
||||
|
||||
@@ -129,7 +129,9 @@ pins["元控青春"] = {
|
||||
["Water_level_0", "progres_picture.Water_level_0"],
|
||||
["Water_level_1", "progres_picture.Water_level_1"],
|
||||
["Water_level_2", "progres_picture.Water_level_2"],
|
||||
["Water_level_3", "progres_picture.Water_level_3"]
|
||||
["Water_level_3", "progres_picture.Water_level_3"],
|
||||
["YES", "informatio_picture.YES"],
|
||||
["NO", "informatio_picture.NO"]
|
||||
],
|
||||
builtinimg_extern: [["HEART", "matrix32x12.Matrix.HEART"], ["HEART_SMALL", "matrix32x12.Matrix.HEART_SMALL"], ["HAPPY", "matrix32x12.Matrix.HAPPY"], ["SAD", "matrix32x12.Matrix.SAD"], ["SMILE", "matrix32x12.Matrix.SMILE"], ["SILLY", "matrix32x12.Matrix.SILLY"], ["FABULOUS", "matrix32x12.Matrix.FABULOUS"], ["SURPRISED", "matrix32x12.Matrix.SURPRISED"], ["ASLEEP", "matrix32x12.Matrix.ASLEEP"], ["ANGRY", "matrix32x12.Matrix.ANGRY"], ["CONFUSED", "matrix32x12.Matrix.CONFUSED"], ["NO", "matrix32x12.Matrix.NO"], ["YES", "matrix32x12.Matrix.YES"], ["LEFT_ARROW", "matrix32x12.Matrix.LEFT_ARROW"], ["RIGHT_ARROW", "matrix32x12.Matrix.RIGHT_ARROW"], ["DRESS", "matrix32x12.Matrix.DRESS"], ["TRANSFORMERS", "matrix32x12.Matrix.TRANSFORMERS"], ["SCISSORS", "matrix32x12.Matrix.SCISSORS"], ["EXIT", "matrix32x12.Matrix.EXIT"], ["TREE", "matrix32x12.Matrix.TREE"], ["PACMAN", "matrix32x12.Matrix.PACMAN"], ["TARGET", "matrix32x12.Matrix.TARGET"], ["TSHIRT", "matrix32x12.Matrix.TSHIRT"], ["ROLLERSKATE", "matrix32x12.Matrix.ROLLERSKATE"], ["DUCK", "matrix32x12.Matrix.DUCK"], ["HOUSE", "matrix32x12.Matrix.HOUSE"], ["TORTOISE", "matrix32x12.Matrix.TORTOISE"], ["BUTTERFLY", "matrix32x12.Matrix.BUTTERFLY"], ["STICKFIGURE", "matrix32x12.Matrix.STICKFIGURE"], ["GHOST", "matrix32x12.Matrix.GHOST"], ["PITCHFORK", "matrix32x12.Matrix.PITCHFORK"], ["onboard_music_QUAVERS", "matrix32x12.Matrix.onboard_music_QUAVERS"], ["onboard_music_QUAVER", "matrix32x12.Matrix.onboard_music_QUAVER"], ["onboard_music_CROTCHET", "matrix32x12.Matrix.onboard_music_CROTCHET"], ["COW", "matrix32x12.Matrix.COW"], ["RABBIT", "matrix32x12.Matrix.RABBIT"], ["SQUARE_SMALL", "matrix32x12.Matrix.SQUARE_SMALL"], ["SQUARE", "matrix32x12.Matrix.SQUARE"], ["DIAMOND_SMALL", "matrix32x12.Matrix.DIAMOND_SMALL"], ["DIAMOND", "matrix32x12.Matrix.DIAMOND"], ["CHESSBOARD", "matrix32x12.Matrix.CHESSBOARD"], ["TRIANGLE_LEFT", "matrix32x12.Matrix.TRIANGLE_LEFT"], ["TRIANGLE", "matrix32x12.Matrix.TRIANGLE"], ["SNAKE", "matrix32x12.Matrix.SNAKE"], ["UMBRELLA", "matrix32x12.Matrix.UMBRELLA"], ["SKULL", "matrix32x12.Matrix.SKULL"], ["GIRAFFE", "matrix32x12.Matrix.GIRAFFE"], ["SWORD", "matrix32x12.Matrix.SWORD"]],
|
||||
imglist: [["ALL_CLOCKS", "matrix.Image.ALL_CLOCKS"], ["ALL_ARROWS", "matrix.Image.ALL_ARROWS"]],
|
||||
|
||||
@@ -474,6 +474,20 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_radian_to_degree">
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_degree_to_radian">
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
</category>
|
||||
<category id="catLogic" colour="210">
|
||||
<block type="logic_compare"></block>
|
||||
@@ -1576,16 +1590,6 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="actuator_mixgo_zero_led_color" m-hide='micropython:esp32s3:mixgo_sant'>
|
||||
<value name="led">
|
||||
<shadow type="number">
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="colorvalue">
|
||||
<shadow>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="actuator_mixgo_nova_mic_set" m-hide='micropython:esp32s3:mixgo_sant'>
|
||||
<value name="bright">
|
||||
<shadow type="math_number">
|
||||
@@ -2274,6 +2278,21 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="nova_draw_pointer">
|
||||
<value name="angle">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">0</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="VAR">
|
||||
<block type="display_color_seclet">
|
||||
<field name="COLOR">#ffffff</field>
|
||||
</block>
|
||||
<shadow type="tuple_create_with_text_return">
|
||||
<field name="TEXT">255,255,0</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
</category>
|
||||
<category id="catSANT_G2" colour="40" m-show='micropython:esp32s3:mixgo_sant'>
|
||||
<block type="mini_g2_rfid_readcontent">
|
||||
@@ -4009,6 +4028,18 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="sensor_ms5611_extern_altitude" m-hide='micropython:esp32c3:mixgocar_c3'>
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">xsensor</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">0</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="sensor_shtc3_extern">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
|
||||
@@ -426,6 +426,20 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_radian_to_degree">
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_degree_to_radian">
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
</category>
|
||||
|
||||
<category id="catLogic" colour="210">
|
||||
|
||||
@@ -283,6 +283,20 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_radian_to_degree">
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_degree_to_radian">
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
</category>
|
||||
<category id="catLogic" colour="210">
|
||||
<block type="logic_compare"></block>
|
||||
|
||||
@@ -209,6 +209,20 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_radian_to_degree">
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_degree_to_radian">
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
</category>
|
||||
<category id="catLogic" colour="210">
|
||||
<block type="logic_compare"></block>
|
||||
|
||||
@@ -461,6 +461,20 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_radian_to_degree">
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_degree_to_radian">
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
</category>
|
||||
<category id="catLogic" colour="210">
|
||||
<block type="logic_compare"></block>
|
||||
|
||||
@@ -675,3 +675,27 @@ export const generate_cartesian_product = {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const math_radian_to_degree = {
|
||||
init: function () {
|
||||
this.setColour(MATH_HUE);
|
||||
this.setOutput(true)
|
||||
this.appendValueInput('VAR')
|
||||
.appendField(Blockly.Msg.MIXLY_SET_RADIAN);
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.MIXLY_TRANS_TO_ANGLE);
|
||||
this.setInputsInline(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const math_degree_to_radian = {
|
||||
init: function () {
|
||||
this.setColour(MATH_HUE);
|
||||
this.setOutput(true)
|
||||
this.appendValueInput('VAR')
|
||||
.appendField(Blockly.Msg.MIXLY_SET_DEGREE);
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.MIXLY_TRANS_TO_RADIAN);
|
||||
this.setInputsInline(true);
|
||||
}
|
||||
};
|
||||
@@ -322,3 +322,17 @@ export const generate_cartesian_product = function (_, generator) {
|
||||
}
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const math_radian_to_degree = function (_, generator) {
|
||||
generator.definitions_.import_math = "import math";
|
||||
var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = 'math.degrees('+ v + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const math_degree_to_radian = function (_, generator) {
|
||||
generator.definitions_.import_math = "import math";
|
||||
var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = 'math.radians('+ v + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
@@ -396,6 +396,20 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_radian_to_degree">
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_degree_to_radian">
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
</category>
|
||||
<category id="catLogic" colour="210">
|
||||
<block type="logic_compare"></block>
|
||||
|
||||
@@ -396,6 +396,20 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_radian_to_degree">
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_degree_to_radian">
|
||||
<value name="VAR">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
</category>
|
||||
<category id="catLogic" colour="210">
|
||||
<block type="logic_compare"></block>
|
||||
|
||||
@@ -3918,4 +3918,10 @@ En.MIXLY_SET_MAXIMUM_HISTORICAL_SESSIONS_NUM = 'Set Maximum Number of Historical
|
||||
En.MIXLY_LLM_CHAT = 'Chat with Large Language Model';
|
||||
En.MIXLY_LLM_CONTENT_CALLBACK = 'Result Output Callback';
|
||||
En.MIXLY_EMPTY_HISTORY = 'Clear History';
|
||||
En.MIXLY_SET_RADIAN = 'convert radians';
|
||||
En.MIXLY_TRANS_TO_ANGLE = 'to angles';
|
||||
En.MIXLY_SET_DEGREE = 'convert angles';
|
||||
En.MIXLY_TRANS_TO_RADIAN = 'to radians';
|
||||
En.MIXLY_REF_TO_PRESSURE = 'Reference pressure';
|
||||
En.MIXLY_CAL_TO_ALTITUDE = 'Calculate the altitude';
|
||||
})();
|
||||
|
||||
@@ -4078,5 +4078,10 @@ ZhHans.MIXLY_LLM_CONTENT_CALLBACK = '结果输出回调';
|
||||
// ZhHans.MIXLY_SELECT_MODEL = '选择模型';
|
||||
// ZhHans.MIXLY_CLEAR_USER_HISTORY = '清除用户的历史记录';
|
||||
ZhHans.MIXLY_EMPTY_HISTORY = '清空历史记录';
|
||||
|
||||
ZhHans.MIXLY_SET_RADIAN = '将弧度';
|
||||
ZhHans.MIXLY_TRANS_TO_ANGLE = '转换为角度';
|
||||
ZhHans.MIXLY_SET_DEGREE = '将角度';
|
||||
ZhHans.MIXLY_TRANS_TO_RADIAN = '转换为弧度';
|
||||
ZhHans.MIXLY_REF_TO_PRESSURE = '参考气压';
|
||||
ZhHans.MIXLY_CAL_TO_ALTITUDE = '计算获取海拔';
|
||||
})();
|
||||
@@ -4072,4 +4072,10 @@ ZhHant.MIXLY_SET_MAXIMUM_HISTORICAL_SESSIONS_NUM = '設定歷史對話記錄最
|
||||
ZhHant.MIXLY_LLM_CHAT = '與大語言模型進行對話';
|
||||
ZhHant.MIXLY_LLM_CONTENT_CALLBACK = '結果輸出回調';
|
||||
ZhHant.MIXLY_EMPTY_HISTORY = '清空歷史記錄';
|
||||
ZhHant.MIXLY_SET_RADIAN = '將弧度';
|
||||
ZhHant.MIXLY_TRANS_TO_ANGLE = '轉換為角度';
|
||||
ZhHant.MIXLY_SET_DEGREE = '將角度';
|
||||
ZhHant.MIXLY_TRANS_TO_RADIAN = '轉換為弧度';
|
||||
ZhHant.MIXLY_REF_TO_PRESSURE = '參考氣壓';
|
||||
ZhHant.MIXLY_CAL_TO_ALTITUDE = '計算獲取海拔';
|
||||
})();
|
||||
Reference in New Issue
Block a user