update osem block
This commit is contained in:
		
							parent
							
								
									14947267d1
								
							
						
					
					
						commit
						cc54c18b47
					
				| @ -42,3 +42,32 @@ Blockly.Blocks['sensebox_rgb_led'] = { | |||||||
|         this.setHelpUrl('https://sensebox.de/books'); |         this.setHelpUrl('https://sensebox.de/books'); | ||||||
|     } |     } | ||||||
| }; | }; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | Blockly.Blocks['sensebox_ws2818_led'] = { | ||||||
|  |     init: function () { | ||||||
|  | 
 | ||||||
|  |         var dropdownOptions = [[Blockly.Msg.senseBox_ultrasonic_port_A, '1'], | ||||||
|  |         [Blockly.Msg.senseBox_ultrasonic_port_B, '3'], [Blockly.Msg.senseBox_ultrasonic_port_C, '5']]; | ||||||
|  | 
 | ||||||
|  |         this.setColour(getColour().sensebox); | ||||||
|  |         this.appendDummyInput() | ||||||
|  |             .appendField(Blockly.Msg.senseBox_ws2818_rgb_led) | ||||||
|  |             .appendField("Pin:") | ||||||
|  |             .appendField(new Blockly.FieldDropdown(dropdownOptions), "Port") | ||||||
|  |         this.appendValueInput("BRIGHTNESS", "brightness") | ||||||
|  |             .appendField((Blockly.Msg.senseBox_ws2818_rgb_led_brightness)); | ||||||
|  |         this.appendValueInput("POSITION", "position") | ||||||
|  |             .appendField((Blockly.Msg.senseBox_ws2818_rgb_led_position)); | ||||||
|  |         this.appendValueInput("RED", 'Number') | ||||||
|  |             .appendField(Blockly.Msg.COLOUR_RGB_RED);//Blockly.Msg.senseBox_basic_red
 | ||||||
|  |         this.appendValueInput("GREEN", 'Number') | ||||||
|  |             .appendField(Blockly.Msg.COLOUR_RGB_GREEN);//Blockly.Msg.senseBox_basic_green
 | ||||||
|  |         this.appendValueInput("BLUE", 'Number') | ||||||
|  |             .appendField(Blockly.Msg.COLOUR_RGB_BLUE); | ||||||
|  |         this.setPreviousStatement(true, null); | ||||||
|  |         this.setNextStatement(true, null); | ||||||
|  |         this.setTooltip(Blockly.Msg.senseBox_rgb_led_tip); | ||||||
|  |         this.setHelpUrl('https://sensebox.de/books'); | ||||||
|  |     } | ||||||
|  | }; | ||||||
| @ -21,6 +21,10 @@ Blockly.Blocks['sensebox_osem_connection'] = { | |||||||
|             .setAlign(Blockly.ALIGN_LEFT) |             .setAlign(Blockly.ALIGN_LEFT) | ||||||
|             .appendField("senseBox ID") |             .appendField("senseBox ID") | ||||||
|             .appendField(new Blockly.FieldTextInput("senseBox ID"), "BoxID"); |             .appendField(new Blockly.FieldTextInput("senseBox ID"), "BoxID"); | ||||||
|  |         this.appendDummyInput() | ||||||
|  |             .setAlign(Blockly.ALIGN_LEFT) | ||||||
|  |             .appendField(Blockly.Msg.senseBox_osem_access_token) | ||||||
|  |             .appendField(new Blockly.FieldTextInput("access_token"), "access_token"); | ||||||
|         this.appendStatementInput('DO') |         this.appendStatementInput('DO') | ||||||
|             .appendField(Blockly.Msg.senseBox_sensor) |             .appendField(Blockly.Msg.senseBox_sensor) | ||||||
|             .setCheck(null); |             .setCheck(null); | ||||||
|  | |||||||
| @ -20,3 +20,27 @@ Blockly.Arduino.sensebox_rgb_led = function () { | |||||||
|     code += 'rgb_led_' + dropdown_pin + '.show();'; |     code += 'rgb_led_' + dropdown_pin + '.show();'; | ||||||
|     return code; |     return code; | ||||||
| }; | }; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | Blockly.Arduino.sensebox_ws2818_led = function () { | ||||||
|  |     var dropdown_pin = this.getFieldValue('Port'); | ||||||
|  |     var blocks = Blockly.mainWorkspace.getAllBlocks(); | ||||||
|  |     var count = 0; | ||||||
|  |     for (var i = 0; i < blocks.length; i++) { | ||||||
|  |         if (blocks[i].type === 'sensebox_ws2818_led' && blocks[i].getFieldValue('Port') === dropdown_pin) { | ||||||
|  |             count++; | ||||||
|  | 
 | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |     var numPixel = count; | ||||||
|  |     var brightness = Blockly.Arduino.valueToCode(this, 'BRIGHTNESS', Blockly.Arduino.ORDER_ATOMIC) || '50' | ||||||
|  |     var position = Blockly.Arduino.valueToCode(this, 'POSITION', Blockly.Arduino.ORDER_ATOMIC) || '0'; | ||||||
|  |     var red = Blockly.Arduino.valueToCode(this, 'RED', Blockly.Arduino.ORDER_ATOMIC) || '0' | ||||||
|  |     var green = Blockly.Arduino.valueToCode(this, 'GREEN', Blockly.Arduino.ORDER_ATOMIC) || '0' | ||||||
|  |     var blue = Blockly.Arduino.valueToCode(this, 'BLUE', Blockly.Arduino.ORDER_ATOMIC) || '0' | ||||||
|  |     Blockly.Arduino.definitions_['define_rgb_led' + dropdown_pin] = `#include <Adafruit_NeoPixel.h>\n Adafruit_NeoPixel rgb_led_${dropdown_pin}= Adafruit_NeoPixel(${numPixel}, ${dropdown_pin},NEO_GRB + NEO_KHZ800);\n`; | ||||||
|  |     Blockly.Arduino.setupCode_['setup_rgb_led' + dropdown_pin] = 'rgb_led_' + dropdown_pin + '.begin();\n'; | ||||||
|  |     Blockly.Arduino.setupCode_['setup_rgb_led_brightness' + dropdown_pin] = `rgb_led_${dropdown_pin}.setBrightness(${brightness});\n`; | ||||||
|  |     var code = `rgb_led_${dropdown_pin}.setPixelColor(${position},rgb_led_${dropdown_pin}.Color(${red},${green},${blue}));\nrgb_led_${dropdown_pin}.show();\n`; | ||||||
|  |     return code; | ||||||
|  | }; | ||||||
| @ -18,6 +18,7 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) { | |||||||
|   var box_id = this.getFieldValue('BoxID'); |   var box_id = this.getFieldValue('BoxID'); | ||||||
|   var host = this.getFieldValue('host'); |   var host = this.getFieldValue('host'); | ||||||
|   var branch = Blockly.Arduino.statementToCode(Block, 'DO'); |   var branch = Blockly.Arduino.statementToCode(Block, 'DO'); | ||||||
|  |   var access_token = this.getFieldValue('access_token'); | ||||||
|   var blocks = this.getDescendants(); |   var blocks = this.getDescendants(); | ||||||
|   var type = this.getFieldValue('type'); |   var type = this.getFieldValue('type'); | ||||||
|   var ssl = this.getFieldValue('SSL'); |   var ssl = this.getFieldValue('SSL'); | ||||||
| @ -86,7 +87,7 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) { | |||||||
|     if (connected == true) { |     if (connected == true) { | ||||||
|       // construct the HTTP POST request:
 |       // construct the HTTP POST request:
 | ||||||
|       sprintf_P(buffer, |       sprintf_P(buffer, | ||||||
|                 PSTR("POST /boxes/%s/data HTTP/1.1\\nHost: %s\\nContent-Type: " |                 PSTR("POST /boxes/%s/data HTTP/1.1\\nAuthorization: ${access_token}\\nHost: %s\\nContent-Type: " | ||||||
|                      "text/csv\\nConnection: close\\nContent-Length: %i\\n\\n"), |                      "text/csv\\nConnection: close\\nContent-Length: %i\\n\\n"), | ||||||
|                 SENSEBOX_ID, server, num_measurements * lengthMultiplikator); |                 SENSEBOX_ID, server, num_measurements * lengthMultiplikator); | ||||||
|       // send the HTTP POST request:
 |       // send the HTTP POST request:
 | ||||||
| @ -146,7 +147,7 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) { | |||||||
|       if (connected == true) { |       if (connected == true) { | ||||||
|         // construct the HTTP POST request:
 |         // construct the HTTP POST request:
 | ||||||
|         sprintf_P(buffer, |         sprintf_P(buffer, | ||||||
|                   PSTR("POST /boxes/%s/data HTTP/1.1\\nHost: %s\\nContent-Type: " |                   PSTR("POST /boxes/%s/data HTTP/1.1\\nAuthorization: ${access_token}\\nHost: %s\\nContent-Type: " | ||||||
|                        "text/csv\\nConnection: close\\nContent-Length: %i\\n\\n"), |                        "text/csv\\nConnection: close\\nContent-Length: %i\\n\\n"), | ||||||
|                   SENSEBOX_ID, server, num_measurements * lengthMultiplikator); |                   SENSEBOX_ID, server, num_measurements * lengthMultiplikator); | ||||||
|         // send the HTTP POST request:
 |         // send the HTTP POST request:
 | ||||||
|  | |||||||
| @ -606,6 +606,7 @@ Blockly.Msg.senseBox_osem_connection = "Verbinde mit openSenseMap"; | |||||||
| Blockly.Msg.senseBox_osem_exposure = "Typ"; | Blockly.Msg.senseBox_osem_exposure = "Typ"; | ||||||
| Blockly.Msg.senseBox_osem_stationary = "Stationär"; | Blockly.Msg.senseBox_osem_stationary = "Stationär"; | ||||||
| Blockly.Msg.senseBox_osem_mobile = "Mobil"; | Blockly.Msg.senseBox_osem_mobile = "Mobil"; | ||||||
|  | Blockly.Msg.senseBox_osem_access_token = "API Schlüssel"; | ||||||
| Blockly.Msg.senseBox_sds011 = "Feinstaubsensor"; | Blockly.Msg.senseBox_sds011 = "Feinstaubsensor"; | ||||||
| Blockly.Msg.senseBox_sds011_dimension = "in µg/m³ an"; | Blockly.Msg.senseBox_sds011_dimension = "in µg/m³ an"; | ||||||
| Blockly.Msg.senseBox_sds011_pm25 = "PM2.5"; | Blockly.Msg.senseBox_sds011_pm25 = "PM2.5"; | ||||||
| @ -771,9 +772,12 @@ Blockly.Msg.senseBox_telegram_do = "Telegram mache" | |||||||
| Blockly.Msg.senseBox_telegram_do_on_message = "bei Nachricht" | Blockly.Msg.senseBox_telegram_do_on_message = "bei Nachricht" | ||||||
| Blockly.Msg.senseBox_telegram_message = "Nachricht" | Blockly.Msg.senseBox_telegram_message = "Nachricht" | ||||||
| Blockly.Msg.senseBox_telegram_send = "Sende Nachricht" | Blockly.Msg.senseBox_telegram_send = "Sende Nachricht" | ||||||
| 
 | //SCD30 CO2 Sensor
 | ||||||
| Blockly.Msg.senseBox_scd30 = "CO2 Sensor (Sensirion SCD30)"; | Blockly.Msg.senseBox_scd30 = "CO2 Sensor (Sensirion SCD30)"; | ||||||
| 
 | //WS2818 RGB LED
 | ||||||
|  | Blockly.Msg.senseBox_ws2818_rgb_led = "senseBox WS2812 - RGB LED"; | ||||||
|  | Blockly.Msg.senseBox_ws2818_rgb_led_position = "Position"; | ||||||
|  | Blockly.Msg.senseBox_ws2818_rgb_led_brightness = "Helligkeit"; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| export const De = Blockly.Msg; | export const De = Blockly.Msg; | ||||||
| @ -677,6 +677,7 @@ Blockly.Msg.senseBox_osem_host = "opensensemap.org"; | |||||||
| Blockly.Msg.senseBox_osem_host_workshop = "workshop.opensensemap.org"; | Blockly.Msg.senseBox_osem_host_workshop = "workshop.opensensemap.org"; | ||||||
| Blockly.Msg.senseBox_osem_mobile = "Mobile"; | Blockly.Msg.senseBox_osem_mobile = "Mobile"; | ||||||
| Blockly.Msg.senseBox_osem_stationary = "Stationary"; | Blockly.Msg.senseBox_osem_stationary = "Stationary"; | ||||||
|  | Blockly.Msg.senseBox_osem_access_token = "API Key"; | ||||||
| Blockly.Msg.senseBox_output_filename = "filename"; | Blockly.Msg.senseBox_output_filename = "filename"; | ||||||
| Blockly.Msg.senseBox_output_format = "format:"; | Blockly.Msg.senseBox_output_format = "format:"; | ||||||
| Blockly.Msg.senseBox_output_linebreak = "linebreak"; | Blockly.Msg.senseBox_output_linebreak = "linebreak"; | ||||||
| @ -754,7 +755,13 @@ Blockly.Msg.sensebox_display_show_tip = "Print on Display"; | |||||||
| Blockly.Msg.sensebox_sd_filename = "data"; | Blockly.Msg.sensebox_sd_filename = "data"; | ||||||
| Blockly.Msg.sensebox_soil_smt50 = "Soil Moisture and Temperature (SMT50)"; | Blockly.Msg.sensebox_soil_smt50 = "Soil Moisture and Temperature (SMT50)"; | ||||||
| Blockly.Msg.sensebox_web_readHTML_filename = "File:"; | Blockly.Msg.sensebox_web_readHTML_filename = "File:"; | ||||||
| 
 | //SCD30 CO2 Sensor
 | ||||||
| Blockly.Msg.senseBox_scd30 = "CO2 Sensor (Sensirion SCD30)"; | Blockly.Msg.senseBox_scd30 = "CO2 Sensor (Sensirion SCD30)"; | ||||||
| 
 | 
 | ||||||
|  | //WS2818 RGB LED
 | ||||||
|  | Blockly.Msg.senseBox_ws2818_rgb_led = "senseBox WS2812 - RGB LED"; | ||||||
|  | Blockly.Msg.senseBox_ws2818_rgb_led_brightness = "Helligkeit"; | ||||||
|  | Blockly.Msg.senseBox_ws2818_rgb_led_position = "Position"; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| export const En = Blockly.Msg; | export const En = Blockly.Msg; | ||||||
| @ -62,6 +62,33 @@ class Toolbox extends React.Component { | |||||||
|                 <Category name="LED" colour={getColour().sensebox}> |                 <Category name="LED" colour={getColour().sensebox}> | ||||||
|                     <Block type="sensebox_rgb_led" /> |                     <Block type="sensebox_rgb_led" /> | ||||||
|                     <Block type="sensebox_led" /> |                     <Block type="sensebox_led" /> | ||||||
|  |                     <Block type="sensebox_ws2818_led"> | ||||||
|  |                         <Value name="POSITION"> | ||||||
|  |                             <Block type="math_number"> | ||||||
|  |                                 <Field name="NUM">0</Field> | ||||||
|  |                             </Block> | ||||||
|  |                         </Value> | ||||||
|  |                         <Value name="BRIGHTNESS"> | ||||||
|  |                             <Block type="math_number"> | ||||||
|  |                                 <Field name="NUM">30</Field> | ||||||
|  |                             </Block> | ||||||
|  |                         </Value> | ||||||
|  |                         <Value name="RED"> | ||||||
|  |                             <Block type="math_number"> | ||||||
|  |                                 <Field name="NUM">0</Field> | ||||||
|  |                             </Block> | ||||||
|  |                         </Value> | ||||||
|  |                         <Value name="GREEN"> | ||||||
|  |                             <Block type="math_number"> | ||||||
|  |                                 <Field name="NUM">0</Field> | ||||||
|  |                             </Block> | ||||||
|  |                         </Value> | ||||||
|  |                         <Value name="BLUE"> | ||||||
|  |                             <Block type="math_number"> | ||||||
|  |                                 <Field name="NUM">0</Field> | ||||||
|  |                             </Block> | ||||||
|  |                         </Value> | ||||||
|  |                     </Block> | ||||||
|                 </Category> |                 </Category> | ||||||
|                 <Category name="Display" colour={getColour().sensebox}> |                 <Category name="Display" colour={getColour().sensebox}> | ||||||
|                     <Block type="sensebox_display_beginDisplay" /> |                     <Block type="sensebox_display_beginDisplay" /> | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user