Files

83 lines
3.2 KiB
C++

#ifndef HSI_ILLUMINATION_INCLUDED_
#define HSI_ILLUMINATION_INCLUDED_
#pragma once
class HSI_Illumination :public HSI
{
public:
HSI_Illumination();
~HSI_Illumination();
HSI_STATUS IsSupported(UINT &Types);
virtual HSI_STATUS Startup(HWND _hWnd, bool bOfflineOnly);
HSI_STATUS GetLampCount(int &nLamps);
HSI_STATUS GetLampInfo(int& _LampInfo, int& _NumLamps, int(*_LampsType)[HSI_ILLUMINATION_MAX_BULB_TYPE],
int *NumRings, int *NumSectors, int* _Color, double *_Angle, bool &bCanBeCalibrated);
HSI_STATUS GetLampState(int nLamp, bool *bBulbStates, double *Intensities, int &Color, double &Angle);
HSI_STATUS SetLampState(int nLamp, bool *bBulbStates, double *Intensities, int Color, double Angle, bool bWait);
HSI_STATUS SetSelectedIndex(int index);
HSI_STATUS GetLampStateAll(int _LampInfo, int _NumLamps, int(*_LampsType)[HSI_ILLUMINATION_MAX_BULB_TYPE], int(*bBulbStates)[HSI_ILLUMINATION_MAX_BULBS], double(*Intensities)[HSI_ILLUMINATION_MAX_BULBS]);
HSI_STATUS SetLampStateAll(int _LampInfo, int _NumLamps, int(*_LampsType)[HSI_ILLUMINATION_MAX_BULB_TYPE], int(*bBulbStates)[HSI_ILLUMINATION_MAX_BULBS], double(*Intensities)[HSI_ILLUMINATION_MAX_BULBS], bool bWait);
void TestSELight(bool flag);
virtual HSI_STATUS Shutdown();
private:
VOID EventCallback(sHSIEventProperties& sEventProp);
CPSerial m_SO7_SerialA;
CPSerial m_SO7_SerialB;
int m_iIlluminationType;
int m_iBuadRate;
int m_iSleepTime;
int m_iSo7DoubleSurface;
int m_iMinRings;
int m_iMaxRings;
int m_iMinSectors;
int m_iMaxSectors;
int m_iSelectedIndex;
byte m_cSendData[64];
int m_dIntensity[60];
BOOL m_bRS232AOpened;
BOOL m_bRS232BOpened;
BOOL SetLampState_So7I(int _NumLamps, int(*_LampsType)[HSI_ILLUMINATION_MAX_BULB_TYPE], int(*bBulbStates)[HSI_ILLUMINATION_MAX_BULBS], double(*Intensities)[HSI_ILLUMINATION_MAX_BULBS], bool bWait);
BOOL SetLampState_So7II(int _NumLamps, int(*_LampsType)[HSI_ILLUMINATION_MAX_BULB_TYPE], int(*bBulbStates)[HSI_ILLUMINATION_MAX_BULBS], double(*Intensities)[HSI_ILLUMINATION_MAX_BULBS], bool bWait);
BOOL SetLampState_So7III(int _NumLamps, int(*_LampsType)[HSI_ILLUMINATION_MAX_BULB_TYPE], int(*bBulbStates)[HSI_ILLUMINATION_MAX_BULBS], double(*Intensities)[HSI_ILLUMINATION_MAX_BULBS], bool bWait);
BOOL SetLampState_So7IIII(int _NumLamps, int(*_LampsType)[HSI_ILLUMINATION_MAX_BULB_TYPE], int(*bBulbStates)[HSI_ILLUMINATION_MAX_BULBS], double(*Intensities)[HSI_ILLUMINATION_MAX_BULBS], bool bWait);
BOOL _SendA_Command(const char* _SendData, DWORD _SendDataLength);
BOOL So7LightII_set_light_off();
BOOL So7LightIII_set_light_off();
char m_RecvData[MAX_RECIEVE_BUFFER_SIZE];
DWORD m_RecvDataSize;
void CreateDirectorySO(CString directoryLog);
void DebugLog(CString strlog);
//STM32 usb控制
bool m_bSTM32UsbFlag;
HANDLE m_DeviceHandle;
HANDLE m_hEventObject;
HANDLE m_hDevInfo;
GUID m_HidGuid;
OVERLAPPED m_HIDOverlapped;
ULONG m_Length;
bool m_MyDeviceDetected = FALSE;
CString m_MyDevicePathName;
HANDLE m_ReadHandle;
ULONG m_Required;
HANDLE m_WriteHandle;
int m_VendorID = 0;
int m_ProductID = 0;
bool FindTheHID();
void CloseHandles();
void RegisterForDeviceNotifications();
void GetDeviceCapabilities();
void PrepareForOverlappedTransfer();
};
extern HSI_Illumination *g_pHSI_Illumination;
#endif