SDC C-Project CF Review 프로그램
LYW
2021-06-09 f143e5ece742a275d1e360c55e829d21e706b26d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#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;
}