Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: EthernetInterface NTPClient SDFileSystem TextLCD WebSocketClient mbed-rtos mbed Socket lwip-eth lwip-sys lwip FATFileSystem
uplink.h
00001 00002 #ifndef _TapTraqUplink_H 00003 #define _TapTraqUplink_H 00004 00005 #include "Websocket.h" 00006 #include "mbed.h" 00007 #include <string> 00008 00009 #define MAX_NUMBER 10 00010 #define SetupStrSize 100 00011 #define MaxCtrl 10 //max antal ctrl der hænger på en gateway 00012 00013 00014 class TapTraqUplink 00015 { 00016 public: 00017 typedef struct {//Der er en setuprec for hver hane 00018 uint16_t ID, //Hane ID 00019 TabType, //Hane type om det er sodavand eller øl hanne 00020 EscTryk, //mulighed for at hvis man tryker en ekstra gang, vil den stoppe med det samme 00021 FlowEnable, //Hvis der er flowmåler 00022 FlowMode, //0: stop ved flow, 1 fritløb sender ved timeout 2: festival mode sender hvert 10 s 00023 IntervalUpload, //sekunder mellem hver upload 00024 //SmartTab 00025 XLOn, XLPause, XLTopup, 00026 LOn, LPause, LTopup, 00027 MOn, MPause, MTopup, 00028 SOn, SPause, STopup; 00029 } SetupRec; //længde = 43byte 00030 00031 typedef struct {//Der er en 00032 char EUID[17];//uniq 64 identify 00033 char ID; //id internt 00034 } PanIdRec; 00035 00036 //er hvor meget der er kommet igennem hver enkelt hane 00037 /** 00038 * Constructor 00039 * 00040 * @param id Name of the client on the network 00041 * @param ws All communication between clients will be established over this websocket 00042 */ 00043 00044 00045 TapTraqUplink(Websocket *webs) : webs(webs), index(0), index_proc(0) { 00046 std::string path = webs->getPath(); 00047 std::string token = "/"; 00048 size_t found; 00049 found = path.find(token); 00050 if (found != std::string::npos) 00051 found = path.find(token, found + 1); 00052 if (found != std::string::npos) 00053 path = path.substr(found + 1, std::string::npos); 00054 for (char ID=0; ID<MAX_NUMBER; ID++) { 00055 strcpy(PanId[ID].EUID,"0000000000000000"); 00056 PanId[ID].ID=0; 00057 } 00058 // strcpy(my_id, path.c_str()); 00059 }; 00060 //socket del 00061 //sender en flowfram fra en counter til database 00062 void FlowFrame (char *ID,uint8_t TapID, uint32_t Flow, uint32_t Spild, uint16_t Temp, uint16_t Key1,uint16_t Key2,uint16_t Key3,uint16_t Key4); 00063 //Sender et givet setup record til database 00064 void setuprec (char ID, char *node); 00065 //Frame til tank måler 00066 void TankFlowFrame (char *ID, float latitude, float longitude, uint32_t Flow, float Temp); 00067 //Sender gateways ID 00068 void alive(char *p); 00069 00070 //sender ID for en counter tilkoblet gateway 00071 void panlist(char *gateway, char id); 00072 00073 //chekcer for indgående beskeder fra WS 00074 int work(); 00075 char RxStr; 00076 //Modtager setuprecord om gemmer dem på SDkort 00077 void Rxsetuprec(); 00078 //dekode setup record modtaget fra ctrl. Denne sendes i to dele derfor denne opdeling 00079 void RxSetuprec1(char *p,char CtrlNr); 00080 void RxSetuprec2(char *p,char CtrlNr); 00081 00082 //Logger/gemme del 00083 //læser alle setup record ind i hukommelse 00084 void ReadConfig(); 00085 //skriver en default setup for alle 00086 void WriteDefault(void); 00087 //gemmer setuprecords fra hukommelse til SD kort 00088 void SaveConfig(); 00089 //åbner på, hvis ikke den kan finde en opsætning skriver den en default 00090 void iniopen(void); 00091 00092 void SavePanID(); 00093 void ReadPanID(); 00094 00095 SetupRec SetupArr[MAX_NUMBER*MaxCtrl]; 00096 PanIdRec PanId[MaxCtrl]; //10 stik 64 bit Paid 00097 int CheckPan(char *p); 00098 bool AddPan(char *p); 00099 00100 char json_recv[100]; //modtaget data 00101 private: 00102 Websocket * webs; 00103 int index; 00104 int index_proc; 00105 char my_id[20]; 00106 00107 char Confrec[MAX_NUMBER][SetupStrSize]; 00108 }; 00109 00110 00111 00112 00113 #endif
Generated on Tue Jul 12 2022 14:08:00 by
1.7.2