@@ -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+
818880Blockly . 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