#include "stdafx.h" #include "LogicDeviceHandSwitch.h" #include "PacketAnalizer.h" #include "DIOS.Dev.Machinery.Driver.ECOM.h" using namespace DIOS::Dev::Detail::MachineryECOM; LogicDeviceHandSwitch::LogicDeviceHandSwitch(MachineryECOMDriver* pMachineryDriver) :ExposureSwitchUnit(pMachineryDriver) { } LogicDeviceHandSwitch::~LogicDeviceHandSwitch() { } RET_STATUS LogicDeviceHandSwitch::HSWNotify_FirstLevelUp() { m_bOneHSWStatus->SetVal("0"); RET_STATUS ret = RET_STATUS::RET_SUCCEED; ResDataObject NotifyData; PacketAnalizer::MakeNotify(NotifyData, PACKET_CMD_UPDATE, AttrKey::MachineryHandSwitchState, "0"); m_pMachineryDriver->FireNotify(AttrKey::MachineryHandSwitchState, "0"); m_MachineryHandSwtichState[AttrKey::MachineryHandSwitchState] = 0; if (gbusinessLog) gbusinessLog->Info("[LogicDeviceHandSwitch][HSWNotify][Handswitch_1][Up]"); return RET_STATUS::RET_SUCCEED; } RET_STATUS LogicDeviceHandSwitch::HSWNotify_FirstLevelDown() { m_bOneHSWStatus->SetVal("1"); RET_STATUS ret = RET_STATUS::RET_SUCCEED; ResDataObject NotifyData; PacketAnalizer::MakeNotify(NotifyData, PACKET_CMD_UPDATE, AttrKey::MachineryHandSwitchState, "1"); m_pMachineryDriver->FireNotify(AttrKey::MachineryHandSwitchState, "1"); m_MachineryHandSwtichState[AttrKey::MachineryHandSwitchState] = 1; if (gbusinessLog) gbusinessLog->Info("[LogicDeviceHandSwitch][HSWNotify][Handswitch_1][Down]"); return RET_STATUS::RET_SUCCEED; } RET_STATUS LogicDeviceHandSwitch::HSWNotify_SecondLevelUp() { m_bTwoHSWStatus->SetVal("0"); RET_STATUS ret = RET_STATUS::RET_SUCCEED; ResDataObject NotifyData; PacketAnalizer::MakeNotify(NotifyData, PACKET_CMD_UPDATE, AttrKey::MachineryHandSwitchState, "0"); m_pMachineryDriver->FireNotify(AttrKey::MachineryHandSwitchState, "0"); m_MachineryHandSwtichState[AttrKey::MachineryHandSwitchState] = 0; if (gbusinessLog) gbusinessLog->Info("[LogicDeviceHandSwitch][HSWNotify][Handswitch_2][Up]"); return RET_STATUS::RET_SUCCEED; } RET_STATUS LogicDeviceHandSwitch::HSWNotify_SecondLevleDown() { m_bTwoHSWStatus->SetVal("1"); RET_STATUS ret = RET_STATUS::RET_SUCCEED; ResDataObject NotifyData; PacketAnalizer::MakeNotify(NotifyData, PACKET_CMD_UPDATE, AttrKey::MachineryHandSwitchState, "2"); m_pMachineryDriver->FireNotify(AttrKey::MachineryHandSwitchState, "2"); m_MachineryHandSwtichState[AttrKey::MachineryHandSwitchState] = 2; if (gbusinessLog) gbusinessLog->Info("[LogicDeviceHandSwitch][HSWNotify][Handswitch_2][Down]"); return RET_STATUS::RET_SUCCEED; } RET_STATUS LogicDeviceHandSwitch::SwitchState(HANDSWITCH_STATUS hsw) { RET_STATUS ret = RET_STATUS::RET_SUCCEED; switch (hsw) { case HSW_FIRST_DOWN: ret = HSWNotify_FirstLevelDown(); break; case HSW_FIRST_UP: ret = HSWNotify_FirstLevelUp(); break; case HSW_SECOND_DOWN: ret = HSWNotify_SecondLevleDown(); break; case HSW_SECOND_UP: ret = HSWNotify_SecondLevelUp(); break; default: break; } return ret; }