123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- #ifndef __SAT_QUERIER__
- #define __SAT_QUERIER__
- #pragma once
- #include "CritSection.h"
- enum DEVICE_TYPE{
- Virtual,
- Usb,
- Reticle
- };
- // 安卓设备adb连接:USB连接、网线连接;
- typedef struct __ANDROID__
- {
- int nType; // 0=虚拟, 1=usb, 2=网线;
- std::string strName; // 设备名称(IP:端口号);
- /*
- 离线时间,如果离线时间超过10分钟,删除该设备:
- 因为线程会一直尝试连接掉线设备,如果在指定时间内都未连接上,
- 认为设备被拨或IP变了, 只对网线连接Android有效;
- */
- ULONGLONG ulOfflineTime;
- }STAndroid, *pSTAndroid;
- class CSATDevices
- {
- CSATDevices(void);
- public:
- // 单例对象模式;
- static CSATDevices* GetInstance()
- {
- static CSATDevices* pInstance = NULL;
- if ( pInstance == NULL )
- {
- pInstance = new CSATDevices;
- }
- return pInstance;
- }
- ~CSATDevices(void);
- protected:
- // 线程控制句柄;
- HANDLE m_hEvent;
- // 线程句柄;
- HANDLE m_hWorkThread;
- // 是否启动安卓设备;
- static bool s_bEnableAndroid;
- // 离线擦除时长,单位毫秒;
- static ULONGLONG s_ulEraseDuration;
- // 线程锁;
- static ThreadSection s_ThreadSection;
- // 安卓设备列表;
- static std::vector<STAndroid> s_vtAndroids;
- // 其他接口;
- public:
- // 工作开始函数;
- void StartWork();
- // 工作结束函数;
- void EndofWork();
- // 工作线程;
- static DWORD WINAPI WorkThread(LPVOID lpVoid);
- // 添加网线连接设备;
- static void AddReticleDevices(std::string ip);
- // 设备是否存在;
- static bool IsDeviceExist(STAndroid &stAndroid);
- // 设备是否下线;
- static bool IsAndroidOffline(STAndroid &stAndroid, std::vector<STAndroid> &vtAndroids );
- static bool IsAndroidOffline(std::string strAndroidName, std::vector<STAndroid> &vtAndroids );
- // 是否新设备;
- static bool IsNewAndroid(STAndroid &stAndroid);
- // 获取当前设备列表;
- static void GetCurrentDevices(std::vector<STAndroid> &vtAndroids);
- // 重连所有设备;
- static void ReConnectAllDevices();
- };
- #endif // __SAT_QUERIER__
|