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