#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_
|