Skip to content

Commit 8e2d348

Browse files
committed
Merge 2 boards into block 'board'
1 parent 0d6ed2f commit 8e2d348

2 files changed

Lines changed: 70 additions & 0 deletions

File tree

blocks/webduino.js

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -960,6 +960,70 @@ Blockly.Blocks['board_server'] = {
960960
}
961961
};
962962

963+
Blockly.Blocks['board'] = {
964+
board_type: '1',
965+
init: function() {
966+
967+
function dropdown_options() {
968+
var board_type = Blockly.Blocks['board']['board_type'];
969+
var options_full = [
970+
[Blockly.Msg.WEBDUINO_BOARD_WIFI, "1"],
971+
[Blockly.Msg.WEBDUINO_BOARD_SERIAL, "2"],
972+
[Blockly.Msg.WEBDUINO_BOARD_BLUETOOTH, "3"],
973+
[Blockly.Msg.WEBDUINO_BOARD_WEBSOCKET, "4"]
974+
];
975+
var options_smart = [
976+
[Blockly.Msg.WEBDUINO_BOARD_WIFI, "1"],
977+
[Blockly.Msg.WEBDUINO_BOARD_WEBSOCKET, "2"]
978+
];
979+
980+
981+
if (board_type == '1') {
982+
return options_full;
983+
} else {
984+
return options_smart;
985+
}
986+
}
987+
988+
this.appendValueInput("device_")
989+
.setCheck("String")
990+
.appendField(Blockly.Msg.WEBDUINO_BOARD, "開發板")
991+
.appendField(new Blockly.FieldDropdown([
992+
["馬克1號 或 Fly", "1"],
993+
["Smart", "2"]
994+
]), "board_")
995+
.appendField("透過")
996+
.appendField(new Blockly.FieldDropdown(dropdown_options), "type_")
997+
.appendField("連線至");
998+
this.appendDummyInput()
999+
.appendField(Blockly.Msg.WEBDUINO_BOARD_SAMPLING, " 類比取樣")
1000+
.appendField(new Blockly.FieldDropdown([
1001+
["20 ms", "20"],
1002+
["50 ms", "50"],
1003+
["75 ms", "75"],
1004+
["100 ms", "100"],
1005+
["250 ms", "250"],
1006+
["500 ms", "500"],
1007+
["1 sec", "1000"]
1008+
]), "rate_")
1009+
.appendField(Blockly.Msg.WEBDUINO_BOARD_CHAIN, "串聯")
1010+
.appendField(new Blockly.FieldCheckbox("FALSE"), "check_")
1011+
.appendField(Blockly.Msg.WEBDUINO_BOARD_MULTI, "協同控制")
1012+
.appendField(new Blockly.FieldCheckbox("FALSE"), "multi_");
1013+
this.appendStatementInput("callbacks_");
1014+
this.setTooltip('');
1015+
this.setColour(290);
1016+
this.setHelpUrl('https://webduino.io');
1017+
},
1018+
onchange: function(ev) {
1019+
switch(ev.name) {
1020+
case 'board_':
1021+
Blockly.Blocks['board']['board_type'] = ev.newValue;
1022+
break;
1023+
}
1024+
}
1025+
};
1026+
9631027
// https://blockly-demo.appspot.com/static/demos/blockfactory/index.html#bq2fue
9641028
Blockly.Blocks['board_ready'] = {
9651029
init: function () {

toolbox/index.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -344,6 +344,12 @@
344344
<block type="text"></block>
345345
</value>
346346
</block>
347+
<block type="board" tags="fly,mark1,smart">
348+
<value name="device_">
349+
<block type="text"></block>
350+
</value>
351+
<field name="rate_">250</field>
352+
</block>
347353
<block type="board_ready" tags="fly,mark1">
348354
<value name="device_">
349355
<block type="text"></block>

0 commit comments

Comments
 (0)