#include "stdafx.h" #include "CCOS.Dev.MechanicalMoudle.hpp" #include "CCOSDICOMInfo.h" using namespace CCOS::Dev; using namespace CCOS::Dev::Detail::Mechanical; namespace nsMech = CCOS::Dev::Detail::Mechanical; nsMech::MechanicalDevice::MechanicalDevice(std::shared_ptr EventCenter) :super(EventCenter) { m_EventCenter = EventCenter; m_Grid = 0; m_Mammo_AE = 0; m_Mammo_FT = 0; m_Mammo_PressureState = 0; m_Mammo_CompPressureDEC = 0; m_Mammo_Depress = 0; m_Mammo_MechAngle = 0.0f; m_Mammo_MechHeight = 0.0f; m_Mammo_PressureValue = 0.0f; m_Mammo_AGD = 0.0f; m_Mammo_MAG = 0.0f; m_Mammo_CompressPaddle = ""; } nsMech::MechanicalDevice::~MechanicalDevice() { } void nsMech::MechanicalDevice::FireNotify(string key, unsigned int value) { char szInfo[64] = { 0 }; sprintf_s(szInfo, "%d", value); std::string str = szInfo; m_EventCenter->OnNotify(1, key, str);//(int)ATTRACTION_SET 2 } void nsMech::MechanicalDevice::FireNotify(string key, float value) { char szInfo[64] = { 0 }; sprintf_s(szInfo, "%f", value); std::string str = szInfo; m_EventCenter->OnNotify(1, key, str);//(int)ATTRACTION_SET 2 } void nsMech::MechanicalDevice::FireNotify(string key, string value) { std::string str = value; m_EventCenter->OnNotify(1, key, str);//(int)ATTRACTION_SET 2 } void nsMech::MechanicalDevice::Register() { auto Disp = &Dispatch; Disp->Action.Push("SetGrid", this, &nsMech::MechanicalDevice::JSSetGrid); Disp->Action.Push("SetAutoTracking", this, &nsMech::MechanicalDevice::JSSetAutoTracking); Disp->Action.Push("GetTomoResults", this, &nsMech::MechanicalDevice::JSGetTomoResults); Disp->Get.Push("GRID", this, &nsMech::MechanicalDevice::JSGetGrid); Disp->Get.Push("AE", this, &nsMech::MechanicalDevice::JSGetMammo_AE); Disp->Get.Push("Filter", this, &nsMech::MechanicalDevice::JSGetMammo_FT); Disp->Get.Push("Thickness", this, &nsMech::MechanicalDevice::JSGetMammo_PressureState); Disp->Get.Push("CompPressureDEC", this, &nsMech::MechanicalDevice::JSGetMammo_CompPressureDEC); Disp->Get.Push("Depress", this, &nsMech::MechanicalDevice::JSGetMammo_Depress); Disp->Get.Push("MechanicalAngle", this, &nsMech::MechanicalDevice::JSGetMammo_MechAngle); Disp->Get.Push("MechanicalHeight", this, &nsMech::MechanicalDevice::JSGetMammo_MechHeight); Disp->Get.Push("CompPressure", this, &nsMech::MechanicalDevice::JSGetMammo_PressureValue); Disp->Get.Push("AGD", this, &nsMech::MechanicalDevice::JSGetMammo_AGD); Disp->Get.Push("MAG", this, &nsMech::MechanicalDevice::JSGetMammo_MAG); Disp->Get.Push("CompressPaddle", this, &nsMech::MechanicalDevice::JSGetMammo_CompressPaddle); } bool nsMech::MechanicalDevice::Prepare() { Register(); return true; } std::string nsMech::MechanicalDevice::GetGUID() const { return MechanicalUnitType; } RET_STATUS nsMech::MechanicalDevice::JSSetGrid(std::string in, std::string& out) { ResDataObject json; json.decode(in.c_str()); unsigned int nValue = json[0]; return SetGrid(nValue); } RET_STATUS nsMech::MechanicalDevice::JSSetAutoTracking(std::string in, std::string& out) { ResDataObject json; json.decode(in.c_str()); unsigned int nValue = json[0]; return SetAutoTracking(nValue); } RET_STATUS nsMech::MechanicalDevice::JSGetTomoResults(std::string in, std::string& out) { ResDataObject json; ResDataObject resultAngle; ResDataObject resultHeight; RET_STATUS ret = GetTomoResults(resultAngle, resultHeight); if(ret != RET_STATUS::RET_SUCCEED) { return RET_STATUS::RET_FAILED; } json.add("P0", resultAngle); json.add("P1", resultHeight); out = json.encode(); return RET_STATUS::RET_SUCCEED; } RET_STATUS nsMech::MechanicalDevice::JSGetGrid(std::string& out) { char szInfo[64] = { 0 }; sprintf_s(szInfo, "%d", m_Grid); out = szInfo; return RET_STATUS::RET_SUCCEED; } RET_STATUS nsMech::MechanicalDevice::JSGetMammo_AE(std::string& out) { char szInfo[64] = { 0 }; sprintf_s(szInfo, "%d", m_Mammo_AE); out = szInfo; return RET_STATUS::RET_SUCCEED; } RET_STATUS nsMech::MechanicalDevice::JSGetMammo_FT(std::string& out) { char szInfo[64] = { 0 }; sprintf_s(szInfo, "%d", m_Mammo_FT); out = szInfo; return RET_STATUS::RET_SUCCEED; } RET_STATUS nsMech::MechanicalDevice::JSGetMammo_PressureState(std::string& out) { char szInfo[64] = { 0 }; sprintf_s(szInfo, "%d", m_Mammo_PressureState); out = szInfo; return RET_STATUS::RET_SUCCEED; } RET_STATUS nsMech::MechanicalDevice::JSGetMammo_CompPressureDEC(std::string& out) { char szInfo[64] = { 0 }; sprintf_s(szInfo, "%d", m_Mammo_CompPressureDEC); out = szInfo; return RET_STATUS::RET_SUCCEED; } RET_STATUS nsMech::MechanicalDevice::JSGetMammo_Depress(std::string& out) { char szInfo[64] = { 0 }; sprintf_s(szInfo, "%d", m_Mammo_Depress); out = szInfo; return RET_STATUS::RET_SUCCEED; } RET_STATUS nsMech::MechanicalDevice::JSGetMammo_MechAngle(std::string& out) { char szInfo[64] = { 0 }; sprintf_s(szInfo, "%f", m_Mammo_MechAngle); out = szInfo; return RET_STATUS::RET_SUCCEED; } RET_STATUS nsMech::MechanicalDevice::JSGetMammo_MechHeight(std::string& out) { char szInfo[64] = { 0 }; sprintf_s(szInfo, "%f", m_Mammo_MechHeight); out = szInfo; return RET_STATUS::RET_SUCCEED; } RET_STATUS nsMech::MechanicalDevice::JSGetMammo_PressureValue(std::string& out) { char szInfo[64] = { 0 }; sprintf_s(szInfo, "%f", m_Mammo_PressureValue); out = szInfo; return RET_STATUS::RET_SUCCEED; } RET_STATUS nsMech::MechanicalDevice::JSGetMammo_AGD(std::string& out) { char szInfo[64] = { 0 }; sprintf_s(szInfo, "%f", m_Mammo_AGD); out = szInfo; return RET_STATUS::RET_SUCCEED; } RET_STATUS nsMech::MechanicalDevice::JSGetMammo_MAG(std::string& out) { char szInfo[64] = { 0 }; sprintf_s(szInfo, "%f", m_Mammo_MAG); out = szInfo; return RET_STATUS::RET_SUCCEED; } RET_STATUS nsMech::MechanicalDevice::JSGetMammo_CompressPaddle(std::string& out) { //char szInfo[64] = { 0 }; //sprintf_s(szInfo, "%s", m_Mammo_CompressPaddle); out = m_Mammo_CompressPaddle; return RET_STATUS::RET_SUCCEED; } void MechanicalDevice::UpdateGrid(unsigned int Value) { m_Grid = Value; FireNotify("GRID", Value); } void MechanicalDevice::UpdateMammo_AE(unsigned int Value) { m_Mammo_AE = Value; FireNotify("AE", Value); } void MechanicalDevice::UpdateMammo_FT(unsigned int Value) { m_Mammo_FT = Value; FireNotify("Filter", Value); } void MechanicalDevice::UpdateMammo_PressureState(unsigned int Value) { m_Mammo_PressureState = Value; FireNotify("Thickness", Value); } void MechanicalDevice::UpdateMammo_CompPressureDEC(unsigned int Value) { m_Mammo_CompPressureDEC = Value; FireNotify("CompPressureDEC", Value); } void MechanicalDevice::UpdateMammo_Depress(unsigned int Value) { m_Mammo_Depress = Value; FireNotify("Depress", Value); } void MechanicalDevice::UpdateMammo_MechAngle(float Value) { m_Mammo_MechAngle = Value; FireNotify("MechanicalAngle", Value); } void MechanicalDevice::UpdateMammo_MechHeight(float Value) { m_Mammo_MechHeight = Value; FireNotify("MechanicalHeight", Value); } void MechanicalDevice::UpdateMammo_PressureValue(float Value) { m_Mammo_PressureValue = Value; FireNotify("CompPressure", Value); } void MechanicalDevice::UpdateMammo_AGD(float Value) { m_Mammo_AGD = Value; FireNotify("AGD", Value); } void MechanicalDevice::UpdateMammo_MAG(float Value) { m_Mammo_MAG = Value; FireNotify("MAG", Value); } void MechanicalDevice::UpdateMammo_CompressPaddle(std::string Value) { m_Mammo_CompressPaddle = Value; FireNotify("CompressPaddle", Value); } RET_STATUS MechanicalDevice::SetGrid(unsigned int GridType) { return RET_STATUS::RET_SUCCEED; } RET_STATUS MechanicalDevice::SetAutoTracking(unsigned int nAutoTracking) { return RET_STATUS::RET_FAILED; } RET_STATUS MechanicalDevice::GetTomoResults(ResDataObject& resultAngle, ResDataObject& resultHeight) { return RET_STATUS::RET_SUCCEED; }