replace more senseBox MCU includes
This commit is contained in:
		
							parent
							
								
									8acc89b99e
								
							
						
					
					
						commit
						d21847454a
					
				| @ -1,4 +1,4 @@ | ||||
| import * as Blockly from 'blockly/core'; | ||||
| import * as Blockly from "blockly/core"; | ||||
| /** | ||||
|  * MQTT Blocks | ||||
|  */ | ||||
| @ -6,47 +6,72 @@ import * as Blockly from 'blockly/core'; | ||||
| let service; | ||||
| 
 | ||||
| Blockly.Arduino.sensebox_mqtt_setup = function () { | ||||
|     var server = this.getFieldValue('server'); | ||||
|     var port = this.getFieldValue('port'); | ||||
|     var username = this.getFieldValue('username'); | ||||
|     var pass = this.getFieldValue('password'); | ||||
|     service = this.getFieldValue('service'); | ||||
|     Blockly.Arduino.libraries_['library_senseBoxMCU'] = '#include "SenseBoxMCU.h"'; | ||||
|     Blockly.Arduino.libraries_['library_adafruitmqtt'] = '#include "Adafruit_MQTT.h"'; | ||||
|     Blockly.Arduino.libraries_['library_adafruitmqttclient'] = '#include "Adafruit_MQTT_Client.h"'; | ||||
|     Blockly.Arduino.definitions_['mqtt_server'] = '#define SERVER      "' + server + '"'; | ||||
|     Blockly.Arduino.definitions_['mqtt_port'] = '#define SERVERPORT      ' + port + ''; | ||||
|     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 = ''; | ||||
|   var server = this.getFieldValue("server"); | ||||
|   var port = this.getFieldValue("port"); | ||||
|   var username = this.getFieldValue("username"); | ||||
|   var pass = this.getFieldValue("password"); | ||||
|   service = this.getFieldValue("service"); | ||||
|   Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include <senseBoxIO.h>"; | ||||
|   Blockly.Arduino.libraries_["library_adafruitmqtt"] = | ||||
|     '#include "Adafruit_MQTT.h"'; | ||||
|   Blockly.Arduino.libraries_["library_adafruitmqttclient"] = | ||||
|     '#include "Adafruit_MQTT_Client.h"'; | ||||
|   Blockly.Arduino.definitions_["mqtt_server"] = | ||||
|     '#define SERVER      "' + server + '"'; | ||||
|   Blockly.Arduino.definitions_["mqtt_port"] = | ||||
|     "#define SERVERPORT      " + port + ""; | ||||
|   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; | ||||
| }; | ||||
| 
 | ||||
| Blockly.Arduino.sensebox_mqtt_publish = function (block) { | ||||
|     var feedname = this.getFieldValue('publishfeed'); | ||||
|   var feedname = this.getFieldValue("publishfeed"); | ||||
|   var res = feedname.split("/"); | ||||
|   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) { | ||||
|         case 'adafruitio': | ||||
|             Blockly.Arduino.definitions_['mqtt_' + feed_client + ''] = 'Adafruit_MQTT_Publish ' + feed_client + ' = Adafruit_MQTT_Publish(&mqtt, USERNAME "/feeds/' + feedname + '");' | ||||
|     case "adafruitio": | ||||
|       Blockly.Arduino.definitions_["mqtt_" + feed_client + ""] = | ||||
|         "Adafruit_MQTT_Publish " + | ||||
|         feed_client + | ||||
|         ' = Adafruit_MQTT_Publish(&mqtt, USERNAME "/feeds/' + | ||||
|         feedname + | ||||
|         '");'; | ||||
|       break; | ||||
|         case 'dioty': | ||||
|             Blockly.Arduino.definitions_['mqtt_' + feed_client + ''] = 'Adafruit_MQTT_Publish ' + feed_client + ' = Adafruit_MQTT_Publish(&mqtt, "/"USERNAME"/' + feedname + '");' | ||||
|     case "dioty": | ||||
|       Blockly.Arduino.definitions_["mqtt_" + feed_client + ""] = | ||||
|         "Adafruit_MQTT_Publish " + | ||||
|         feed_client + | ||||
|         ' = Adafruit_MQTT_Publish(&mqtt, "/"USERNAME"/' + | ||||
|         feedname + | ||||
|         '");'; | ||||
|       break; | ||||
|         case 'custom': | ||||
|             Blockly.Arduino.definitions_['mqtt_' + feed_client + ''] = 'Adafruit_MQTT_Publish ' + feed_client + ' = Adafruit_MQTT_Publish(&mqtt, "' + feedname + '");' | ||||
|     case "custom": | ||||
|       Blockly.Arduino.definitions_["mqtt_" + feed_client + ""] = | ||||
|         "Adafruit_MQTT_Publish " + | ||||
|         feed_client + | ||||
|         ' = Adafruit_MQTT_Publish(&mqtt, "' + | ||||
|         feedname + | ||||
|         '");'; | ||||
|       break; | ||||
|     default: | ||||
|       break; | ||||
| 
 | ||||
|   } | ||||
| 
 | ||||
|   //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.
 | ||||
| void MQTT_connect() { | ||||
|       int8_t ret; | ||||
| @ -59,23 +84,34 @@ void MQTT_connect() { | ||||
|            delay(5000);  // wait 5 seconds
 | ||||
|       } | ||||
| }`;
 | ||||
|     Blockly.Arduino.loopCodeOnce_['mqtt_connect'] = 'MQTT_connect();'; | ||||
|     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 = ''; | ||||
|   Blockly.Arduino.loopCodeOnce_["mqtt_connect"] = "MQTT_connect();"; | ||||
|   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; | ||||
| }; | ||||
|  | ||||
| @ -3,8 +3,7 @@ import * as Blockly from "blockly/core"; | ||||
| Blockly.Arduino.sensebox_phyphox_init = function () { | ||||
|   var name = this.getFieldValue("devicename"); | ||||
|   Blockly.Arduino.libraries_["phyphox_library"] = `#include <phyphoxBle.h>`; | ||||
|   Blockly.Arduino.libraries_["library_senseBoxMCU"] = | ||||
|     '#include "SenseBoxMCU.h"'; | ||||
|   Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include <senseBoxIO.h>"; | ||||
|   Blockly.Arduino.phyphoxSetupCode_[ | ||||
|     "phyphox_start" | ||||
|   ] = `PhyphoxBLE::start("${name}");`; | ||||
|  | ||||
| @ -1,45 +1,75 @@ | ||||
| import * as Blockly from 'blockly/core'; | ||||
| import * as Blockly from "blockly/core"; | ||||
| 
 | ||||
| /*Display Blocks*/ | ||||
| Blockly.Arduino.sensebox_display_beginDisplay = function () { | ||||
|     Blockly.Arduino.libraries_['library_spi'] = '#include <SPI.h>'; | ||||
|     Blockly.Arduino.libraries_['library_wire'] = '#include <Wire.h>'; | ||||
|     Blockly.Arduino.libraries_['library_AdafruitGFX'] = '#include <Adafruit_GFX.h>'; | ||||
|     Blockly.Arduino.libraries_['library_AdafruitSSD1306'] = '#include <Adafruit_SSD1306.h>'; | ||||
|     Blockly.Arduino.libraries_['library_senseBoxMCU'] = '#include "SenseBoxMCU.h"'; | ||||
|     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 = ''; | ||||
|   Blockly.Arduino.libraries_["library_spi"] = "#include <SPI.h>"; | ||||
|   Blockly.Arduino.libraries_["library_wire"] = "#include <Wire.h>"; | ||||
|   Blockly.Arduino.libraries_["library_AdafruitGFX"] = | ||||
|     "#include <Adafruit_GFX.h>"; | ||||
|   Blockly.Arduino.libraries_["library_AdafruitSSD1306"] = | ||||
|     "#include <Adafruit_SSD1306.h>"; | ||||
|   Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include <senseBoxIO.h>"; | ||||
|   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; | ||||
| }; | ||||
| 
 | ||||
| Blockly.Arduino.sensebox_display_clearDisplay = function () { | ||||
|     var code = 'display.clearDisplay();\n'; | ||||
|   var code = "display.clearDisplay();\n"; | ||||
|   return code; | ||||
| }; | ||||
| 
 | ||||
| Blockly.Arduino.sensebox_display_printDisplay = function () { | ||||
|     var x = this.getFieldValue('X'); | ||||
|     var y = this.getFieldValue('Y'); | ||||
|     var printDisplay = Blockly.Arduino.valueToCode(this, 'printDisplay', Blockly.Arduino.ORDER_ATOMIC) || '"Keine Eingabe"'; | ||||
|     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'; | ||||
|   var x = this.getFieldValue("X"); | ||||
|   var y = this.getFieldValue("Y"); | ||||
|   var printDisplay = | ||||
|     Blockly.Arduino.valueToCode( | ||||
|       this, | ||||
|       "printDisplay", | ||||
|       Blockly.Arduino.ORDER_ATOMIC | ||||
|     ) || '"Keine Eingabe"'; | ||||
|   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; | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| Blockly.Arduino.sensebox_display_fastPrint = function () { | ||||
|     var title1 = Blockly.Arduino.valueToCode(this, 'Title1', Blockly.Arduino.ORDER_ATOMIC) || '0' | ||||
|     var value1 = Blockly.Arduino.valueToCode(this, 'Value1', 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'] = ` | ||||
|   var title1 = | ||||
|     Blockly.Arduino.valueToCode(this, "Title1", Blockly.Arduino.ORDER_ATOMIC) || | ||||
|     "0"; | ||||
|   var value1 = Blockly.Arduino.valueToCode( | ||||
|     this, | ||||
|     "Value1", | ||||
|     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) { | ||||
|       | ||||
|       display.setCursor(0, 0); | ||||
| @ -62,67 +92,141 @@ Blockly.Arduino.sensebox_display_fastPrint = function () { | ||||
|       display.setTextSize(1); | ||||
|       display.println(unit2); | ||||
|     } | ||||
|     ` | ||||
|     `;
 | ||||
|   var code = ` printOnDisplay(${title1}, String(${value1}), ${dimension1}, ${title2}, String(${value2}), ${dimension2});\n`; | ||||
|   return code; | ||||
| }; | ||||
| 
 | ||||
| Blockly.Arduino.sensebox_display_show = function (block) { | ||||
|     var show = Blockly.Arduino.statementToCode(block, 'SHOW'); | ||||
|     var code = ''; | ||||
|   var show = Blockly.Arduino.statementToCode(block, "SHOW"); | ||||
|   var code = ""; | ||||
|   code += show; | ||||
|     code += 'display.display();\n'; | ||||
|   code += "display.display();\n"; | ||||
|   return code; | ||||
| }; | ||||
| Blockly.Arduino.sensebox_display_plotDisplay = function () { | ||||
|     var YLabel = Blockly.Arduino.valueToCode(this, 'YLabel', Blockly.Arduino.ORDER_ATOMIC) || 'Y' | ||||
|     var XLabel = Blockly.Arduino.valueToCode(this, 'XLabel', Blockly.Arduino.ORDER_ATOMIC) || 'X' | ||||
|     var Title = Blockly.Arduino.valueToCode(this, 'Title', Blockly.Arduino.ORDER_ATOMIC) || 'Title' | ||||
|     var XRange1 = Blockly.Arduino.valueToCode(this, 'XRange1', Blockly.Arduino.ORDER_ATOMIC) || '0' | ||||
|     var XRange2 = Blockly.Arduino.valueToCode(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'; | ||||
|   var YLabel = | ||||
|     Blockly.Arduino.valueToCode(this, "YLabel", Blockly.Arduino.ORDER_ATOMIC) || | ||||
|     "Y"; | ||||
|   var XLabel = | ||||
|     Blockly.Arduino.valueToCode(this, "XLabel", Blockly.Arduino.ORDER_ATOMIC) || | ||||
|     "X"; | ||||
|   var Title = | ||||
|     Blockly.Arduino.valueToCode(this, "Title", Blockly.Arduino.ORDER_ATOMIC) || | ||||
|     "Title"; | ||||
|   var XRange1 = | ||||
|     Blockly.Arduino.valueToCode( | ||||
|       this, | ||||
|       "XRange1", | ||||
|       Blockly.Arduino.ORDER_ATOMIC | ||||
|     ) || "0"; | ||||
|   var XRange2 = | ||||
|     Blockly.Arduino.valueToCode( | ||||
|       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; | ||||
| }; | ||||
| 
 | ||||
| Blockly.Arduino.sensebox_display_fillCircle = function () { | ||||
|     let code = ''; | ||||
|     var x = Blockly.Arduino.valueToCode(this, 'X', Blockly.Arduino.ORDER_ATOMIC) || '0' | ||||
|     var y = Blockly.Arduino.valueToCode(this, 'Y', Blockly.Arduino.ORDER_ATOMIC) || '0' | ||||
|     var radius = Blockly.Arduino.valueToCode(this, 'Radius', Blockly.Arduino.ORDER_ATOMIC) || '0' | ||||
|     var fill = this.getFieldValue('FILL'); | ||||
|     if (fill === 'TRUE') { | ||||
|         code = 'display.fillCircle(' + x + ',' + y + ',' + radius + ',1);\n'; | ||||
|     } | ||||
|     else { | ||||
|         code = 'display.drawCircle(' + x + ',' + y + ',' + radius + ',1);\n'; | ||||
|   let code = ""; | ||||
|   var x = | ||||
|     Blockly.Arduino.valueToCode(this, "X", Blockly.Arduino.ORDER_ATOMIC) || "0"; | ||||
|   var y = | ||||
|     Blockly.Arduino.valueToCode(this, "Y", Blockly.Arduino.ORDER_ATOMIC) || "0"; | ||||
|   var radius = | ||||
|     Blockly.Arduino.valueToCode(this, "Radius", Blockly.Arduino.ORDER_ATOMIC) || | ||||
|     "0"; | ||||
|   var fill = this.getFieldValue("FILL"); | ||||
|   if (fill === "TRUE") { | ||||
|     code = "display.fillCircle(" + x + "," + y + "," + radius + ",1);\n"; | ||||
|   } else { | ||||
|     code = "display.drawCircle(" + x + "," + y + "," + radius + ",1);\n"; | ||||
|   } | ||||
|   return code; | ||||
| } | ||||
| }; | ||||
| 
 | ||||
| Blockly.Arduino.sensebox_display_drawRectangle = function () { | ||||
|     let code = ''; | ||||
|     var x = Blockly.Arduino.valueToCode(this, 'X', Blockly.Arduino.ORDER_ATOMIC) || '0' | ||||
|     var y = Blockly.Arduino.valueToCode(this, 'Y', Blockly.Arduino.ORDER_ATOMIC) || '0' | ||||
|     var width = Blockly.Arduino.valueToCode(this, 'width', Blockly.Arduino.ORDER_ATOMIC) || '0' | ||||
|     var height = Blockly.Arduino.valueToCode(this, 'height', Blockly.Arduino.ORDER_ATOMIC) || '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'; | ||||
|   let code = ""; | ||||
|   var x = | ||||
|     Blockly.Arduino.valueToCode(this, "X", Blockly.Arduino.ORDER_ATOMIC) || "0"; | ||||
|   var y = | ||||
|     Blockly.Arduino.valueToCode(this, "Y", Blockly.Arduino.ORDER_ATOMIC) || "0"; | ||||
|   var width = | ||||
|     Blockly.Arduino.valueToCode(this, "width", Blockly.Arduino.ORDER_ATOMIC) || | ||||
|     "0"; | ||||
|   var height = | ||||
|     Blockly.Arduino.valueToCode(this, "height", Blockly.Arduino.ORDER_ATOMIC) || | ||||
|     "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; | ||||
| } | ||||
| }; | ||||
|  | ||||
| @ -5,8 +5,7 @@ Blockly.Arduino.sensebox_lora_initialize_otaa = function (block) { | ||||
|   var appID = this.getFieldValue("APPID"); | ||||
|   var appKey = this.getFieldValue("APPKEY"); | ||||
|   var interval = this.getFieldValue("INTERVAL"); | ||||
|   Blockly.Arduino.libraries_["library_senseBoxMCU"] = | ||||
|     '#include "SenseBoxMCU.h"'; | ||||
|   Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include <senseBoxIO.h>"; | ||||
|   Blockly.Arduino.libraries_["library_spi"] = "#include <SPI.h>"; | ||||
|   Blockly.Arduino.libraries_["library_lmic"] = "#include <lmic.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 devaddr = this.getFieldValue("DEVADDR"); | ||||
|   var interval = this.getFieldValue("INTERVAL"); | ||||
|   Blockly.Arduino.libraries_["library_senseBoxMCU"] = | ||||
|     '#include "SenseBoxMCU.h"'; | ||||
|   Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include <senseBoxIO.h>"; | ||||
|   Blockly.Arduino.libraries_["library_spi"] = "#include <SPI.h>"; | ||||
|   Blockly.Arduino.libraries_["library_lmic"] = "#include <lmic.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; | ||||
|   Blockly.Arduino.libraries_["library_senseBoxMCU"] = | ||||
|     '#include "SenseBoxMCU.h"'; | ||||
|   Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include <senseBoxIO.h>"; | ||||
|   Blockly.Arduino.setupCode_["initBearSSL"] = | ||||
|     "ArduinoBearSSL.onGetTime(getTime);"; | ||||
|   Blockly.Arduino.definitions_["num_sensors"] = | ||||
|  | ||||
| @ -3,8 +3,7 @@ import Blockly from "blockly"; | ||||
| Blockly.Arduino.sensebox_rtc_init = function () { | ||||
|   Blockly.Arduino.libraries_["RV8523"] = `#include <RV8523.h>`; | ||||
|   Blockly.Arduino.definitions_["RTC"] = `RV8523 rtc;`; | ||||
|   Blockly.Arduino.libraries_["library_senseBoxMCU"] = | ||||
|     '#include "SenseBoxMCU.h"'; | ||||
|   Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include <senseBoxIO.h>"; | ||||
|   Blockly.Arduino.setupCode_["rtc.begin"] = `rtc.begin();`; | ||||
|   var code = ``; | ||||
|   return code; | ||||
|  | ||||
| @ -9,6 +9,7 @@ Blockly.Arduino.sensebox_sensor_temp_hum = function () { | ||||
|   var dropdown_name = this.getFieldValue("NAME"); | ||||
|   Blockly.Arduino.libraries_["library_senseBoxMCU"] = | ||||
|     '#include "SenseBoxMCU.h"'; | ||||
|   Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include <senseBoxIO.h>"; | ||||
|   Blockly.Arduino.definitions_["define_hdc"] = "HDC1080 hdc;"; | ||||
|   Blockly.Arduino.setupCode_["sensebox_sensor_temp_hum"] = "hdc.begin();"; | ||||
|   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 | ||||
|  */ | ||||
| Blockly.Arduino.sensebox_telegram = function (Block) { | ||||
|   let token = Block.getFieldValue('telegram_token'); | ||||
|   Blockly['Arduino'].libraries_['library_senseBoxMCU'] = '#include "SenseBoxMCU.h"'; | ||||
|   Blockly['Arduino'].libraries_['library_telegram'] = `#include <UniversalTelegramBot.h>` | ||||
|   Blockly['Arduino'].functionNames_['WiFiSSLClient'] = 'WiFiSSLClient client;'; | ||||
|   Blockly['Arduino'].functionNames_['telegram_objects'] = `#define BOTtoken "${token}"  // your Bot Token (Get from Botfather)
 | ||||
|   let token = Block.getFieldValue("telegram_token"); | ||||
|   Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include <senseBoxIO.h>"; | ||||
|   Blockly["Arduino"].libraries_[ | ||||
|     "library_telegram" | ||||
|   ] = `#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; | ||||
| }; | ||||
| 
 | ||||
| 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
 | ||||
|   long Bot_lasttime;   //last time messages' scan has been done`
 | ||||
|   Blockly.Arduino.definitions_[ | ||||
|     "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); | ||||
|       while(numNewMessages) { | ||||
|         for(int i=0; i<numNewMessages; i++) { | ||||
| @ -36,13 +47,17 @@ Blockly.Arduino.sensebox_telegram_do = function (block) { | ||||
|       } | ||||
|       Bot_lasttime = millis(); | ||||
|     }`;
 | ||||
|   var code = ''; | ||||
|   var code = ""; | ||||
|   return code; | ||||
| }; | ||||
| 
 | ||||
| Blockly.Arduino.sensebox_telegram_do_on_message = function (block) { | ||||
|   var message = this.getFieldValue('telegram_message'); | ||||
|   var stuffToDo = Blockly.Arduino.statementToCode(block, 'telegram_do_on_message', Blockly.Arduino.ORDER_ATOMIC); | ||||
|   var message = this.getFieldValue("telegram_message"); | ||||
|   var stuffToDo = Blockly.Arduino.statementToCode( | ||||
|     block, | ||||
|     "telegram_do_on_message", | ||||
|     Blockly.Arduino.ORDER_ATOMIC | ||||
|   ); | ||||
|   var code = ` | ||||
|         if (text == "${message}") { | ||||
|           ${stuffToDo} | ||||
| @ -51,7 +66,12 @@ Blockly.Arduino.sensebox_telegram_do_on_message = 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`; | ||||
|   return code; | ||||
| }; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user