From d21847454a9e223165f1d9e4c3a01b7c83105454 Mon Sep 17 00:00:00 2001 From: Mario Pesch Date: Wed, 24 Nov 2021 18:33:35 +0100 Subject: [PATCH] replace more senseBox MCU includes --- src/components/Blockly/generator/mqtt.js | 142 +++++---- .../Blockly/generator/sensebox-ble.js | 3 +- .../Blockly/generator/sensebox-display.js | 272 ++++++++++++------ .../Blockly/generator/sensebox-lora.js | 6 +- .../Blockly/generator/sensebox-osem.js | 3 +- .../Blockly/generator/sensebox-rtc.js | 3 +- .../Blockly/generator/sensebox-sensors.js | 1 + .../Blockly/generator/sensebox-telegram.js | 54 ++-- 8 files changed, 320 insertions(+), 164 deletions(-) diff --git a/src/components/Blockly/generator/mqtt.js b/src/components/Blockly/generator/mqtt.js index 7733fb4..b9617aa 100644 --- a/src/components/Blockly/generator/mqtt.js +++ b/src/components/Blockly/generator/mqtt.js @@ -1,52 +1,77 @@ -import * as Blockly from 'blockly/core'; +import * as Blockly from "blockly/core"; /** -* MQTT Blocks -*/ + * MQTT Blocks + */ 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 = ''; - return 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 "; + 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 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 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"'; - switch (service) { - 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 + '");' - break; - case 'custom': - Blockly.Arduino.definitions_['mqtt_' + feed_client + ''] = 'Adafruit_MQTT_Publish ' + feed_client + ' = Adafruit_MQTT_Publish(&mqtt, "' + feedname + '");' - break; - default: - break; + switch (service) { + 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 + + '");'; + break; + 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.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. // 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.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){ + 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; + 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; }; - diff --git a/src/components/Blockly/generator/sensebox-ble.js b/src/components/Blockly/generator/sensebox-ble.js index 959ca3b..910abcf 100644 --- a/src/components/Blockly/generator/sensebox-ble.js +++ b/src/components/Blockly/generator/sensebox-ble.js @@ -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 `; - Blockly.Arduino.libraries_["library_senseBoxMCU"] = - '#include "SenseBoxMCU.h"'; + Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include "; Blockly.Arduino.phyphoxSetupCode_[ "phyphox_start" ] = `PhyphoxBLE::start("${name}");`; diff --git a/src/components/Blockly/generator/sensebox-display.js b/src/components/Blockly/generator/sensebox-display.js index d293fe5..5946a34 100644 --- a/src/components/Blockly/generator/sensebox-display.js +++ b/src/components/Blockly/generator/sensebox-display.js @@ -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 '; - Blockly.Arduino.libraries_['library_wire'] = '#include '; - Blockly.Arduino.libraries_['library_AdafruitGFX'] = '#include '; - Blockly.Arduino.libraries_['library_AdafruitSSD1306'] = '#include '; - 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 = ''; - return code; + Blockly.Arduino.libraries_["library_spi"] = "#include "; + Blockly.Arduino.libraries_["library_wire"] = "#include "; + Blockly.Arduino.libraries_["library_AdafruitGFX"] = + "#include "; + Blockly.Arduino.libraries_["library_AdafruitSSD1306"] = + "#include "; + Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include "; + 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'; - return code; + 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'; - return code; + 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; + `; + 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 = ''; - code += show; - code += 'display.display();\n'; - return code; + var show = Blockly.Arduino.statementToCode(block, "SHOW"); + var code = ""; + code += show; + 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 '; - 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; + 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 "; + 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'; - } - return code; -} + 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'; - } - return code; -} \ No newline at end of file + 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; +}; diff --git a/src/components/Blockly/generator/sensebox-lora.js b/src/components/Blockly/generator/sensebox-lora.js index 9aa0c93..dc4b1c2 100644 --- a/src/components/Blockly/generator/sensebox-lora.js +++ b/src/components/Blockly/generator/sensebox-lora.js @@ -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 "; Blockly.Arduino.libraries_["library_spi"] = "#include "; Blockly.Arduino.libraries_["library_lmic"] = "#include "; Blockly.Arduino.libraries_["library_hal"] = "#include "; @@ -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 "; Blockly.Arduino.libraries_["library_spi"] = "#include "; Blockly.Arduino.libraries_["library_lmic"] = "#include "; Blockly.Arduino.libraries_["library_hal"] = "#include "; diff --git a/src/components/Blockly/generator/sensebox-osem.js b/src/components/Blockly/generator/sensebox-osem.js index 52d6cd3..f8f67cd 100644 --- a/src/components/Blockly/generator/sensebox-osem.js +++ b/src/components/Blockly/generator/sensebox-osem.js @@ -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 "; Blockly.Arduino.setupCode_["initBearSSL"] = "ArduinoBearSSL.onGetTime(getTime);"; Blockly.Arduino.definitions_["num_sensors"] = diff --git a/src/components/Blockly/generator/sensebox-rtc.js b/src/components/Blockly/generator/sensebox-rtc.js index 1c3f5e3..23dd154 100644 --- a/src/components/Blockly/generator/sensebox-rtc.js +++ b/src/components/Blockly/generator/sensebox-rtc.js @@ -3,8 +3,7 @@ import Blockly from "blockly"; Blockly.Arduino.sensebox_rtc_init = function () { Blockly.Arduino.libraries_["RV8523"] = `#include `; Blockly.Arduino.definitions_["RTC"] = `RV8523 rtc;`; - Blockly.Arduino.libraries_["library_senseBoxMCU"] = - '#include "SenseBoxMCU.h"'; + Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include "; Blockly.Arduino.setupCode_["rtc.begin"] = `rtc.begin();`; var code = ``; return code; diff --git a/src/components/Blockly/generator/sensebox-sensors.js b/src/components/Blockly/generator/sensebox-sensors.js index b440d15..0ef1ec9 100644 --- a/src/components/Blockly/generator/sensebox-sensors.js +++ b/src/components/Blockly/generator/sensebox-sensors.js @@ -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 "; Blockly.Arduino.definitions_["define_hdc"] = "HDC1080 hdc;"; Blockly.Arduino.setupCode_["sensebox_sensor_temp_hum"] = "hdc.begin();"; var code = "hdc.get" + dropdown_name + "()"; diff --git a/src/components/Blockly/generator/sensebox-telegram.js b/src/components/Blockly/generator/sensebox-telegram.js index 3ff4840..3fc7ea0 100644 --- a/src/components/Blockly/generator/sensebox-telegram.js +++ b/src/components/Blockly/generator/sensebox-telegram.js @@ -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 ` - 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 "; + Blockly["Arduino"].libraries_[ + "library_telegram" + ] = `#include `; + 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