blob: 15ae451494ae030e6f67ffb28a0554be9398e687
1 | #ifndef __TV_SERIAL_COMMUNICATION_H__ |
2 | #define __TV_SERIAL_COMMUNICATION_H__ |
3 | |
4 | #include "CThread.h" |
5 | #include "CSerialPort.h" |
6 | |
7 | #define CC_MAX_SERIAL_RD_BUF_LEN (1200) |
8 | |
9 | class CSerialCommunication: public CThread |
10 | { |
11 | public: |
12 | CSerialCommunication(); |
13 | ~CSerialCommunication(); |
14 | |
15 | int start(); |
16 | int stop(); |
17 | int OpenModule(int serial_dev_id); |
18 | int CloseModule(); |
19 | int sendData(int data_len, unsigned char data_buf[]); |
20 | |
21 | class ISerialCommunicationObserver |
22 | { |
23 | public: |
24 | ISerialCommunicationObserver() {}; |
25 | virtual ~ISerialCommunicationObserver() {}; |
26 | virtual void onSerialCommunication(int dev_id, int rd_len, unsigned char data_buf[]) {}; |
27 | }; |
28 | |
29 | void setObserver(ISerialCommunicationObserver *pOb) |
30 | { |
31 | mpObserver = pOb; |
32 | }; |
33 | |
34 | private: |
35 | bool threadLoop(); |
36 | |
37 | int mState; |
38 | ISerialCommunicationObserver *mpObserver; |
39 | CSerialPort mSerialPort; |
40 | |
41 | char mFileName[CC_MAX_FILE_PATH_LEN]; |
42 | unsigned char mDataBuf[CC_MAX_SERIAL_RD_BUF_LEN]; |
43 | |
44 | enum SerialCommunicationState { |
45 | STATE_STOPED = 0, |
46 | STATE_RUNNING, |
47 | }; |
48 | }; |
49 | |
50 | #endif //__TV_SERIAL_COMMUNICATION_H__ |
51 |