summaryrefslogtreecommitdiff
path: root/tvapi/libtv/tvutils/CSerialCommunication.h (plain)
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
9class CSerialCommunication: public CThread
10{
11public:
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
34private:
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