| | |
| | | |
| | | namespace SERVO { |
| | | |
| | | CEquipment::CEquipment() |
| | | CEquipment::CEquipment() : m_nID(0), m_strName(""), m_strDescription(""), m_station(0, 255) |
| | | { |
| | | m_alive = {FALSE, 0, FALSE}; |
| | | m_listener.onAlive = {nullptr}; |
| | |
| | | |
| | | } |
| | | |
| | | void CEquipment::setID(int nID) |
| | | { |
| | | m_nID = nID; |
| | | } |
| | | |
| | | int CEquipment::getID() |
| | | { |
| | | return m_nID; |
| | | } |
| | | |
| | | void CEquipment::setName(const char* pszName) |
| | | { |
| | | m_strName = pszName; |
| | |
| | | public: |
| | | virtual const char* getClassName() = 0; |
| | | virtual void setListener(EquipmentListener listener); |
| | | void setID(int nID); |
| | | int getID(); |
| | | void setName(const char* pszName); |
| | | std::string& getName(); |
| | | void setDescription(const char* pszDescription); |
| | |
| | | |
| | | protected: |
| | | EquipmentListener m_listener; |
| | | int m_nID; |
| | | std::string m_strName; |
| | | std::string m_strDescription; |
| | | CRITICAL_SECTION m_criticalSection; |
| | |
| | | // 初始化添加各子设备 |
| | | { |
| | | CEFEM* pEquipment = new CEFEM(); |
| | | pEquipment->setID(1); |
| | | pEquipment->setName("EFEM(ROBOT)"); |
| | | pEquipment->setDescription("EFEM(ROBOT)."); |
| | | pEquipment->setReadBitBlock(0x4000, 0x45ff); |
| | |
| | | #define RX_CODE_PASSIVE_STATUS_CHANGED 1001 |
| | | #define RX_CODE_MES_MESSAGE 1002 |
| | | #define RX_HSMS_TERMINAL_TEXT 1003 |
| | | #define RX_CODE_EQ_ALIVE 1004 |
| | | |
| | | |
| | | /* Channel Name */ |
| | |
| | | masterListener.onEqAlive = [&](void* pMaster, SERVO::CEquipment* pEquipment, BOOL bAlive) -> void { |
| | | LOGI("<CModel>Equipment onAlive:%d.\n", pEquipment->getName().c_str(), |
| | | bAlive ? _T("ON") : _T("OFF")); |
| | | notifyPtr(RX_CODE_EQ_ALIVE, pEquipment); |
| | | }; |
| | | m_master.setListener(masterListener); |
| | | |
| | |
| | | ShowTerminalText(pszText); |
| | | } |
| | | } |
| | | else if (RX_CODE_EQ_ALIVE == code) { |
| | | // 通知设备状态 |
| | | SERVO::CEquipment* pEquipment = nullptr; |
| | | if (pAny->getPtrValue("ptr", (void*&)pEquipment)) { |
| | | if (pEquipment != nullptr) { |
| | | int nID = pEquipment->getID(); |
| | | BOOL bAlive = pEquipment->isAlive(); |
| | | if (1 == nID) { |
| | | DeviceStatus status = bAlive ? DeviceStatus::ONLINE : DeviceStatus::OFFLINE; |
| | | UpdateDeviceStatus(INDICATE_ROBOT_ARM1, status); |
| | | UpdateDeviceStatus(INDICATE_ROBOT_ARM2, status); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | pAny->release(); |
| | | }, [&]() -> void { |
| | | // onComplete |
| | |
| | | COLORREF newFrameColor2; |
| | | |
| | | switch (status) { |
| | | case Online: |
| | | case ONLINE: |
| | | newBackgroundColor = RGB(255, 0, 0); |
| | | newFrameColor1 = RGB(22, 22, 22); |
| | | newFrameColor2 = RGB(255, 127, 39); |
| | | break; |
| | | case Offline: |
| | | case OFFLINE: |
| | | newBackgroundColor = RGB(0, 255, 0); |
| | | newFrameColor1 = RGB(22, 22, 22); |
| | | newFrameColor2 = RGB(255, 127, 39); |
| | |
| | | #include "TerminalDisplayDlg.h" |
| | | |
| | | enum DeviceStatus { |
| | | Online, // 在线 |
| | | Offline, // 离线 |
| | | ONLINE, // 在线 |
| | | OFFLINE, // 离线 |
| | | }; |
| | | |
| | | // CServoDlg 对话框 |