add block type to setter and getter
This commit is contained in:
		
							parent
							
								
									da4c8840ea
								
							
						
					
					
						commit
						5304907fd0
					
				| @ -56,7 +56,7 @@ Blockly.Blocks['io_digitalread'] = { | ||||
|             .appendField(Blockly.Msg.ARD_DIGITALREAD) | ||||
|             .appendField(new Blockly.FieldDropdown( | ||||
|                 selectedBoard().digitalPins), 'PIN'); | ||||
|         this.setOutput(true, Types.BOOLEAN); | ||||
|         this.setOutput(true, 'boolean'); | ||||
|         this.setTooltip(Blockly.Msg.ARD_DIGITALREAD_TIP); | ||||
|     }, | ||||
|     /** @return {!string} The type of return value for the block, an integer. */ | ||||
|  | ||||
| @ -50,6 +50,8 @@ Blockly.Blocks['sensebox_display_printDisplay'] = { | ||||
|             .setCheck(null); | ||||
|         this.setPreviousStatement(true, null); | ||||
|         this.setNextStatement(true, null); | ||||
|         let variableName = this.getField('COLOR'); | ||||
|         console.log(variableName.getValue()); | ||||
|         this.setTooltip(Blockly.Msg.senseBox_display_printDisplay_tip); | ||||
|         this.setHelpUrl('https://sensebox.de/books'); | ||||
|     }, | ||||
|  | ||||
| @ -2,6 +2,7 @@ import Blockly from 'blockly'; | ||||
| import { getColour } from '../helpers/colour' | ||||
| import * as Types from '../helpers/types' | ||||
| import { selectedBoard } from '../helpers/board' | ||||
| import { colors } from '@material-ui/core'; | ||||
| 
 | ||||
| /** | ||||
|  * HDC1080 Temperature and Humidity Sensor | ||||
| @ -16,7 +17,7 @@ Blockly.Blocks['sensebox_sensor_temp_hum'] = { | ||||
|       .setAlign(Blockly.ALIGN_RIGHT) | ||||
|       .appendField(Blockly.Msg.senseBox_value) | ||||
|       .appendField(new Blockly.FieldDropdown([[Blockly.Msg.senseBox_temp, "Temperature"], [Blockly.Msg.senseBox_hum, "Humidity"]]), "NAME"); | ||||
|     this.setOutput(true, Types.NUMBER.typeId); | ||||
|     this.setOutput(true, Types.DECIMAL.typeId); | ||||
|     this.setColour(getColour().sensebox); | ||||
|     this.setTooltip(Blockly.Msg.senseBox_temp_hum_tip); | ||||
|     this.setHelpUrl('https://edu.books.sensebox.de/de/projekte/diy_umweltstation/temp_und_luftfeuchte.html'); | ||||
| @ -124,6 +125,8 @@ Blockly.Blocks['sensebox_sensor_pressure'] = { | ||||
|     this.setOutput(true, Types.NUMBER.typeId); | ||||
|     this.setTooltip(Blockly.Msg.senseBox_pressure_tip); | ||||
|     this.setHelpUrl('https://edu.books.sensebox.de/de/projekte/diy_umweltstation/luftdruck.html'); | ||||
|     var input = this.getFieldValue('NAME'); | ||||
|     console.log(input); | ||||
|   }, | ||||
|   /** | ||||
|    * Parse XML to restore the number of pins available. | ||||
| @ -231,7 +234,7 @@ Blockly.Blocks['sensebox_sensor_ultrasonic_ranger'] = { | ||||
|       .appendField(Blockly.Msg.senseBox_ultrasonic_echo) | ||||
|       .appendField(new Blockly.FieldDropdown( | ||||
|         selectedBoard().digitalPins), 'ultrasonic_echo'); | ||||
|     this.setOutput(true, Types.NUMBER.typeId); | ||||
|     this.setOutput(true, 'int'); | ||||
|     this.setTooltip(Blockly.Msg.senseBox_ultrasonic_tip); | ||||
|     this.setHelpUrl('https://sensebox.de/books'); | ||||
|   }, | ||||
| @ -283,7 +286,7 @@ Blockly.Blocks['sensebox_sensor_ultrasonic_ranger'] = { | ||||
|   }, | ||||
| 
 | ||||
|   getBlockType: function () { | ||||
|     return Blockly.Types.NUMBER; | ||||
|     return Blockly.Types.SHORT_NUMBER; | ||||
|   } | ||||
| }; | ||||
| 
 | ||||
|  | ||||
| @ -1,167 +1,41 @@ | ||||
| import Blockly from 'blockly/core'; | ||||
| import Blockly, { FieldVariable } from 'blockly/core'; | ||||
| import { getColour } from '../helpers/colour'; | ||||
| import { getCompatibleTypes } from '../helpers/types' | ||||
| 
 | ||||
| Blockly.defineBlocksWithJsonArray([ | ||||
|     // BEGIN JSON EXTRACT
 | ||||
|     { | ||||
|         type: 'variables_get_number', | ||||
|         message0: '= number variable %1', | ||||
|         args0: [ | ||||
|             { | ||||
|                 type: 'field_variable', | ||||
|                 name: 'VAR', | ||||
|                 variable: null, | ||||
|                 variableTypes: ['Number'], | ||||
|                 defaultType: 'Number', | ||||
|             }, | ||||
|         ], | ||||
|         output: 'Number', | ||||
|         colour: getColour().variables, | ||||
|         tooltip: '', | ||||
|         helpUrl: '', | ||||
| 
 | ||||
| Blockly.Blocks['variables_set_dynamic'] = { | ||||
|     init: function () { | ||||
| 
 | ||||
|         // const type = myVar.type;
 | ||||
|         this.setColour(getColour().variables); | ||||
|         this.setPreviousStatement(true, null); | ||||
|         this.setNextStatement(true, null); | ||||
|         this.appendValueInput('VALUE') | ||||
|             .appendField('set', 'set') | ||||
|             .appendField(new Blockly.FieldVariable('VAR'), 'VAR') | ||||
|             .appendField('to'); | ||||
|     }, | ||||
|     { | ||||
|         type: 'variables_set_number', | ||||
|         message0: 'Number variable %1 = %2', | ||||
|         args0: [ | ||||
|             { | ||||
|                 type: 'field_variable', | ||||
|                 name: 'VAR', | ||||
|                 variable: null, | ||||
|                 variableTypes: ['Number'], | ||||
|                 defaultType: 'Number', | ||||
|                 createNewVariable: false, | ||||
|             }, | ||||
|             { | ||||
|                 type: 'input_value', | ||||
|                 name: 'VALUE', | ||||
|                 check: 'Number', | ||||
|             }, | ||||
|         ], | ||||
|         previousStatement: null, | ||||
|         nextStatement: null, | ||||
|         colour: getColour().variables, | ||||
|         tooltip: '', | ||||
|         helpUrl: '', | ||||
|     onchange: function (e) { | ||||
|         let variableID = this.getFieldValue('VAR'); | ||||
|         let variable = Blockly.getMainWorkspace().getVariableMap().getVariableById(variableID) | ||||
|         this.getInput('VALUE').setCheck(getCompatibleTypes(variable.type)); | ||||
| 
 | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| Blockly.Blocks['variables_get_dynamic'] = { | ||||
|     init: function () { | ||||
|         this.setColour(getColour().variables); | ||||
|         this.appendDummyInput() | ||||
|             .appendField('', 'type') | ||||
|             .appendField(new Blockly.FieldVariable('VAR'), 'VAR'); | ||||
|         this.setOutput(true); | ||||
|     }, | ||||
|     { | ||||
|         type: 'variables_get_colour', | ||||
|         message0: '= color variable %1', | ||||
|         args0: [ | ||||
|             { | ||||
|                 type: 'field_variable', | ||||
|                 name: 'VAR', | ||||
|                 variable: null, | ||||
|                 variableTypes: ['Colour'], | ||||
|                 defaultType: 'Colour', | ||||
|             }, | ||||
|         ], | ||||
|         output: 'Colour', | ||||
|         colour: getColour().variables, | ||||
|         tooltip: '', | ||||
|         helpUrl: '', | ||||
|     }, | ||||
|     { | ||||
|         type: 'variables_set_colour', | ||||
|         message0: 'Color variable %1 = %2', | ||||
|         args0: [ | ||||
|             { | ||||
|                 type: 'field_variable', | ||||
|                 name: 'VAR', | ||||
|                 variable: null, | ||||
|                 variableTypes: ['Colour'], | ||||
|                 defaultType: 'Colour', | ||||
|             }, | ||||
|             { | ||||
|                 type: 'input_value', | ||||
|                 name: 'VALUE', | ||||
|                 check: 'Colour', | ||||
|             }, | ||||
|         ], | ||||
|         previousStatement: null, | ||||
|         nextStatement: null, | ||||
|         colour: getColour().variables, | ||||
|         tooltip: '', | ||||
|         helpUrl: '', | ||||
|     }, | ||||
|     { | ||||
|         type: 'variables_get_string', | ||||
|         message0: '= text variable %1', | ||||
|         args0: [ | ||||
|             { | ||||
|                 type: 'field_variable', | ||||
|                 name: 'VAR', | ||||
|                 variable: null, | ||||
|                 variableTypes: ['String'], | ||||
|                 defaultType: 'String', | ||||
|             }, | ||||
|         ], | ||||
|         output: 'String', | ||||
|         colour: getColour().variables, | ||||
|         tooltip: '', | ||||
|         helpUrl: '', | ||||
|     }, | ||||
|     { | ||||
|         type: 'variables_set_string', | ||||
|         message0: 'Text variable %1 = %2', | ||||
|         args0: [ | ||||
|             { | ||||
|                 type: 'field_variable', | ||||
|                 name: 'VAR', | ||||
|                 variable: null, | ||||
|                 variableTypes: ['String'], | ||||
|                 defaultType: 'String', | ||||
|             }, | ||||
|             { | ||||
|                 type: 'input_value', | ||||
|                 name: 'VALUE', | ||||
|                 check: 'String', | ||||
|             }, | ||||
|         ], | ||||
|         previousStatement: null, | ||||
|         nextStatement: null, | ||||
|         colour: getColour().variables, | ||||
|         tooltip: '', | ||||
|         helpUrl: '', | ||||
|     }, | ||||
|     { | ||||
|         type: 'variables_get_boolean', | ||||
|         message0: '= boolean variable %1', | ||||
|         args0: [ | ||||
|             { | ||||
|                 type: 'field_variable', | ||||
|                 name: 'VAR', | ||||
|                 variable: null, | ||||
|                 variableTypes: ['Boolean'], | ||||
|                 defaultType: 'Boolean', | ||||
|             }, | ||||
|         ], | ||||
|         output: 'Boolean', | ||||
|         colour: getColour().variables, | ||||
|         tooltip: '', | ||||
|         helpUrl: '', | ||||
|     }, | ||||
|     { | ||||
|         type: 'variables_set_boolean', | ||||
|         message0: 'Boolean variable %1 = %2', | ||||
|         args0: [ | ||||
|             { | ||||
|                 type: 'field_variable', | ||||
|                 name: 'VAR', | ||||
|                 variable: null, | ||||
|                 variableTypes: ['Boolean'], | ||||
|                 defaultType: 'Boolean', | ||||
|             }, | ||||
|             { | ||||
|                 type: 'input_value', | ||||
|                 name: 'VALUE', | ||||
|                 check: 'Boolean', | ||||
|             }, | ||||
|         ], | ||||
|         previousStatement: null, | ||||
|         nextStatement: null, | ||||
|         colour: getColour().variables, | ||||
|         tooltip: '', | ||||
|         helpUrl: '', | ||||
|     }, | ||||
| ]); // END JSON EXTRACT (Do not delete this comment.)
 | ||||
|     onchange: function (e) { | ||||
|         let variableID = this.getFieldValue('VAR'); | ||||
|         let variable = Blockly.getMainWorkspace().getVariableMap().getVariableById(variableID) | ||||
|         this.getField('type').setValue(variable.type); | ||||
| 
 | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -15,7 +15,7 @@ const setVariableFunction = function (defaultValue) { | ||||
|         const allVars = Blockly.getMainWorkspace().getVariableMap().getAllVariables(); | ||||
|         const myVar = allVars.filter(v => v.name === variableName)[0] | ||||
| 
 | ||||
|         Blockly.Arduino.setupCode_[''] = myVar.type + " " + myVar.name + ';\n'; | ||||
|         Blockly.Arduino.variables_[myVar] = myVar.type + " " + myVar.name + ';\n'; | ||||
|         return variableName + ' = ' + (variableValue || defaultValue) + ';\n'; | ||||
|     }; | ||||
| }; | ||||
|  | ||||
| @ -12,6 +12,7 @@ | ||||
| /** Single character. */ | ||||
| export const CHARACTER = { | ||||
|     typeId: 'Character', | ||||
|     typeName: 'char', | ||||
|     typeMsgName: 'ARD_TYPE_CHAR', | ||||
|     compatibleTypes: [] | ||||
| } | ||||
| @ -31,14 +32,15 @@ export const TEXT = { | ||||
| 
 | ||||
| /** Short integer number. */ | ||||
| export const SHORT_NUMBER = { | ||||
|     typeId: 'Short Number', | ||||
|     typeId: 'Short_Number', | ||||
|     typeName: 'int', | ||||
|     typeMsgName: 'ARD_TYPE_SHORT', | ||||
|     compatibleTypes: []    // Circular dependencies, add after all declarations
 | ||||
|     compatibleTypes: ['int', 'float',]    // Circular dependencies, add after all declarations
 | ||||
| } | ||||
| 
 | ||||
| /** Integer number. */ | ||||
| export const NUMBER = { | ||||
|     typeId: 'Number', | ||||
|     typeId: 'int', | ||||
|     typeMsgName: 'ARD_TYPE_NUMBER', | ||||
|     compatibleTypes: ['Number']    // Circular dependencies, add after all declarations
 | ||||
| } | ||||
| @ -52,12 +54,12 @@ export const LARGE_NUMBER = { | ||||
| 
 | ||||
| /** Decimal/floating point number. */ | ||||
| export const DECIMAL = { | ||||
|     typeId: 'Decimal', | ||||
|     typeId: 'float', | ||||
|     typeMsgName: 'ARD_TYPE_DECIMAL', | ||||
|     compatibleTypes: [BOOLEAN.typeId, | ||||
|         NUMBER, | ||||
|         SHORT_NUMBER, | ||||
|         LARGE_NUMBER] | ||||
|     NUMBER.typeId, | ||||
|     SHORT_NUMBER.typeId, | ||||
|     LARGE_NUMBER.typeId] | ||||
| } | ||||
| 
 | ||||
| /** Array/List of items. */ | ||||
| @ -88,8 +90,23 @@ export const CHILD_BLOCK_MISSING = { | ||||
|     compatibleTypes: [] | ||||
| } | ||||
| 
 | ||||
| const compatibleTypes = { | ||||
|     boolean: ['boolean'], | ||||
|     int: ['int'], | ||||
|     char: ['char'], | ||||
|     string: ['String'], | ||||
|     void: ['void'], | ||||
|     long: ['int', 'long'], | ||||
|     double: ['int', 'long', 'double'], | ||||
|     float: ['int', 'long', 'double', 'float'] | ||||
| 
 | ||||
| export const VARIABLE_TYPES = ['Number', 'String', 'Boolean', 'Colour']; | ||||
| } | ||||
| 
 | ||||
| export const getCompatibleTypes = (type) => { | ||||
|     return compatibleTypes[type]; | ||||
| }; | ||||
| 
 | ||||
| export const VARIABLE_TYPES = [['SHORT_NUMBER', 'char'], ['NUMBER', 'int'], ['DECIMAL', 'long'], ['TEXT', 'String'], ['CHARACTER', 'char'], ['BOOLEAN', 'boolean'], ['NULL', 'void'], ['UNDEF', 'undefined']]; | ||||
| 
 | ||||
| // /**
 | ||||
| //  * Some Types have circular dependencies on their compatibilities, so add them
 | ||||
|  | ||||
| @ -15,8 +15,8 @@ class Toolbox extends React.Component { | ||||
|     componentDidUpdate() { | ||||
|         this.props.workspace.registerToolboxCategoryCallback('CREATE_TYPED_VARIABLE', this.createFlyout); | ||||
| 
 | ||||
|          const typedVarModal = new TypedVariableModal(this.props.workspace, 'callbackName', [['SHORT_NUMBER', 'char'], ['NUMBER', 'int'], ['DECIMAL', 'long'], ['TEXT', 'String'], ['CHARACTER', 'char'], ['BOOLEAN', 'boolean'], ['NULL', 'void'], ['UNDEF', 'undefined']]); | ||||
|          typedVarModal.init(); | ||||
|         const typedVarModal = new TypedVariableModal(this.props.workspace, 'callbackName', [['SHORT_NUMBER', 'char'], ['NUMBER', 'int'], ['DECIMAL', 'float'], ['TEXT', 'String'], ['CHARACTER', 'char'], ['BOOLEAN', 'boolean'], ['NULL', 'void'], ['UNDEF', 'undefined']]); | ||||
|         typedVarModal.init(); | ||||
|     } | ||||
| 
 | ||||
|     createFlyout(workspace) { | ||||
| @ -38,169 +38,169 @@ class Toolbox extends React.Component { | ||||
|     render() { | ||||
|         return ( | ||||
|             <xml xmlns="https://developers.google.com/blockly/xml" id="blockly" style={{ display: 'none' }} ref={this.props.toolbox}> | ||||
|                     <Category name="Sensoren" colour={getColour().sensebox}> | ||||
|                         <Block type="sensebox_sensor_temp_hum" /> | ||||
|                         <Block type="sensebox_sensor_uv_light" /> | ||||
|                         <Block type="sensebox_sensor_bmx055_accelerometer" /> | ||||
|                         <Block type="sensebox_sensor_sds011" /> | ||||
|                         <Block type="sensebox_sensor_pressure" /> | ||||
|                         <Block type="sensebox_sensor_bme680_bsec" /> | ||||
|                         <Block type="sensebox_sensor_ultrasonic_ranger" /> | ||||
|                         <Block type="sensebox_sensor_sound" /> | ||||
|                     </Category > | ||||
|                     <Category name="WIFI" colour={getColour().sensebox}> | ||||
|                         <Block type="sensebox_wifi" /> | ||||
|                         <Block type="sensebox_startap" /> | ||||
|                 <Category name="Sensoren" colour={getColour().sensebox}> | ||||
|                     <Block type="sensebox_sensor_temp_hum" /> | ||||
|                     <Block type="sensebox_sensor_uv_light" /> | ||||
|                     <Block type="sensebox_sensor_bmx055_accelerometer" /> | ||||
|                     <Block type="sensebox_sensor_sds011" /> | ||||
|                     <Block type="sensebox_sensor_pressure" /> | ||||
|                     <Block type="sensebox_sensor_bme680_bsec" /> | ||||
|                     <Block type="sensebox_sensor_ultrasonic_ranger" /> | ||||
|                     <Block type="sensebox_sensor_sound" /> | ||||
|                 </Category > | ||||
|                 <Category name="WIFI" colour={getColour().sensebox}> | ||||
|                     <Block type="sensebox_wifi" /> | ||||
|                     <Block type="sensebox_startap" /> | ||||
|                 </Category> | ||||
|                 <Category name="SD" colour={getColour().sensebox}> | ||||
|                     <Block type="sensebox_sd_create_file" /> | ||||
|                     <Block type="sensebox_sd_open_file" /> | ||||
|                     <Block type="sensebox_sd_write_file" /> | ||||
|                 </Category> | ||||
|                 <Category name="LED" colour={getColour().sensebox}> | ||||
|                     <Block type="sensebox_rgb_led" /> | ||||
|                     <Block type="sensebox_led" /> | ||||
|                 </Category> | ||||
|                 <Category name="Display" colour={getColour().sensebox}> | ||||
|                     <Block type="sensebox_display_beginDisplay" /> | ||||
|                     <Block type="sensebox_display_show" /> | ||||
|                     <Block type="sensebox_display_clearDisplay" /> | ||||
|                     <Block type="sensebox_display_printDisplay"> | ||||
|                         <Value name="SIZE"> | ||||
|                             <Block type="math_number"> | ||||
|                                 <Field name="NUM">1</Field> | ||||
|                             </Block> | ||||
|                         </Value> | ||||
|                         <Value name="X"> | ||||
|                             <Block type="math_number"> | ||||
|                                 <Field name="NUM">0</Field> | ||||
|                             </Block> | ||||
|                         </Value> | ||||
|                         <Value name="Y"> | ||||
|                             <Block type="math_number"> | ||||
|                                 <Field name="NUM">0</Field> | ||||
|                             </Block> | ||||
|                         </Value> | ||||
|                     </Block> | ||||
|                     <Block type="sensebox_display_plotDisplay"> | ||||
|                         <Value name="Title"> | ||||
|                             <Block type="text"> | ||||
|                             </Block> | ||||
|                         </Value> | ||||
|                         <Value name="YLabel"> | ||||
|                             <Block type="text"> | ||||
|                             </Block> | ||||
|                         </Value> | ||||
|                         <Value name="XLabel"> | ||||
|                             <Block type="text"> | ||||
|                             </Block> | ||||
|                         </Value> | ||||
|                         <Value name="XRange1"> | ||||
|                             <Block type="math_number"> | ||||
|                                 <Field name="NUM">0</Field> | ||||
|                             </Block> | ||||
|                         </Value> | ||||
|                         <Value name="XRange2"> | ||||
|                             <Block type="math_number"> | ||||
|                                 <Field name="NUM">15</Field> | ||||
|                             </Block> | ||||
|                         </Value> | ||||
|                         <Value name="YRange1"> | ||||
|                             <Block type="math_number"> | ||||
|                                 <Field name="NUM">0</Field> | ||||
|                             </Block> | ||||
|                         </Value> | ||||
|                         <Value name="YRange2"> | ||||
|                             <Block type="math_number"> | ||||
|                                 <Field name="NUM">50</Field> | ||||
|                             </Block> | ||||
|                         </Value> | ||||
|                         <Value name="XTick"> | ||||
|                             <Block type="math_number"> | ||||
|                                 <Field name="NUM">5</Field> | ||||
|                             </Block> | ||||
|                         </Value> | ||||
|                         <Value name="YTick"> | ||||
|                             <Block type="math_number"> | ||||
|                                 <Field name="NUM">0</Field> | ||||
|                             </Block> | ||||
|                         </Value> | ||||
|                         <Value name="TimeFrame"> | ||||
|                             <Block type="math_number"> | ||||
|                                 <Field name="NUM">15</Field> | ||||
|                             </Block> | ||||
|                         </Value> | ||||
|                     </Block> | ||||
|                     <Block type="sensebox_display_fillCircle"> | ||||
|                         <Value name="X"> | ||||
|                             <Block type="math_number"> | ||||
|                                 <Field name="NUM">0</Field> | ||||
|                             </Block> | ||||
|                         </Value> | ||||
|                         <Value name="Y"> | ||||
|                             <Block type="math_number"> | ||||
|                                 <Field name="NUM">0</Field> | ||||
|                             </Block> | ||||
|                         </Value> | ||||
|                         <Value name="Radius"> | ||||
|                             <Block type="math_number"> | ||||
|                                 <Field name="NUM">0</Field> | ||||
|                             </Block> | ||||
|                         </Value> | ||||
|                     </Block> | ||||
|                     <Block type="sensebox_display_drawRectangle"> | ||||
|                         <Value name="X"> | ||||
|                             <Block type="math_number"> | ||||
|                                 <Field name="NUM">0</Field> | ||||
|                             </Block> | ||||
|                         </Value> | ||||
|                         <Value name="Y"> | ||||
|                             <Block type="math_number"> | ||||
|                                 <Field name="NUM">0</Field> | ||||
|                             </Block> | ||||
|                         </Value> | ||||
|                         <Value name="height"> | ||||
|                             <Block type="math_number"> | ||||
|                                 <Field name="NUM">0</Field> | ||||
|                             </Block> | ||||
|                         </Value> | ||||
|                         <Value name="width"> | ||||
|                             <Block type="math_number"> | ||||
|                                 <Field name="NUM">0</Field> | ||||
|                             </Block> | ||||
|                         </Value> | ||||
|                     </Block> | ||||
|                 </Category> | ||||
|                 <Category name="Telegram" colour={getColour().sensebox}> | ||||
|                     <Block type="sensebox_telegram" /> | ||||
|                     <Block type="sensebox_telegram_do" /> | ||||
|                     <Block type="sensebox_telegram_do_on_message" /> | ||||
|                     <Block type="sensebox_telegram_send" /> | ||||
|                 </Category> | ||||
|                 <Category name="openSenseMap" colour={getColour().sensebox}> | ||||
|                     <Block type="sensebox_osem_connection" /> | ||||
|                     <Block type="sensebox_send_to_osem" /> | ||||
|                 </Category> | ||||
|                 <Category id="catSenseBoxOutput_LoRa" name="  LoRa" colour={getColour().sensebox}> | ||||
|                     <Category id="catSenseBoxOutput_LoRa_activation" name="  Activation" colour={getColour().sensebox}> | ||||
|                         <Block type="sensebox_lora_initialize_otaa" /> | ||||
|                         <Block type="sensebox_lora_initialize_abp" /> | ||||
|                     </Category> | ||||
|                     <Category name="SD" colour={getColour().sensebox}> | ||||
|                         <Block type="sensebox_sd_create_file" /> | ||||
|                         <Block type="sensebox_sd_open_file" /> | ||||
|                         <Block type="sensebox_sd_write_file" /> | ||||
|                     <Category id="catSenseBoxOutput_LoRa_loramessage" name="    Lora Message" colour={getColour().sensebox}> | ||||
|                         <Block type="sensebox_lora_message_send" /> | ||||
|                         <Block type="sensebox_send_lora_sensor_value" /> | ||||
|                     </Category> | ||||
|                     <Category name="LED" colour={getColour().sensebox}> | ||||
|                         <Block type="sensebox_rgb_led" /> | ||||
|                         <Block type="sensebox_led" /> | ||||
|                     </Category> | ||||
|                     <Category name="Display" colour={getColour().sensebox}> | ||||
|                         <Block type="sensebox_display_beginDisplay" /> | ||||
|                         <Block type="sensebox_display_show" /> | ||||
|                         <Block type="sensebox_display_clearDisplay" /> | ||||
|                         <Block type="sensebox_display_printDisplay"> | ||||
|                             <Value name="SIZE"> | ||||
|                                 <Block type="math_number"> | ||||
|                                     <Field name="NUM">1</Field> | ||||
|                                 </Block> | ||||
|                             </Value> | ||||
|                             <Value name="X"> | ||||
|                                 <Block type="math_number"> | ||||
|                                     <Field name="NUM">0</Field> | ||||
|                                 </Block> | ||||
|                             </Value> | ||||
|                             <Value name="Y"> | ||||
|                                 <Block type="math_number"> | ||||
|                                     <Field name="NUM">0</Field> | ||||
|                                 </Block> | ||||
|                             </Value> | ||||
|                         </Block> | ||||
|                         <Block type="sensebox_display_plotDisplay"> | ||||
|                             <Value name="Title"> | ||||
|                                 <Block type="text"> | ||||
|                                 </Block> | ||||
|                             </Value> | ||||
|                             <Value name="YLabel"> | ||||
|                                 <Block type="text"> | ||||
|                                 </Block> | ||||
|                             </Value> | ||||
|                             <Value name="XLabel"> | ||||
|                                 <Block type="text"> | ||||
|                                 </Block> | ||||
|                             </Value> | ||||
|                             <Value name="XRange1"> | ||||
|                                 <Block type="math_number"> | ||||
|                                     <Field name="NUM">0</Field> | ||||
|                                 </Block> | ||||
|                             </Value> | ||||
|                             <Value name="XRange2"> | ||||
|                                 <Block type="math_number"> | ||||
|                                     <Field name="NUM">15</Field> | ||||
|                                 </Block> | ||||
|                             </Value> | ||||
|                             <Value name="YRange1"> | ||||
|                                 <Block type="math_number"> | ||||
|                                     <Field name="NUM">0</Field> | ||||
|                                 </Block> | ||||
|                             </Value> | ||||
|                             <Value name="YRange2"> | ||||
|                                 <Block type="math_number"> | ||||
|                                     <Field name="NUM">50</Field> | ||||
|                                 </Block> | ||||
|                             </Value> | ||||
|                             <Value name="XTick"> | ||||
|                                 <Block type="math_number"> | ||||
|                                     <Field name="NUM">5</Field> | ||||
|                                 </Block> | ||||
|                             </Value> | ||||
|                             <Value name="YTick"> | ||||
|                                 <Block type="math_number"> | ||||
|                                     <Field name="NUM">0</Field> | ||||
|                                 </Block> | ||||
|                             </Value> | ||||
|                             <Value name="TimeFrame"> | ||||
|                                 <Block type="math_number"> | ||||
|                                     <Field name="NUM">15</Field> | ||||
|                                 </Block> | ||||
|                             </Value> | ||||
|                         </Block> | ||||
|                         <Block type="sensebox_display_fillCircle"> | ||||
|                             <Value name="X"> | ||||
|                                 <Block type="math_number"> | ||||
|                                     <Field name="NUM">0</Field> | ||||
|                                 </Block> | ||||
|                             </Value> | ||||
|                             <Value name="Y"> | ||||
|                                 <Block type="math_number"> | ||||
|                                     <Field name="NUM">0</Field> | ||||
|                                 </Block> | ||||
|                             </Value> | ||||
|                             <Value name="Radius"> | ||||
|                                 <Block type="math_number"> | ||||
|                                     <Field name="NUM">0</Field> | ||||
|                                 </Block> | ||||
|                             </Value> | ||||
|                         </Block> | ||||
|                         <Block type="sensebox_display_drawRectangle"> | ||||
|                             <Value name="X"> | ||||
|                                 <Block type="math_number"> | ||||
|                                     <Field name="NUM">0</Field> | ||||
|                                 </Block> | ||||
|                             </Value> | ||||
|                             <Value name="Y"> | ||||
|                                 <Block type="math_number"> | ||||
|                                     <Field name="NUM">0</Field> | ||||
|                                 </Block> | ||||
|                             </Value> | ||||
|                             <Value name="height"> | ||||
|                                 <Block type="math_number"> | ||||
|                                     <Field name="NUM">0</Field> | ||||
|                                 </Block> | ||||
|                             </Value> | ||||
|                             <Value name="width"> | ||||
|                                 <Block type="math_number"> | ||||
|                                     <Field name="NUM">0</Field> | ||||
|                                 </Block> | ||||
|                             </Value> | ||||
|                         </Block> | ||||
|                     </Category> | ||||
|                     <Category name="Telegram" colour={getColour().sensebox}> | ||||
|                         <Block type="sensebox_telegram" /> | ||||
|                         <Block type="sensebox_telegram_do" /> | ||||
|                         <Block type="sensebox_telegram_do_on_message" /> | ||||
|                         <Block type="sensebox_telegram_send" /> | ||||
|                     </Category> | ||||
|                     <Category name="openSenseMap" colour={getColour().sensebox}> | ||||
|                         <Block type="sensebox_osem_connection" /> | ||||
|                         <Block type="sensebox_send_to_osem" /> | ||||
|                     </Category> | ||||
|                     <Category id="catSenseBoxOutput_LoRa" name="  LoRa" colour={getColour().sensebox}> | ||||
|                         <Category id="catSenseBoxOutput_LoRa_activation" name="  Activation" colour={getColour().sensebox}> | ||||
|                             <Block type="sensebox_lora_initialize_otaa" /> | ||||
|                             <Block type="sensebox_lora_initialize_abp" /> | ||||
|                         </Category> | ||||
|                         <Category id="catSenseBoxOutput_LoRa_loramessage" name="    Lora Message" colour={getColour().sensebox}> | ||||
|                             <Block type="sensebox_lora_message_send" /> | ||||
|                             <Block type="sensebox_send_lora_sensor_value" /> | ||||
|                         </Category> | ||||
|                         <Category id="catSenseBoxOutput_LoRa_cayenne" name="    Cayenne LPP" colour={getColour().sensebox}> | ||||
|                             <Block type="sensebox_lora_cayenne_send" /> | ||||
|                             <Block type="sensebox_lora_cayenne_temperature" /> | ||||
|                             <Block type="sensebox_lora_cayenne_humidity" /> | ||||
|                             <Block type="sensebox_lora_cayenne_pressure" /> | ||||
|                             <Block type="sensebox_lora_cayenne_luminosity" /> | ||||
|                             <Block type="sensebox_lora_cayenne_sensor" /> | ||||
|                             <Block type="sensebox_lora_cayenne_accelerometer" /> | ||||
|                             <Block type="sensebox_lora_cayenne_gps" /> | ||||
|                         </Category> | ||||
|                     <Category id="catSenseBoxOutput_LoRa_cayenne" name="    Cayenne LPP" colour={getColour().sensebox}> | ||||
|                         <Block type="sensebox_lora_cayenne_send" /> | ||||
|                         <Block type="sensebox_lora_cayenne_temperature" /> | ||||
|                         <Block type="sensebox_lora_cayenne_humidity" /> | ||||
|                         <Block type="sensebox_lora_cayenne_pressure" /> | ||||
|                         <Block type="sensebox_lora_cayenne_luminosity" /> | ||||
|                         <Block type="sensebox_lora_cayenne_sensor" /> | ||||
|                         <Block type="sensebox_lora_cayenne_accelerometer" /> | ||||
|                         <Block type="sensebox_lora_cayenne_gps" /> | ||||
|                     </Category> | ||||
|                 </Category> | ||||
|                 <Category name="Logic" colour={getColour().logic}> | ||||
|                     <Block type="controls_if" /> | ||||
|                     <Block type="controls_ifelse" /> | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user