-
Notifications
You must be signed in to change notification settings - Fork 0
/
ComHandler.h
68 lines (61 loc) · 1.42 KB
/
ComHandler.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#ifndef COM_HANDLER_H
#define COM_HANDLER_H
#include "MyThread.h"
#include "PyrnUSBModem.h"
#include "HTTPClient.h"
#include "MyCallBack.h"
#include "Configs.h"
#include "storageBase.h"
#include "sd.h"
#define XFER_BUFF_SZ 512
typedef struct _SizedData {
uint16_t sz;
char data[];
} SizedData;
class ComHandler: public MyThread {
public:
typedef enum _transferType {
TT_ASAP,
TT_HALF,
TT_ALMOST_FULL,
} transferType;
protected:
typedef struct _frameHdr {
char imei[15];
char idCfg[40];
uint32_t time;
char newSess;
//char cframe; // CurrentFrame
//char tframe; // TotalFrame
}__attribute__((packed)) frameHdr;
transferType tt;
bool first;
MyCallBack *cb;
frameHdr hdr;
Mutex BuffMtx;
char *TXBuff;
char RXBuff[XFER_BUFF_SZ];
//char XFerBuff[XFER_BUFF_SZ];
uint16_t currLen;
uint16_t maxLen;
HTTPClient http;
int dataSz;
ramCircBuff dataStorage;
//sdCircBuff dataStorage;
public:
ComHandler(MyCallBack *callback,
const char*idProduct,
ComHandler::transferType ltt = TT_HALF,
unsigned char *sp = NULL,
unsigned int sSz = 0,
char *pTXBuff = NULL,
uint16_t maxBuff = 0);
virtual void SetTransferType(ComHandler::transferType ltt);
virtual bool NeedTransfer(void);
virtual void Main(void);
virtual void DoServerRequest(void);
virtual bool AddResults(uint8_t SensorType, char *data, uint16_t len);
virtual void FillHeader();
virtual void setIdConfig(char* id);
};
#endif