summaryrefslogtreecommitdiff
path: root/tvapi/libtv/tvutils/CSerialCommunication.h (plain)
blob: bd963d313f89dda7c2c99901eb4d4522dd5f330d
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 {
10public:
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
32private:
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