#include "StdAfx.h"
|
#include "LensChangeControl_LinearTurret.h"
|
#include "CommThread.h"
|
|
#define X20_POS 3
|
#define X10_POS 4
|
#define X05_POS 2
|
#define X02_POS 1
|
|
CLensChangeControl_LinearTurret::CLensChangeControl_LinearTurret(int nIndex) : CLensChangeControl(nIndex)
|
{
|
m_nCurrentValue = -1;
|
}
|
|
CLensChangeControl_LinearTurret::~CLensChangeControl_LinearTurret(void)
|
{
|
|
}
|
|
BOOL CLensChangeControl_LinearTurret::Connect(const CLensChangeControlInfo& controlInfo)
|
{
|
m_ControlInfo = controlInfo;
|
|
int nPort = _ttoi(controlInfo.GetConnectionPort());
|
if (nPort<0) return FALSE;
|
|
CString strProt = _T("");
|
strProt.Format(_T("COM%d"), nPort);
|
|
if (Open(strProt,NULL) != ERROR_SUCCESS)
|
{
|
m_bConnected = FALSE;
|
return false;
|
}
|
// Setup(CSerial::EBaud9600,CSerial::EData8,CSerial::EParNone,CSerial::EStop1);
|
Setup(CSerial::EBaud19200,CSerial::EData8,CSerial::EParNone,CSerial::EStop1);
|
SetupHandshaking(CSerial::EHandshakeOff);
|
|
char strData[10];
|
m_bConnected = TRUE;
|
sprintf_s(strData, "mo%c", ASCII_CR);
|
|
//if (!SendData(strData, 6)) return FALSE;
|
if (Write(strData, strlen(strData)) != ERROR_SUCCESS) return FALSE;
|
|
::Sleep(50);
|
|
if (strData[3] == '0') // Servo Off À̸é,
|
{
|
GoHoming();
|
Sleep(10000);
|
}
|
|
return m_bConnected;
|
}
|
|
void CLensChangeControl_LinearTurret::Disconnect()
|
{
|
Close();
|
}
|
|
BOOL CLensChangeControl_LinearTurret::SetPosition(int nPos)
|
{
|
if (!m_bConnected) return FALSE;
|
|
int nRealPos = nPos;
|
|
//return SendData(strData, 7);
|
char strData[10];
|
sprintf_s(strData, "xq##t%d%c", nRealPos, ASCII_CR);
|
|
if(Write(strData, strlen(strData)) != ERROR_SUCCESS) return FALSE;
|
|
m_nCurrentValue = nPos;
|
|
return TRUE;
|
}
|
|
BOOL CLensChangeControl_LinearTurret::GetPosition(int& nPos)
|
{
|
if (!m_bConnected) return FALSE;
|
|
nPos = m_nCurrentValue;
|
|
return TRUE;
|
}
|
|
BOOL CLensChangeControl_LinearTurret::GoHoming()
|
{
|
if (!m_bConnected) return FALSE;
|
|
char strData[10];
|
|
sprintf_s(strData, "kl%c", ASCII_CR);
|
//BOOL bResult = SendData(strData, 3);
|
//if(!bResult) return FALSE;
|
if(Write(strData, strlen(strData)) != ERROR_SUCCESS) return FALSE;
|
|
sprintf_s(strData, "xq##gh%c", ASCII_CR);
|
|
//return SendData(strData, 7);
|
if(Write(strData, strlen(strData)) != ERROR_SUCCESS) return FALSE;
|
|
return TRUE;
|
}
|
|
BOOL CLensChangeControl_LinearTurret::Backward()
|
{
|
return FALSE;
|
}
|
|
BOOL CLensChangeControl_LinearTurret::Forward()
|
{
|
return FALSE;
|
}
|