able to subscribe for >10hrs and still running

Dependencies:   ADE7758_v1 Crypto DHT11 MQTT MbedJSONValue SDFileSystem SPI_TFT_ILI9341 SWSPI SetRTC TFT_fonts Touch W5500Interface mbed-rtos mbed-src tuanpm

Fork of PB_emma_controller_mbed_src by Emma

Committer:
arsenalist
Date:
Fri Jul 03 07:05:21 2015 +0000
Revision:
0:f4e449fa34d7
Child:
4:76ab12e2f8a3
WiFi MQTT command + send data without power measurement thread.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
arsenalist 0:f4e449fa34d7 1 #ifndef MBED_EMMACODE_H
arsenalist 0:f4e449fa34d7 2 #define MBED_EMMACODE_H
arsenalist 0:f4e449fa34d7 3
arsenalist 0:f4e449fa34d7 4 #include "mbed.h"
arsenalist 0:f4e449fa34d7 5 #include "espduino.h" //wifi mqtt
arsenalist 0:f4e449fa34d7 6 #include "mqtt.h" //wifi mqtt
arsenalist 0:f4e449fa34d7 7 #include "rest.h" //wifi rest
arsenalist 0:f4e449fa34d7 8 #include "MQTTClient.h" //eth mqtt
arsenalist 0:f4e449fa34d7 9 #include "MQTTEthernet.h" //eth mqtt
arsenalist 0:f4e449fa34d7 10 #include "MbedJSONValue.h" //json
arsenalist 0:f4e449fa34d7 11 #include "SDFileSystem.h" //sd card
arsenalist 0:f4e449fa34d7 12 #include "Crypto.h" //hash calculation
arsenalist 0:f4e449fa34d7 13 #include "cmsis_os.h" //threads
arsenalist 0:f4e449fa34d7 14 #include "ade7758.h" //ade7758
arsenalist 0:f4e449fa34d7 15 #include <string>
arsenalist 0:f4e449fa34d7 16
arsenalist 0:f4e449fa34d7 17 //platform
arsenalist 0:f4e449fa34d7 18 #if defined TARGET_NUCLEO_F103RB
arsenalist 0:f4e449fa34d7 19 #define BASE_ADDR 0x1FFFF7E8
arsenalist 0:f4e449fa34d7 20 #elif defined TARGET_NUCLEO_F401RE
arsenalist 0:f4e449fa34d7 21 #define BASE_ADDR 0x1FFF7A10
arsenalist 0:f4e449fa34d7 22 #endif
arsenalist 0:f4e449fa34d7 23
arsenalist 0:f4e449fa34d7 24 //mode
arsenalist 0:f4e449fa34d7 25 #define MODE_WIFI_CONFIG 0x00 //wifi config
arsenalist 0:f4e449fa34d7 26 #define MODE_SETTINGS 0x01 //settings
arsenalist 0:f4e449fa34d7 27 #define MODE_REGISTER 0x02 //registration
arsenalist 0:f4e449fa34d7 28 #define MODE_OPERATION 0x03 //operational
arsenalist 0:f4e449fa34d7 29 #define MODE_FIRMWARE_DOWNLOAD 0x04 //firmware download
arsenalist 0:f4e449fa34d7 30
arsenalist 0:f4e449fa34d7 31 //interface
arsenalist 0:f4e449fa34d7 32 #define IF_WIFI 0x00
arsenalist 0:f4e449fa34d7 33 #define IF_ETH 0x01
arsenalist 0:f4e449fa34d7 34 #define IF_GPRS 0x02
arsenalist 0:f4e449fa34d7 35
arsenalist 0:f4e449fa34d7 36 //wifi
arsenalist 0:f4e449fa34d7 37 #define ESP_CH_PD PA_4
arsenalist 0:f4e449fa34d7 38 #define ESP_BAUD 19200
arsenalist 0:f4e449fa34d7 39
arsenalist 0:f4e449fa34d7 40 //mqtt
arsenalist 0:f4e449fa34d7 41 #define MQTT_MAX_PACKET_SIZE 250 //for eth
arsenalist 0:f4e449fa34d7 42 //#define MQTT_HOST "q.thingfabric.com"
arsenalist 0:f4e449fa34d7 43 #define MQTT_HOST "192.168.131.200"
arsenalist 0:f4e449fa34d7 44 #define MQTT_PORT 1883
arsenalist 0:f4e449fa34d7 45
arsenalist 0:f4e449fa34d7 46 //eth rest
arsenalist 0:f4e449fa34d7 47 #define SERVER_PORT 80
arsenalist 0:f4e449fa34d7 48
arsenalist 0:f4e449fa34d7 49 //node remote
arsenalist 0:f4e449fa34d7 50 #define REMOTE_TCP_PORT 16038
arsenalist 0:f4e449fa34d7 51
arsenalist 0:f4e449fa34d7 52 //emma server
arsenalist 0:f4e449fa34d7 53 #define EMMA_SERVER_HOST "192.168.131.200"
arsenalist 0:f4e449fa34d7 54 #define EMMA_SERVER_PORT 8080
arsenalist 0:f4e449fa34d7 55
arsenalist 0:f4e449fa34d7 56 //ade7758 offset
arsenalist 0:f4e449fa34d7 57 #define AIRMSOFFSET 0xFB1
arsenalist 0:f4e449fa34d7 58 #define BIRMSOFFSET 0xFB0
arsenalist 0:f4e449fa34d7 59 #define CIRMSOFFSET 0xFB1
arsenalist 0:f4e449fa34d7 60 #define AVRMSOFFSET 0xFFB
arsenalist 0:f4e449fa34d7 61 #define BVRMSOFFSET 0x2
arsenalist 0:f4e449fa34d7 62 #define CVRMSOFFSET 0xFFF
arsenalist 0:f4e449fa34d7 63
arsenalist 0:f4e449fa34d7 64 /*start emma mode*/
arsenalist 0:f4e449fa34d7 65 void emmaInit(void);
arsenalist 0:f4e449fa34d7 66 void emmaModeWiFiConfig(void);
arsenalist 0:f4e449fa34d7 67 void emmaModeSettings(void);
arsenalist 0:f4e449fa34d7 68 void emmaModeRegister(void);
arsenalist 0:f4e449fa34d7 69 void emmaModeOperation(void);
arsenalist 0:f4e449fa34d7 70 void emmaModeFirmwareDownload(void);
arsenalist 0:f4e449fa34d7 71 /*end emma mode*/
arsenalist 0:f4e449fa34d7 72
arsenalist 0:f4e449fa34d7 73 /*start energyThread*/
arsenalist 0:f4e449fa34d7 74 void energyThread(void const*);
arsenalist 0:f4e449fa34d7 75 /*end energyThread*/
arsenalist 0:f4e449fa34d7 76
arsenalist 0:f4e449fa34d7 77 /*start wifi mqtt*/
arsenalist 0:f4e449fa34d7 78 void wifiCb(void* response);
arsenalist 0:f4e449fa34d7 79 void mqttConnected(void* response);
arsenalist 0:f4e449fa34d7 80 void mqttDisconnected(void* response);
arsenalist 0:f4e449fa34d7 81 void mqttData(void* response);
arsenalist 0:f4e449fa34d7 82 void mqttPublished(void* response);
arsenalist 0:f4e449fa34d7 83 /*end wifi mqtt*/
arsenalist 0:f4e449fa34d7 84
arsenalist 0:f4e449fa34d7 85 /*start wifi rest*/
arsenalist 0:f4e449fa34d7 86 void restWifiCb(void* response);
arsenalist 0:f4e449fa34d7 87 /*end wifi rest*/
arsenalist 0:f4e449fa34d7 88
arsenalist 0:f4e449fa34d7 89 /*start eth mqtt*/
arsenalist 0:f4e449fa34d7 90 void ethMQTTMessageArrived(MQTT::MessageData& md);
arsenalist 0:f4e449fa34d7 91 int ethMQTTConnect(MQTT::Client<MQTTEthernet, Countdown, MQTT_MAX_PACKET_SIZE>* client, MQTTEthernet* ipstack);
arsenalist 0:f4e449fa34d7 92 void ethMQTTAttemptConnect(MQTT::Client<MQTTEthernet, Countdown, MQTT_MAX_PACKET_SIZE>* client, MQTTEthernet* ipstack);
arsenalist 0:f4e449fa34d7 93 /*end eth mqtt*/
arsenalist 0:f4e449fa34d7 94
arsenalist 0:f4e449fa34d7 95 /*start emma settings*/
arsenalist 0:f4e449fa34d7 96 string getUID(void);
arsenalist 0:f4e449fa34d7 97 string readSetting(string parameter);
arsenalist 0:f4e449fa34d7 98 bool writeSetting(string parameter, string value);
arsenalist 0:f4e449fa34d7 99 /*end emma settings*/
arsenalist 0:f4e449fa34d7 100
arsenalist 0:f4e449fa34d7 101 /*start nodes*/
arsenalist 0:f4e449fa34d7 102 string readNodeIP(string macAddr);
arsenalist 0:f4e449fa34d7 103 string readNodeCmd(string dType, string cmd);
arsenalist 0:f4e449fa34d7 104 string *readNodeList(void);
arsenalist 0:f4e449fa34d7 105 string wifiGetNodeTemp(string macAddr);
arsenalist 0:f4e449fa34d7 106 /*end nodes*/
arsenalist 0:f4e449fa34d7 107
arsenalist 0:f4e449fa34d7 108 /*start emma connection function*/
arsenalist 0:f4e449fa34d7 109 string ethGET(string host, int port, string data);
arsenalist 0:f4e449fa34d7 110 /*end emma connection function*/
arsenalist 0:f4e449fa34d7 111
arsenalist 0:f4e449fa34d7 112 /*start emma private function*/
arsenalist 0:f4e449fa34d7 113 void connectedIface(void);
arsenalist 0:f4e449fa34d7 114 void addChar(char *s, char c);
arsenalist 0:f4e449fa34d7 115 void rcvReply(char *r, int to);
arsenalist 0:f4e449fa34d7 116 string calculateMD5(string text);
arsenalist 0:f4e449fa34d7 117 bool writeFirmwareHexToChar(string value);
arsenalist 0:f4e449fa34d7 118 bool clearFirmware(void);
arsenalist 0:f4e449fa34d7 119 /*end emma private function*/
arsenalist 0:f4e449fa34d7 120
arsenalist 0:f4e449fa34d7 121 #endif