#ifndef _MVXLCTCP_H_ #define _MVXLCTCP_H_ #include "tcp.h" #include "mvcp.h" #include 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_