Skip to content

Commit 6497609

Browse files
committed
add pin ctrl & rgbled 2~13 pin selector
1 parent bf07b60 commit 6497609

5 files changed

Lines changed: 122 additions & 39 deletions

File tree

blocks/msg/en.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ Blockly.Msg.WEBDUINO_BOARD_ERROR_DO = "do:";
164164
Blockly.Msg.WEBDUINO_BOARD_SAMPLING = " Sampling";
165165

166166
Blockly.Msg.WEBDUINO_LED = "LED";
167+
Blockly.Msg.WEBDUINO_PIN = "pin";
167168
Blockly.Msg.WEBDUINO_LED_PIN = "pin";
168169
Blockly.Msg.WEBDUINO_LED_SET_STATE = "set state";
169170
Blockly.Msg.WEBDUINO_LED_TOGGLE = "toggle";

blocks/msg/zh-hant.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,7 @@ Blockly.Msg.WEBDUINO_BOARD_SAMPLING = " 類比取樣";
184184
// LED
185185

186186
Blockly.Msg.WEBDUINO_LED = "LED 燈";
187+
Blockly.Msg.WEBDUINO_PIN = "腳位";
187188
Blockly.Msg.WEBDUINO_LED_PIN = ",腳位";
188189
Blockly.Msg.WEBDUINO_LED_SET_STATE = "設定狀態";
189190
Blockly.Msg.WEBDUINO_LED_TOGGLE = "切換狀態";

blocks/webduino.js

Lines changed: 106 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -759,6 +759,37 @@ Blockly.Blocks['board_pin_state'] = {
759759
}
760760
};
761761

762+
Blockly.Blocks['pin_new'] = {
763+
init: function () {
764+
this.appendDummyInput()
765+
.appendField(Blockly.Msg.WEBDUINO_PIN, "pin")
766+
.appendField(new Blockly.FieldDropdown([
767+
["2", "2"],
768+
["3", "3"],
769+
["4", "4"],
770+
["5", "5"],
771+
["6", "6"],
772+
["7", "7"],
773+
["8", "8"],
774+
["9", "9"],
775+
["10", "10"],
776+
["11", "11"],
777+
["12", "12"],
778+
["13", "13"],
779+
["14 ( A0 )", "14"],
780+
["15 ( A1 )", "15"],
781+
["16 ( A2 )", "16"],
782+
["17 ( A3 )", "17"],
783+
["18 ( A4 )", "18"],
784+
["19 ( A5 )", "19"]
785+
]), "pin_");
786+
this.setOutput(true);
787+
this.setColour(230);
788+
this.setTooltip('');
789+
this.setHelpUrl('http://www.example.com/');
790+
}
791+
};
792+
762793
Blockly.Blocks['led_new'] = {
763794
init: function () {
764795
this.appendDummyInput()
@@ -898,30 +929,48 @@ Blockly.Blocks['rgbled_new'] = {
898929
.appendField(Blockly.Msg.WEBDUINO_RGBLED, "RGBLed")
899930
.appendField(Blockly.Msg.WEBDUINO_RGBLED_RED, "red")
900931
.appendField(new Blockly.FieldDropdown([
901-
["3", "3"],
902-
["5", "5"],
903-
["6", "6"],
904-
["9", "9"],
905-
["10", "10"],
906-
["11", "11"]
932+
["2", "2"],
933+
["3 ~", "3"],
934+
["4", "4"],
935+
["5 ~", "5"],
936+
["6 ~", "6"],
937+
["7", "7"],
938+
["8", "8"],
939+
["9 ~", "9"],
940+
["10 ~", "10"],
941+
["11 ~", "11"],
942+
["12", "12"],
943+
["13", "13"]
907944
]), "red_")
908945
.appendField(Blockly.Msg.WEBDUINO_RGBLED_GREEN, "green")
909946
.appendField(new Blockly.FieldDropdown([
910-
["3", "3"],
911-
["5", "5"],
912-
["6", "6"],
913-
["9", "9"],
914-
["10", "10"],
915-
["11", "11"]
947+
["2", "2"],
948+
["3 ~", "3"],
949+
["4", "4"],
950+
["5 ~", "5"],
951+
["6 ~", "6"],
952+
["7", "7"],
953+
["8", "8"],
954+
["9 ~", "9"],
955+
["10 ~", "10"],
956+
["11 ~", "11"],
957+
["12", "12"],
958+
["13", "13"]
916959
]), "green_")
917960
.appendField(Blockly.Msg.WEBDUINO_RGBLED_BLUE, "blue")
918961
.appendField(new Blockly.FieldDropdown([
919-
["3", "3"],
920-
["5", "5"],
921-
["6", "6"],
922-
["9", "9"],
923-
["10", "10"],
924-
["11", "11"]
962+
["2", "2"],
963+
["3 ~", "3"],
964+
["4", "4"],
965+
["5 ~", "5"],
966+
["6 ~", "6"],
967+
["7", "7"],
968+
["8", "8"],
969+
["9 ~", "9"],
970+
["10 ~", "10"],
971+
["11 ~", "11"],
972+
["12", "12"],
973+
["13", "13"]
925974
]), "blue_");
926975
this.setOutput(true);
927976
this.setColour(230);
@@ -936,30 +985,48 @@ Blockly.Blocks['rgbled_new_cathode'] = {
936985
.appendField(Blockly.Msg.WEBDUINO_RGBLED_CATHODE, "RGBLed")
937986
.appendField(Blockly.Msg.WEBDUINO_RGBLED_RED, "red")
938987
.appendField(new Blockly.FieldDropdown([
939-
["3", "3"],
940-
["5", "5"],
941-
["6", "6"],
942-
["9", "9"],
943-
["10", "10"],
944-
["11", "11"]
988+
["2", "2"],
989+
["3 ~", "3"],
990+
["4", "4"],
991+
["5 ~", "5"],
992+
["6 ~", "6"],
993+
["7", "7"],
994+
["8", "8"],
995+
["9 ~", "9"],
996+
["10 ~", "10"],
997+
["11 ~", "11"],
998+
["12", "12"],
999+
["13", "13"]
9451000
]), "red_")
9461001
.appendField(Blockly.Msg.WEBDUINO_RGBLED_GREEN, "green")
9471002
.appendField(new Blockly.FieldDropdown([
948-
["3", "3"],
949-
["5", "5"],
950-
["6", "6"],
951-
["9", "9"],
952-
["10", "10"],
953-
["11", "11"]
1003+
["2", "2"],
1004+
["3 ~", "3"],
1005+
["4", "4"],
1006+
["5 ~", "5"],
1007+
["6 ~", "6"],
1008+
["7", "7"],
1009+
["8", "8"],
1010+
["9 ~", "9"],
1011+
["10 ~", "10"],
1012+
["11 ~", "11"],
1013+
["12", "12"],
1014+
["13", "13"]
9541015
]), "green_")
9551016
.appendField(Blockly.Msg.WEBDUINO_RGBLED_BLUE, "blue")
9561017
.appendField(new Blockly.FieldDropdown([
957-
["3", "3"],
958-
["5", "5"],
959-
["6", "6"],
960-
["9", "9"],
961-
["10", "10"],
962-
["11", "11"]
1018+
["2", "2"],
1019+
["3 ~", "3"],
1020+
["4", "4"],
1021+
["5 ~", "5"],
1022+
["6 ~", "6"],
1023+
["7", "7"],
1024+
["8", "8"],
1025+
["9 ~", "9"],
1026+
["10 ~", "10"],
1027+
["11 ~", "11"],
1028+
["12", "12"],
1029+
["13", "13"]
9631030
]), "blue_");
9641031
this.setOutput(true);
9651032
this.setColour(230);
@@ -1919,7 +1986,7 @@ Blockly.Blocks['data_firebase_write_item'] = {
19191986
init: function () {
19201987
this.setColour(100);
19211988
this.appendDummyInput()
1922-
.appendField(Blockly.Msg.WEBDUINO_FIREBASE_COLUMN,'欄位');
1989+
.appendField(Blockly.Msg.WEBDUINO_FIREBASE_COLUMN, '欄位');
19231990
this.setPreviousStatement(true);
19241991
this.setNextStatement(true);
19251992
this.setTooltip('');
@@ -1931,7 +1998,7 @@ Blockly.Blocks['data_firebase_write'] = {
19311998
init: function () {
19321999
this.appendDummyInput()
19332000
.appendField(new Blockly.FieldVariable("myFirebase"), "var_")
1934-
.appendField(Blockly.Msg.WEBDUINO_FIREBASE_WRITEDATA,"寫入資料");
2001+
.appendField(Blockly.Msg.WEBDUINO_FIREBASE_WRITEDATA, "寫入資料");
19352002
this.setColour(160);
19362003
this.itemCount_ = 2;
19372004
this.updateShape_();
@@ -3371,4 +3438,4 @@ Blockly.Blocks['rfid_stopread'] = {
33713438
this.setTooltip('');
33723439
this.setHelpUrl('http://www.example.com/');
33733440
}
3374-
};
3441+
};

generators/webduino.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -619,6 +619,12 @@ Blockly.JavaScript['led_new'] = function (block) {
619619
return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL];
620620
};
621621

622+
Blockly.JavaScript['pin_new'] = function (block) {
623+
var dropdown_pin_ = block.getFieldValue('pin_');
624+
var code = 'getLed(board, ' + dropdown_pin_ + ')';
625+
return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL];
626+
};
627+
622628

623629
Blockly.JavaScript['led_state'] = function (block) {
624630
var variable_led_ = Blockly.JavaScript.variableDB_.getName(block.getFieldValue('led_'), Blockly.Variables.NAME_TYPE);

views/index.handlebars

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,14 @@
462462
</block>
463463
</value>
464464
</block>
465+
<block type="variables_set">
466+
<field name="VAR">pin</field>
467+
<value name="VALUE">
468+
<block type="pin_new">
469+
<field name="pin_">10</field>
470+
</block>
471+
</value>
472+
</block>
465473
<block type="led_state">
466474
<field name="led_">led</field>
467475
</block>

0 commit comments

Comments
 (0)