|
|
|
@@ -51,7 +51,7 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) {
|
|
|
|
|
Blockly.Arduino.definitions_["SenseBoxID"] =
|
|
|
|
|
'const char SENSEBOX_ID [] PROGMEM = "' + box_id + '";';
|
|
|
|
|
Blockly.Arduino.definitions_["host"] =
|
|
|
|
|
"const char server [] PROGMEM =" + host + ";";
|
|
|
|
|
'const char server [] PROGMEM ="ingress.opensensemap.org";';
|
|
|
|
|
if (wifi === true) {
|
|
|
|
|
if (ssl === "TRUE") {
|
|
|
|
|
Blockly.Arduino.definitions_["WiFiSSLClient"] = "WiFiSSLClient client;";
|
|
|
|
@@ -68,43 +68,43 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) {
|
|
|
|
|
Blockly.Arduino.definitions_["EthernetClient"] = "EthernetClient client;";
|
|
|
|
|
port = 80;
|
|
|
|
|
}
|
|
|
|
|
'const char server [] PROGMEM ="ingress.opensensemap.org";';
|
|
|
|
|
if (ssl === "TRUE") {
|
|
|
|
|
Blockly.Arduino.libraries_["library_bearSSL"] =
|
|
|
|
|
"#include <ArduinoBearSSL.h>";
|
|
|
|
|
Blockly.Arduino.libraries_["library_arduinoECC08"] =
|
|
|
|
|
"#include <ArduinoECCX08.h>";
|
|
|
|
|
Blockly.Arduino.definitions_["WiFiClient"] = "WiFiClient wifiClient;";
|
|
|
|
|
Blockly.Arduino.definitions_["BearSSLClient"] =
|
|
|
|
|
"BearSSLClient client(wifiClient);";
|
|
|
|
|
Blockly.Arduino.functionNames_["getTime"] = `unsigned long getTime() {
|
|
|
|
|
|
|
|
|
|
if (ssl === "TRUE") {
|
|
|
|
|
Blockly.Arduino.libraries_["library_bearSSL"] =
|
|
|
|
|
"#include <ArduinoBearSSL.h>";
|
|
|
|
|
Blockly.Arduino.libraries_["library_arduinoECC08"] =
|
|
|
|
|
"#include <ArduinoECCX08.h>";
|
|
|
|
|
Blockly.Arduino.definitions_["WiFiClient"] = "WiFiClient wifiClient;";
|
|
|
|
|
Blockly.Arduino.definitions_["BearSSLClient"] =
|
|
|
|
|
"BearSSLClient client(wifiClient);";
|
|
|
|
|
Blockly.Arduino.functionNames_["getTime"] = `unsigned long getTime() {
|
|
|
|
|
return WiFi.getTime();
|
|
|
|
|
}`;
|
|
|
|
|
port = 443;
|
|
|
|
|
} else if (ssl === "FALSE") {
|
|
|
|
|
Blockly.Arduino.definitions_["WiFiClient"] = "WiFiClient client;";
|
|
|
|
|
port = 80;
|
|
|
|
|
}
|
|
|
|
|
port = 443;
|
|
|
|
|
} else if (ssl === "FALSE") {
|
|
|
|
|
Blockly.Arduino.definitions_["WiFiClient"] = "WiFiClient client;";
|
|
|
|
|
port = 80;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Blockly.Arduino.definitions_["measurement"] = `typedef struct measurement {
|
|
|
|
|
Blockly.Arduino.definitions_["measurement"] = `typedef struct measurement {
|
|
|
|
|
const char *sensorId;
|
|
|
|
|
float value;
|
|
|
|
|
} measurement;`;
|
|
|
|
|
Blockly.Arduino.definitions_["buffer"] = "char buffer[750];";
|
|
|
|
|
Blockly.Arduino.definitions_[
|
|
|
|
|
"num_measurement"
|
|
|
|
|
] = `measurement measurements[NUM_SENSORS];
|
|
|
|
|
Blockly.Arduino.definitions_["buffer"] = "char buffer[750];";
|
|
|
|
|
Blockly.Arduino.definitions_[
|
|
|
|
|
"num_measurement"
|
|
|
|
|
] = `measurement measurements[NUM_SENSORS];
|
|
|
|
|
uint8_t num_measurements = 0;`;
|
|
|
|
|
Blockly.Arduino.definitions_["lengthMultiplikator"] =
|
|
|
|
|
"const int lengthMultiplikator = 35;";
|
|
|
|
|
Blockly.Arduino.functionNames_["addMeasurement"] = `
|
|
|
|
|
Blockly.Arduino.definitions_["lengthMultiplikator"] =
|
|
|
|
|
"const int lengthMultiplikator = 35;";
|
|
|
|
|
Blockly.Arduino.functionNames_["addMeasurement"] = `
|
|
|
|
|
void addMeasurement(const char *sensorId, float value) {
|
|
|
|
|
measurements[num_measurements].sensorId = sensorId;
|
|
|
|
|
measurements[num_measurements].value = value;
|
|
|
|
|
num_measurements++;
|
|
|
|
|
}`;
|
|
|
|
|
if (type === "Stationary") {
|
|
|
|
|
Blockly.Arduino.functionNames_["writeMeasurementsToClient"] = `
|
|
|
|
|
if (type === "Stationary") {
|
|
|
|
|
Blockly.Arduino.functionNames_["writeMeasurementsToClient"] = `
|
|
|
|
|
void writeMeasurementsToClient() {
|
|
|
|
|
// iterate throug the measurements array
|
|
|
|
|
for (uint8_t i = 0; i < num_measurements; i++) {
|
|
|
|
@@ -116,8 +116,8 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) {
|
|
|
|
|
// reset num_measurements
|
|
|
|
|
num_measurements = 0;
|
|
|
|
|
}`;
|
|
|
|
|
Blockly.Arduino.functionNames_["submitValues"] =
|
|
|
|
|
`
|
|
|
|
|
Blockly.Arduino.functionNames_["submitValues"] =
|
|
|
|
|
`
|
|
|
|
|
void submitValues() {
|
|
|
|
|
if (client.connected()) {
|
|
|
|
|
client.stop();
|
|
|
|
@@ -129,8 +129,8 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) {
|
|
|
|
|
for (uint8_t timeout = 2; timeout != 0; timeout--) {
|
|
|
|
|
Serial.println(F("connecting..."));
|
|
|
|
|
connected = client.connect(_server, ` +
|
|
|
|
|
port +
|
|
|
|
|
`);
|
|
|
|
|
port +
|
|
|
|
|
`);
|
|
|
|
|
if (connected == true) {
|
|
|
|
|
// construct the HTTP POST request:
|
|
|
|
|
sprintf_P(buffer,
|
|
|
|
@@ -158,33 +158,33 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) {
|
|
|
|
|
}
|
|
|
|
|
}`;
|
|
|
|
|
|
|
|
|
|
var code = "";
|
|
|
|
|
code += branch;
|
|
|
|
|
code += "submitValues();\n";
|
|
|
|
|
} else if (type === "Mobile") {
|
|
|
|
|
var lat = Blockly.Arduino.valueToCode(
|
|
|
|
|
Block,
|
|
|
|
|
"lat",
|
|
|
|
|
Blockly.Arduino.ORDER_ATOMIC
|
|
|
|
|
);
|
|
|
|
|
var lng = Blockly.Arduino.valueToCode(
|
|
|
|
|
Block,
|
|
|
|
|
"lng",
|
|
|
|
|
Blockly.Arduino.ORDER_ATOMIC
|
|
|
|
|
);
|
|
|
|
|
var timestamp = Blockly.Arduino.valueToCode(
|
|
|
|
|
Block,
|
|
|
|
|
"timeStamp",
|
|
|
|
|
Blockly.Arduino.ORDER_ATOMIC
|
|
|
|
|
);
|
|
|
|
|
var altitude = Blockly.Arduino.valueToCode(
|
|
|
|
|
Block,
|
|
|
|
|
"altitude",
|
|
|
|
|
Blockly.Arduino.ORDER_ATOMIC
|
|
|
|
|
);
|
|
|
|
|
Blockly.Arduino.definitions_["lengthMultiplikator"] =
|
|
|
|
|
"const int lengthMultiplikator = 77;";
|
|
|
|
|
Blockly.Arduino.functionNames_["writeMeasurementsToClient"] = `
|
|
|
|
|
var code = "";
|
|
|
|
|
code += branch;
|
|
|
|
|
code += "submitValues();\n";
|
|
|
|
|
} else if (type === "Mobile") {
|
|
|
|
|
var lat = Blockly.Arduino.valueToCode(
|
|
|
|
|
Block,
|
|
|
|
|
"lat",
|
|
|
|
|
Blockly.Arduino.ORDER_ATOMIC
|
|
|
|
|
);
|
|
|
|
|
var lng = Blockly.Arduino.valueToCode(
|
|
|
|
|
Block,
|
|
|
|
|
"lng",
|
|
|
|
|
Blockly.Arduino.ORDER_ATOMIC
|
|
|
|
|
);
|
|
|
|
|
var timestamp = Blockly.Arduino.valueToCode(
|
|
|
|
|
Block,
|
|
|
|
|
"timeStamp",
|
|
|
|
|
Blockly.Arduino.ORDER_ATOMIC
|
|
|
|
|
);
|
|
|
|
|
var altitude = Blockly.Arduino.valueToCode(
|
|
|
|
|
Block,
|
|
|
|
|
"altitude",
|
|
|
|
|
Blockly.Arduino.ORDER_ATOMIC
|
|
|
|
|
);
|
|
|
|
|
Blockly.Arduino.definitions_["lengthMultiplikator"] =
|
|
|
|
|
"const int lengthMultiplikator = 77;";
|
|
|
|
|
Blockly.Arduino.functionNames_["writeMeasurementsToClient"] = `
|
|
|
|
|
void writeMeasurementsToClient(float lat, float lng, float altitude, char* timeStamp) {
|
|
|
|
|
// iterate throug the measurements array
|
|
|
|
|
for (uint8_t i = 0; i < num_measurements; i++) {
|
|
|
|
@@ -196,10 +196,10 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) {
|
|
|
|
|
// reset num_measurements
|
|
|
|
|
num_measurements = 0;
|
|
|
|
|
}`;
|
|
|
|
|
Blockly.Arduino.variables_["latitude"] = "float latitude;";
|
|
|
|
|
Blockly.Arduino.variables_["longitude"] = "float longitude;";
|
|
|
|
|
Blockly.Arduino.functionNames_["submitValues"] =
|
|
|
|
|
`
|
|
|
|
|
Blockly.Arduino.variables_["latitude"] = "float latitude;";
|
|
|
|
|
Blockly.Arduino.variables_["longitude"] = "float longitude;";
|
|
|
|
|
Blockly.Arduino.functionNames_["submitValues"] =
|
|
|
|
|
`
|
|
|
|
|
void submitValues(float lat, float lng, float altitude, char* timeStamp) {
|
|
|
|
|
if (client.connected()) {
|
|
|
|
|
client.stop();
|
|
|
|
@@ -211,8 +211,8 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) {
|
|
|
|
|
for (uint8_t timeout = 2; timeout != 0; timeout--) {
|
|
|
|
|
Serial.println(F("connecting..."));
|
|
|
|
|
connected = client.connect(_server, ` +
|
|
|
|
|
port +
|
|
|
|
|
`);
|
|
|
|
|
port +
|
|
|
|
|
`);
|
|
|
|
|
if (connected == true) {
|
|
|
|
|
// construct the HTTP POST request:
|
|
|
|
|
sprintf_P(buffer,
|
|
|
|
@@ -240,18 +240,19 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}`;
|
|
|
|
|
code = "";
|
|
|
|
|
code += branch;
|
|
|
|
|
code +=
|
|
|
|
|
"submitValues((" +
|
|
|
|
|
lat +
|
|
|
|
|
"/float(10000000)),(" +
|
|
|
|
|
lng +
|
|
|
|
|
"/float(10000000)),(" +
|
|
|
|
|
altitude +
|
|
|
|
|
"/float(100))," +
|
|
|
|
|
timestamp +
|
|
|
|
|
");\n";
|
|
|
|
|
code = "";
|
|
|
|
|
code += branch;
|
|
|
|
|
code +=
|
|
|
|
|
"submitValues((" +
|
|
|
|
|
lat +
|
|
|
|
|
"/float(10000000)),(" +
|
|
|
|
|
lng +
|
|
|
|
|
"/float(10000000)),(" +
|
|
|
|
|
altitude +
|
|
|
|
|
"/float(100))," +
|
|
|
|
|
timestamp +
|
|
|
|
|
");\n";
|
|
|
|
|
}
|
|
|
|
|
return code;
|
|
|
|
|
}
|
|
|
|
|
return code;
|
|
|
|
|
};
|
|
|
|
|