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