#include "StdAfx.h" #include "LensChangeControl_Nikon.h" CLensChangeControl_Nikon::CLensChangeControl_Nikon(int nIndex) : CLensChangeControl(nIndex) { } CLensChangeControl_Nikon::~CLensChangeControl_Nikon(void) { } BOOL CLensChangeControl_Nikon::Connect(const CLensChangeControlInfo& controlInfo) { m_ControlInfo = controlInfo; int nPort = _ttoi(controlInfo.GetConnectionPort()); if (nPort<0) 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; return m_bConnected; } void CLensChangeControl_Nikon::Disconnect() { Close(); } BOOL CLensChangeControl_Nikon::Backward() { if (!m_bConnected) return FALSE; char strData[10]; sprintf_s(strData, "cRCC%c", ASCII_CR); Write(strData, strlen(strData)); //return SendData(strData, 5); if(Write(strData, strlen(strData)) != ERROR_SUCCESS) return FALSE; return TRUE; } BOOL CLensChangeControl_Nikon::Forward() { if (!m_bConnected) return FALSE; char strData[10]; sprintf_s(strData, "cRCW%c", ASCII_CR); //return SendData(strData, 5); if(Write(strData, strlen(strData)) != ERROR_SUCCESS) return FALSE; return TRUE; } BOOL CLensChangeControl_Nikon::SetPosition(int nPos) { if (!m_bConnected) return FALSE; char strData[10]; sprintf_s(strData, "cRDC%d%c", nPos+1, ASCII_CR); //return SendData(strData, 6); if(Write(strData, strlen(strData)) != ERROR_SUCCESS) return FALSE; m_nCurrentValue = nPos; return TRUE; } BOOL CLensChangeControl_Nikon::GetPosition(int& nPos) { if (!m_bConnected) return FALSE; char strData[10], strRecevie[10]; sprintf_s(strData, "rRAR%c", ASCII_CR); //if (!SendData(strData, 5)) return FALSE; if(Write(strData, strlen(strData)) != ERROR_SUCCESS) return FALSE; ::Sleep(50); //ReadDataWaiting(); // int nValue = ReadData(strData, 5 ); // // if (nValue<5) // { // return FALSE; // } if(Read(strData, strlen(strData)) != ERROR_SUCCESS) return FALSE; sprintf_s(strRecevie, "%c", strData[4]); nPos = atoi(strRecevie); return TRUE; } BOOL CLensChangeControl_Nikon::GoHoming() { return TRUE; }