this is a sample for mbed(LPC1768)

Committer:
1
Date:
Thu Nov 19 10:17:55 2015 +0800
Revision:
0:3163adfd2cf1
????????????????????????
1.callback
2.thread
3.auto-connect,time-up

Who changed what in which revision?

UserRevisionLine numberNew contents of line
1 0:3163adfd2cf1 1 #include "sitewhere.h"
1 0:3163adfd2cf1 2 #include "double_conversion.h"
1 0:3163adfd2cf1 3
1 0:3163adfd2cf1 4 // Signals end of stream.
1 0:3163adfd2cf1 5 uint8_t zero = 0;
1 0:3163adfd2cf1 6
1 0:3163adfd2cf1 7 unsigned int sw_register(char* hardwareId, char* specificationToken, uint8_t* buffer, size_t length, char* originator) {
1 0:3163adfd2cf1 8 pb_ostream_t stream = pb_ostream_from_buffer(buffer, length);
1 0:3163adfd2cf1 9
1 0:3163adfd2cf1 10 SiteWhere_Header header = { };
1 0:3163adfd2cf1 11 header.command = SiteWhere_Command_REGISTER;
1 0:3163adfd2cf1 12 if (originator != NULL) {
1 0:3163adfd2cf1 13 header.has_originator = true;
1 0:3163adfd2cf1 14 strcpy(header.originator, originator);
1 0:3163adfd2cf1 15 }
1 0:3163adfd2cf1 16 if (!pb_encode_delimited(&stream, SiteWhere_Header_fields, &header)) {
1 0:3163adfd2cf1 17 return 0;
1 0:3163adfd2cf1 18 }
1 0:3163adfd2cf1 19
1 0:3163adfd2cf1 20 SiteWhere_RegisterDevice registerDevice = { };
1 0:3163adfd2cf1 21 strcpy(registerDevice.hardwareId, hardwareId);
1 0:3163adfd2cf1 22 strcpy(registerDevice.specificationToken, specificationToken);
1 0:3163adfd2cf1 23 if (!pb_encode_delimited(&stream, SiteWhere_RegisterDevice_fields, &registerDevice)) {
1 0:3163adfd2cf1 24 return 0;
1 0:3163adfd2cf1 25 }
1 0:3163adfd2cf1 26
1 0:3163adfd2cf1 27 return stream.bytes_written;
1 0:3163adfd2cf1 28 }
1 0:3163adfd2cf1 29
1 0:3163adfd2cf1 30 unsigned int sw_acknowledge(char* hardwareId, char* message, uint8_t* buffer, size_t length, char* originator) {
1 0:3163adfd2cf1 31 pb_ostream_t stream = pb_ostream_from_buffer(buffer, length);
1 0:3163adfd2cf1 32
1 0:3163adfd2cf1 33 SiteWhere_Header header = { };
1 0:3163adfd2cf1 34 header.command = SiteWhere_Command_ACKNOWLEDGE;
1 0:3163adfd2cf1 35 if (originator != NULL) {
1 0:3163adfd2cf1 36 header.has_originator = true;
1 0:3163adfd2cf1 37 strcpy(header.originator, originator);
1 0:3163adfd2cf1 38 }
1 0:3163adfd2cf1 39 if (!pb_encode_delimited(&stream, SiteWhere_Header_fields, &header)) {
1 0:3163adfd2cf1 40 return 0;
1 0:3163adfd2cf1 41 }
1 0:3163adfd2cf1 42
1 0:3163adfd2cf1 43 SiteWhere_Acknowledge ack = { };
1 0:3163adfd2cf1 44 strcpy(ack.hardwareId, hardwareId);
1 0:3163adfd2cf1 45 if (message != NULL) {
1 0:3163adfd2cf1 46 ack.has_message = true;
1 0:3163adfd2cf1 47 strcpy(ack.message, message);
1 0:3163adfd2cf1 48 }
1 0:3163adfd2cf1 49 if (!pb_encode_delimited(&stream, SiteWhere_Acknowledge_fields, &ack)) {
1 0:3163adfd2cf1 50 return 0;
1 0:3163adfd2cf1 51 }
1 0:3163adfd2cf1 52
1 0:3163adfd2cf1 53 return stream.bytes_written;
1 0:3163adfd2cf1 54 }
1 0:3163adfd2cf1 55
1 0:3163adfd2cf1 56 unsigned int sw_measurement(char* hardwareId, char* name, float value, int64_t eventDate,
1 0:3163adfd2cf1 57 uint8_t* buffer, size_t length, char* originator) {
1 0:3163adfd2cf1 58 pb_ostream_t stream = pb_ostream_from_buffer(buffer, length);
1 0:3163adfd2cf1 59
1 0:3163adfd2cf1 60 SiteWhere_Header header = { };
1 0:3163adfd2cf1 61 header.command = SiteWhere_Command_DEVICEMEASUREMENT;
1 0:3163adfd2cf1 62 if (originator != NULL) {
1 0:3163adfd2cf1 63 header.has_originator = true;
1 0:3163adfd2cf1 64 strcpy(header.originator, originator);
1 0:3163adfd2cf1 65 }
1 0:3163adfd2cf1 66 if (!pb_encode_delimited(&stream, SiteWhere_Header_fields, &header)) {
1 0:3163adfd2cf1 67 return 0;
1 0:3163adfd2cf1 68 }
1 0:3163adfd2cf1 69
1 0:3163adfd2cf1 70 SiteWhere_DeviceMeasurements measurements = { };
1 0:3163adfd2cf1 71 strcpy(measurements.hardwareId, hardwareId);
1 0:3163adfd2cf1 72
1 0:3163adfd2cf1 73 SiteWhere_Measurement measurement = { };
1 0:3163adfd2cf1 74 strcpy(measurement.measurementId, name);
1 0:3163adfd2cf1 75 measurement.measurementValue = float_to_double(value); //there is a problem
1 0:3163adfd2cf1 76 //measurement.measurementValue = value;
1 0:3163adfd2cf1 77
1 0:3163adfd2cf1 78 measurements.measurement[0] = measurement;
1 0:3163adfd2cf1 79 measurements.measurement_count = 1;
1 0:3163adfd2cf1 80
1 0:3163adfd2cf1 81 if (eventDate != NULL) {
1 0:3163adfd2cf1 82 measurements.has_eventDate = true;
1 0:3163adfd2cf1 83 measurements.eventDate = eventDate;
1 0:3163adfd2cf1 84 }
1 0:3163adfd2cf1 85 if (!pb_encode_delimited(&stream, SiteWhere_DeviceMeasurements_fields, &measurements)) {
1 0:3163adfd2cf1 86 return 0;
1 0:3163adfd2cf1 87 }
1 0:3163adfd2cf1 88
1 0:3163adfd2cf1 89 return stream.bytes_written;
1 0:3163adfd2cf1 90 }
1 0:3163adfd2cf1 91
1 0:3163adfd2cf1 92 unsigned int sw_location(char* hardwareId, float lat, float lon, float ele, int64_t eventDate,
1 0:3163adfd2cf1 93 uint8_t* buffer, size_t length, char* originator) {
1 0:3163adfd2cf1 94 pb_ostream_t stream = pb_ostream_from_buffer(buffer, length);
1 0:3163adfd2cf1 95
1 0:3163adfd2cf1 96 SiteWhere_Header header = { };
1 0:3163adfd2cf1 97 header.command = SiteWhere_Command_DEVICELOCATION;
1 0:3163adfd2cf1 98 if (originator != NULL) {
1 0:3163adfd2cf1 99 header.has_originator = true;
1 0:3163adfd2cf1 100 strcpy(header.originator, originator);
1 0:3163adfd2cf1 101 }
1 0:3163adfd2cf1 102 if (!pb_encode_delimited(&stream, SiteWhere_Header_fields, &header)) {
1 0:3163adfd2cf1 103 return 0;
1 0:3163adfd2cf1 104 }
1 0:3163adfd2cf1 105
1 0:3163adfd2cf1 106 SiteWhere_DeviceLocation location = { };
1 0:3163adfd2cf1 107 strcpy(location.hardwareId, hardwareId);
1 0:3163adfd2cf1 108
1 0:3163adfd2cf1 109 location.latitude = float_to_double(lat); //there is a problem
1 0:3163adfd2cf1 110 location.longitude = float_to_double(lon);
1 0:3163adfd2cf1 111 location.elevation = float_to_double(ele);
1 0:3163adfd2cf1 112 //location.latitude = lat;
1 0:3163adfd2cf1 113 //location.longitude = lon;
1 0:3163adfd2cf1 114 //location.elevation = ele;
1 0:3163adfd2cf1 115
1 0:3163adfd2cf1 116 location.has_elevation = true;
1 0:3163adfd2cf1 117
1 0:3163adfd2cf1 118 if (eventDate != NULL) {
1 0:3163adfd2cf1 119 location.has_eventDate = true;
1 0:3163adfd2cf1 120 location.eventDate = eventDate;
1 0:3163adfd2cf1 121 }
1 0:3163adfd2cf1 122 if (!pb_encode_delimited(&stream, SiteWhere_DeviceLocation_fields, &location)) {
1 0:3163adfd2cf1 123 return 0;
1 0:3163adfd2cf1 124 }
1 0:3163adfd2cf1 125
1 0:3163adfd2cf1 126 return stream.bytes_written;
1 0:3163adfd2cf1 127 }
1 0:3163adfd2cf1 128
1 0:3163adfd2cf1 129 unsigned int sw_alert(char* hardwareId, char* alertType, char* alertMessage, int64_t eventDate,
1 0:3163adfd2cf1 130 uint8_t* buffer, size_t length, char* originator) {
1 0:3163adfd2cf1 131 pb_ostream_t stream = pb_ostream_from_buffer(buffer, length);
1 0:3163adfd2cf1 132
1 0:3163adfd2cf1 133 SiteWhere_Header header = { };
1 0:3163adfd2cf1 134 header.command = SiteWhere_Command_DEVICEALERT;
1 0:3163adfd2cf1 135 if (originator != NULL) {
1 0:3163adfd2cf1 136 header.has_originator = true;
1 0:3163adfd2cf1 137 strcpy(header.originator, originator);
1 0:3163adfd2cf1 138 }
1 0:3163adfd2cf1 139 if (!pb_encode_delimited(&stream, SiteWhere_Header_fields, &header)) {
1 0:3163adfd2cf1 140 return 0;
1 0:3163adfd2cf1 141 }
1 0:3163adfd2cf1 142
1 0:3163adfd2cf1 143 SiteWhere_DeviceAlert alert = { };
1 0:3163adfd2cf1 144 strcpy(alert.hardwareId, hardwareId);
1 0:3163adfd2cf1 145 strcpy(alert.alertType, alertType);
1 0:3163adfd2cf1 146 strcpy(alert.alertMessage, alertMessage);
1 0:3163adfd2cf1 147 if (eventDate != NULL) {
1 0:3163adfd2cf1 148 alert.has_eventDate = true;
1 0:3163adfd2cf1 149 alert.eventDate = eventDate;
1 0:3163adfd2cf1 150 }
1 0:3163adfd2cf1 151 if (!pb_encode_delimited(&stream, SiteWhere_DeviceAlert_fields, &alert)) {
1 0:3163adfd2cf1 152 return 0;
1 0:3163adfd2cf1 153 }
1 0:3163adfd2cf1 154
1 0:3163adfd2cf1 155 return stream.bytes_written;
1 0:3163adfd2cf1 156 }