// CCOS.Dev.FPD.DEMO.cpp : 定义 DLL 应用程序的导出函数。 // #include "stdafx.h" #include "CCOS.Dev.FPDDeviceMould.hpp" using namespace CCOS::Dev; using namespace CCOS::Dev::Detail::Detector; namespace nsFPD = CCOS::Dev::Detail::Detector; extern Log4CPP::Logger* //mLog::gLogger; //----------------------------------------------------------------------------- // SyncUnit //----------------------------------------------------------------------------- nsFPD::SyncUnit::SyncUnit() { m_strReady4EXP = "0"; m_strXwindowStatus = "0"; m_strXrayON = "0"; m_strConnectStatus = "0"; } nsFPD::SyncUnit:: ~SyncUnit() { } void OEM_IF nsFPD::SyncUnit::SetEventCenter(std::shared_ptr EventCenter) { m_EventCenter = EventCenter; } RET_STATUS nsFPD::SyncUnit::JSSetXwindowSize(std::string in, std::string & out) { //mLog::Info("JS SetXwindowSize. {$}",in.c_str()); ResDataObject json; json.decode(in.c_str()); string strXwindow = (string)json[0]; float XwindowSize = stof(strXwindow.c_str()); return SetXwindow(XwindowSize); } RET_STATUS nsFPD::SyncUnit::JSSetFrameRate(std::string in, std::string& out) { //mLog::Info("JS SetFrameRate. {$}",in.c_str()); ResDataObject json; json.decode(in.c_str()); string strFrameRate = (string)json[0]; float FrameRate = stof(strFrameRate.c_str()); return SetFrameRate(FrameRate); } RET_STATUS nsFPD::SyncUnit::JSSetFluPPS(std::string in, std::string& out) { //mLog::Info("JS SetFluPPS. {$}", in.c_str()); ResDataObject json; json.decode(in.c_str()); string strFluPPS = (string)json[0]; float fluPPS = stof(strFluPPS.c_str()); return SetFluPPS(fluPPS); } RET_STATUS nsFPD::SyncUnit::JSSetSyncMode(std::string in, std::string & out) { //mLog::Info("JS SetSyncMode. {$}",in.c_str()); ResDataObject json; json.decode(in.c_str()); int mode = json[0]; int trigger = json[1]; SYNC_MODE syncMode; HARDWARE_TRIGGER_MODE HWtrigger; if (mode == SYNC_SOFTWARE) { syncMode = SYNC_SOFTWARE; } else if (mode == SYNC_HARDWARE) { syncMode = SYNC_HARDWARE; } else if (mode == SYNC_AED) { syncMode = SYNC_AED; } else if (mode == SYNC_HARDWARE_DIRECT) { syncMode = SYNC_HARDWARE_DIRECT; } else { return RET_STATUS::RET_INVALID; } if (trigger == HW_TRIGGER_NONE || trigger == HW_TRIGGER_MAX) { if (mode == SYNC_HARDWARE) { return RET_STATUS::RET_INVALID; } HWtrigger = HW_TRIGGER_NONE; } else if (trigger == HW_TRIGGER_INTERNAL) { HWtrigger = HW_TRIGGER_INTERNAL; } else if (trigger == HW_TRIGGER_EXTERNAL) { HWtrigger = HW_TRIGGER_EXTERNAL; } else { return RET_STATUS::RET_INVALID; } return SetSyncMode(syncMode, HWtrigger); } RET_STATUS nsFPD::SyncUnit::JSGetSyncMode(std::string& out) { SYNC_MODE syncMode = SYNC_MAX; GetSyncMode(syncMode); auto str = std::to_string(syncMode); out = str; return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::SyncUnit::JSPrepareAcquisition(std::string in, std::string& out) { //mLog::Info("PrepareAcquisition."); return PrepareAcquisition(); } RET_STATUS nsFPD::SyncUnit::JSStartAcquisition(std::string in, std::string& out) { //mLog::Info("StartAcquisition."); return StartAcquisition(in); } RET_STATUS nsFPD::SyncUnit::JSStopAcquisition(std::string in, std::string& out) { //mLog::Info("StopAcquisition."); return StopAcquisition(); } RET_STATUS nsFPD::SyncUnit::JSGetFPDReady(std::string & out) { out = m_strReady4EXP; return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::SyncUnit::JSGetConnectStatus(std::string& out) { out = m_strConnectStatus; return RET_STATUS::RET_SUCCEED; } void OEM_NOTIFY nsFPD::SyncUnit::FPDReadyNotify(bool bReady) { if (bReady) { m_strReady4EXP = "1"; m_EventCenter->OnNotify((int)ATTRACTION_SET, CcosFPDReadyStatus, m_strReady4EXP); } else { m_strReady4EXP = "0"; m_EventCenter->OnNotify((int)ATTRACTION_SET, CcosFPDReadyStatus, m_strReady4EXP); } } void OEM_NOTIFY nsFPD::SyncUnit::FPDConnectStatusNotify(bool bConnect) { if (bConnect) { m_strConnectStatus = "2"; m_EventCenter->OnNotify((int)ATTRACTION_SET, CcosDetectorConnectStatus, m_strConnectStatus); } else { m_strConnectStatus = "0"; m_EventCenter->OnNotify((int)ATTRACTION_SET, CcosDetectorConnectStatus, m_strConnectStatus); } } RET_STATUS nsFPD::SyncUnit::JSGetXWindowStatus(std::string & out) { out = m_strXwindowStatus; return RET_STATUS::RET_SUCCEED; } void OEM_NOTIFY nsFPD::SyncUnit::XWindowOnNotify() { auto szFDinfo = std::to_string(XWINDOW_ON); m_strXwindowStatus = szFDinfo; m_EventCenter->OnNotify((int)ATTRACTION_SET, CcosXwindowStatus, m_strXwindowStatus); } void OEM_NOTIFY nsFPD::SyncUnit::XWindowOffNotify() { auto szFDinfo = std::to_string(XWINDOW_OFF); m_strXwindowStatus = szFDinfo; m_EventCenter->OnNotify((int)ATTRACTION_SET, CcosXwindowStatus, m_strXwindowStatus); } void OEM_NOTIFY nsFPD::SyncUnit::FakeEIPONNotify() { m_EventCenter->OnNotify((int)ATTRACTION_SET, "FakeEIPON", "1"); } void OEM_NOTIFY nsFPD::SyncUnit::XrayONNotify() { m_strXrayON = "1"; m_EventCenter->OnNotify((int)ATTRACTION_SET, "XrayON", "1"); } void OEM_NOTIFY nsFPD::SyncUnit::XrayOffNNotify() { m_strXrayON = "0"; m_EventCenter->OnNotify((int)ATTRACTION_SET, "XrayON", "0"); } RET_STATUS nsFPD::SyncUnit::JSGetImageReadingStatus(std::string & out) { out = "NULL"; return RET_STATUS::RET_SUCCEED; } void OEM_NOTIFY nsFPD::SyncUnit::ImageReadingNotify() { std::string str = "0"; m_EventCenter->OnNotify((int)ATTRACTION_SET, CcosImageReadingStatus, str); } RET_STATUS nsFPD::SyncUnit::GetSyncMode(SYNC_MODE& nSyncMode) { return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::SyncUnit::JSGetExpReadyStatus(std::string& out) { out = m_strFPDExpReady; return RET_STATUS::RET_SUCCEED; } void OEM_NOTIFY nsFPD::SyncUnit::ExpReadyNotify(int nMillisecond) { auto szFDinfo = std::to_string(nMillisecond); m_strFPDExpReady = szFDinfo; m_EventCenter->OnNotify((int)ATTRACTION_MSG, "FPDExpReady", m_strFPDExpReady); } RET_STATUS nsFPD::SyncUnit::SetFrameRate(float fFrameRate) { //mLog::Info("SetFrameRate {$}", fFrameRate); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::SyncUnit::SetFluPPS(float fFluPPS) { //mLog::Info("SetFluPPS {$}", fFluPPS); return RET_STATUS::RET_SUCCEED; }