blob: d6d67226c575ddd99237db925c714bab0f41e4e1
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 | public: |
11 | CSerialCommunication(); |
12 | ~CSerialCommunication(); |
13 | |
14 | int start(); |
15 | int stop(); |
16 | int OpenModule(int serial_dev_id); |
17 | int CloseModule(); |
18 | int sendData(int data_len, unsigned char data_buf[]); |
19 | |
20 | class ISerialCommunicationObserver { |
21 | public: |
22 | ISerialCommunicationObserver() {}; |
23 | virtual ~ISerialCommunicationObserver() {}; |
24 | virtual void onSerialCommunication(int dev_id, int rd_len, unsigned char data_buf[]) {}; |
25 | }; |
26 | |
27 | void setObserver(ISerialCommunicationObserver *pOb) |
28 | { |
29 | mpObserver = pOb; |
30 | }; |
31 | |
32 | private: |
33 | bool threadLoop(); |
34 | |
35 | int mState; |
36 | ISerialCommunicationObserver *mpObserver; |
37 | CSerialPort mSerialPort; |
38 | |
39 | char mFileName[CC_MAX_FILE_PATH_LEN]; |
40 | unsigned char mDataBuf[CC_MAX_SERIAL_RD_BUF_LEN]; |
41 | |
42 | enum SerialCommunicationState { |
43 | STATE_STOPED = 0, |
44 | STATE_RUNNING, |
45 | }; |
46 | }; |
47 | |
48 | #endif //__TV_SERIAL_COMMUNICATION_H__ |
49 |