emma controller code in production board v1

Dependencies:   ADE7758_v1 Crypto DHT11 MQTT MbedJSONValueEmma SDFileSystem TFT_ILI9341 SWSPI SetRTC TFT_fonts Touch W5500Interface mbed-rtos mbed-src SoftSerial

Fork of emma_controller_energy by Emma

Committer:
arsenalist
Date:
Fri Aug 07 07:40:23 2015 +0000
Revision:
31:e2abded4d85f
Parent:
30:08d290158fa7
Child:
32:78633fb9b2a1
Add auto select to mode operation.

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 12:96f637ed37f9 5 #include "espduino.h" //wifi mqtt
arsenalist 12:96f637ed37f9 6 #include "mqtt.h" //wifi mqtt
arsenalist 12:96f637ed37f9 7 #include "rest.h" //wifi rest
arsenalist 12:96f637ed37f9 8 #include "MQTTClient.h" //eth mqtt
arsenalist 12:96f637ed37f9 9 #include "MQTTEthernet.h" //eth mqtt
arsenalist 12:96f637ed37f9 10 #include "MbedJSONValue.h" //json
arsenalist 12:96f637ed37f9 11 #include "SDFileSystem.h" //sd card
arsenalist 12:96f637ed37f9 12 #include "Crypto.h" //hash calculation
arsenalist 12:96f637ed37f9 13 #include "cmsis_os.h" //threads
arsenalist 12:96f637ed37f9 14 #include "ade7758.h" //ade7758
arsenalist 12:96f637ed37f9 15 #include "SPI_TFT_ILI9341.h" //lcd
arsenalist 12:96f637ed37f9 16 #include "Touch.h" //touch
arsenalist 12:96f637ed37f9 17 #include "Arial12x12.h" //font
arsenalist 14:8287f0f5d987 18 #include "SetRTC.h" //rtc
arsenalist 21:33bd8b82560f 19 #include "DHT11.h" //dht11
arsenalist 0:f4e449fa34d7 20 #include <string>
arsenalist 0:f4e449fa34d7 21
arsenalist 0:f4e449fa34d7 22 //platform
arsenalist 0:f4e449fa34d7 23 #if defined TARGET_NUCLEO_F103RB
arsenalist 0:f4e449fa34d7 24 #define BASE_ADDR 0x1FFFF7E8
arsenalist 0:f4e449fa34d7 25 #elif defined TARGET_NUCLEO_F401RE
arsenalist 0:f4e449fa34d7 26 #define BASE_ADDR 0x1FFF7A10
arsenalist 0:f4e449fa34d7 27 #endif
arsenalist 0:f4e449fa34d7 28
arsenalist 0:f4e449fa34d7 29 //mode
arsenalist 0:f4e449fa34d7 30 #define MODE_WIFI_CONFIG 0x00 //wifi config
arsenalist 0:f4e449fa34d7 31 #define MODE_SETTINGS 0x01 //settings
arsenalist 0:f4e449fa34d7 32 #define MODE_REGISTER 0x02 //registration
arsenalist 0:f4e449fa34d7 33 #define MODE_OPERATION 0x03 //operational
arsenalist 0:f4e449fa34d7 34 #define MODE_FIRMWARE_DOWNLOAD 0x04 //firmware download
arsenalist 0:f4e449fa34d7 35
arsenalist 0:f4e449fa34d7 36 //interface
arsenalist 0:f4e449fa34d7 37 #define IF_WIFI 0x00
arsenalist 0:f4e449fa34d7 38 #define IF_ETH 0x01
arsenalist 0:f4e449fa34d7 39 #define IF_GPRS 0x02
arsenalist 0:f4e449fa34d7 40
arsenalist 0:f4e449fa34d7 41 //wifi
arsenalist 0:f4e449fa34d7 42 #define ESP_BAUD 19200
arsenalist 0:f4e449fa34d7 43
arsenalist 0:f4e449fa34d7 44 //mqtt
arsenalist 0:f4e449fa34d7 45 #define MQTT_MAX_PACKET_SIZE 250 //for eth
arsenalist 29:4d94a03d38e0 46 //#define MQTT_HOST "192.168.131.200"
arsenalist 29:4d94a03d38e0 47 #define MQTT_HOST "36.80.35.8"
arsenalist 0:f4e449fa34d7 48 #define MQTT_PORT 1883
arsenalist 0:f4e449fa34d7 49
arsenalist 0:f4e449fa34d7 50 //eth rest
arsenalist 0:f4e449fa34d7 51 #define SERVER_PORT 80
arsenalist 0:f4e449fa34d7 52
arsenalist 4:76ab12e2f8a3 53 //nodes and remote
arsenalist 0:f4e449fa34d7 54 #define REMOTE_TCP_PORT 16038
arsenalist 4:76ab12e2f8a3 55 #define NODES_MAX 5
arsenalist 4:76ab12e2f8a3 56 #define NODES_INVALID 99
arsenalist 0:f4e449fa34d7 57
arsenalist 0:f4e449fa34d7 58 //emma server
arsenalist 29:4d94a03d38e0 59 //#define EMMA_SERVER_HOST "192.168.131.200"
arsenalist 29:4d94a03d38e0 60 #define EMMA_SERVER_HOST "36.80.35.8"
arsenalist 0:f4e449fa34d7 61 #define EMMA_SERVER_PORT 8080
arsenalist 0:f4e449fa34d7 62
arsenalist 0:f4e449fa34d7 63 //ade7758 offset
arsenalist 0:f4e449fa34d7 64 #define AIRMSOFFSET 0xFB1
arsenalist 0:f4e449fa34d7 65 #define BIRMSOFFSET 0xFB0
arsenalist 0:f4e449fa34d7 66 #define CIRMSOFFSET 0xFB1
arsenalist 0:f4e449fa34d7 67 #define AVRMSOFFSET 0xFFB
arsenalist 0:f4e449fa34d7 68 #define BVRMSOFFSET 0x2
arsenalist 0:f4e449fa34d7 69 #define CVRMSOFFSET 0xFFF
arsenalist 0:f4e449fa34d7 70
arsenalist 4:76ab12e2f8a3 71 //threshold
arsenalist 4:76ab12e2f8a3 72 #define VRMSTHRESHOLD 250
arsenalist 25:36c6a5db50ed 73 #define WATTTHRESHOLD 10000
arsenalist 4:76ab12e2f8a3 74
arsenalist 12:96f637ed37f9 75 /*start lcd and touch*/
arsenalist 12:96f637ed37f9 76 int emmaModeSelection(void);
arsenalist 12:96f637ed37f9 77 /*end lcd and touch*/
arsenalist 12:96f637ed37f9 78
arsenalist 31:e2abded4d85f 79 /*start emma read settings*/
arsenalist 31:e2abded4d85f 80 void emmaReadSettings(void);
arsenalist 31:e2abded4d85f 81 /*end emma read settings*/
arsenalist 31:e2abded4d85f 82
arsenalist 0:f4e449fa34d7 83 /*start emma mode*/
arsenalist 12:96f637ed37f9 84 void emmaInit(int mode);
arsenalist 0:f4e449fa34d7 85 void emmaModeWiFiConfig(void);
arsenalist 0:f4e449fa34d7 86 void emmaModeSettings(void);
arsenalist 0:f4e449fa34d7 87 void emmaModeRegister(void);
arsenalist 0:f4e449fa34d7 88 void emmaModeOperation(void);
arsenalist 0:f4e449fa34d7 89 void emmaModeFirmwareDownload(void);
arsenalist 0:f4e449fa34d7 90 /*end emma mode*/
arsenalist 0:f4e449fa34d7 91
arsenalist 4:76ab12e2f8a3 92 /*start energy related*/
arsenalist 0:f4e449fa34d7 93 void energyThread(void const*);
arsenalist 21:33bd8b82560f 94 void checkVoltagePower(void);
arsenalist 4:76ab12e2f8a3 95 /*end energy related*/
arsenalist 0:f4e449fa34d7 96
arsenalist 0:f4e449fa34d7 97 /*start wifi mqtt*/
arsenalist 0:f4e449fa34d7 98 void mqttConnected(void* response);
arsenalist 0:f4e449fa34d7 99 void mqttDisconnected(void* response);
arsenalist 0:f4e449fa34d7 100 /*end wifi mqtt*/
arsenalist 0:f4e449fa34d7 101
arsenalist 0:f4e449fa34d7 102 /*start wifi rest*/
arsenalist 27:562a95c120cc 103 void wifiCb(void* response);
arsenalist 4:76ab12e2f8a3 104 void rxInterrupt(void);
arsenalist 4:76ab12e2f8a3 105 void checkRxBuffer(void);
arsenalist 0:f4e449fa34d7 106 /*end wifi rest*/
arsenalist 0:f4e449fa34d7 107
arsenalist 0:f4e449fa34d7 108 /*start eth mqtt*/
arsenalist 0:f4e449fa34d7 109 void ethMQTTMessageArrived(MQTT::MessageData& md);
arsenalist 0:f4e449fa34d7 110 int ethMQTTConnect(MQTT::Client<MQTTEthernet, Countdown, MQTT_MAX_PACKET_SIZE>* client, MQTTEthernet* ipstack);
arsenalist 0:f4e449fa34d7 111 void ethMQTTAttemptConnect(MQTT::Client<MQTTEthernet, Countdown, MQTT_MAX_PACKET_SIZE>* client, MQTTEthernet* ipstack);
arsenalist 0:f4e449fa34d7 112 /*end eth mqtt*/
arsenalist 0:f4e449fa34d7 113
arsenalist 0:f4e449fa34d7 114 /*start emma settings*/
arsenalist 0:f4e449fa34d7 115 string getUID(void);
arsenalist 0:f4e449fa34d7 116 string readSetting(string parameter);
arsenalist 0:f4e449fa34d7 117 bool writeSetting(string parameter, string value);
arsenalist 0:f4e449fa34d7 118 /*end emma settings*/
arsenalist 0:f4e449fa34d7 119
arsenalist 0:f4e449fa34d7 120 /*start nodes*/
arsenalist 0:f4e449fa34d7 121 string readNodeIP(string macAddr);
arsenalist 0:f4e449fa34d7 122 string readNodeCmd(string dType, string cmd);
arsenalist 0:f4e449fa34d7 123 string *readNodeList(void);
arsenalist 0:f4e449fa34d7 124 string wifiGetNodeTemp(string macAddr);
arsenalist 0:f4e449fa34d7 125 /*end nodes*/
arsenalist 0:f4e449fa34d7 126
arsenalist 0:f4e449fa34d7 127 /*start emma connection function*/
arsenalist 0:f4e449fa34d7 128 string ethGET(string host, int port, string data);
arsenalist 0:f4e449fa34d7 129 /*end emma connection function*/
arsenalist 0:f4e449fa34d7 130
arsenalist 0:f4e449fa34d7 131 /*start emma private function*/
arsenalist 8:51a0ca9079ca 132 //void connectedIface(void);
arsenalist 8:51a0ca9079ca 133 void isEthAvailable(void);
arsenalist 8:51a0ca9079ca 134 void isEthConnected(void);
arsenalist 8:51a0ca9079ca 135 void isWiFiConnected(void);
arsenalist 8:51a0ca9079ca 136 void isGprsConnected(void);
arsenalist 0:f4e449fa34d7 137 void addChar(char *s, char c);
arsenalist 0:f4e449fa34d7 138 void rcvReply(char *r, int to);
arsenalist 0:f4e449fa34d7 139 string calculateMD5(string text);
arsenalist 0:f4e449fa34d7 140 bool writeFirmwareHexToChar(string value);
arsenalist 0:f4e449fa34d7 141 bool clearFirmware(void);
arsenalist 27:562a95c120cc 142 bool writeLog(string logTime, string logData);
arsenalist 30:08d290158fa7 143 bool writeDbg(string dbgTime, string dbgData);
arsenalist 0:f4e449fa34d7 144 /*end emma private function*/
arsenalist 0:f4e449fa34d7 145
arsenalist 0:f4e449fa34d7 146 #endif