fix osem block code generator
This commit is contained in:
parent
2cc4d9e84d
commit
a5059f9369
@ -44,8 +44,6 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) {
|
|||||||
}
|
}
|
||||||
var num_sensors = count;
|
var num_sensors = count;
|
||||||
Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include <senseBoxIO.h>";
|
Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include <senseBoxIO.h>";
|
||||||
Blockly.Arduino.setupCode_["initBearSSL"] =
|
|
||||||
"ArduinoBearSSL.onGetTime(getTime);";
|
|
||||||
Blockly.Arduino.definitions_["num_sensors"] =
|
Blockly.Arduino.definitions_["num_sensors"] =
|
||||||
"static const uint8_t NUM_SENSORS = " + num_sensors + ";";
|
"static const uint8_t NUM_SENSORS = " + num_sensors + ";";
|
||||||
Blockly.Arduino.definitions_["SenseBoxID"] =
|
Blockly.Arduino.definitions_["SenseBoxID"] =
|
||||||
@ -53,22 +51,6 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) {
|
|||||||
Blockly.Arduino.definitions_["host"] =
|
Blockly.Arduino.definitions_["host"] =
|
||||||
'const char server [] PROGMEM ="ingress.opensensemap.org";';
|
'const char server [] PROGMEM ="ingress.opensensemap.org";';
|
||||||
if (wifi === true) {
|
if (wifi === true) {
|
||||||
if (ssl === "TRUE") {
|
|
||||||
Blockly.Arduino.definitions_["WiFiSSLClient"] = "WiFiSSLClient client;";
|
|
||||||
port = 443;
|
|
||||||
} else if (ssl === "FALSE") {
|
|
||||||
Blockly.Arduino.definitions_["WiFiClient"] = "WiFiClient client;";
|
|
||||||
port = 80;
|
|
||||||
}
|
|
||||||
} else if (ethernet === true) {
|
|
||||||
if (ssl === "TRUE") {
|
|
||||||
Blockly.Arduino.definitions_["WiFiSSLClient"] = "WiFiSSLClient client;";
|
|
||||||
port = 443;
|
|
||||||
} else if (ssl === "FALSE") {
|
|
||||||
Blockly.Arduino.definitions_["EthernetClient"] = "EthernetClient client;";
|
|
||||||
port = 80;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ssl === "TRUE") {
|
if (ssl === "TRUE") {
|
||||||
Blockly.Arduino.libraries_["library_bearSSL"] =
|
Blockly.Arduino.libraries_["library_bearSSL"] =
|
||||||
"#include <ArduinoBearSSL.h>";
|
"#include <ArduinoBearSSL.h>";
|
||||||
@ -80,31 +62,45 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) {
|
|||||||
Blockly.Arduino.functionNames_["getTime"] = `unsigned long getTime() {
|
Blockly.Arduino.functionNames_["getTime"] = `unsigned long getTime() {
|
||||||
return WiFi.getTime();
|
return WiFi.getTime();
|
||||||
}`;
|
}`;
|
||||||
|
Blockly.Arduino.setupCode_["initBearSSL"] =
|
||||||
|
"ArduinoBearSSL.onGetTime(getTime);";
|
||||||
port = 443;
|
port = 443;
|
||||||
} else if (ssl === "FALSE") {
|
} else if (ssl === "FALSE") {
|
||||||
Blockly.Arduino.definitions_["WiFiClient"] = "WiFiClient client;";
|
Blockly.Arduino.definitions_["WiFiClient"] = "WiFiClient client;";
|
||||||
port = 80;
|
port = 80;
|
||||||
}
|
}
|
||||||
|
} else if (ethernet === true) {
|
||||||
Blockly.Arduino.definitions_["measurement"] = `typedef struct measurement {
|
if (ssl === "TRUE") {
|
||||||
|
Blockly.Arduino.libraries_["library_bearSSL"] =
|
||||||
|
"#include <ArduinoBearSSL.h>";
|
||||||
|
Blockly.Arduino.libraries_["library_arduinoECC08"] =
|
||||||
|
"#include <ArduinoECCX08.h>";
|
||||||
|
Blockly.Arduino.definitions_["WiFiSSLClient"] = "WiFiSSLClient client;";
|
||||||
|
port = 443;
|
||||||
|
} else if (ssl === "FALSE") {
|
||||||
|
Blockly.Arduino.definitions_["EthernetClient"] = "EthernetClient client;";
|
||||||
|
port = 80;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Blockly.Arduino.definitions_["measurement"] = `typedef struct measurement {
|
||||||
const char *sensorId;
|
const char *sensorId;
|
||||||
float value;
|
float value;
|
||||||
} measurement;`;
|
} measurement;`;
|
||||||
Blockly.Arduino.definitions_["buffer"] = "char buffer[750];";
|
Blockly.Arduino.definitions_["buffer"] = "char buffer[750];";
|
||||||
Blockly.Arduino.definitions_[
|
Blockly.Arduino.definitions_[
|
||||||
"num_measurement"
|
"num_measurement"
|
||||||
] = `measurement measurements[NUM_SENSORS];
|
] = `measurement measurements[NUM_SENSORS];
|
||||||
uint8_t num_measurements = 0;`;
|
uint8_t num_measurements = 0;`;
|
||||||
Blockly.Arduino.definitions_["lengthMultiplikator"] =
|
Blockly.Arduino.definitions_["lengthMultiplikator"] =
|
||||||
"const int lengthMultiplikator = 35;";
|
"const int lengthMultiplikator = 35;";
|
||||||
Blockly.Arduino.functionNames_["addMeasurement"] = `
|
Blockly.Arduino.functionNames_["addMeasurement"] = `
|
||||||
void addMeasurement(const char *sensorId, float value) {
|
void addMeasurement(const char *sensorId, float value) {
|
||||||
measurements[num_measurements].sensorId = sensorId;
|
measurements[num_measurements].sensorId = sensorId;
|
||||||
measurements[num_measurements].value = value;
|
measurements[num_measurements].value = value;
|
||||||
num_measurements++;
|
num_measurements++;
|
||||||
}`;
|
}`;
|
||||||
if (type === "Stationary") {
|
if (type === "Stationary") {
|
||||||
Blockly.Arduino.functionNames_["writeMeasurementsToClient"] = `
|
Blockly.Arduino.functionNames_["writeMeasurementsToClient"] = `
|
||||||
void writeMeasurementsToClient() {
|
void writeMeasurementsToClient() {
|
||||||
// iterate throug the measurements array
|
// iterate throug the measurements array
|
||||||
for (uint8_t i = 0; i < num_measurements; i++) {
|
for (uint8_t i = 0; i < num_measurements; i++) {
|
||||||
@ -116,8 +112,8 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) {
|
|||||||
// reset num_measurements
|
// reset num_measurements
|
||||||
num_measurements = 0;
|
num_measurements = 0;
|
||||||
}`;
|
}`;
|
||||||
Blockly.Arduino.functionNames_["submitValues"] =
|
Blockly.Arduino.functionNames_["submitValues"] =
|
||||||
`
|
`
|
||||||
void submitValues() {
|
void submitValues() {
|
||||||
if (client.connected()) {
|
if (client.connected()) {
|
||||||
client.stop();
|
client.stop();
|
||||||
@ -129,8 +125,8 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) {
|
|||||||
for (uint8_t timeout = 2; timeout != 0; timeout--) {
|
for (uint8_t timeout = 2; timeout != 0; timeout--) {
|
||||||
Serial.println(F("connecting..."));
|
Serial.println(F("connecting..."));
|
||||||
connected = client.connect(_server, ` +
|
connected = client.connect(_server, ` +
|
||||||
port +
|
port +
|
||||||
`);
|
`);
|
||||||
if (connected == true) {
|
if (connected == true) {
|
||||||
// construct the HTTP POST request:
|
// construct the HTTP POST request:
|
||||||
sprintf_P(buffer,
|
sprintf_P(buffer,
|
||||||
@ -158,33 +154,33 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) {
|
|||||||
}
|
}
|
||||||
}`;
|
}`;
|
||||||
|
|
||||||
var code = "";
|
var code = "";
|
||||||
code += branch;
|
code += branch;
|
||||||
code += "submitValues();\n";
|
code += "submitValues();\n";
|
||||||
} else if (type === "Mobile") {
|
} else if (type === "Mobile") {
|
||||||
var lat = Blockly.Arduino.valueToCode(
|
var lat = Blockly.Arduino.valueToCode(
|
||||||
Block,
|
Block,
|
||||||
"lat",
|
"lat",
|
||||||
Blockly.Arduino.ORDER_ATOMIC
|
Blockly.Arduino.ORDER_ATOMIC
|
||||||
);
|
);
|
||||||
var lng = Blockly.Arduino.valueToCode(
|
var lng = Blockly.Arduino.valueToCode(
|
||||||
Block,
|
Block,
|
||||||
"lng",
|
"lng",
|
||||||
Blockly.Arduino.ORDER_ATOMIC
|
Blockly.Arduino.ORDER_ATOMIC
|
||||||
);
|
);
|
||||||
var timestamp = Blockly.Arduino.valueToCode(
|
var timestamp = Blockly.Arduino.valueToCode(
|
||||||
Block,
|
Block,
|
||||||
"timeStamp",
|
"timeStamp",
|
||||||
Blockly.Arduino.ORDER_ATOMIC
|
Blockly.Arduino.ORDER_ATOMIC
|
||||||
);
|
);
|
||||||
var altitude = Blockly.Arduino.valueToCode(
|
var altitude = Blockly.Arduino.valueToCode(
|
||||||
Block,
|
Block,
|
||||||
"altitude",
|
"altitude",
|
||||||
Blockly.Arduino.ORDER_ATOMIC
|
Blockly.Arduino.ORDER_ATOMIC
|
||||||
);
|
);
|
||||||
Blockly.Arduino.definitions_["lengthMultiplikator"] =
|
Blockly.Arduino.definitions_["lengthMultiplikator"] =
|
||||||
"const int lengthMultiplikator = 77;";
|
"const int lengthMultiplikator = 77;";
|
||||||
Blockly.Arduino.functionNames_["writeMeasurementsToClient"] = `
|
Blockly.Arduino.functionNames_["writeMeasurementsToClient"] = `
|
||||||
void writeMeasurementsToClient(float lat, float lng, float altitude, char* timeStamp) {
|
void writeMeasurementsToClient(float lat, float lng, float altitude, char* timeStamp) {
|
||||||
// iterate throug the measurements array
|
// iterate throug the measurements array
|
||||||
for (uint8_t i = 0; i < num_measurements; i++) {
|
for (uint8_t i = 0; i < num_measurements; i++) {
|
||||||
@ -196,10 +192,10 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) {
|
|||||||
// reset num_measurements
|
// reset num_measurements
|
||||||
num_measurements = 0;
|
num_measurements = 0;
|
||||||
}`;
|
}`;
|
||||||
Blockly.Arduino.variables_["latitude"] = "float latitude;";
|
Blockly.Arduino.variables_["latitude"] = "float latitude;";
|
||||||
Blockly.Arduino.variables_["longitude"] = "float longitude;";
|
Blockly.Arduino.variables_["longitude"] = "float longitude;";
|
||||||
Blockly.Arduino.functionNames_["submitValues"] =
|
Blockly.Arduino.functionNames_["submitValues"] =
|
||||||
`
|
`
|
||||||
void submitValues(float lat, float lng, float altitude, char* timeStamp) {
|
void submitValues(float lat, float lng, float altitude, char* timeStamp) {
|
||||||
if (client.connected()) {
|
if (client.connected()) {
|
||||||
client.stop();
|
client.stop();
|
||||||
@ -211,8 +207,8 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) {
|
|||||||
for (uint8_t timeout = 2; timeout != 0; timeout--) {
|
for (uint8_t timeout = 2; timeout != 0; timeout--) {
|
||||||
Serial.println(F("connecting..."));
|
Serial.println(F("connecting..."));
|
||||||
connected = client.connect(_server, ` +
|
connected = client.connect(_server, ` +
|
||||||
port +
|
port +
|
||||||
`);
|
`);
|
||||||
if (connected == true) {
|
if (connected == true) {
|
||||||
// construct the HTTP POST request:
|
// construct the HTTP POST request:
|
||||||
sprintf_P(buffer,
|
sprintf_P(buffer,
|
||||||
@ -240,19 +236,18 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}`;
|
}`;
|
||||||
code = "";
|
code = "";
|
||||||
code += branch;
|
code += branch;
|
||||||
code +=
|
code +=
|
||||||
"submitValues((" +
|
"submitValues((" +
|
||||||
lat +
|
lat +
|
||||||
"/float(10000000)),(" +
|
"/float(10000000)),(" +
|
||||||
lng +
|
lng +
|
||||||
"/float(10000000)),(" +
|
"/float(10000000)),(" +
|
||||||
altitude +
|
altitude +
|
||||||
"/float(100))," +
|
"/float(100))," +
|
||||||
timestamp +
|
timestamp +
|
||||||
");\n";
|
");\n";
|
||||||
}
|
|
||||||
return code;
|
|
||||||
}
|
}
|
||||||
|
return code;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user