123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- #include "stdafx.h"
- #include "LogicDriverDPCProxy.h"
- #include "PacketAnalizer.h"
- using namespace DIOS::Dev::Detail::MachineryECOM;
- #define MACHINERY_TID "DetectorToTableDistance"
- #define MACHINERY_SID "DistanceSourcetoDetector"
- #define MACHINERY_ENTRANCE "DistanceSourcetoEntrance"
- #define MACHINERY_PROJECTIONNUM "ProjectionNum"
- #define MACHINERY_MAXANGLE "ProjectionMaxAngle"
- #define MACHINERY_DIRECTION "ProjectionDirection"
- #define MACHINERY_GEOMETRY "GeometryKeyword"
- LogicDriverDPCProxy *LogicDriverDPCProxy::m_instance = nullptr;
- LogicDriverDPCProxy::LogicDriverDPCProxy()
- :m_logicDriver(nullptr)
- {
- m_resources.add(MACHINERY_TID, (FLOAT)0.0);
- m_resources.add(MACHINERY_SID, (FLOAT)1.0);
- m_resources.add(MACHINERY_ENTRANCE, (FLOAT)15.0);
- m_resources.add(MACHINERY_PROJECTIONNUM, (INT)15);
- m_resources.add(MACHINERY_MAXANGLE, (FLOAT)15.0);
- m_resources.add(MACHINERY_DIRECTION, (INT)-1);
- m_resources.add(MACHINERY_GEOMETRY, "linear");
- }
- LogicDriverDPCProxy::~LogicDriverDPCProxy()
- {
- }
- LogicDriverDPCProxy *LogicDriverDPCProxy::Instance()
- {
- if (m_instance == nullptr)
- {
- m_instance = new LogicDriverDPCProxy();
- }
- return m_instance;
- }
- void LogicDriverDPCProxy::Initialize(LogicDriver *logicDriver)
- {
- m_logicDriver = logicDriver;
- }
- LogicDriver *LogicDriverDPCProxy::Get()
- {
- return m_logicDriver;
- }
- RET_STATUS LogicDriverDPCProxy::GetDeviceResource(ResDataObject *pDeviceResource)
- {
- bool ret = true;
- ResDataObject val = (*pDeviceResource)["Attribute"];
- val.add(MACHINERY_TID, m_resources[MACHINERY_TID]);
- val.add(MACHINERY_SID, m_resources[MACHINERY_SID]);
- val.add(MACHINERY_ENTRANCE, m_resources[MACHINERY_ENTRANCE]);
- val.add(MACHINERY_PROJECTIONNUM, m_resources[MACHINERY_PROJECTIONNUM]);
- val.add(MACHINERY_MAXANGLE, m_resources[MACHINERY_MAXANGLE]);
- val.add(MACHINERY_DIRECTION, m_resources[MACHINERY_DIRECTION]);
- val.add(MACHINERY_GEOMETRY, m_resources[MACHINERY_GEOMETRY]);
- ret &= pDeviceResource->update("Attribute", val);
- if(gbusinessLog) gbusinessLog->Info("[LogicDriverDPCProxy][GetDeviceResource]->[{$}]", val.encode());
- if (ret)
- {
- return RET_STATUS::RET_SUCCEED;
- }
- return RET_STATUS::RET_FAILED;
- }
- bool LogicDriverDPCProxy::UpdateDriverResource(const std::string &resourceType, float tid, float sid, int project, float angle, int direction, std::string geometry)
- {
- if (!m_logicDriver)
- {
- return false;
- }
- if(gbusinessLog) gbusinessLog->Info("[LogicDriverDPCProxy][UpdateDriverResource]->[{$:d}]", project);
- if (resourceType == DRIVER_RESOURCE_TOMO)
- {
- m_resources[MACHINERY_TID] = tid * 100;
- m_resources[MACHINERY_SID] = sid * 100;
- m_resources[MACHINERY_MAXANGLE] = angle;
- m_resources[MACHINERY_PROJECTIONNUM] = project;
- m_resources[MACHINERY_DIRECTION] = direction;
- m_resources[MACHINERY_GEOMETRY] = geometry.c_str();
- //ResDataObject NotifyData;
- //PacketAnalizer::MakeNotify(NotifyData, PACKET_CMD_UPDATE, MACHINERY_TID, (const char *)m_resources[MACHINERY_TID]);
- //m_logicDriver->CmdFromLogicDev(&NotifyData);
- //PacketAnalizer::MakeNotify(NotifyData, PACKET_CMD_UPDATE, MACHINERY_SID, (const char *)m_resources[MACHINERY_SID]);
- //m_logicDriver->CmdFromLogicDev(&NotifyData);
- //PacketAnalizer::MakeNotify(NotifyData, PACKET_CMD_UPDATE, MACHINERY_MAXANGLE, (const char *)m_resources[MACHINERY_MAXANGLE]);
- //m_logicDriver->CmdFromLogicDev(&NotifyData);
- //PacketAnalizer::MakeNotify(NotifyData, PACKET_CMD_UPDATE, MACHINERY_PROJECTIONNUM, (const char *)m_resources[MACHINERY_PROJECTIONNUM]);
- //m_logicDriver->CmdFromLogicDev(&NotifyData);
- //PacketAnalizer::MakeNotify(NotifyData, PACKET_CMD_UPDATE, MACHINERY_DIRECTION, (const char *)m_resources[MACHINERY_DIRECTION]);
- //m_logicDriver->CmdFromLogicDev(&NotifyData);
- //PacketAnalizer::MakeNotify(NotifyData, PACKET_CMD_UPDATE, MACHINERY_GEOMETRY, (const char *)m_resources[MACHINERY_GEOMETRY]);
- //m_logicDriver->CmdFromLogicDev(&NotifyData);
- }
- return true;
- }
|