blob: 4f3e2d910e6b4da628b750bd81c157276d0b2780
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 __unused, |
24 | int rd_len __unused, |
25 | unsigned char data_buf[] __unused) { |
26 | }; |
27 | }; |
28 | |
29 | void setObserver(ISerialCommunicationObserver *pOb) { |
30 | mpObserver = pOb; |
31 | }; |
32 | |
33 | private: |
34 | bool threadLoop(); |
35 | |
36 | int mState; |
37 | ISerialCommunicationObserver *mpObserver; |
38 | CSerialPort mSerialPort; |
39 | |
40 | char mFileName[CC_MAX_FILE_PATH_LEN]; |
41 | unsigned char mDataBuf[CC_MAX_SERIAL_RD_BUF_LEN]; |
42 | |
43 | enum SerialCommunicationState { |
44 | STATE_STOPED = 0, |
45 | STATE_RUNNING, |
46 | }; |
47 | }; |
48 | |
49 | #endif //__TV_SERIAL_COMMUNICATION_H__ |
50 |