CanDeviceMessageCenter.cpp 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #include "stdafx.h"
  2. #include "CanDeviceMessageCenter.h"
  3. #include "IWorkflowManager.h"
  4. #include "DeviceHandlerManager.h"
  5. #include "DeviceDataDef.h"
  6. #include "IDeviceHandler.h"
  7. using namespace DIOS::Dev::Detail::MachineryECOM;
  8. CanDeviceMessageCenter *CanDeviceMessageCenter::m_instance = nullptr;
  9. CanDeviceMessageCenter::CanDeviceMessageCenter()
  10. {
  11. }
  12. CanDeviceMessageCenter::~CanDeviceMessageCenter()
  13. {
  14. }
  15. CanDeviceMessageCenter *CanDeviceMessageCenter::Instance()
  16. {
  17. if (m_instance == nullptr)
  18. {
  19. m_instance = new CanDeviceMessageCenter();
  20. }
  21. return m_instance;
  22. }
  23. void CanDeviceMessageCenter::OnMessageArrived(IWorkflowManager *workflowmanager, CanDeviceData *data)
  24. {
  25. if (!data)
  26. {
  27. return;
  28. }
  29. switch (data->stdid)
  30. {
  31. case CAN_STD_ID_COLLIMATOR:
  32. {
  33. auto devicehandelr = DeviceHandlerManager::Instance()->Resove(DEVICE_HANDLER_COLLIMATOR);
  34. if (devicehandelr)
  35. {
  36. devicehandelr->OnDeviceDataArrived(data->data, data->dlc);
  37. }
  38. }
  39. break;
  40. default:
  41. break;
  42. }
  43. }