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:
Thu Oct 01 06:47:14 2015 +0000
Revision:
64:2409502c3e32
Parent:
61:4eda981730ae
Edit to fit display for Emma 3D printing casing.

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 50:50d98fe6cc15 5 #include "espduino.h" //wifi rest and mqtt
arsenalist 50:50d98fe6cc15 6 //#include "mqtt.h" //wifi mqtt
arsenalist 12:96f637ed37f9 7 #include "rest.h" //wifi rest
arsenalist 44:c1d11c491237 8 //#include "MQTTClient.h" //eth mqtt
arsenalist 44:c1d11c491237 9 //#include "MQTTEthernet.h" //eth mqtt
arsenalist 44:c1d11c491237 10 #include "EthernetInterface.h" //eth rest
arsenalist 48:053e92b6dc1e 11 #include "SoftSerial.h" //gprs rest and other software serial
arsenalist 12:96f637ed37f9 12 #include "MbedJSONValue.h" //json
arsenalist 12:96f637ed37f9 13 #include "SDFileSystem.h" //sd card
arsenalist 12:96f637ed37f9 14 #include "Crypto.h" //hash calculation
arsenalist 12:96f637ed37f9 15 #include "cmsis_os.h" //threads
arsenalist 12:96f637ed37f9 16 #include "ade7758.h" //ade7758
arsenalist 12:96f637ed37f9 17 #include "SPI_TFT_ILI9341.h" //lcd
arsenalist 12:96f637ed37f9 18 #include "Touch.h" //touch
arsenalist 12:96f637ed37f9 19 #include "Arial12x12.h" //font
arsenalist 58:5f953f303551 20 #include "Lato19x19.h" //good
arsenalist 58:5f953f303551 21 #include "Lato24x23.h" //good
arsenalist 58:5f953f303551 22 #include "Lato27x27.h" //good
arsenalist 58:5f953f303551 23 #include "LatoBlack34x32.h" //good
arsenalist 58:5f953f303551 24 #include "LatoBlack39x38.h" //good
arsenalist 14:8287f0f5d987 25 #include "SetRTC.h" //rtc
arsenalist 21:33bd8b82560f 26 #include "DHT11.h" //dht11
arsenalist 0:f4e449fa34d7 27 #include <string>
arsenalist 0:f4e449fa34d7 28
arsenalist 0:f4e449fa34d7 29 //platform
arsenalist 0:f4e449fa34d7 30 #if defined TARGET_NUCLEO_F103RB
arsenalist 0:f4e449fa34d7 31 #define BASE_ADDR 0x1FFFF7E8
arsenalist 0:f4e449fa34d7 32 #elif defined TARGET_NUCLEO_F401RE
arsenalist 0:f4e449fa34d7 33 #define BASE_ADDR 0x1FFF7A10
arsenalist 0:f4e449fa34d7 34 #endif
arsenalist 0:f4e449fa34d7 35
arsenalist 0:f4e449fa34d7 36 //mode
arsenalist 0:f4e449fa34d7 37 #define MODE_WIFI_CONFIG 0x00 //wifi config
arsenalist 0:f4e449fa34d7 38 #define MODE_SETTINGS 0x01 //settings
arsenalist 0:f4e449fa34d7 39 #define MODE_REGISTER 0x02 //registration
arsenalist 0:f4e449fa34d7 40 #define MODE_OPERATION 0x03 //operational
arsenalist 0:f4e449fa34d7 41 #define MODE_FIRMWARE_DOWNLOAD 0x04 //firmware download
arsenalist 44:c1d11c491237 42 #define MODE_RESERVED 0x05 //reserved as sandbox
arsenalist 0:f4e449fa34d7 43
arsenalist 0:f4e449fa34d7 44 //interface
arsenalist 0:f4e449fa34d7 45 #define IF_WIFI 0x00
arsenalist 0:f4e449fa34d7 46 #define IF_ETH 0x01
arsenalist 0:f4e449fa34d7 47 #define IF_GPRS 0x02
arsenalist 0:f4e449fa34d7 48
arsenalist 0:f4e449fa34d7 49 //wifi
arsenalist 0:f4e449fa34d7 50 #define ESP_BAUD 19200
arsenalist 0:f4e449fa34d7 51
arsenalist 0:f4e449fa34d7 52 //mqtt
arsenalist 0:f4e449fa34d7 53 #define MQTT_MAX_PACKET_SIZE 250 //for eth
arsenalist 38:e44f35f8129d 54 //#define MQTT_HOST "36.80.35.8"
arsenalist 38:e44f35f8129d 55 //#define MQTT_PORT 1883
arsenalist 0:f4e449fa34d7 56
arsenalist 0:f4e449fa34d7 57 //eth rest
arsenalist 0:f4e449fa34d7 58 #define SERVER_PORT 80
arsenalist 0:f4e449fa34d7 59
arsenalist 4:76ab12e2f8a3 60 //nodes and remote
arsenalist 0:f4e449fa34d7 61 #define REMOTE_TCP_PORT 16038
arsenalist 4:76ab12e2f8a3 62 #define NODES_MAX 5
arsenalist 4:76ab12e2f8a3 63 #define NODES_INVALID 99
arsenalist 0:f4e449fa34d7 64
arsenalist 0:f4e449fa34d7 65 //emma server
arsenalist 38:e44f35f8129d 66 //#define REST_SERVER_HOST "36.80.35.8"
arsenalist 38:e44f35f8129d 67 //#define REST_SERVER_PORT 8080
arsenalist 0:f4e449fa34d7 68
arsenalist 0:f4e449fa34d7 69 //ade7758 offset
arsenalist 0:f4e449fa34d7 70 #define AIRMSOFFSET 0xFB1
arsenalist 0:f4e449fa34d7 71 #define BIRMSOFFSET 0xFB0
arsenalist 0:f4e449fa34d7 72 #define CIRMSOFFSET 0xFB1
arsenalist 0:f4e449fa34d7 73 #define AVRMSOFFSET 0xFFB
arsenalist 0:f4e449fa34d7 74 #define BVRMSOFFSET 0x2
arsenalist 0:f4e449fa34d7 75 #define CVRMSOFFSET 0xFFF
arsenalist 0:f4e449fa34d7 76
arsenalist 58:5f953f303551 77 //threshold //need to be deleted
arsenalist 52:cbe6d1d1efdc 78 #define _vrmsTHL 175
arsenalist 52:cbe6d1d1efdc 79 #define _vrmsTHH 200//265
arsenalist 52:cbe6d1d1efdc 80 #define _wattTHL 26400
arsenalist 52:cbe6d1d1efdc 81 #define _wattTHH 39600
arsenalist 4:76ab12e2f8a3 82
arsenalist 58:5f953f303551 83 //modeCircle
arsenalist 58:5f953f303551 84 #define leftCircle 0
arsenalist 58:5f953f303551 85 #define rightCircle 1
arsenalist 58:5f953f303551 86
arsenalist 12:96f637ed37f9 87 /*start lcd and touch*/
arsenalist 12:96f637ed37f9 88 int emmaModeSelection(void);
arsenalist 12:96f637ed37f9 89 /*end lcd and touch*/
arsenalist 12:96f637ed37f9 90
arsenalist 31:e2abded4d85f 91 /*start emma read settings*/
arsenalist 31:e2abded4d85f 92 void emmaReadSettings(void);
arsenalist 31:e2abded4d85f 93 /*end emma read settings*/
arsenalist 31:e2abded4d85f 94
arsenalist 0:f4e449fa34d7 95 /*start emma mode*/
arsenalist 12:96f637ed37f9 96 void emmaInit(int mode);
arsenalist 0:f4e449fa34d7 97 void emmaModeWiFiConfig(void);
arsenalist 0:f4e449fa34d7 98 void emmaModeSettings(void);
arsenalist 0:f4e449fa34d7 99 void emmaModeRegister(void);
arsenalist 0:f4e449fa34d7 100 void emmaModeOperation(void);
arsenalist 0:f4e449fa34d7 101 void emmaModeFirmwareDownload(void);
arsenalist 44:c1d11c491237 102 void emmaModeReserved(void);
arsenalist 0:f4e449fa34d7 103 /*end emma mode*/
arsenalist 0:f4e449fa34d7 104
arsenalist 4:76ab12e2f8a3 105 /*start energy related*/
arsenalist 0:f4e449fa34d7 106 void energyThread(void const*);
arsenalist 21:33bd8b82560f 107 void checkVoltagePower(void);
arsenalist 4:76ab12e2f8a3 108 /*end energy related*/
arsenalist 0:f4e449fa34d7 109
arsenalist 48:053e92b6dc1e 110 /*start eth mqtt*/
arsenalist 48:053e92b6dc1e 111 //int publish(MQTT::Client<MQTTEthernet, Countdown, MQTT_MAX_PACKET_SIZE>* client, MQTTEthernet* ipstack);
arsenalist 48:053e92b6dc1e 112 //void ethMQTTMessageArrived(MQTT::MessageData& md);
arsenalist 48:053e92b6dc1e 113 //int ethMQTTConnect(MQTT::Client<MQTTEthernet, Countdown, MQTT_MAX_PACKET_SIZE>* client, MQTTEthernet* ipstack);
arsenalist 48:053e92b6dc1e 114 //void ethMQTTAttemptConnect(MQTT::Client<MQTTEthernet, Countdown, MQTT_MAX_PACKET_SIZE>* client, MQTTEthernet* ipstack);
arsenalist 48:053e92b6dc1e 115 /*end eth mqtt*/
arsenalist 48:053e92b6dc1e 116
arsenalist 48:053e92b6dc1e 117 /*start eth rest*/
arsenalist 48:053e92b6dc1e 118 string ethREST(string host, int port, string data);
arsenalist 48:053e92b6dc1e 119 /*end eth rest*/
arsenalist 48:053e92b6dc1e 120
arsenalist 0:f4e449fa34d7 121 /*start wifi mqtt*/
arsenalist 0:f4e449fa34d7 122 void mqttConnected(void* response);
arsenalist 0:f4e449fa34d7 123 void mqttDisconnected(void* response);
arsenalist 0:f4e449fa34d7 124 /*end wifi mqtt*/
arsenalist 0:f4e449fa34d7 125
arsenalist 0:f4e449fa34d7 126 /*start wifi rest*/
arsenalist 27:562a95c120cc 127 void wifiCb(void* response);
arsenalist 4:76ab12e2f8a3 128 void rxInterrupt(void);
arsenalist 4:76ab12e2f8a3 129 void checkRxBuffer(void);
arsenalist 48:053e92b6dc1e 130 void wifiRcvReply(char *r, int to);
arsenalist 0:f4e449fa34d7 131 /*end wifi rest*/
arsenalist 0:f4e449fa34d7 132
arsenalist 48:053e92b6dc1e 133 /*start gprs rest*/
arsenalist 48:053e92b6dc1e 134 void gprsReset(void);
arsenalist 61:4eda981730ae 135 void gprsRxInterrupt(void);
arsenalist 48:053e92b6dc1e 136 string gprsInit(string APN);
arsenalist 61:4eda981730ae 137 string gprsInitAnimate(string APN);
arsenalist 48:053e92b6dc1e 138 string gprsREST(string host, int port, string data);
arsenalist 61:4eda981730ae 139 string gprsRESTAnimate(string host, int port, string data);
arsenalist 48:053e92b6dc1e 140 void gprsRcvReply(char *r, int to);
arsenalist 48:053e92b6dc1e 141 /*end gprs rest*/
arsenalist 0:f4e449fa34d7 142
arsenalist 0:f4e449fa34d7 143 /*start emma settings*/
arsenalist 0:f4e449fa34d7 144 string getUID(void);
arsenalist 0:f4e449fa34d7 145 string readSetting(string parameter);
arsenalist 0:f4e449fa34d7 146 bool writeSetting(string parameter, string value);
arsenalist 0:f4e449fa34d7 147 /*end emma settings*/
arsenalist 0:f4e449fa34d7 148
arsenalist 55:63a616a99c9a 149 /*start emma nodes*/
arsenalist 0:f4e449fa34d7 150 string readNodeIP(string macAddr);
arsenalist 55:63a616a99c9a 151 string readNodeCmd(string dType, string cmdKey);
arsenalist 55:63a616a99c9a 152 bool writeNodeCmd(string dType, string cmdKey, string cmdCode);
arsenalist 55:63a616a99c9a 153 bool isExistNodeCmd(string dType, string cmdKey);
arsenalist 0:f4e449fa34d7 154 string *readNodeList(void);
arsenalist 0:f4e449fa34d7 155 string wifiGetNodeTemp(string macAddr);
arsenalist 55:63a616a99c9a 156 /*end emma nodes*/
arsenalist 0:f4e449fa34d7 157
arsenalist 58:5f953f303551 158 /*start emma lcd*/
arsenalist 58:5f953f303551 159 void lcdDrawSmile(void);
arsenalist 58:5f953f303551 160 void lcdDrawFrown(void);
arsenalist 58:5f953f303551 161 //void lcdPrintRestart(void);
arsenalist 58:5f953f303551 162 /*end emma lcd*/
arsenalist 58:5f953f303551 163
arsenalist 0:f4e449fa34d7 164 /*start emma private function*/
arsenalist 8:51a0ca9079ca 165 void isEthAvailable(void);
arsenalist 8:51a0ca9079ca 166 void isEthConnected(void);
arsenalist 8:51a0ca9079ca 167 void isWiFiConnected(void);
arsenalist 8:51a0ca9079ca 168 void isGprsConnected(void);
arsenalist 0:f4e449fa34d7 169 void addChar(char *s, char c);
arsenalist 0:f4e449fa34d7 170 string calculateMD5(string text);
arsenalist 0:f4e449fa34d7 171 bool writeFirmwareHexToChar(string value);
arsenalist 0:f4e449fa34d7 172 bool clearFirmware(void);
arsenalist 27:562a95c120cc 173 bool writeLog(string logTime, string logData);
arsenalist 30:08d290158fa7 174 bool writeDbg(string dbgTime, string dbgData);
arsenalist 0:f4e449fa34d7 175 /*end emma private function*/
arsenalist 0:f4e449fa34d7 176
arsenalist 0:f4e449fa34d7 177 #endif