summaryrefslogtreecommitdiff
path: root/tvapi/libtv/tvutils/CSerialCommunication.h (plain)
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
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 __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
33private:
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