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