123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- #pragma once
- #include "IODeviceWithSCF.tlh"
- #include "IODeviceWithSCF.tli"
- #include "DIOS.Dev.SYNBOX.Mould.hpp"
- #include "DIOS.Dev.MSGMould.hpp"
- namespace DIOS::Dev::Detail::SYNBOX
- {
- typedef struct Sync_Element_s
- {
- string strIO;
- string strSyncName;
- string pFun;
- int EnableState;
- int DisableState;
- }Sync_Element_t;
- typedef struct DYNHeader_s
- {
- map<string, bool> m_MapChannelState;
- map<string, Sync_Element_t>m_SyncList;
- }DYNHeader_t;
- //-----------------------------------------------------------------------------
- // DynBoxDevice
- //-----------------------------------------------------------------------------
- namespace nDev = DIOS::Dev;
- namespace nsDetail = DIOS::Dev::Detail;
- class DynBoxDevice : public SYNBOXMould
- {
- using superGen = SYNBOXMould;
- public:
- DynBoxDevice(std::shared_ptr <IOEventCenter> center, nsSCF::SCF SCF);
- ~DynBoxDevice();
- ResDataObject ResDYNConfig;
- // GENERATOR_RAD_OFF,
- // GENERATOR_RAD_PREPARE,
- // GENERATOR_RAD_READY,
- // GENERATOR_RAD_XRAYON,
- // GENERATOR_RAD_XRAYOFF,
- bool m_bSendRadOff{ true };
- bool m_bSendRadPrepare{ true };
- bool m_bSendRadReady{ true };
- bool m_bSendRadXrayOn{ true };
- bool m_bSendRadXrayOff{ true };
- bool m_bSendXwindowOn{ true };
- bool m_bSendXwindowOff{ true };
- protected:
- virtual RET_STATUS SetWS(std::string value) override;
- virtual RET_STATUS SetExpMode(std::string value) override;
- virtual RET_STATUS SetGeneratortoSyncStatus(int state) override;
- virtual RET_STATUS SetExpEnable() override;
- virtual RET_STATUS SetExpDisable() override;
- virtual RET_STATUS PrepareAcquisition() override;
- virtual RET_STATUS StartWindowRequest() override;
- virtual RET_STATUS SetExposureTimes(int nNum) override;
- virtual RET_STATUS StopWindowRequest() override;
- virtual RET_STATUS SetFrameRate(FLOAT frameRate) override;
- virtual RET_STATUS SetGenAECSignal(int signal) override;
- virtual RET_STATUS SimulateFootSwitchSignal(int signal) override;
- virtual RET_STATUS SetValue_PPS(FLOAT fluframerate) override;
- private:
-
- std::unique_ptr<nsDetail::MSGUnit> m_MSGUnit;
- private:
-
- //int ChartoInt(char uc);
- //int CalChecksum(const char* cCmd, int nCmdSize);
- //bool FormatCmd(char* cCmd, int& nSize);
- //bool CmdtoString(const char* cCmd, int nCmdSize, string& strCmd);
- RET_STATUS SendBySCF(const char* chChannelID, bool bStatus);
- //RET_STATUS SendSPSBySCF(const char* chChannelID, int nCycle, int nPulse, int nWaitTime);
- //RET_STATUS SendSPEBySCF(const char* chChannelID, UCHAR cMode, UCHAR cEnable, int nWaitTime);
- //RET_STATUS SendSMSBySCF(const char* cExpMode, const char* cExpCount, int nWaitTime);
- int DealReceiveData(string sCmdID, const char* pData, int Datalen);
- int NotifySignal(const char* name, int state);
- void ClearSignal();
- int SetSignal(const char* name, int state);
- //int SetPWMState(bool state);
- int SetPWM(float fpps);
- //int SetAreaType();
- int m_nCurrentExpTimes{ 0 };
- DYNHeader_t m_DYNMap;
- bool m_bINEEnable{ false };
- int m_nExpTimes{ -1 };
- std::string m_strSYNMode{"SYN0"};
- bool m_nInExpState{ false };
- DWORD m_wStartEXPTime;
- bool m_bClear{ false };
- nsSCF::SCF m_SCF;
- std::shared_ptr <IOEventCenter> EventCenter;
- public:
- void Register(Dispatch* Dispatch);
- void OnCallBack();
-
- int DealtheSignal(const char* channel, int state);
- private:
- void FireNotify(std::string key, std::string context);
- void RefreshSignal();
- void ResetPanelPreSignal(void);
- void ResetPanelReqSignal(void);
- void ResetGenExpSignal(void);
- };
- }
|