| | |
| | | |
| | | CMaster::CMaster() |
| | | { |
| | | |
| | | m_listener = {nullptr, nullptr}; |
| | | } |
| | | |
| | | CMaster::~CMaster() |
| | |
| | | delete item; |
| | | } |
| | | m_listEquipment.clear(); |
| | | } |
| | | |
| | | void CMaster::setListener(MasterListener listener) |
| | | { |
| | | m_listener.onEqAlive = listener.onEqAlive; |
| | | m_listener.onEqCimStateChanged = listener.onEqCimStateChanged; |
| | | } |
| | | |
| | | int CMaster::init() |
| | |
| | | // 初始化添加各子设备 |
| | | { |
| | | CEFEM* pEquipment = new CEFEM(); |
| | | pEquipment->setID(1); |
| | | pEquipment->setName("EFEM(ROBOT)"); |
| | | pEquipment->setDescription("EFEM(ROBOT)."); |
| | | pEquipment->setReadBitBlock(0x4000, 0x45ff); |
| | |
| | | |
| | | int CMaster::addEquipment(CEquipment* pEquipment) |
| | | { |
| | | EquipmentListener listener; |
| | | listener.onAlive = [&](void* pEquipment, BOOL bAlive) -> void { |
| | | CEquipment* p = (CEquipment*)pEquipment; |
| | | if (m_listener.onEqAlive != nullptr) { |
| | | m_listener.onEqAlive(this, p, bAlive); |
| | | } |
| | | }; |
| | | listener.onCimStateChanged = [&](void* pEquipment, BOOL bOn) -> void { |
| | | CEquipment* p = (CEquipment*)pEquipment; |
| | | if (m_listener.onEqCimStateChanged != nullptr) { |
| | | m_listener.onEqCimStateChanged(this, p, bOn); |
| | | } |
| | | }; |
| | | pEquipment->setListener(listener); |
| | | m_listEquipment.push_back(pEquipment); |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | CEquipment* CMaster::getEquipment(int id) |
| | | { |
| | | return nullptr; |
| | | } |
| | | |
| | | void CMaster::onTimer(UINT nTimerid) |
| | |
| | | } |
| | | |
| | | |
| | | // 以下为测试代码 |
| | | // 按一定频率扫描LB数据 |
| | | static int i = 0; |
| | | i++; |
| | | if (i % (4 * 1) == 0) { |
| | |
| | | const StationIdentifier& station = item->getStation(); |
| | | MemoryBlock& block = item->getReadBitBlock(); |
| | | |
| | | char szBuffer[1024]; |
| | | int nRet = m_cclink.ReadData2(station, (short)block.type, |
| | | block.start, block.size, szBuffer); |
| | | for (unsigned int i = 0; i < block.size; i++) { |
| | | if(szBuffer[i] != 0) |
| | | TRACE("%d[%x]\n", i, szBuffer[i]); |
| | | block.start, block.size, block.buffer); |
| | | if (0 == nRet) { |
| | | item->onReceiveLBData(block.buffer, block.size); |
| | | } |
| | | TRACE("nRet=%d\n", nRet); |
| | | } |
| | | } |
| | | } |