| | |
| | | |
| | | CEquipment::CEquipment() : m_nID(0), m_strName(""), m_strDescription(""), m_station(0, 255) |
| | | { |
| | | m_listener = { nullptr, nullptr }; |
| | | m_alive = {FALSE, 0, FALSE}; |
| | | m_listener.onAlive = {nullptr}; |
| | | m_bCimState = FALSE; |
| | | InitializeCriticalSection(&m_criticalSection); |
| | | } |
| | | |
| | |
| | | void CEquipment::setListener(EquipmentListener listener) |
| | | { |
| | | m_listener.onAlive = listener.onAlive; |
| | | m_listener.onCimStateChanged = listener.onCimStateChanged; |
| | | } |
| | | |
| | | void CEquipment::getProperties(std::vector<std::pair<std::string, std::string>>& container) |
| | | { |
| | | container.clear(); |
| | | // 示例:将一些属性添加到容器 |
| | | container.push_back(std::make_pair("DeviceName", "ServoMotor")); |
| | | container.push_back(std::make_pair("SerialNumber", "123456789")); |
| | | container.push_back(std::make_pair("Version", "1.0")); |
| | | } |
| | | |
| | | void CEquipment::init() |
| | |
| | | } |
| | | |
| | | |
| | | // 解释数据 |
| | | // 以下解释和处理数据 |
| | | |
| | | // alive |
| | | /* |
| | | BOOL bAliveFlag = isBitOn(pszData, size, 0x340); |
| | | if (m_alive.flag != bAliveFlag) { |
| | | m_alive.flag = bAliveFlag; |
| | |
| | | } |
| | | } |
| | | } |
| | | */ |
| | | // CIM State |
| | | BOOL bCimState = isBitOn(pszData, size, 0x341); |
| | | if ((bCimState && !m_bCimState) || (!bCimState && m_bCimState)) { |
| | | m_bCimState = bCimState; |
| | | if (m_listener.onCimStateChanged != nullptr) { |
| | | m_listener.onCimStateChanged(this, m_bCimState); |
| | | } |
| | | } |
| | | } |
| | | |
| | | BOOL CEquipment::isBitOn(const char* pszData, size_t size, int index) |