SDC C-Project CF Review 프로그램
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
116
117
#ifndef _MVXLCTCP_H_
#define _MVXLCTCP_H_
 
#include "tcp.h"
#include "mvcp.h"
#include <afxmt.h>
 
using namespace mvsol::protocol;
 
 
#define OVERHEATALARM(alarm,ch)        (((alarm)>>(ch))&0x1)
#define MISSFLASHALARM(alarm,ch)    (((alarm)>>((ch)+6))&0x1)
 
 
namespace mvsol
{
 
    enum ReturnStatus
    {
        kSocketError = -1,
        kAck = 0x00,
        kNack = 0xF1,
        kNotReady,
        kChecksumError,
        kFpgaDataMissmatch,
        kUnknownAddress,
        kFrameError,
        kFlashMissmatch,
        kRangeError,
        kTimeout,
    };
 
    enum TriggerType
    {
        kHardwareTrigger = 0,
        kSoftwareTrigger,
    };
 
 
    class MvxlcTcp : public TcpSocket
    {
    public:
        MvxlcTcp(HWND parent);
        ~MvxlcTcp();
 
    //Á¶¸í Á¦¾î
    //XENON0 ~ XENON5
    //ch: Á¶¸í Ã¤³Î 0~5
    //return value : ReturnStatus Âü°í
    //¿¹)
    //    INT birghtness;
    //    if (GetBrightness(0, &brightness) != mvsol::kAck)
    //    {
    //        TRACE("ERROR");
    //    }
    public:
 
        //Á¶¸í¹à±â°ª ¼³Á¤
        //ch: Ã¤³Î
        //brightness: 0~4095
        INT GetBrightness(INT ch, INT* brightness);
        INT SetBrightness(INT ch, INT brightness);
 
        //Æ®¸®°ÅŸÀÔ ¼³Á¤, Çϵå¿þ¾î Æ®¸®°Å¸¦ »ç¿ëÇÒ °ÇÁö, ¼ÒÇÁÆ®¿þ¾î Æ®¸®°Å¸¦ »ç¿ëÇÒ°ÇÁö
        //type: mvsol::kHardwareTrigger or mvsol::kSoftwareTrigger (0 or 1)
        INT GetTriggerType(INT ch, INT* type);
        INT SetTriggerType(INT ch, INT type);
 
        //¼ÒÇÁÆ®¿þ¾î Æ®¸®°Å On/Off
        //0: Off, 1: On
        INT GetSoftwareTrigger(INT ch, INT* trigger);
        INT SetSoftwareTrigger(INT ch, INT trigger);
 
        //Á֯ļö (Hz)
        //Frequency: 0~200
        INT GetFrequency(INT ch, INT* frequency);
        INT SetFrequency(INT ch, INT frequency);
 
        //Ä«¿îÆ® °ª °¡Á®¿À±â
        INT GetTriggerCount(INT ch, UINT* count);
        INT GetFlashCount(INT ch, UINT* count);
        INT GetMissFlashCount(INT ch, UINT* count);
 
        //Ä«¿îÆ® Å¬¸®¾î
        INT ClearCount(INT ch);
        INT ClearCountAll();
 
        //¾Ë¶÷
        // OVERHEADALARM°ú MISSFLASHALARM ¸ÅÅ©·Î »ç¿ë
        // 0: Á¤»ó, 1: ¾Ë¶÷¹ß»ý
        //¿¹)
        //    UINT alarm = 0;
        //    tcp.GetAlarm(&alarm);
        //    OVERHEATALARM(alarm,0);        //0¹ø Ã¤³ÎÀÇ ¿À¹öÈ÷Æ® ¾Ë¶÷ °¡Á®¿À±â
        //    MISSFLASHALARM(alarm,3);    //3¹ø Ã¤³ÎÀÇ ¹Ì½ºÇ÷¡½¬ ¾Ë¶÷ °¡Á®¿À±â
        INT GetAlarm(UINT* alarm);
 
        //¼³Á¤°ª ÃʱâÈ­
        INT DefaultParam();
 
        //Ç÷¡½¬¸Þ¸ð¸®¿¡ ¼³Á¤°ªÀ» ÀúÀå
        INT SaveParam();
 
        //Ç÷¡½¬¸Þ¸ð¸®¿¡¼­ ¼³Á¤°ªÀ» ºÒ·¯¿È
        INT LoadParam();
 
    protected:
 
        int SendWait(MVCP& indata, MVCP* outdata, INT timeout = 1000);
        int ReadWait(USHORT address, MVCP* outdata, INT timeout = 1000);
        int WriteWait(USHORT address, UINT data, MVCP* outdata, INT timeout = 1000);
 
    };
 
} // namespace mvsol
 
#endif // _MVXLCTCP_H_