Skip to content

Commit 7c3823d

Browse files
committed
Add code generator for block 'board'
1 parent 518e703 commit 7c3823d

1 file changed

Lines changed: 62 additions & 0 deletions

File tree

generators/webduino.js

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -815,6 +815,68 @@ Blockly.JavaScript['board_server'] = function (block) {
815815
return code;
816816
};
817817

818+
Blockly.JavaScript['board'] = function (block) {
819+
var value_device_ = Blockly.JavaScript.valueToCode(block, 'device_', Blockly.JavaScript.ORDER_ATOMIC);
820+
var checkbox_check_ = block.getFieldValue('check_');
821+
var checkbox_multi_ = block.getFieldValue('multi_');
822+
var dropdown_board_ = block.getFieldValue('board_');
823+
var dropdown_type_ = block.getFieldValue('type_');
824+
var dropdown_rate_ = block.getFieldValue('rate_');
825+
var statements_callbacks_ = Blockly.JavaScript.statementToCode(block, 'callbacks_');
826+
var type, board, transport, ws;
827+
828+
if (dropdown_board_ == '2') {
829+
board = 'board: \'Smart\', ';
830+
transport = ', transport: \'mqtt\'';
831+
ws = '';
832+
} else {
833+
board = '';
834+
transport = '';
835+
ws = ', transport: \'websocket\''
836+
}
837+
838+
if (dropdown_type_ == '1') {
839+
if (checkbox_multi_ == 'TRUE') {
840+
type = 'boardReady({' + board + 'device: ' + value_device_ + transport + ', multi: true}, async function (board) {\n';
841+
} else {
842+
type = 'boardReady({' + board + 'device: ' + value_device_ + transport + '}, async function (board) {\n';
843+
}
844+
} else if (dropdown_type_ == '2') {
845+
type = 'boardReady({' + board + 'transport: \'serial\', path: ' + value_device_ + '}, async function (board) {\n';
846+
} else if (dropdown_type_ == '3') {
847+
type = 'boardReady({' + board + 'transport: \'bluetooth\', address: ' + value_device_ + '}, async function (board) {\n';
848+
} else if (dropdown_type_ == '4') {
849+
type = 'boardReady({' + board + ', url: ' + value_device_ + ws +'}, async function (board) {\n';
850+
}
851+
852+
var code;
853+
if (checkbox_check_ == 'FALSE') {
854+
code = type +
855+
' board.systemReset();\n' +
856+
' board.samplingInterval = ' + dropdown_rate_ + ';\n' +
857+
statements_callbacks_ +
858+
'});\n';
859+
} else if (checkbox_check_ == 'TRUE') {
860+
code = 'if(window.readyBoardLength){\n' +
861+
' window.readyBoardLength = window.readyBoardLength + 1;\n' +
862+
'}else{\n' +
863+
' window.readyBoardLength = 1;\n' +
864+
'}\n\n' +
865+
type +
866+
' board.systemReset();\n' +
867+
' board.samplingInterval = ' + dropdown_rate_ + ';\n' +
868+
statements_callbacks_ +
869+
' if(window.boardReadyNumber){\n' +
870+
' window.boardReadyNumber = window.boardReadyNumber +1;\n' +
871+
' }else{\n' +
872+
' window.boardReadyNumber = 1;\n' +
873+
' }\n' +
874+
' allBoardReady(window.boardReadyNumber);\n' +
875+
'});\n';
876+
}
877+
return code;
878+
}
879+
818880
Blockly.JavaScript['board_ready'] = function (block) {
819881
var value_device_ = Blockly.JavaScript.valueToCode(block, 'device_', Blockly.JavaScript.ORDER_ATOMIC);
820882
var checkbox_type_ = block.getFieldValue('type_');

0 commit comments

Comments
 (0)