#include "StdAfx.h"
|
#include "CHLightControls/LightControl_PSD1010.h"
|
|
CLightControl_PSD1010::CLightControl_PSD1010(int nIndex) : CLightControl(nIndex)
|
{
|
m_nPortIndex = 1;
|
m_nBaudRate = 9600;
|
m_bConnected = FALSE;
|
|
m_nCurrentValue = 0;
|
m_nCurrentStatus = 0;
|
}
|
|
CLightControl_PSD1010::~CLightControl_PSD1010(void)
|
{
|
Disconnect();
|
}
|
|
|
BOOL CLightControl_PSD1010::Connect(const CLightControlInfo& controlInfo)
|
{
|
m_ControlInfo = controlInfo;
|
|
int nPort = _ttoi(controlInfo.GetConnectionPort());
|
if(nPort < 1) return FALSE;
|
|
CString strProt;
|
strProt.Format(_T("COM%d"), nPort);
|
|
if(Open(strProt, controlInfo.GetBaudRate()) != ERROR_SUCCESS)
|
{
|
m_bConnected = FALSE;
|
return FALSE;
|
}
|
|
m_bConnected = TRUE;
|
m_nPortIndex = nPort;
|
m_nBaudRate = controlInfo.GetBaudRate();
|
|
return TRUE;
|
}
|
|
void CLightControl_PSD1010::Disconnect()
|
{
|
if (!m_bConnected) return;
|
|
m_bConnected = FALSE;
|
|
Close();
|
}
|
|
|
LONG CLightControl_PSD1010::ConnectEx( const CLightControlInfo& controlInfo )
|
{
|
return TRUE;
|
}
|
|
void CLightControl_PSD1010::DisconnectEx()
|
{
|
|
}
|
|
|
BOOL CLightControl_PSD1010::SetLightOn()
|
{
|
if (!m_bConnected) return FALSE;
|
|
return TRUE;
|
}
|
|
BOOL CLightControl_PSD1010::SetLightOff()
|
{
|
if (!m_bConnected) return FALSE;
|
|
return TRUE;
|
}
|
|
BOOL CLightControl_PSD1010::GetLightStatus(int &nValue, int nChannel) const
|
{
|
if (!m_bConnected) return FALSE;
|
|
nValue = m_nCurrentStatus;
|
|
return TRUE;
|
}
|
|
BOOL CLightControl_PSD1010::GetLightLevel(int &nValue, int nChannel) const
|
{
|
if (!m_bConnected) return FALSE;
|
|
nValue = m_nCurrentValue;
|
|
return TRUE;
|
}
|
|
BOOL CLightControl_PSD1010::GetLightLevel(double &dValue, int nChannel) const
|
{
|
if (!m_bConnected) return FALSE;
|
|
dValue = (double)m_nCurrentValue;
|
|
return TRUE;
|
}
|
|
|
BOOL CLightControl_PSD1010::SetLightLevel(int nValue, int nChannel)
|
{
|
if (!m_bConnected) return FALSE;
|
|
char Data[10];
|
|
sprintf_s(Data, "w%03d%c", nValue, ASCII_CR);
|
|
if(Write(Data, strlen(Data)) != ERROR_SUCCESS) return FALSE;
|
|
m_nCurrentValue = atoi(Data);
|
|
return TRUE;
|
// if(SendData(Data, 5))
|
// {
|
// m_nCurrentValue = atoi(Data);
|
// return TRUE;
|
// }
|
// return FALSE;
|
}
|
|
BOOL CLightControl_PSD1010::SetLightLevel(double dValue, int nChannel)
|
{
|
if (!m_bConnected) return FALSE;
|
|
char Data[10];
|
|
sprintf_s(Data, "w%03d%c", (int)dValue, ASCII_CR);
|
|
if(Write(Data, strlen(Data)) != ERROR_SUCCESS) return FALSE;
|
|
m_nCurrentValue = atoi(Data);
|
|
return TRUE;
|
// if(SendData(Data, 5))
|
// {
|
// m_nCurrentValue = atoi(Data);
|
// return TRUE;
|
// }
|
// return FALSE;
|
}
|
|
BOOL CLightControl_PSD1010::SetLightStatus(int nValue, int nChannel)
|
{
|
if (!m_bConnected) return FALSE;
|
|
m_nCurrentStatus = nValue;
|
|
return TRUE;
|
}
|
|
|
|
BOOL CLightControl_PSD1010::SetLightOn(int Channel)
|
{
|
if (!m_bConnected) return FALSE;
|
|
return TRUE;
|
}
|
|
BOOL CLightControl_PSD1010::SetLightOff(int Channel)
|
{
|
if (!m_bConnected) return FALSE;
|
|
return TRUE;
|
}
|
|
BOOL CLightControl_PSD1010::SetLightAllOn()
|
{
|
if (!m_bConnected) return FALSE;
|
|
return TRUE;
|
}
|
|
BOOL CLightControl_PSD1010::SetLightAllOff()
|
{
|
if (!m_bConnected) return FALSE;
|
|
return TRUE;
|
}
|
|
int CLightControl_PSD1010::GetStatus( int& nStatusCode, CString& strStatusMessage )
|
{
|
if (GetConnected()==FALSE)
|
{
|
nStatusCode = LightStatus_NotConnected;
|
strStatusMessage = _T("Not_Connected");
|
return 0;
|
}
|
|
nStatusCode = LightStatus_Connected;
|
strStatusMessage = _T("Connected");
|
|
return 1;
|
}
|