@@ -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
9641028Blockly . Blocks [ 'board_ready' ] = {
9651029 init : function ( ) {
0 commit comments