initial publish

Dependencies:   mbed-rtos mbed

Committer:
boddeke
Date:
Thu Jun 02 11:44:51 2016 +0000
Revision:
1:f5b145be9d8e
Parent:
0:31e47b639d0f
update

Who changed what in which revision?

UserRevisionLine numberNew contents of line
boddeke 0:31e47b639d0f 1 // automagically generated (version 20160519)
boddeke 0:31e47b639d0f 2 // by: http://iot.edgetech.nl/iot/node/includeFile?node=0x01
boddeke 0:31e47b639d0f 3 // on: 20160519
boddeke 0:31e47b639d0f 4 #include <Semaphore.h>
boddeke 0:31e47b639d0f 5
boddeke 1:f5b145be9d8e 6 enum NodeStates { development = 0, preproduction = 1, production = 2};
boddeke 1:f5b145be9d8e 7 #define NODE_ID 0x01
boddeke 1:f5b145be9d8e 8 #define NODE_STATE development
boddeke 0:31e47b639d0f 9
boddeke 1:f5b145be9d8e 10 #define CONTACT_NOACK_MIN 10000
boddeke 1:f5b145be9d8e 11 #undef CONTACT_NOACK_MAX
boddeke 1:f5b145be9d8e 12 #define CONTACT_ACK_MIN 3600000
boddeke 1:f5b145be9d8e 13 #define CONTACT_ACK_MAX 3600000
boddeke 0:31e47b639d0f 14
boddeke 1:f5b145be9d8e 15 #define CONTACT_MAX_TOTAL_PER_DAY 100
boddeke 1:f5b145be9d8e 16
boddeke 1:f5b145be9d8e 17 #pragma pack(push, 1)
boddeke 0:31e47b639d0f 18 typedef struct payloadvalues{
boddeke 0:31e47b639d0f 19 unsigned char node_id;
boddeke 0:31e47b639d0f 20 unsigned char reed_sensor_value: 1;
boddeke 0:31e47b639d0f 21 unsigned char change_in_last_ack_window: 1;
boddeke 0:31e47b639d0f 22 unsigned char low_battery: 1;
boddeke 0:31e47b639d0f 23 unsigned char battery_level;
boddeke 0:31e47b639d0f 24 } PayloadValues;
boddeke 0:31e47b639d0f 25
boddeke 0:31e47b639d0f 26 typedef union payload {
boddeke 0:31e47b639d0f 27 PayloadValues values;
boddeke 0:31e47b639d0f 28 char b[sizeof(PayloadValues)];
boddeke 0:31e47b639d0f 29 } Payload;
boddeke 0:31e47b639d0f 30
boddeke 0:31e47b639d0f 31 Payload payload_new = {NODE_ID,0,0};
boddeke 0:31e47b639d0f 32 Payload payload_last = {NODE_ID,0,0};
boddeke 0:31e47b639d0f 33 #pragma pack(pop)
boddeke 0:31e47b639d0f 34
boddeke 0:31e47b639d0f 35 Semaphore payload_protect(1);
boddeke 0:31e47b639d0f 36
boddeke 0:31e47b639d0f 37 int setReedSensorValue(unsigned char value) {
boddeke 0:31e47b639d0f 38 if(value>1) {
boddeke 0:31e47b639d0f 39 return(0);
boddeke 0:31e47b639d0f 40 }
boddeke 0:31e47b639d0f 41 payload_protect.wait();
boddeke 0:31e47b639d0f 42 payload_new.values.reed_sensor_value = value;
boddeke 0:31e47b639d0f 43 payload_protect.release();
boddeke 0:31e47b639d0f 44 return(1);
boddeke 0:31e47b639d0f 45 }
boddeke 0:31e47b639d0f 46
boddeke 0:31e47b639d0f 47 int setChangeInLastAckWindow(unsigned char value) {
boddeke 0:31e47b639d0f 48 if(value>1) {
boddeke 0:31e47b639d0f 49 return(0);
boddeke 0:31e47b639d0f 50 }
boddeke 0:31e47b639d0f 51 payload_protect.wait();
boddeke 0:31e47b639d0f 52 payload_new.values.change_in_last_ack_window = value;
boddeke 0:31e47b639d0f 53 payload_protect.release();
boddeke 0:31e47b639d0f 54 return(1);
boddeke 0:31e47b639d0f 55 }
boddeke 0:31e47b639d0f 56
boddeke 0:31e47b639d0f 57 int setLowBattery(unsigned char value) {
boddeke 0:31e47b639d0f 58 if(value>1) {
boddeke 0:31e47b639d0f 59 return(0);
boddeke 0:31e47b639d0f 60 }
boddeke 0:31e47b639d0f 61 payload_protect.wait();
boddeke 0:31e47b639d0f 62 payload_new.values.low_battery = value;
boddeke 0:31e47b639d0f 63 payload_protect.release();
boddeke 0:31e47b639d0f 64 return(1);
boddeke 0:31e47b639d0f 65 }
boddeke 0:31e47b639d0f 66
boddeke 0:31e47b639d0f 67 int setBatteryLevel(unsigned char value) {
boddeke 0:31e47b639d0f 68 payload_protect.wait();
boddeke 0:31e47b639d0f 69 payload_new.values.battery_level = value;
boddeke 0:31e47b639d0f 70 payload_protect.release();
boddeke 0:31e47b639d0f 71 return(1);
boddeke 0:31e47b639d0f 72 }
boddeke 0:31e47b639d0f 73
boddeke 0:31e47b639d0f 74 int hasChanges() {
boddeke 0:31e47b639d0f 75 payload_protect.wait();
boddeke 0:31e47b639d0f 76 for(int i=1;i<sizeof(Payload);i++) {
boddeke 0:31e47b639d0f 77 if(payload_new.b[i]!=payload_last.b[i]) {
boddeke 0:31e47b639d0f 78 payload_protect.release();
boddeke 0:31e47b639d0f 79 return(1);
boddeke 0:31e47b639d0f 80 }
boddeke 0:31e47b639d0f 81 }
boddeke 0:31e47b639d0f 82 payload_protect.release();
boddeke 0:31e47b639d0f 83 return(0);
boddeke 0:31e47b639d0f 84 }
boddeke 0:31e47b639d0f 85
boddeke 0:31e47b639d0f 86 void getDataAndUpdate(std::vector<uint8_t> *b) {
boddeke 0:31e47b639d0f 87 payload_protect.wait();
boddeke 0:31e47b639d0f 88 std::copy(payload_new.b, payload_new.b + sizeof(Payload), b->begin());
boddeke 0:31e47b639d0f 89 std::copy(payload_new.b, payload_new.b + sizeof(Payload), payload_last.b);
boddeke 0:31e47b639d0f 90 payload_protect.release();
boddeke 0:31e47b639d0f 91 }
boddeke 0:31e47b639d0f 92