#include "StdAfx.h" #include "CHLightControls/LightControl_ALT_2RSD.h" CLightControl_ALT_2RSD::CLightControl_ALT_2RSD(int nIndex) : CLightControl(nIndex) { m_bConnected = FALSE; m_nPortIndex = 1; m_nBaudRate = EBaud19200; m_nIndex = nIndex; m_bMultiCH = FALSE; m_nCurrentChannel = 0; for (int i=0; i 9) { strProt.Format(_T("\\\\.\\\\COM%d"), nPort); } else { strProt.Format(_T("COM%d"), nPort); } if (Open(strProt,NULL) != ERROR_SUCCESS) { m_bConnected = FALSE; return false; } Setup(CSerial::EBaud19200,CSerial::EData8,CSerial::EParNone,CSerial::EStop1); SetupHandshaking(CSerial::EHandshakeOff); m_nPortIndex = nPort; m_nBaudRate = controlInfo.GetBaudRate(); m_bConnected = TRUE; //Turn On SetLightAllOn(); return TRUE; } void CLightControl_ALT_2RSD::Disconnect() { if (!m_bConnected) return; for (int i=0; i < MAX_CHANNEL; i++) { SetLightLevel(0, i); Sleep(200); } m_bConnected = FALSE; Close(); } LONG CLightControl_ALT_2RSD::ConnectEx( const CLightControlInfo& controlInfo ) { return TRUE; } void CLightControl_ALT_2RSD::DisconnectEx() { } BOOL CLightControl_ALT_2RSD::SetLightStatus(int nValue, int Channel) { if (!m_bConnected) return FALSE; m_nCurrentStatus[MAX_CHANNEL] = nValue; return TRUE; } BOOL CLightControl_ALT_2RSD::GetLightStatus(int &nValue, int Channel) const { if (!m_bConnected) return FALSE; nValue = m_nCurrentStatus[MAX_CHANNEL]; return TRUE; } BOOL CLightControl_ALT_2RSD::GetLightLevel(int &nValue, int Channel) const { if (!m_bConnected) return FALSE; nValue = m_nCurrentValue[MAX_CHANNEL]; return TRUE; } BOOL CLightControl_ALT_2RSD::GetLightLevel(double &dValue, int Channel) const { if (!m_bConnected) return FALSE; dValue = (double)m_nCurrentValue[MAX_CHANNEL]; return TRUE; } BOOL CLightControl_ALT_2RSD::SetLightLevel(int nValue, int nChannel) { if (!m_bConnected) return FALSE; if (nValue<0 || nValue>255) return FALSE; char sendData[50]; memset(&sendData[0],0x00,sizeof(sendData)); sprintf_s(sendData, "L%d%03d%c%c", nChannel, nValue, ASCII_CR, ASCII_LF); if (Write(sendData, strlen(sendData))!=0) { return FALSE; } m_nCurrentValue[MAX_CHANNEL] = nValue; return TRUE; } BOOL CLightControl_ALT_2RSD::SetLightLevel(double dValue, int nChannel) { if (!m_bConnected) return FALSE; return TRUE; } BOOL CLightControl_ALT_2RSD::SetLightOn() { return TRUE; } BOOL CLightControl_ALT_2RSD::SetLightOff() { return TRUE; } BOOL CLightControl_ALT_2RSD::SetLightOn(int Channel) { if (!m_bConnected) return FALSE; char sendData[50]; memset(&sendData[0],0x00,sizeof(sendData)); sprintf_s(sendData, "L%d%03d%c%c", Channel, m_nCurrentValue[MAX_CHANNEL], ASCII_CR, ASCII_LF); //if (Write(sendData, strlen(sendData))!=0) { return FALSE; } if (Write(sendData, 7)!=0) { return FALSE; } return TRUE; } BOOL CLightControl_ALT_2RSD::SetLightOff(int Channel) { if (!m_bConnected) return FALSE; char sendData[50]; memset(&sendData[0],0x00,sizeof(sendData)); sprintf_s(sendData, "L%d%03d%c%c", Channel, 0, ASCII_CR, ASCII_LF); //if (Write(sendData, strlen(sendData))!=0) { return FALSE; } if (Write(sendData, 7)!=0) { return FALSE; } return TRUE; } BOOL CLightControl_ALT_2RSD::SetLightAllOn() { if (!m_bConnected) return FALSE; for (int i=0; i