| | |
| | | } |
| | | } |
| | | |
| | | index = 0x350; |
| | | bFlag = isBitOn(pszData, size, index); |
| | | pStep = getStep(index); |
| | | if (pStep != nullptr) { |
| | | ((CWriteStep*)pStep)->onRecvSignal(bFlag); |
| | | } |
| | | // CIM Mode |
| | | checkStepSignalStepSignal(0x350, pszData, size); |
| | | |
| | | // Port1 ~ Port4 |
| | | checkStepSignalStepSignal(0x3e0, pszData, size); |
| | | checkStepSignalStepSignal(0x3e1, pszData, size); |
| | | checkStepSignalStepSignal(0x3e2, pszData, size); |
| | | checkStepSignalStepSignal(0x3e3, pszData, size); |
| | | checkStepSignalStepSignal(0x3e8, pszData, size); |
| | | checkStepSignalStepSignal(0x3e9, pszData, size); |
| | | checkStepSignalStepSignal(0x3ea, pszData, size); |
| | | checkStepSignalStepSignal(0x3eb, pszData, size); |
| | | checkStepSignalStepSignal(0x3f0, pszData, size); |
| | | checkStepSignalStepSignal(0x3f1, pszData, size); |
| | | checkStepSignalStepSignal(0x3f2, pszData, size); |
| | | checkStepSignalStepSignal(0x3f3, pszData, size); |
| | | checkStepSignalStepSignal(0x3f8, pszData, size); |
| | | checkStepSignalStepSignal(0x3f9, pszData, size); |
| | | checkStepSignalStepSignal(0x3fa, pszData, size); |
| | | checkStepSignalStepSignal(0x3fb, pszData, size); |
| | | checkStepSignalStepSignal(0x400, pszData, size); |
| | | checkStepSignalStepSignal(0x401, pszData, size); |
| | | checkStepSignalStepSignal(0x402, pszData, size); |
| | | checkStepSignalStepSignal(0x403, pszData, size); |
| | | checkStepSignalStepSignal(0x408, pszData, size); |
| | | checkStepSignalStepSignal(0x409, pszData, size); |
| | | checkStepSignalStepSignal(0x40a, pszData, size); |
| | | checkStepSignalStepSignal(0x40b, pszData, size); |
| | | |
| | | } |
| | | |
| | | BOOL CEquipment::isBitOn(const char* pszData, size_t size, int index) |
| | |
| | | } |
| | | } |
| | | |
| | | BOOL CEquipment::removeClass(CGlass* pGlass) |
| | | { |
| | | Lock(); |
| | | bool bExist = std::find(m_glassList.begin(), m_glassList.end(), pGlass) != m_glassList.end(); |
| | | if (bExist) { |
| | | pGlass->addPath(EQ_ID_OPERATOR_REMOVE); |
| | | pGlass->release(); |
| | | m_glassList.remove(pGlass); |
| | | } |
| | | Unlock(); |
| | | |
| | | if (bExist && m_listener.onDataChanged != nullptr) { |
| | | m_listener.onDataChanged(this, 0); |
| | | } |
| | | |
| | | return bExist; |
| | | } |
| | | |
| | | void CEquipment::getGlassList(std::list<CGlass*>& list) |
| | | { |
| | | Lock(); |
| | | for (auto item : m_glassList) { |
| | | item->addRef(); |
| | | list.push_back(item); |
| | | } |
| | | Unlock(); |
| | | } |
| | | |
| | | CGlass* CEquipment::getFrontGlass() |
| | | { |
| | | CGlass* pGlass = nullptr; |
| | |
| | | |
| | | return pGlass; |
| | | } |
| | | |
| | | void CEquipment::checkStepSignalStepSignal(unsigned int addr, const char* pszData, size_t size) |
| | | { |
| | | BOOL bFlag = isBitOn(pszData, size, addr); |
| | | SERVO::CStep* pStep = getStep(addr); |
| | | if (pStep != nullptr) { |
| | | ((CWriteStep*)pStep)->onRecvSignal(bFlag); |
| | | } |
| | | } |
| | | } |