// 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; //----------------------------------------------------------------------------- // CtrlUnit //----------------------------------------------------------------------------- nsFPD::DetectorCtrlUnit::DetectorCtrlUnit() { m_DetectorStatus = DETECTOR_STATUS_MAX; m_DetectorConnectStatus = PANEL_CONNECT_ERROR; m_strUpdateFWStatus = "4"; m_strInitialStatus = "3"; m_strAttachStatus = "0"; m_strAttachResult = "0"; m_strShockSensor = ""; ResDataObject ResRecoverImageState; ResRecoverImageState.add("DetectorName", "FPD"); ResRecoverImageState.add("DetectorSN", "01"); ResRecoverImageState.add("DetectorWifiSignal", "1"); ResRecoverImageState.add("Result", "-1"); m_strRecoverImageState = ResRecoverImageState.encode(); m_strRecoverImageEvent = "0"; m_strFieldofViewShape = "RECTANGLE"; m_strFieldofViewDimension = "RECTANGLE"; m_strDetectorType = "Zskk"; m_strDescription = "FPD"; m_strDetectorID = "0"; m_strDateofLastDetectorCalibration = " "; m_strTimeofLastDetectorCalibration = " "; m_strDetectorConditionsNominalFlag = "1"; m_strFPDSensitivity = "600"; m_strFPDSensitivityResult = "0"; m_strPixelData = "140"; m_strTargetEXI = "5000"; m_strFirmwareStatus = "4"; } nsFPD::DetectorCtrlUnit:: ~DetectorCtrlUnit() { } void OEM_IF nsFPD::DetectorCtrlUnit::SetEventCenter(std::shared_ptr EventCenter) { m_EventCenter = EventCenter; } RET_STATUS nsFPD::DetectorCtrlUnit::JSActiveDetector(std::string in, std::string & out) { ResDataObject json; json.decode(in.c_str()); bool bActive = false; try { bActive = (bool)json[0]; } catch (...) { return RET_STATUS::RET_FAILED; } //mLog::Info("ActiveDetector. {$}", in.c_str()); ActiveDetector(bActive); out = "test@ActiveDetector"; return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSWakeupDetector(std::string in, std::string & out) { // ResDataObject json (in); // int mode = json.get (""); //mLog::Info("WakeupDetector. {$}", in.c_str()); out = "test@WakeupDetector"; return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSRESET(std::string in, std::string& out) { //mLog::Info("RESET."); RESET(); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSEnterExam(std::string in, std::string & out) { ResDataObject json; json.decode(in.c_str()); int mode = 0; try{ mode = (int)json[0]; } catch (...) { return RET_STATUS::RET_FAILED; } //mLog::Info("EnterExam.{$}", in.c_str()); EnterExam(mode); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSExitExam(std::string in, std::string& out) { //mLog::Info("ExitExam."); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSAttachConnect(std::string in, std::string& out) { //mLog::Info("AttachConnect."); AttachConnect(); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSCancelAttach(std::string in, std::string& out) { //mLog::Info("CancelAttach."); CancelAttach(); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetConnectStatus(std::string & out) { ////mLog::Info("GetConnectStatus."); out = to_string(m_DetectorConnectStatus); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSResetConnect(std::string in, std::string& out) { //mLog::Info("ResetConnect."); ResetConnect(); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSDisConnectFPD(std::string in, std::string& out) { //mLog::Info("DisConnectFPD."); DisConnectFPD(); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSDisConnectFPDForce(std::string in, std::string& out) { //mLog::Info("DisConnectFPD."); DisConnectFPDForce(); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSUpdateFirmware(std::string in, std::string& out) { //mLog::Info("UpdateFirmware."); return UpdateFirmware(); } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetDetectorInfo(std::string in, std::string & out) { string strFPDinfo; GetDetectorInfo(strFPDinfo); out = strFPDinfo; return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetRecoverImageState(std::string in, std::string & out) { string strFPDinfo; GetRecoverImageState(strFPDinfo); out = strFPDinfo; return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSRecoverImage(std::string in, std::string & out) { ResDataObject json; json.decode(in.c_str()); bool mode = false; try{ mode = (bool)json[0]; } catch (...) { //mLog::Error("JSRecoverImage decode failed {$}", in.c_str()); return RET_STATUS::RET_FAILED; } //mLog::Info("RecoverImage. {$}",in.c_str()); RecoverImage(mode); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSSaveSensitivity(std::string in, std::string& out) { //mLog::Info("SaveSensitivity."); SaveSensitivity(); return RET_STATUS::RET_SUCCEED; } //动态探测器先采图,后出线。出线时调用这个接口告知探测器可以取曝光图像 RET_STATUS DetectorCtrlUnit::JSSetXrayOnNum(std::string in, std::string& out) { //mLog::Info("SetXrayOnNum.{$}",in.c_str()); SetXrayOnNum(); return RET_STATUS::RET_SUCCEED; } //告知探测器序列采集图像张数,停止采集时等图使用 RET_STATUS DetectorCtrlUnit::JSSetExposureTimes(std::string in, std::string& out) { //mLog::Info("SetExposureTimes.{$}", in.c_str()); ResDataObject json; json.decode(in.c_str()); int nTimes = 0; try { nTimes = (int)json[0]; } catch (...) { return RET_STATUS::RET_FAILED; } SetExposureTimes(nTimes); return RET_STATUS::RET_SUCCEED; } RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetConnectStatus(DETECTOR_SHARE_STATUS nStatus) { string strStatus = "Unknown"; switch (nStatus) { case PANEL_CONNECT_ERROR: strStatus = "PANEL_CONNECT_ERROR"; break; case PANEL_ATTACH_START: strStatus = "PANEL_ATTACH_START"; break; case PANEL_CONNECT_OK: strStatus = "PANEL_CONNECT_OK"; break; case PANEL_DISCONNECT_SUCCESS: strStatus = "PANEL_DISCONNECT_SUCCESS"; break; case PANEL_DISCONNECT_ERROR: strStatus = "PANEL_DISCONNECT_ERROR"; break; case PANEL_ATTACH_OVER: strStatus = "PANEL_ATTACH_OVER"; break; case PANEL_ATTACH_FAILED: strStatus = "PANEL_ATTACH_FAILED"; break; case PANEL_ATTACH_FAILED_WITH_IMG: strStatus = "PANEL_ATTACH_FAILED_WITH_IMG"; break; case PANEL_ATTACH_NULL: strStatus = "PANEL_ATTACH_NULL"; break; default: break; } m_DetectorConnectStatus = nStatus; auto szFDinfo = std::to_string(nStatus); std::string str = szFDinfo; //mLog::Info("CcosDetectorConnectStatus: {$}", str); m_EventCenter->OnNotify((int)ATTRACTION_SET, CcosDetectorConnectStatus, str); //mLog::Info("SetConnectStatus {$}", strStatus.c_str()); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetFPDStatus(std::string & out) { auto szFDinfo = std::to_string(m_DetectorStatus); out = szFDinfo; return RET_STATUS::RET_SUCCEED; } RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetDetectorStatus(DETECTOR_STATUS status) { string strStatus = "Unknown"; switch (status) { case DETECTOR_STATUS_SHUTDOWN: strStatus = "Shutdown"; break; case DETECTOR_STATUS_INIT: strStatus = "init"; break; case DETECTOR_STATUS_SLEEP: strStatus = "sleep"; break; case DETECTOR_STATUS_WAKEUP: strStatus = "wakeup"; break; case DETECTOR_STATUS_STANDBY: strStatus = "standby"; break; case DETECTOR_STATUS_ACQ: strStatus = "acq"; break; case DETECTOR_STATUS_ERROR: strStatus = "error"; break; case DETECTOR_STATUS_MAX: default: break; } m_DetectorStatus = status; auto szFDinfo = std::to_string(status); std::string str = szFDinfo; m_EventCenter->OnNotify((int)ATTRACTION_SET, CcosDetectorStatus, str); //mLog::Info("SetDetectorStatus {$}",strStatus.c_str()); return RET_STATUS::RET_SUCCEED; } DETECTOR_STATUS OEM_IF nsFPD::DetectorCtrlUnit::GetDetectorStatus() { return m_DetectorStatus; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetAttachResult(std::string & out) { ResDataObject json; json.add(DetectorDescription, "test"); json.add(DetectorSerialNumber, "987"); m_strAttachResult = json.encode(); out = m_strAttachResult; return RET_STATUS::RET_SUCCEED; } RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetAttachResult(bool result, const char* DetectorType, const char* DetectorSN) { ResDataObject json; json.add(DetectorDescription, DetectorType); json.add(DetectorSerialNumber, DetectorSN); json.add("IsNewSN", result); m_strAttachResult = json.encode(); m_EventCenter->OnNotify((int)ATTRACTION_MSG, CcosDetectorAttach, m_strAttachResult); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetAttachStatus(std::string & out) { out = m_strAttachStatus; return RET_STATUS::RET_SUCCEED; } RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetAttachStatus(int nStatus) { auto szFDinfo = std::to_string(nStatus); m_strAttachStatus = szFDinfo; m_EventCenter->OnNotify((int)ATTRACTION_SET, CcosDetectorAttachedFlag, m_strAttachStatus); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetInitialStatus(std::string & out) { out = m_strInitialStatus; return RET_STATUS::RET_SUCCEED; } RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetInitialStatus(int nStatus) { auto szFDinfo = std::to_string(nStatus); m_strInitialStatus = szFDinfo; m_EventCenter->OnNotify((int)ATTRACTION_SET, CcosDetectorInitialStatus, m_strInitialStatus); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetUpdateFWStatus(std::string & out) { out = m_strUpdateFWStatus; return RET_STATUS::RET_SUCCEED; } RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetUpdateFWStatus(int nStatus) { auto szFDinfo = std::to_string(nStatus); m_strUpdateFWStatus = szFDinfo; m_EventCenter->OnNotify((int)ATTRACTION_SET, CcosDetectorUpdateFWStatus, m_strUpdateFWStatus); return RET_STATUS::RET_SUCCEED; } RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetShockSensorInfo(string strSOK) { if (strSOK == "") { return RET_STATUS::RET_FAILED; } m_strShockSensor = strSOK; m_EventCenter->OnNotify((int)ATTRACTION_SET, "FPDShockSensorInfo", m_strShockSensor); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetShockSensorInfo(std::string & out) { out = m_strShockSensor; return RET_STATUS::RET_SUCCEED; } RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetRecoverImageState(string strStatus) { if (strStatus == "") { return RET_STATUS::RET_FAILED; } m_strRecoverImageState = strStatus; m_EventCenter->OnNotify((int)ATTRACTION_SET, "RecoverImageState", m_strRecoverImageState);//20220128 防止UI重复弹窗,从ATTRACTION_MSG改成ATTRACTION_SET return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetRecoverImageState(std::string& out) { out = m_strRecoverImageState; return RET_STATUS::RET_SUCCEED; } RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetRecoverImageEvent(int nStatus) { auto szFDinfo = std::to_string(nStatus); m_strRecoverImageEvent = szFDinfo; m_EventCenter->OnNotify((int)ATTRACTION_MSG, "RecoverImageEvent", m_strRecoverImageEvent); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetRecoverImageEvent(std::string& out) { out = m_strRecoverImageEvent; return RET_STATUS::RET_SUCCEED; } RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetFieldofViewShape(string strSOK) { if (strSOK == "") { return RET_STATUS::RET_FAILED; } m_strFieldofViewShape = strSOK; m_EventCenter->OnNotify((int)ATTRACTION_SET, "FieldofViewShape", m_strFieldofViewShape); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetFieldofViewShape(std::string & out) { out = m_strFieldofViewShape; return RET_STATUS::RET_SUCCEED; } RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetFieldofViewDimension(string strSOK) { if (strSOK == "") { return RET_STATUS::RET_FAILED; } m_strFieldofViewDimension = strSOK; m_EventCenter->OnNotify((int)ATTRACTION_SET, "FieldofViewDimension", m_strFieldofViewDimension); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetFieldofViewDimension(std::string & out) { out = m_strFieldofViewDimension; return RET_STATUS::RET_SUCCEED; } RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetDetectorType(string strSOK) { if (strSOK == "") { return RET_STATUS::RET_FAILED; } m_strDetectorType = strSOK; m_EventCenter->OnNotify((int)ATTRACTION_SET, "DetectorType", m_strDetectorType); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetDetectorType(std::string & out) { out = m_strDetectorType; return RET_STATUS::RET_SUCCEED; } RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetDescription(string strSOK) { if (strSOK == "") { return RET_STATUS::RET_FAILED; } m_strDescription = strSOK; m_EventCenter->OnNotify((int)ATTRACTION_SET, "Description", m_strDescription); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetDescription(std::string & out) { out = m_strDescription; return RET_STATUS::RET_SUCCEED; } RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetDetectorID(string strSOK) { if (strSOK == "") { return RET_STATUS::RET_FAILED; } m_strDetectorID = strSOK; m_EventCenter->OnNotify((int)ATTRACTION_SET, "DetectorID", m_strDetectorID); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetDetectorID(std::string & out) { out = m_strDetectorID; return RET_STATUS::RET_SUCCEED; } RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetDateofLastDetectorCalibration(string strSOK) { //if (strSOK == "") //{ // return RET_STATUS::RET_FAILED; //} m_strDateofLastDetectorCalibration = strSOK; m_EventCenter->OnNotify((int)ATTRACTION_SET, "DateofLastDetectorCalibration", m_strDateofLastDetectorCalibration); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetDateofLastDetectorCalibration(std::string & out) { out = m_strDateofLastDetectorCalibration; return RET_STATUS::RET_SUCCEED; } RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetTimeofLastDetectorCalibration(string strSOK) { //if (strSOK == "") //{ // return RET_STATUS::RET_FAILED; //} m_strTimeofLastDetectorCalibration = strSOK; m_EventCenter->OnNotify((int)ATTRACTION_SET, "TimeofLastDetectorCalibration", m_strTimeofLastDetectorCalibration); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetTimeofLastDetectorCalibration(std::string & out) { out = m_strTimeofLastDetectorCalibration; return RET_STATUS::RET_SUCCEED; } RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetDetectorConditionsNominalFlag(string strSOK) { if (strSOK == "") { return RET_STATUS::RET_FAILED; } m_strDetectorConditionsNominalFlag = strSOK; m_EventCenter->OnNotify((int)ATTRACTION_SET, "DetectorConditionsNominalFlag", m_strDetectorConditionsNominalFlag); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetDetectorConditionsNominalFlag(std::string & out) { out = m_strDetectorConditionsNominalFlag; return RET_STATUS::RET_SUCCEED; } RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetFPDSensitivity(string strSOK) { if (strSOK == "") { return RET_STATUS::RET_FAILED; } m_strFPDSensitivity = strSOK; m_EventCenter->OnNotify((int)ATTRACTION_SET, "FPDSensitivity", m_strFPDSensitivity); return RET_STATUS::RET_SUCCEED; } RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetFPDSensitivityResult(string nStatus) { if (nStatus == "") { return RET_STATUS::RET_FAILED; } m_strFPDSensitivityResult = nStatus; m_EventCenter->OnNotify((int)ATTRACTION_SET, "FPDSensitivityResult", m_strFPDSensitivityResult); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetFPDSensitivityResult(std::string& out) { out = m_strFPDSensitivityResult; return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetFPDSensitivity(std::string & out) { out = m_strFPDSensitivity; return RET_STATUS::RET_SUCCEED; } RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetPixelData(string strSOK) { if (strSOK == "") { return RET_STATUS::RET_FAILED; } m_strPixelData = strSOK; m_EventCenter->OnNotify((int)ATTRACTION_SET, "PixelData", m_strPixelData); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetPixelData(std::string & out) { out = m_strPixelData; return RET_STATUS::RET_SUCCEED; } RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetTargetEXI(string strSOK) { if (strSOK == "") { return RET_STATUS::RET_FAILED; } m_strTargetEXI = strSOK; m_EventCenter->OnNotify((int)ATTRACTION_SET, "TargetEXI", m_strTargetEXI); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetTargetEXI(std::string & out) { out = m_strTargetEXI; return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetSupportDDR(std::string& out) { out = m_strSupportDDR; return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::SetSupportDDR(bool bFlag) { if (bFlag) { m_strSupportDDR = "YES"; } else { m_strSupportDDR = "NO"; } m_EventCenter->OnNotify((int)ATTRACTION_SET, SupportDDR, m_strSupportDDR); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetAcqMode(std::string& out) { out = m_strAcqMode; return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::SetAcqMode(int nMode) { m_strAcqMode = std::to_string(nMode); m_EventCenter->OnNotify((int)ATTRACTION_SET, CcosAcqMode, m_strAcqMode); return RET_STATUS::RET_SUCCEED; } RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetLastError(string nStatus) { return RET_STATUS::RET_SUCCEED; } RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::JSGetLastError(std::string& out) { return RET_STATUS::RET_SUCCEED; } RET_STATUS DetectorCtrlUnit::RESET() { return RET_STATUS::RET_SUCCEED; } RET_STATUS DetectorCtrlUnit::WakeupDetector() { return RET_STATUS::RET_SUCCEED; } RET_STATUS DetectorCtrlUnit::ExitExam() { return RET_STATUS::RET_SUCCEED; } RET_STATUS DetectorCtrlUnit::AttachConnect() { return RET_STATUS::RET_SUCCEED; } RET_STATUS DetectorCtrlUnit::CancelAttach() { return RET_STATUS::RET_SUCCEED; } RET_STATUS DetectorCtrlUnit::ResetConnect() { return RET_STATUS::RET_SUCCEED; } RET_STATUS DetectorCtrlUnit::DisConnectFPD() { return RET_STATUS::RET_SUCCEED; } RET_STATUS DetectorCtrlUnit::DisConnectFPDForce() { return RET_STATUS::RET_SUCCEED; } RET_STATUS DetectorCtrlUnit::UpdateFirmware() { return RET_STATUS::RET_SUCCEED; } RET_STATUS DetectorCtrlUnit::RecoverImage(bool bRecoverIt) { return RET_STATUS::RET_SUCCEED; } RET_STATUS DetectorCtrlUnit::GetRecoverImageState(string& strREI) { strREI = ""; return RET_STATUS::RET_FAILED; } RET_STATUS DetectorCtrlUnit::SaveSensitivity() { return RET_STATUS::RET_SUCCEED; } RET_STATUS DetectorCtrlUnit::SetXrayOnNum() { return RET_STATUS::RET_SUCCEED; } RET_STATUS DetectorCtrlUnit::SetExposureTimes(int nTimes) { return RET_STATUS::RET_SUCCEED; } RET_STATUS DetectorCtrlUnit::JSSetFilterType(std::string in, std::string& out) { ResDataObject json; json.decode(in.c_str()); int nValue = 0; try { nValue = atoi((const char*)json[0]); } catch (ResDataObjectExption& e) { //mLog::Error("JSSetFilterType exception %s\n", e.what()); return RET_STATUS::RET_FAILED; } SetFilterType(nValue); return RET_STATUS::RET_SUCCEED; } RET_STATUS DetectorCtrlUnit::SetFilterType(int nFilter) { return RET_STATUS::RET_SUCCEED; } RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetFirmwareStatus(int nStatus) { auto fwStatus = std::to_string(nStatus); m_strFirmwareStatus = fwStatus; m_EventCenter->OnNotify((int)ATTRACTION_SET, "FirmwareStatus", m_strFirmwareStatus); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetFirmwareStatus(std::string& out) { out = m_strFirmwareStatus; return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSSaveRawDataMode(std::string in, std::string& out) { //mLog::Info("SaveRawDataMode.\n{$}", in.c_str()); ResDataObject jsonInput; jsonInput.decode(in.c_str()); int nSaveRawDataMode = 0; try { nSaveRawDataMode = (int)jsonInput[0]; } catch (...) { //mLog::Error("Get SaveRawDataMode parameter error"); return RET_STATUS::RET_FAILED; } RET_STATUS nRet = SaveRawDataMode(nSaveRawDataMode); out = "test@SaveRawDataMode"; return nRet; } RET_STATUS nsFPD::DetectorCtrlUnit::SaveRawDataMode(int nSaveRawDataMode) { return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSOfflineFPD(std::string in, std::string& out) { //mLog::Info("OfflineFPD.\n{$}", in.c_str()); ResDataObject jsonInput; jsonInput.decode(in.c_str()); int nOfflineFPDMode = 0; try { nOfflineFPDMode = (int)jsonInput[0]; } catch (...) { //mLog::Error("Get OfflineFPD parameter error"); return RET_STATUS::RET_FAILED; } RET_STATUS nRet = OfflineFPD(nOfflineFPDMode); out = "test@OfflineFPD"; return nRet; } RET_STATUS nsFPD::DetectorCtrlUnit::OfflineFPD(int nOfflineFPDMode) { return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSOnlineFPD(std::string in, std::string& out) { //mLog::Info("OnlineFPD.\n{$}", in.c_str()); ResDataObject jsonInput; jsonInput.decode(in.c_str()); int nOnlineFPDMode = 0; try { nOnlineFPDMode = (int)jsonInput[0]; } catch (...) { //mLog::Error("Get OnlineFPD parameter error"); return RET_STATUS::RET_FAILED; } RET_STATUS nRet = OnlineFPD(nOnlineFPDMode); out = "test@OnlineFPD"; return nRet; } RET_STATUS nsFPD::DetectorCtrlUnit::OnlineFPD(int nOnlineFPDMode) { return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetAutonumousImageList(std::string in, std::string& out) { //mLog::Info("GetAutonumousImageList.\n{$}", in.c_str()); ResDataObject jsonInput; vector vecAutonumousList; ResDataObject jsonAutonumousList; jsonInput.decode(in.c_str()); int nDetectorID = 0; try { nDetectorID = (int)jsonInput[0]; } catch (...) { //mLog::Error("Get GetAutonumousImageList parameter error"); return RET_STATUS::RET_FAILED; } RET_STATUS nRet = GetAutonumousImageList(nDetectorID, vecAutonumousList); size_t nPatientNum = vecAutonumousList.size(); //mLog::Info("Get patient number: {$}", nPatientNum); for (int i = 0; i < nPatientNum; ++i) { char tempKey[32]; sprintf_s(tempKey, 32, "%d", i); jsonAutonumousList.add(tempKey, vecAutonumousList[i].c_str()); } out = jsonAutonumousList.encode(); //mLog::Info("Out List.\n{$}", out.c_str()); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::GetAutonumousImageList(int nDetectorID, vector& AutonumousList) { return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSRemoveAutonumousImageList(std::string in, std::string& out) { //mLog::Info("RemoveAutonumousImageList.\n{$}", in.c_str()); ResDataObject jsonInput; jsonInput.decode(in.c_str()); string strMeta; try { strMeta = (string)jsonInput[0]; } catch (...) { //mLog::Error("Get RemoveAutonumousImageList parameter error"); return RET_STATUS::RET_FAILED; } RET_STATUS nRet = RemoveAutonumousImageList(strMeta); out = "test@RemoveAutonumousImageList"; return nRet; } RET_STATUS nsFPD::DetectorCtrlUnit::RemoveAutonumousImageList(string strMeta) { return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSRemoveAutonumousAll(std::string in, std::string& out) { //mLog::Info("RemoveAutonumousAll.\n{$}", in.c_str()); /*ResDataObject jsonInput; jsonInput.decode(in.c_str()); int nDetectorID = 0; try { nDetectorID = (int)jsonInput[0]; } catch (...) { //mLog::Error("Get RemoveAutonumousAll parameter error"); return RET_STATUS::RET_FAILED; }*/ RET_STATUS nRet = RemoveAutonumousAll(); out = "test@RemoveAutonumousAll"; return nRet; } RET_STATUS nsFPD::DetectorCtrlUnit::RemoveAutonumousAll() { return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSGetImageMetaData(std::string in, std::string& out) { //mLog::Info("GetImageMetaData.\n{$}", in.c_str()); ResDataObject jsonInput; jsonInput.decode(in.c_str()); string strMeta; try { strMeta = (string)jsonInput[0]; } catch (...) { //mLog::Error("Get GetImageMetaData parameter error"); return RET_STATUS::RET_FAILED; } RET_STATUS nRet = GetImageMetaData(strMeta); out = "test@RemoveAutonumousImageList"; return nRet; } RET_STATUS nsFPD::DetectorCtrlUnit::GetImageMetaData(string strMetaData) { return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::JSExportAutonumousAll(std::string in, std::string& out) { //mLog::Info("ExportAutonumousAll.\n{$}", in.c_str()); RET_STATUS nRet = ExportAutonumousAll(); out = "test@ExportAutonumousAll"; return RET_STATUS::RET_SUCCEED; } RET_STATUS nsFPD::DetectorCtrlUnit::ExportAutonumousAll() { return RET_STATUS::RET_SUCCEED; }