From 8acc89b99e8ce6b7c0233dacc335c3abc8d452be Mon Sep 17 00:00:00 2001 From: Mario Pesch Date: Wed, 24 Nov 2021 13:08:42 +0100 Subject: [PATCH] start replacing mcu lib --- .../Blockly/generator/sensebox-osem.js | 14 ++++- .../Blockly/generator/sensebox-web.js | 51 ++++++++++++------- 2 files changed, 45 insertions(+), 20 deletions(-) diff --git a/src/components/Blockly/generator/sensebox-osem.js b/src/components/Blockly/generator/sensebox-osem.js index 2e6626f..52d6cd3 100644 --- a/src/components/Blockly/generator/sensebox-osem.js +++ b/src/components/Blockly/generator/sensebox-osem.js @@ -36,6 +36,8 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) { var num_sensors = count; Blockly.Arduino.libraries_["library_senseBoxMCU"] = '#include "SenseBoxMCU.h"'; + Blockly.Arduino.setupCode_["initBearSSL"] = + "ArduinoBearSSL.onGetTime(getTime);"; Blockly.Arduino.definitions_["num_sensors"] = "static const uint8_t NUM_SENSORS = " + num_sensors + ";"; Blockly.Arduino.definitions_["SenseBoxID"] = @@ -43,7 +45,16 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) { Blockly.Arduino.definitions_["host"] = "const char server [] PROGMEM =" + host + ";"; if (ssl === "TRUE") { - Blockly.Arduino.definitions_["WiFiSSLClient"] = "WiFiSSLClient client;"; + Blockly.Arduino.libraries_["library_bearSSL"] = + "#include "; + Blockly.Arduino.libraries_["library_arduinoECC08"] = + "#include "; + Blockly.Arduino.definitions_["WiFiClient"] = "WiFiClient wifiClient;"; + Blockly.Arduino.definitions_["BearSSLClient"] = + "BearSSLClient client(wifiClient);"; + Blockly.Ardu.Arduino.functionNames_["getTime"] = `unsigned long getTime() { + return WiFi.getTime(); + }`; port = 443; } else if (ssl === "FALSE") { Blockly.Arduino.definitions_["WiFiClient"] = "WiFiClient client;"; @@ -121,6 +132,7 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) { } } }`; + var code = ""; code += branch; code += "submitValues();\n"; diff --git a/src/components/Blockly/generator/sensebox-web.js b/src/components/Blockly/generator/sensebox-web.js index 8727328..a1961ca 100644 --- a/src/components/Blockly/generator/sensebox-web.js +++ b/src/components/Blockly/generator/sensebox-web.js @@ -1,25 +1,38 @@ -import Blockly from 'blockly'; - +import Blockly from "blockly"; /* Wifi connection and openSenseMap Blocks*/ Blockly.Arduino.sensebox_wifi = function (block) { - var pw = this.getFieldValue('Password'); - var ssid = this.getFieldValue('SSID'); - Blockly.Arduino.libraries_['library_senseBoxMCU'] = '#include "SenseBoxMCU.h"'; - Blockly.Arduino.definitions_['define_network'] = 'Bee* b = new Bee();'; - if (pw === "") { - Blockly.Arduino.setupCode_['sensebox_network'] = 'b->connectToWifi("' + ssid + '");\ndelay(1000);'; - } else - Blockly.Arduino.setupCode_['sensebox_network'] = 'b->connectToWifi("' + ssid + '","' + pw + '");\ndelay(1000);'; - var code = ''; - return code; + var pw = this.getFieldValue("Password"); + var ssid = this.getFieldValue("SSID"); + Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include "; + Blockly.Arduino.libraries_["library_WiFi"] = "#include "; + Blockly.Arduino.variables_["ssid"] = `char ssid[] = ${ssid};`; + Blockly.Arduino.variables_["pass"] = `char pass[] = ${pw};`; + Blockly.Arduino.variables_["wifi_Status"] = "int status = WL_IDLE_STATUS;"; + if (pw === "") { + Blockly.Arduino.setupCode_["sensebox_network"] = + 'b->connectToWifi("' + ssid + '");\ndelay(1000);'; + } else + Blockly.Arduino.setupCode_["sensebox_network"] = ` +if (WiFi.status() == WL_NO_SHIELD) { + while (true); +} +while (status != WL_CONNECTED) { + status = WiFi.begin(ssid, pass); + delay(5000); +} +`; + var code = ""; + return code; }; Blockly.Arduino.sensebox_startap = function (block) { - var ssid = this.getFieldValue('SSID'); - Blockly.Arduino.libraries_['library_senseBoxMCU'] = '#include "SenseBoxMCU.h"'; - Blockly.Arduino.definitions_['define_network'] = 'Bee* b = new Bee();'; - Blockly.Arduino.setupCode_['sensebox_network'] = 'b->startAP("' + ssid + '");' - var code = ''; - return code; -}; \ No newline at end of file + var ssid = this.getFieldValue("SSID"); + Blockly.Arduino.libraries_["library_senseBoxMCU"] = + '#include "SenseBoxMCU.h"'; + Blockly.Arduino.definitions_["define_network"] = "Bee* b = new Bee();"; + Blockly.Arduino.setupCode_["sensebox_network"] = + 'b->startAP("' + ssid + '");'; + var code = ""; + return code; +};