#include "StdAfx.h"
|
#include "VcrControl_CodeImageV5111N.h"
|
|
|
CVcrControl_CodeImageV5111N::CVcrControl_CodeImageV5111N(int nIndex) : CVcrControl(nIndex)
|
{
|
m_nIndex = nIndex;
|
m_nPortIndex = 1;
|
m_nBaudRate = CBR_9600;
|
m_bConnected = FALSE;
|
}
|
|
CVcrControl_CodeImageV5111N::~CVcrControl_CodeImageV5111N(void)
|
{
|
Disconnect();
|
}
|
|
BOOL CVcrControl_CodeImageV5111N::Connect(const CVcrControlInfo& controlInfo)
|
{
|
m_ControlInfo = controlInfo;
|
|
if (m_ControlInfo.GetConnectionPort().GetLength()==0) return FALSE;
|
|
int nPort = _ttoi(controlInfo.GetConnectionPort());
|
if(nPort < 1) return FALSE;
|
|
if(IsOpen()) Close();
|
CString strProt = _T("");
|
|
if(nPort > 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((EBaudrate)controlInfo.GetBaudRate(), CSerial::EData8, CSerial::EParNone, CSerial::EStop1);
|
SetupHandshaking(CSerial::EHandshakeOff);
|
|
m_nPortIndex = nPort;
|
m_nBaudRate = controlInfo.GetBaudRate();
|
m_bConnected = TRUE;
|
|
return TRUE;
|
}
|
|
void CVcrControl_CodeImageV5111N::Disconnect()
|
{
|
if (!m_bConnected) return;
|
|
Close();
|
|
m_bConnected = FALSE;
|
}
|
|
BOOL CVcrControl_CodeImageV5111N::GetDecodeStatus(BOOL &bValue)
|
{
|
if (!m_bConnected) return FALSE;
|
|
bValue = m_bDecode;
|
|
return TRUE;
|
}
|
|
BOOL CVcrControl_CodeImageV5111N::GetDecodeData(CString &strValue)
|
{
|
if (!m_bConnected) return FALSE;
|
|
strValue = m_strDecodeData.GetString();
|
|
return TRUE;
|
}
|
|
BOOL CVcrControl_CodeImageV5111N::GetReadSize(int &readSize)
|
{
|
if (!m_bConnected) return FALSE;
|
|
readSize = m_nReadSize;
|
|
return TRUE;
|
}
|
|
BOOL CVcrControl_CodeImageV5111N::DecodeTriggerSignal()
|
{
|
if (!m_bConnected) return FALSE;
|
|
char Data[50];
|
memset(&Data[0],0x00,sizeof(Data));
|
sprintf_s(Data, "%c%c%c%c%c", 0x1B, 0x50, 0x00, 0xFF, 0x0D); // ECS P 00 FF CR
|
|
// Write
|
if (Write(Data, 5)!=0) { return FALSE; }
|
|
// [2017:1:13]-[WEZASW] : ¼ö½ÅºÎ Thread ó¸® °³¼± ¿¹Á¤(Ing)
|
Sleep(1000); // Reading Time Max 1S Delay
|
|
DWORD dwBytesRead = 0;
|
char abBuffer[50] = {0,};
|
TCHAR abwordBuffer[25] = {0,};
|
int count = 50;
|
CString strTemp;
|
do
|
{
|
// Read data from the COM-port
|
Read(abwordBuffer,sizeof(abwordBuffer),&dwBytesRead);
|
|
if (dwBytesRead > 0)
|
{
|
for (DWORD i = 0; i< dwBytesRead/2; i++)
|
{
|
abBuffer[i*2] = (char)(abwordBuffer[i] % 256);
|
abBuffer[i*2+1] = (char)(abwordBuffer[i] / 256);
|
}
|
|
// Only Data Massage
|
switch (abBuffer[0]) // ÆÇÁ¤ ÄÚµå
|
{
|
case 'V': // ÆÇµ¶ ¼º°ø : Return Type¿¡ µû¸¥ ó¸® ÇÊ¿ä.
|
m_strDecodeData.Empty();
|
m_nReadSize = abBuffer[1];
|
for (int i = 0; i< m_nReadSize; i++)
|
{
|
strTemp.Format(_T("%c"), abBuffer[i+3]);
|
m_strDecodeData.AppendFormat(strTemp);
|
}
|
//m_strDecodeData = abBuffer
|
m_bDecode = TRUE;
|
break;
|
|
case 'R':
|
m_bDecode = FALSE;
|
break;
|
}
|
return m_bDecode;
|
}
|
Sleep(1);
|
}
|
while (count-- > 0);
|
|
if (count == 0) return FALSE;
|
else return TRUE;
|
}
|