diff --git a/blockly/iot/IOT_Blocks.js b/blockly/iot/IOT_Blocks.js
index 7a1e41d..f8fbda7 100644
--- a/blockly/iot/IOT_Blocks.js
+++ b/blockly/iot/IOT_Blocks.js
@@ -217,6 +217,25 @@ Blockly.Blocks['button_switch'] = {
}
};
+Blockly.Blocks['pixel_switch'] = {
+ init: function() {
+ this.setColour(button_HUE);
+ this.appendDummyInput().appendField(Blockly.PIXEL_SWITCH);
+ this.appendValueInput("name").setCheck("String");
+ this.appendDummyInput().appendField(Blockly.PIXEL_SWITCH_STATE);
+ this.appendDummyInput().appendField("x");
+ this.appendValueInput("X").setCheck("Number");
+ this.appendDummyInput().appendField("y");
+ this.appendValueInput("Y").setCheck("Number");
+ this.appendDummyInput().appendField(Blockly.MIXLY_MICROPYTHON_SOCKET_TO);
+ this.appendDummyInput().appendField(new Blockly.FieldDropdown([["亮",'true'],["灭",'false']]), "state");
+ this.setInputsInline(true);
+ this.setPreviousStatement(true);
+ this.setNextStatement(true);
+ this.setTooltip("");
+ }
+};
+
Blockly.Blocks['get_button_state'] = {
init: function() {
this.setColour(button_HUE);
@@ -1049,6 +1068,19 @@ Blockly.Blocks['clear_datamap'] = {
}
};
+Blockly.Blocks['clear_pixel'] = {
+ init: function() {
+ this.appendDummyInput().appendField(Blockly.LET);
+ this.appendValueInput("name").setCheck("String");
+ this.appendDummyInput().appendField(Blockly.CLEAR_PIXEL);
+ this.setInputsInline(true);
+ this.setPreviousStatement(true);
+ this.setNextStatement(true);
+ this.setColour(datamap_HUE);
+ this.setTooltip('');
+}
+};
+
weathersynced_HUE = "#4e73df";
Blockly.Blocks['ws_updated'] = {
@@ -2110,6 +2142,15 @@ Blockly.JavaScript.button_switch=function(block) {
return code;
};
+Blockly.JavaScript.pixel_switch=function(block) {
+ var name = Blockly.JavaScript.valueToCode(this, 'name', Blockly.JavaScript.ORDER_ATOMIC);
+ var state = this.getFieldValue('state');
+ var x = Blockly.JavaScript.valueToCode(this, 'X', Blockly.JavaScript.ORDER_ATOMIC);
+ var y = Blockly.JavaScript.valueToCode(this, 'Y', Blockly.JavaScript.ORDER_ATOMIC);
+ var code="MixIO.getInstance("+name+",MixIO.typeTags.PIXEL)\n"+".trigger(MixIO.actionTags.PIXEL_SWITCH,["+x + ","+y + "," + state+"])\n";
+ return code;
+};
+
Blockly.JavaScript.get_button_state=function(block) {
var name = Blockly.JavaScript.valueToCode(this, 'name', Blockly.JavaScript.ORDER_ATOMIC);
var code="MixIO.getInstance("+name+",MixIO.typeTags.BUTTON).isOn()";
@@ -2475,6 +2516,12 @@ Blockly.JavaScript.clear_datamap=function(block) {
return code;
};
+Blockly.JavaScript.clear_pixel=function(block) {
+ var name = Blockly.JavaScript.valueToCode(this, 'name', Blockly.JavaScript.ORDER_ATOMIC);
+ var code="MixIO.getInstance("+name+",MixIO.typeTags.PIXEL)\n"+".clearPixel()\n"
+ return code;
+};
+
Blockly.JavaScript.ws_updated=function(block) {
var name = Blockly.JavaScript.valueToCode(this, 'name', Blockly.JavaScript.ORDER_ATOMIC);
var code="MixIO.getInstance("+name+",MixIO.typeTags.WEATHER)\n"+".bind(MixIO.eventTags.WEATHER_SYNCED, function(event,district,weather_type,temperature,humidity,wind_dir,wind_class){\n"
@@ -3289,6 +3336,8 @@ Blockly.BUTTON_UP="按键/开关被松开时";
Blockly.BUTTON_RECIEVE_MESSAGE="开关收到消息时";
Blockly.BUTTON_SWITCH="切换";
Blockly.BUTTON_SWITCH_STATE="开关的状态";
+Blockly.PIXEL_SWITCH="切换";
+Blockly.PIXEL_SWITCH_STATE="点阵屏的像素";
Blockly.DRAG_SLIDER="滑杆被拖动时";
Blockly.SLIDER_RECIEVE_MESSAGE="滑杆收到消息时";
@@ -3362,6 +3411,7 @@ Blockly.DATAMAP_LONG="经度";
Blockly.DATAMAP_LAT="纬度";
Blockly.DATAMAP_SEND_MESSAGE="发送消息列表";
Blockly.CLEAR_DATAMAP="数据地图清空";
+Blockly.CLEAR_PIXEL="点阵屏清空画布";
Blockly.WS_UPDATED="气象仪更新数据时";
Blockly.WS_SEND="气象仪发送数据时";
diff --git a/ejs/projects.ejs b/ejs/projects.ejs
index 205014f..23988fd 100644
--- a/ejs/projects.ejs
+++ b/ejs/projects.ejs
@@ -1064,7 +1064,32 @@
-