replace more senseBox MCU includes
This commit is contained in:
		
							parent
							
								
									8acc89b99e
								
							
						
					
					
						commit
						d21847454a
					
				| @ -1,52 +1,77 @@ | |||||||
| import * as Blockly from 'blockly/core'; | import * as Blockly from "blockly/core"; | ||||||
| /** | /** | ||||||
| * MQTT Blocks  |  * MQTT Blocks | ||||||
| */ |  */ | ||||||
| 
 | 
 | ||||||
| let service; | let service; | ||||||
| 
 | 
 | ||||||
| Blockly.Arduino.sensebox_mqtt_setup = function () { | Blockly.Arduino.sensebox_mqtt_setup = function () { | ||||||
|     var server = this.getFieldValue('server'); |   var server = this.getFieldValue("server"); | ||||||
|     var port = this.getFieldValue('port'); |   var port = this.getFieldValue("port"); | ||||||
|     var username = this.getFieldValue('username'); |   var username = this.getFieldValue("username"); | ||||||
|     var pass = this.getFieldValue('password'); |   var pass = this.getFieldValue("password"); | ||||||
|     service = this.getFieldValue('service'); |   service = this.getFieldValue("service"); | ||||||
|     Blockly.Arduino.libraries_['library_senseBoxMCU'] = '#include "SenseBoxMCU.h"'; |   Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include <senseBoxIO.h>"; | ||||||
|     Blockly.Arduino.libraries_['library_adafruitmqtt'] = '#include "Adafruit_MQTT.h"'; |   Blockly.Arduino.libraries_["library_adafruitmqtt"] = | ||||||
|     Blockly.Arduino.libraries_['library_adafruitmqttclient'] = '#include "Adafruit_MQTT_Client.h"'; |     '#include "Adafruit_MQTT.h"'; | ||||||
|     Blockly.Arduino.definitions_['mqtt_server'] = '#define SERVER      "' + server + '"'; |   Blockly.Arduino.libraries_["library_adafruitmqttclient"] = | ||||||
|     Blockly.Arduino.definitions_['mqtt_port'] = '#define SERVERPORT      ' + port + ''; |     '#include "Adafruit_MQTT_Client.h"'; | ||||||
|     Blockly.Arduino.definitions_['mqtt_username'] = '#define USERNAME      "' + username + '"'; |   Blockly.Arduino.definitions_["mqtt_server"] = | ||||||
|     Blockly.Arduino.definitions_['mqtt_pass'] = '#define PASS      "' + pass + '"'; |     '#define SERVER      "' + server + '"'; | ||||||
|     Blockly.Arduino.definitions_['wifi_client'] = 'WiFiClient client;'; |   Blockly.Arduino.definitions_["mqtt_port"] = | ||||||
|     Blockly.Arduino.definitions_['mqtt_client'] = 'Adafruit_MQTT_Client mqtt(&client, SERVER, SERVERPORT, USERNAME, PASS);' |     "#define SERVERPORT      " + port + ""; | ||||||
|     var code = ''; |   Blockly.Arduino.definitions_["mqtt_username"] = | ||||||
|  |     '#define USERNAME      "' + username + '"'; | ||||||
|  |   Blockly.Arduino.definitions_["mqtt_pass"] = | ||||||
|  |     '#define PASS      "' + pass + '"'; | ||||||
|  |   Blockly.Arduino.definitions_["wifi_client"] = "WiFiClient client;"; | ||||||
|  |   Blockly.Arduino.definitions_["mqtt_client"] = | ||||||
|  |     "Adafruit_MQTT_Client mqtt(&client, SERVER, SERVERPORT, USERNAME, PASS);"; | ||||||
|  |   var code = ""; | ||||||
|   return code; |   return code; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| Blockly.Arduino.sensebox_mqtt_publish = function (block) { | Blockly.Arduino.sensebox_mqtt_publish = function (block) { | ||||||
|     var feedname = this.getFieldValue('publishfeed'); |   var feedname = this.getFieldValue("publishfeed"); | ||||||
|   var res = feedname.split("/"); |   var res = feedname.split("/"); | ||||||
|   var feed_client = res[res.length - 1]; |   var feed_client = res[res.length - 1]; | ||||||
|     var value = Blockly.Arduino.valueToCode(this, 'value', Blockly.Arduino.ORDER_ATOMIC) || '"No Block connected"'; |   var value = | ||||||
|  |     Blockly.Arduino.valueToCode(this, "value", Blockly.Arduino.ORDER_ATOMIC) || | ||||||
|  |     '"No Block connected"'; | ||||||
| 
 | 
 | ||||||
|   switch (service) { |   switch (service) { | ||||||
|         case 'adafruitio': |     case "adafruitio": | ||||||
|             Blockly.Arduino.definitions_['mqtt_' + feed_client + ''] = 'Adafruit_MQTT_Publish ' + feed_client + ' = Adafruit_MQTT_Publish(&mqtt, USERNAME "/feeds/' + feedname + '");' |       Blockly.Arduino.definitions_["mqtt_" + feed_client + ""] = | ||||||
|  |         "Adafruit_MQTT_Publish " + | ||||||
|  |         feed_client + | ||||||
|  |         ' = Adafruit_MQTT_Publish(&mqtt, USERNAME "/feeds/' + | ||||||
|  |         feedname + | ||||||
|  |         '");'; | ||||||
|       break; |       break; | ||||||
|         case 'dioty': |     case "dioty": | ||||||
|             Blockly.Arduino.definitions_['mqtt_' + feed_client + ''] = 'Adafruit_MQTT_Publish ' + feed_client + ' = Adafruit_MQTT_Publish(&mqtt, "/"USERNAME"/' + feedname + '");' |       Blockly.Arduino.definitions_["mqtt_" + feed_client + ""] = | ||||||
|  |         "Adafruit_MQTT_Publish " + | ||||||
|  |         feed_client + | ||||||
|  |         ' = Adafruit_MQTT_Publish(&mqtt, "/"USERNAME"/' + | ||||||
|  |         feedname + | ||||||
|  |         '");'; | ||||||
|       break; |       break; | ||||||
|         case 'custom': |     case "custom": | ||||||
|             Blockly.Arduino.definitions_['mqtt_' + feed_client + ''] = 'Adafruit_MQTT_Publish ' + feed_client + ' = Adafruit_MQTT_Publish(&mqtt, "' + feedname + '");' |       Blockly.Arduino.definitions_["mqtt_" + feed_client + ""] = | ||||||
|  |         "Adafruit_MQTT_Publish " + | ||||||
|  |         feed_client + | ||||||
|  |         ' = Adafruit_MQTT_Publish(&mqtt, "' + | ||||||
|  |         feedname + | ||||||
|  |         '");'; | ||||||
|       break; |       break; | ||||||
|     default: |     default: | ||||||
|       break; |       break; | ||||||
| 
 |  | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   //Blockly.Arduino.definitions_['mqtt_' + feed_client + ''] = 'Adafruit_MQTT_Publish ' + feed_client + ' = Adafruit_MQTT_Publish(&mqtt, USERNAME "/feeds/' + feedname + '");'
 |   //Blockly.Arduino.definitions_['mqtt_' + feed_client + ''] = 'Adafruit_MQTT_Publish ' + feed_client + ' = Adafruit_MQTT_Publish(&mqtt, USERNAME "/feeds/' + feedname + '");'
 | ||||||
|     Blockly.Arduino.codeFunctions_['mqtt_connect_function'] = `// Function to connect and reconnect as necessary to the MQTT server.
 |   Blockly.Arduino.codeFunctions_[ | ||||||
|  |     "mqtt_connect_function" | ||||||
|  |   ] = `// Function to connect and reconnect as necessary to the MQTT server.
 | ||||||
|     // Should be called in the loop function and it will take care if connecting.
 |     // Should be called in the loop function and it will take care if connecting.
 | ||||||
| void MQTT_connect() { | void MQTT_connect() { | ||||||
|       int8_t ret; |       int8_t ret; | ||||||
| @ -59,23 +84,34 @@ void MQTT_connect() { | |||||||
|            delay(5000);  // wait 5 seconds
 |            delay(5000);  // wait 5 seconds
 | ||||||
|       } |       } | ||||||
| }`;
 | }`;
 | ||||||
|     Blockly.Arduino.loopCodeOnce_['mqtt_connect'] = 'MQTT_connect();'; |   Blockly.Arduino.loopCodeOnce_["mqtt_connect"] = "MQTT_connect();"; | ||||||
|     var code = '' + feed_client + '.publish(' + value + ');'; |   var code = "" + feed_client + ".publish(" + value + ");"; | ||||||
|     return code |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| Blockly.Arduino.sensebox_mqtt_subscribe = function (block) { |  | ||||||
|     var feedname = this.getFieldValue('subscribefeed'); |  | ||||||
|     var x = 5, feed_client; |  | ||||||
|     feed_client = feedname.substr(feedname.length - x, x); |  | ||||||
|     Blockly.Arduino.definitions_['mqtt_' + feed_client + ''] = 'Adafruit_MQTT_Subscribe ' + feed_client + '= Adafruit_MQTT_Subscribe(&mqtt,' + feedname + ');'; |  | ||||||
|     Blockly.Arduino.codeFunctions_['mqtt_' + feed_client + 'callbackFunction'] = `void ` + feed_client + `Callback (double x){
 |  | ||||||
|       Serial.println(x); |  | ||||||
|     }`;
 |  | ||||||
|     Blockly.Arduino.setupCode_['mqtt_' + feed_client + '_callback'] = '' + feed_client + '.setCallback(' + feed_client + 'Callback);'; |  | ||||||
|     Blockly.Arduino.setupCode_['mqtt_' + feed_client + '_subscribe'] = 'mqtt.subscribe(&' + feed_client + ');'; |  | ||||||
|     Blockly.Arduino.loopCodeOnce_['mqtt_processPackages'] = 'mqtt.processPackets(10);'; |  | ||||||
|     var code = ''; |  | ||||||
|   return code; |   return code; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | Blockly.Arduino.sensebox_mqtt_subscribe = function (block) { | ||||||
|  |   var feedname = this.getFieldValue("subscribefeed"); | ||||||
|  |   var x = 5, | ||||||
|  |     feed_client; | ||||||
|  |   feed_client = feedname.substr(feedname.length - x, x); | ||||||
|  |   Blockly.Arduino.definitions_["mqtt_" + feed_client + ""] = | ||||||
|  |     "Adafruit_MQTT_Subscribe " + | ||||||
|  |     feed_client + | ||||||
|  |     "= Adafruit_MQTT_Subscribe(&mqtt," + | ||||||
|  |     feedname + | ||||||
|  |     ");"; | ||||||
|  |   Blockly.Arduino.codeFunctions_["mqtt_" + feed_client + "callbackFunction"] = | ||||||
|  |     `void ` + | ||||||
|  |     feed_client + | ||||||
|  |     `Callback (double x){
 | ||||||
|  |       Serial.println(x); | ||||||
|  |     }`;
 | ||||||
|  |   Blockly.Arduino.setupCode_["mqtt_" + feed_client + "_callback"] = | ||||||
|  |     "" + feed_client + ".setCallback(" + feed_client + "Callback);"; | ||||||
|  |   Blockly.Arduino.setupCode_["mqtt_" + feed_client + "_subscribe"] = | ||||||
|  |     "mqtt.subscribe(&" + feed_client + ");"; | ||||||
|  |   Blockly.Arduino.loopCodeOnce_["mqtt_processPackages"] = | ||||||
|  |     "mqtt.processPackets(10);"; | ||||||
|  |   var code = ""; | ||||||
|  |   return code; | ||||||
|  | }; | ||||||
|  | |||||||
| @ -3,8 +3,7 @@ import * as Blockly from "blockly/core"; | |||||||
| Blockly.Arduino.sensebox_phyphox_init = function () { | Blockly.Arduino.sensebox_phyphox_init = function () { | ||||||
|   var name = this.getFieldValue("devicename"); |   var name = this.getFieldValue("devicename"); | ||||||
|   Blockly.Arduino.libraries_["phyphox_library"] = `#include <phyphoxBle.h>`; |   Blockly.Arduino.libraries_["phyphox_library"] = `#include <phyphoxBle.h>`; | ||||||
|   Blockly.Arduino.libraries_["library_senseBoxMCU"] = |   Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include <senseBoxIO.h>"; | ||||||
|     '#include "SenseBoxMCU.h"'; |  | ||||||
|   Blockly.Arduino.phyphoxSetupCode_[ |   Blockly.Arduino.phyphoxSetupCode_[ | ||||||
|     "phyphox_start" |     "phyphox_start" | ||||||
|   ] = `PhyphoxBLE::start("${name}");`; |   ] = `PhyphoxBLE::start("${name}");`; | ||||||
|  | |||||||
| @ -1,45 +1,75 @@ | |||||||
| import * as Blockly from 'blockly/core'; | import * as Blockly from "blockly/core"; | ||||||
| 
 | 
 | ||||||
| /*Display Blocks*/ | /*Display Blocks*/ | ||||||
| Blockly.Arduino.sensebox_display_beginDisplay = function () { | Blockly.Arduino.sensebox_display_beginDisplay = function () { | ||||||
|     Blockly.Arduino.libraries_['library_spi'] = '#include <SPI.h>'; |   Blockly.Arduino.libraries_["library_spi"] = "#include <SPI.h>"; | ||||||
|     Blockly.Arduino.libraries_['library_wire'] = '#include <Wire.h>'; |   Blockly.Arduino.libraries_["library_wire"] = "#include <Wire.h>"; | ||||||
|     Blockly.Arduino.libraries_['library_AdafruitGFX'] = '#include <Adafruit_GFX.h>'; |   Blockly.Arduino.libraries_["library_AdafruitGFX"] = | ||||||
|     Blockly.Arduino.libraries_['library_AdafruitSSD1306'] = '#include <Adafruit_SSD1306.h>'; |     "#include <Adafruit_GFX.h>"; | ||||||
|     Blockly.Arduino.libraries_['library_senseBoxMCU'] = '#include "SenseBoxMCU.h"'; |   Blockly.Arduino.libraries_["library_AdafruitSSD1306"] = | ||||||
|     Blockly.Arduino.definitions_['define_display'] = '#define OLED_RESET 4\nAdafruit_SSD1306 display(OLED_RESET);'; |     "#include <Adafruit_SSD1306.h>"; | ||||||
|     Blockly.Arduino.setupCode_['sensebox_display_begin'] = 'senseBoxIO.powerI2C(true);\ndelay(2000);\ndisplay.begin(SSD1306_SWITCHCAPVCC, 0x3D);\ndisplay.display();\ndelay(100);\ndisplay.clearDisplay();'; |   Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include <senseBoxIO.h>"; | ||||||
|     var code = ''; |   Blockly.Arduino.definitions_["define_display"] = | ||||||
|  |     "#define OLED_RESET 4\nAdafruit_SSD1306 display(OLED_RESET);"; | ||||||
|  |   Blockly.Arduino.setupCode_["sensebox_display_begin"] = | ||||||
|  |     "senseBoxIO.powerI2C(true);\ndelay(2000);\ndisplay.begin(SSD1306_SWITCHCAPVCC, 0x3D);\ndisplay.display();\ndelay(100);\ndisplay.clearDisplay();"; | ||||||
|  |   var code = ""; | ||||||
|   return code; |   return code; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| Blockly.Arduino.sensebox_display_clearDisplay = function () { | Blockly.Arduino.sensebox_display_clearDisplay = function () { | ||||||
|     var code = 'display.clearDisplay();\n'; |   var code = "display.clearDisplay();\n"; | ||||||
|   return code; |   return code; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| Blockly.Arduino.sensebox_display_printDisplay = function () { | Blockly.Arduino.sensebox_display_printDisplay = function () { | ||||||
|     var x = this.getFieldValue('X'); |   var x = this.getFieldValue("X"); | ||||||
|     var y = this.getFieldValue('Y'); |   var y = this.getFieldValue("Y"); | ||||||
|     var printDisplay = Blockly.Arduino.valueToCode(this, 'printDisplay', Blockly.Arduino.ORDER_ATOMIC) || '"Keine Eingabe"'; |   var printDisplay = | ||||||
|     var size = this.getFieldValue('SIZE'); |     Blockly.Arduino.valueToCode( | ||||||
|     var color = this.getFieldValue('COLOR'); |       this, | ||||||
|     var code = 'display.setCursor(' + x + ',' + y + ');\n'; |       "printDisplay", | ||||||
|     code += 'display.setTextSize(' + size + ');\n'; |       Blockly.Arduino.ORDER_ATOMIC | ||||||
|     code += 'display.setTextColor(' + color + ');\n'; |     ) || '"Keine Eingabe"'; | ||||||
|     code += 'display.println(' + printDisplay + ');\n'; |   var size = this.getFieldValue("SIZE"); | ||||||
|  |   var color = this.getFieldValue("COLOR"); | ||||||
|  |   var code = "display.setCursor(" + x + "," + y + ");\n"; | ||||||
|  |   code += "display.setTextSize(" + size + ");\n"; | ||||||
|  |   code += "display.setTextColor(" + color + ");\n"; | ||||||
|  |   code += "display.println(" + printDisplay + ");\n"; | ||||||
|   return code; |   return code; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| Blockly.Arduino.sensebox_display_fastPrint = function () { | Blockly.Arduino.sensebox_display_fastPrint = function () { | ||||||
|     var title1 = Blockly.Arduino.valueToCode(this, 'Title1', Blockly.Arduino.ORDER_ATOMIC) || '0' |   var title1 = | ||||||
|     var value1 = Blockly.Arduino.valueToCode(this, 'Value1', Blockly.Arduino.ORDER_ATOMIC); |     Blockly.Arduino.valueToCode(this, "Title1", Blockly.Arduino.ORDER_ATOMIC) || | ||||||
|     var dimension1 = Blockly.Arduino.valueToCode(this, 'Dimension1', Blockly.Arduino.ORDER_ATOMIC) || '0' |     "0"; | ||||||
|     var title2 = Blockly.Arduino.valueToCode(this, 'Title2', Blockly.Arduino.ORDER_ATOMIC) || '0' |   var value1 = Blockly.Arduino.valueToCode( | ||||||
|     var value2 = Blockly.Arduino.valueToCode(this, 'Value2', Blockly.Arduino.ORDER_ATOMIC); |     this, | ||||||
|     var dimension2 = Blockly.Arduino.valueToCode(this, 'Dimension2', Blockly.Arduino.ORDER_ATOMIC) || '0' |     "Value1", | ||||||
|     Blockly.Arduino.codeFunctions_['sensebox_fastPrint'] = ` |     Blockly.Arduino.ORDER_ATOMIC | ||||||
|  |   ); | ||||||
|  |   var dimension1 = | ||||||
|  |     Blockly.Arduino.valueToCode( | ||||||
|  |       this, | ||||||
|  |       "Dimension1", | ||||||
|  |       Blockly.Arduino.ORDER_ATOMIC | ||||||
|  |     ) || "0"; | ||||||
|  |   var title2 = | ||||||
|  |     Blockly.Arduino.valueToCode(this, "Title2", Blockly.Arduino.ORDER_ATOMIC) || | ||||||
|  |     "0"; | ||||||
|  |   var value2 = Blockly.Arduino.valueToCode( | ||||||
|  |     this, | ||||||
|  |     "Value2", | ||||||
|  |     Blockly.Arduino.ORDER_ATOMIC | ||||||
|  |   ); | ||||||
|  |   var dimension2 = | ||||||
|  |     Blockly.Arduino.valueToCode( | ||||||
|  |       this, | ||||||
|  |       "Dimension2", | ||||||
|  |       Blockly.Arduino.ORDER_ATOMIC | ||||||
|  |     ) || "0"; | ||||||
|  |   Blockly.Arduino.codeFunctions_["sensebox_fastPrint"] = ` | ||||||
|     void printOnDisplay(String title1, String measurement1, String unit1, String title2, String measurement2, String unit2) { |     void printOnDisplay(String title1, String measurement1, String unit1, String title2, String measurement2, String unit2) { | ||||||
|       |       | ||||||
|       display.setCursor(0, 0); |       display.setCursor(0, 0); | ||||||
| @ -62,67 +92,141 @@ Blockly.Arduino.sensebox_display_fastPrint = function () { | |||||||
|       display.setTextSize(1); |       display.setTextSize(1); | ||||||
|       display.println(unit2); |       display.println(unit2); | ||||||
|     } |     } | ||||||
|     ` |     `;
 | ||||||
|   var code = ` printOnDisplay(${title1}, String(${value1}), ${dimension1}, ${title2}, String(${value2}), ${dimension2});\n`; |   var code = ` printOnDisplay(${title1}, String(${value1}), ${dimension1}, ${title2}, String(${value2}), ${dimension2});\n`; | ||||||
|   return code; |   return code; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| Blockly.Arduino.sensebox_display_show = function (block) { | Blockly.Arduino.sensebox_display_show = function (block) { | ||||||
|     var show = Blockly.Arduino.statementToCode(block, 'SHOW'); |   var show = Blockly.Arduino.statementToCode(block, "SHOW"); | ||||||
|     var code = ''; |   var code = ""; | ||||||
|   code += show; |   code += show; | ||||||
|     code += 'display.display();\n'; |   code += "display.display();\n"; | ||||||
|   return code; |   return code; | ||||||
| }; | }; | ||||||
| Blockly.Arduino.sensebox_display_plotDisplay = function () { | Blockly.Arduino.sensebox_display_plotDisplay = function () { | ||||||
|     var YLabel = Blockly.Arduino.valueToCode(this, 'YLabel', Blockly.Arduino.ORDER_ATOMIC) || 'Y' |   var YLabel = | ||||||
|     var XLabel = Blockly.Arduino.valueToCode(this, 'XLabel', Blockly.Arduino.ORDER_ATOMIC) || 'X' |     Blockly.Arduino.valueToCode(this, "YLabel", Blockly.Arduino.ORDER_ATOMIC) || | ||||||
|     var Title = Blockly.Arduino.valueToCode(this, 'Title', Blockly.Arduino.ORDER_ATOMIC) || 'Title' |     "Y"; | ||||||
|     var XRange1 = Blockly.Arduino.valueToCode(this, 'XRange1', Blockly.Arduino.ORDER_ATOMIC) || '0' |   var XLabel = | ||||||
|     var XRange2 = Blockly.Arduino.valueToCode(this, 'XRange2', Blockly.Arduino.ORDER_ATOMIC) || '0' |     Blockly.Arduino.valueToCode(this, "XLabel", Blockly.Arduino.ORDER_ATOMIC) || | ||||||
|     var YRange1 = Blockly.Arduino.valueToCode(this, 'YRange1', Blockly.Arduino.ORDER_ATOMIC) || '0' |     "X"; | ||||||
|     var YRange2 = Blockly.Arduino.valueToCode(this, 'YRange2', Blockly.Arduino.ORDER_ATOMIC) || '0' |   var Title = | ||||||
|     var XTick = Blockly.Arduino.valueToCode(this, 'XTick', Blockly.Arduino.ORDER_ATOMIC) || '0' |     Blockly.Arduino.valueToCode(this, "Title", Blockly.Arduino.ORDER_ATOMIC) || | ||||||
|     var YTick = Blockly.Arduino.valueToCode(this, 'YTick', Blockly.Arduino.ORDER_ATOMIC) || '0' |     "Title"; | ||||||
|     var TimeFrame = Blockly.Arduino.valueToCode(this, 'TimeFrame', Blockly.Arduino.ORDER_ATOMIC) || '0' |   var XRange1 = | ||||||
|     var plotDisplay = Blockly.Arduino.valueToCode(this, 'plotDisplay', Blockly.Arduino.ORDER_ATOMIC) || '"Keine Eingabe"'; |     Blockly.Arduino.valueToCode( | ||||||
|     Blockly.Arduino.libraries_['library_plot'] = '#include <Plot.h>'; |       this, | ||||||
|     Blockly.Arduino.definitions_['define_plot_class'] = 'Plot DataPlot(&display);\n'; |       "XRange1", | ||||||
|     Blockly.Arduino.variables_['define_plot_class'] = 'const double TIMEFRAME = ' + TimeFrame + ';\n'; |       Blockly.Arduino.ORDER_ATOMIC | ||||||
|     Blockly.Arduino.setupCode_['sensebox_plot_setup'] = 'DataPlot.setTitle(' + Title + ');\nDataPlot.setXLabel(' + XLabel + ');\nDataPlot.setYLabel(' + YLabel + ');\nDataPlot.setXRange(' + XRange1 + ',' + XRange2 + ');\nDataPlot.setYRange(' + YRange1 + ',' + YRange2 + ');\nDataPlot.setXTick(' + XTick + ');\nDataPlot.setYTick(' + YTick + ');\nDataPlot.setXPrecision(0);\nDataPlot.setYPrecision(0);\n'; |     ) || "0"; | ||||||
|     var code = 'DataPlot.clear();' |   var XRange2 = | ||||||
|     code += 'double starttime = millis();\ndouble t = 0;\nwhile (t <= TIMEFRAME) {\nt = (millis() - starttime) / 1000.0;\nfloat value = ' + plotDisplay + ';\n'; |     Blockly.Arduino.valueToCode( | ||||||
|     code += 'DataPlot.addDataPoint(t,value);\n}\n'; |       this, | ||||||
|  |       "XRange2", | ||||||
|  |       Blockly.Arduino.ORDER_ATOMIC | ||||||
|  |     ) || "0"; | ||||||
|  |   var YRange1 = | ||||||
|  |     Blockly.Arduino.valueToCode( | ||||||
|  |       this, | ||||||
|  |       "YRange1", | ||||||
|  |       Blockly.Arduino.ORDER_ATOMIC | ||||||
|  |     ) || "0"; | ||||||
|  |   var YRange2 = | ||||||
|  |     Blockly.Arduino.valueToCode( | ||||||
|  |       this, | ||||||
|  |       "YRange2", | ||||||
|  |       Blockly.Arduino.ORDER_ATOMIC | ||||||
|  |     ) || "0"; | ||||||
|  |   var XTick = | ||||||
|  |     Blockly.Arduino.valueToCode(this, "XTick", Blockly.Arduino.ORDER_ATOMIC) || | ||||||
|  |     "0"; | ||||||
|  |   var YTick = | ||||||
|  |     Blockly.Arduino.valueToCode(this, "YTick", Blockly.Arduino.ORDER_ATOMIC) || | ||||||
|  |     "0"; | ||||||
|  |   var TimeFrame = | ||||||
|  |     Blockly.Arduino.valueToCode( | ||||||
|  |       this, | ||||||
|  |       "TimeFrame", | ||||||
|  |       Blockly.Arduino.ORDER_ATOMIC | ||||||
|  |     ) || "0"; | ||||||
|  |   var plotDisplay = | ||||||
|  |     Blockly.Arduino.valueToCode( | ||||||
|  |       this, | ||||||
|  |       "plotDisplay", | ||||||
|  |       Blockly.Arduino.ORDER_ATOMIC | ||||||
|  |     ) || '"Keine Eingabe"'; | ||||||
|  |   Blockly.Arduino.libraries_["library_plot"] = "#include <Plot.h>"; | ||||||
|  |   Blockly.Arduino.definitions_["define_plot_class"] = | ||||||
|  |     "Plot DataPlot(&display);\n"; | ||||||
|  |   Blockly.Arduino.variables_["define_plot_class"] = | ||||||
|  |     "const double TIMEFRAME = " + TimeFrame + ";\n"; | ||||||
|  |   Blockly.Arduino.setupCode_["sensebox_plot_setup"] = | ||||||
|  |     "DataPlot.setTitle(" + | ||||||
|  |     Title + | ||||||
|  |     ");\nDataPlot.setXLabel(" + | ||||||
|  |     XLabel + | ||||||
|  |     ");\nDataPlot.setYLabel(" + | ||||||
|  |     YLabel + | ||||||
|  |     ");\nDataPlot.setXRange(" + | ||||||
|  |     XRange1 + | ||||||
|  |     "," + | ||||||
|  |     XRange2 + | ||||||
|  |     ");\nDataPlot.setYRange(" + | ||||||
|  |     YRange1 + | ||||||
|  |     "," + | ||||||
|  |     YRange2 + | ||||||
|  |     ");\nDataPlot.setXTick(" + | ||||||
|  |     XTick + | ||||||
|  |     ");\nDataPlot.setYTick(" + | ||||||
|  |     YTick + | ||||||
|  |     ");\nDataPlot.setXPrecision(0);\nDataPlot.setYPrecision(0);\n"; | ||||||
|  |   var code = "DataPlot.clear();"; | ||||||
|  |   code += | ||||||
|  |     "double starttime = millis();\ndouble t = 0;\nwhile (t <= TIMEFRAME) {\nt = (millis() - starttime) / 1000.0;\nfloat value = " + | ||||||
|  |     plotDisplay + | ||||||
|  |     ";\n"; | ||||||
|  |   code += "DataPlot.addDataPoint(t,value);\n}\n"; | ||||||
|   return code; |   return code; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| Blockly.Arduino.sensebox_display_fillCircle = function () { | Blockly.Arduino.sensebox_display_fillCircle = function () { | ||||||
|     let code = ''; |   let code = ""; | ||||||
|     var x = Blockly.Arduino.valueToCode(this, 'X', Blockly.Arduino.ORDER_ATOMIC) || '0' |   var x = | ||||||
|     var y = Blockly.Arduino.valueToCode(this, 'Y', Blockly.Arduino.ORDER_ATOMIC) || '0' |     Blockly.Arduino.valueToCode(this, "X", Blockly.Arduino.ORDER_ATOMIC) || "0"; | ||||||
|     var radius = Blockly.Arduino.valueToCode(this, 'Radius', Blockly.Arduino.ORDER_ATOMIC) || '0' |   var y = | ||||||
|     var fill = this.getFieldValue('FILL'); |     Blockly.Arduino.valueToCode(this, "Y", Blockly.Arduino.ORDER_ATOMIC) || "0"; | ||||||
|     if (fill === 'TRUE') { |   var radius = | ||||||
|         code = 'display.fillCircle(' + x + ',' + y + ',' + radius + ',1);\n'; |     Blockly.Arduino.valueToCode(this, "Radius", Blockly.Arduino.ORDER_ATOMIC) || | ||||||
|     } |     "0"; | ||||||
|     else { |   var fill = this.getFieldValue("FILL"); | ||||||
|         code = 'display.drawCircle(' + x + ',' + y + ',' + radius + ',1);\n'; |   if (fill === "TRUE") { | ||||||
|  |     code = "display.fillCircle(" + x + "," + y + "," + radius + ",1);\n"; | ||||||
|  |   } else { | ||||||
|  |     code = "display.drawCircle(" + x + "," + y + "," + radius + ",1);\n"; | ||||||
|   } |   } | ||||||
|   return code; |   return code; | ||||||
| } | }; | ||||||
| 
 | 
 | ||||||
| Blockly.Arduino.sensebox_display_drawRectangle = function () { | Blockly.Arduino.sensebox_display_drawRectangle = function () { | ||||||
|     let code = ''; |   let code = ""; | ||||||
|     var x = Blockly.Arduino.valueToCode(this, 'X', Blockly.Arduino.ORDER_ATOMIC) || '0' |   var x = | ||||||
|     var y = Blockly.Arduino.valueToCode(this, 'Y', Blockly.Arduino.ORDER_ATOMIC) || '0' |     Blockly.Arduino.valueToCode(this, "X", Blockly.Arduino.ORDER_ATOMIC) || "0"; | ||||||
|     var width = Blockly.Arduino.valueToCode(this, 'width', Blockly.Arduino.ORDER_ATOMIC) || '0' |   var y = | ||||||
|     var height = Blockly.Arduino.valueToCode(this, 'height', Blockly.Arduino.ORDER_ATOMIC) || '0' |     Blockly.Arduino.valueToCode(this, "Y", Blockly.Arduino.ORDER_ATOMIC) || "0"; | ||||||
|     var fill = this.getFieldValue('FILL'); |   var width = | ||||||
|     if (fill === 'TRUE') { |     Blockly.Arduino.valueToCode(this, "width", Blockly.Arduino.ORDER_ATOMIC) || | ||||||
|         code = 'display.fillRect(' + x + ',' + y + ',' + width + ',' + height + ',1);\n'; |     "0"; | ||||||
|     } |   var height = | ||||||
|     else { |     Blockly.Arduino.valueToCode(this, "height", Blockly.Arduino.ORDER_ATOMIC) || | ||||||
|         code = 'display.drawRect(' + x + ',' + y + ',' + width + ',' + height + ',1);\n'; |     "0"; | ||||||
|  |   var fill = this.getFieldValue("FILL"); | ||||||
|  |   if (fill === "TRUE") { | ||||||
|  |     code = | ||||||
|  |       "display.fillRect(" + x + "," + y + "," + width + "," + height + ",1);\n"; | ||||||
|  |   } else { | ||||||
|  |     code = | ||||||
|  |       "display.drawRect(" + x + "," + y + "," + width + "," + height + ",1);\n"; | ||||||
|   } |   } | ||||||
|   return code; |   return code; | ||||||
| } | }; | ||||||
|  | |||||||
| @ -5,8 +5,7 @@ Blockly.Arduino.sensebox_lora_initialize_otaa = function (block) { | |||||||
|   var appID = this.getFieldValue("APPID"); |   var appID = this.getFieldValue("APPID"); | ||||||
|   var appKey = this.getFieldValue("APPKEY"); |   var appKey = this.getFieldValue("APPKEY"); | ||||||
|   var interval = this.getFieldValue("INTERVAL"); |   var interval = this.getFieldValue("INTERVAL"); | ||||||
|   Blockly.Arduino.libraries_["library_senseBoxMCU"] = |   Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include <senseBoxIO.h>"; | ||||||
|     '#include "SenseBoxMCU.h"'; |  | ||||||
|   Blockly.Arduino.libraries_["library_spi"] = "#include <SPI.h>"; |   Blockly.Arduino.libraries_["library_spi"] = "#include <SPI.h>"; | ||||||
|   Blockly.Arduino.libraries_["library_lmic"] = "#include <lmic.h>"; |   Blockly.Arduino.libraries_["library_lmic"] = "#include <lmic.h>"; | ||||||
|   Blockly.Arduino.libraries_["library_hal"] = "#include <hal/hal.h>"; |   Blockly.Arduino.libraries_["library_hal"] = "#include <hal/hal.h>"; | ||||||
| @ -278,8 +277,7 @@ Blockly.Arduino.sensebox_lora_initialize_abp = function (block) { | |||||||
|   var appskey = this.getFieldValue("APPSKEY"); |   var appskey = this.getFieldValue("APPSKEY"); | ||||||
|   var devaddr = this.getFieldValue("DEVADDR"); |   var devaddr = this.getFieldValue("DEVADDR"); | ||||||
|   var interval = this.getFieldValue("INTERVAL"); |   var interval = this.getFieldValue("INTERVAL"); | ||||||
|   Blockly.Arduino.libraries_["library_senseBoxMCU"] = |   Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include <senseBoxIO.h>"; | ||||||
|     '#include "SenseBoxMCU.h"'; |  | ||||||
|   Blockly.Arduino.libraries_["library_spi"] = "#include <SPI.h>"; |   Blockly.Arduino.libraries_["library_spi"] = "#include <SPI.h>"; | ||||||
|   Blockly.Arduino.libraries_["library_lmic"] = "#include <lmic.h>"; |   Blockly.Arduino.libraries_["library_lmic"] = "#include <lmic.h>"; | ||||||
|   Blockly.Arduino.libraries_["library_hal"] = "#include <hal/hal.h>"; |   Blockly.Arduino.libraries_["library_hal"] = "#include <hal/hal.h>"; | ||||||
|  | |||||||
| @ -34,8 +34,7 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) { | |||||||
|     } |     } | ||||||
|   } |   } | ||||||
|   var num_sensors = count; |   var num_sensors = count; | ||||||
|   Blockly.Arduino.libraries_["library_senseBoxMCU"] = |   Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include <senseBoxIO.h>"; | ||||||
|     '#include "SenseBoxMCU.h"'; |  | ||||||
|   Blockly.Arduino.setupCode_["initBearSSL"] = |   Blockly.Arduino.setupCode_["initBearSSL"] = | ||||||
|     "ArduinoBearSSL.onGetTime(getTime);"; |     "ArduinoBearSSL.onGetTime(getTime);"; | ||||||
|   Blockly.Arduino.definitions_["num_sensors"] = |   Blockly.Arduino.definitions_["num_sensors"] = | ||||||
|  | |||||||
| @ -3,8 +3,7 @@ import Blockly from "blockly"; | |||||||
| Blockly.Arduino.sensebox_rtc_init = function () { | Blockly.Arduino.sensebox_rtc_init = function () { | ||||||
|   Blockly.Arduino.libraries_["RV8523"] = `#include <RV8523.h>`; |   Blockly.Arduino.libraries_["RV8523"] = `#include <RV8523.h>`; | ||||||
|   Blockly.Arduino.definitions_["RTC"] = `RV8523 rtc;`; |   Blockly.Arduino.definitions_["RTC"] = `RV8523 rtc;`; | ||||||
|   Blockly.Arduino.libraries_["library_senseBoxMCU"] = |   Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include <senseBoxIO.h>"; | ||||||
|     '#include "SenseBoxMCU.h"'; |  | ||||||
|   Blockly.Arduino.setupCode_["rtc.begin"] = `rtc.begin();`; |   Blockly.Arduino.setupCode_["rtc.begin"] = `rtc.begin();`; | ||||||
|   var code = ``; |   var code = ``; | ||||||
|   return code; |   return code; | ||||||
|  | |||||||
| @ -9,6 +9,7 @@ Blockly.Arduino.sensebox_sensor_temp_hum = function () { | |||||||
|   var dropdown_name = this.getFieldValue("NAME"); |   var dropdown_name = this.getFieldValue("NAME"); | ||||||
|   Blockly.Arduino.libraries_["library_senseBoxMCU"] = |   Blockly.Arduino.libraries_["library_senseBoxMCU"] = | ||||||
|     '#include "SenseBoxMCU.h"'; |     '#include "SenseBoxMCU.h"'; | ||||||
|  |   Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include <senseBoxIO.h>"; | ||||||
|   Blockly.Arduino.definitions_["define_hdc"] = "HDC1080 hdc;"; |   Blockly.Arduino.definitions_["define_hdc"] = "HDC1080 hdc;"; | ||||||
|   Blockly.Arduino.setupCode_["sensebox_sensor_temp_hum"] = "hdc.begin();"; |   Blockly.Arduino.setupCode_["sensebox_sensor_temp_hum"] = "hdc.begin();"; | ||||||
|   var code = "hdc.get" + dropdown_name + "()"; |   var code = "hdc.get" + dropdown_name + "()"; | ||||||
|  | |||||||
| @ -1,29 +1,40 @@ | |||||||
| import * as Blockly from 'blockly/core'; | import * as Blockly from "blockly/core"; | ||||||
| 
 |  | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Telegram Bot by re:edu |  * Telegram Bot by re:edu | ||||||
|  */ |  */ | ||||||
| Blockly.Arduino.sensebox_telegram = function (Block) { | Blockly.Arduino.sensebox_telegram = function (Block) { | ||||||
|   let token = Block.getFieldValue('telegram_token'); |   let token = Block.getFieldValue("telegram_token"); | ||||||
|   Blockly['Arduino'].libraries_['library_senseBoxMCU'] = '#include "SenseBoxMCU.h"'; |   Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include <senseBoxIO.h>"; | ||||||
|   Blockly['Arduino'].libraries_['library_telegram'] = `#include <UniversalTelegramBot.h>` |   Blockly["Arduino"].libraries_[ | ||||||
|   Blockly['Arduino'].functionNames_['WiFiSSLClient'] = 'WiFiSSLClient client;'; |     "library_telegram" | ||||||
|   Blockly['Arduino'].functionNames_['telegram_objects'] = `#define BOTtoken "${token}"  // your Bot Token (Get from Botfather)
 |   ] = `#include <UniversalTelegramBot.h>`; | ||||||
|  |   Blockly["Arduino"].functionNames_["WiFiSSLClient"] = "WiFiSSLClient client;"; | ||||||
|  |   Blockly["Arduino"].functionNames_[ | ||||||
|  |     "telegram_objects" | ||||||
|  |   ] = `#define BOTtoken "${token}"  // your Bot Token (Get from Botfather)
 | ||||||
|        |        | ||||||
|     UniversalTelegramBot bot(BOTtoken, client);` |     UniversalTelegramBot bot(BOTtoken, client);`;
 | ||||||
| 
 | 
 | ||||||
|   let code = ''; |   let code = ""; | ||||||
|   return code; |   return code; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| Blockly.Arduino.sensebox_telegram_do = function (block) { | Blockly.Arduino.sensebox_telegram_do = function (block) { | ||||||
|   var messageProcessing = Blockly.Arduino.statementToCode(block, 'telegram_do', Blockly.Arduino.ORDER_ATOMIC); |   var messageProcessing = Blockly.Arduino.statementToCode( | ||||||
|  |     block, | ||||||
|  |     "telegram_do", | ||||||
|  |     Blockly.Arduino.ORDER_ATOMIC | ||||||
|  |   ); | ||||||
| 
 | 
 | ||||||
|   Blockly.Arduino.definitions_['telegram_variables'] = `int Bot_mtbs = 1000; //mean time between scan messages
 |   Blockly.Arduino.definitions_[ | ||||||
|   long Bot_lasttime;   //last time messages' scan has been done`
 |     "telegram_variables" | ||||||
|  |   ] = `int Bot_mtbs = 1000; //mean time between scan messages
 | ||||||
|  |   long Bot_lasttime;   //last time messages' scan has been done`;
 | ||||||
| 
 | 
 | ||||||
|   Blockly.Arduino.loopCodeOnce_['sensebox_telegram_loop'] = `if (millis() > Bot_lasttime + Bot_mtbs)  {
 |   Blockly.Arduino.loopCodeOnce_[ | ||||||
|  |     "sensebox_telegram_loop" | ||||||
|  |   ] = `if (millis() > Bot_lasttime + Bot_mtbs)  {
 | ||||||
|       int numNewMessages = bot.getUpdates(bot.last_message_received + 1); |       int numNewMessages = bot.getUpdates(bot.last_message_received + 1); | ||||||
|       while(numNewMessages) { |       while(numNewMessages) { | ||||||
|         for(int i=0; i<numNewMessages; i++) { |         for(int i=0; i<numNewMessages; i++) { | ||||||
| @ -36,13 +47,17 @@ Blockly.Arduino.sensebox_telegram_do = function (block) { | |||||||
|       } |       } | ||||||
|       Bot_lasttime = millis(); |       Bot_lasttime = millis(); | ||||||
|     }`;
 |     }`;
 | ||||||
|   var code = ''; |   var code = ""; | ||||||
|   return code; |   return code; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| Blockly.Arduino.sensebox_telegram_do_on_message = function (block) { | Blockly.Arduino.sensebox_telegram_do_on_message = function (block) { | ||||||
|   var message = this.getFieldValue('telegram_message'); |   var message = this.getFieldValue("telegram_message"); | ||||||
|   var stuffToDo = Blockly.Arduino.statementToCode(block, 'telegram_do_on_message', Blockly.Arduino.ORDER_ATOMIC); |   var stuffToDo = Blockly.Arduino.statementToCode( | ||||||
|  |     block, | ||||||
|  |     "telegram_do_on_message", | ||||||
|  |     Blockly.Arduino.ORDER_ATOMIC | ||||||
|  |   ); | ||||||
|   var code = ` |   var code = ` | ||||||
|         if (text == "${message}") { |         if (text == "${message}") { | ||||||
|           ${stuffToDo} |           ${stuffToDo} | ||||||
| @ -51,7 +66,12 @@ Blockly.Arduino.sensebox_telegram_do_on_message = function (block) { | |||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| Blockly.Arduino.sensebox_telegram_send = function (block) { | Blockly.Arduino.sensebox_telegram_send = function (block) { | ||||||
|   var textToSend = Blockly.Arduino.valueToCode(this, 'telegram_text_to_send', Blockly.Arduino.ORDER_ATOMIC) || '"Keine Eingabe"'; |   var textToSend = | ||||||
|  |     Blockly.Arduino.valueToCode( | ||||||
|  |       this, | ||||||
|  |       "telegram_text_to_send", | ||||||
|  |       Blockly.Arduino.ORDER_ATOMIC | ||||||
|  |     ) || '"Keine Eingabe"'; | ||||||
|   var code = `bot.sendMessage(chat_id, String(${textToSend}), "");\n`; |   var code = `bot.sendMessage(chat_id, String(${textToSend}), "");\n`; | ||||||
|   return code; |   return code; | ||||||
| }; | }; | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user