LAPTOP-SNT8I5JK\Boounion
2025-07-11 4a102d22d449d0230f01a77f661ab667c36a648e
1.EAP模拟器之警告信息模拟
已修改3个文件
45 ■■■■ 文件已修改
SourceCode/Bond/EAPSimulator/CHsmsActive.cpp 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/EAPSimulator/CHsmsActive.h 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CBonder.cpp 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/EAPSimulator/CHsmsActive.cpp
@@ -60,9 +60,16 @@
    auto onRecvDataMessage = [&](void* pFrom, IMessage* pMessage) -> void {
        HEADER* pHeader = pMessage->getHeader();
        int nStream = (pHeader->stream & 0x7F);
        TRACE("收到消息 S%dF%d================\n", pHeader->stream & 0x7F, pHeader->function);
        TRACE("Body:%s\n", pMessage->toString());
        LOGI("onRecvDataMessage(%s).", pMessage->toString());
        if (nStream == 5 && pHeader->function == 1) {
            // S1F1
            replyAck(5, 2, pMessage->getHeader()->systemBytes, 0, _T("ACK0"));
        }
    };
    ActiveListener listener;
@@ -162,3 +169,22 @@
    return 0;
}
int CHsmsActive::replyAck0(IMessage* pMessage)
{
    return 0;
}
// 通用的reply ack函数
void CHsmsActive::replyAck(int s, int f, unsigned int systemBytes, BYTE ack, const char* pszAckName)
{
    IMessage* pMessage = NULL;
    HSMS_Create1Message(pMessage, m_nSessionId, s, f, systemBytes);
    ASSERT(pMessage);
    ISECS2Item* pItem = pMessage->getBody();
    pItem->setBinary((const char*)&ack, 1, pszAckName);
    m_pActive->sendMessage(pMessage);
    LOGI("<HSMS>[SECS Msg SEND]S%dF%d (SysByte=%u)", s, f, systemBytes);
    HSMS_Destroy1Message(pMessage);
}
SourceCode/Bond/EAPSimulator/CHsmsActive.h
@@ -37,6 +37,12 @@
    // terminal display
    int hsmsTerminalDisplay(BYTE tid, const char* pszText);
    // 通过的reply函数
    void replyAck(int s, int f, unsigned int systemBytes, BYTE ack, const char* pszAckName);
    // reply ack0
    int replyAck0(IMessage* pMessage);
private:
    ACTIVEListener m_listener;
    IActive* m_pActive;
SourceCode/Bond/Servo/CBonder.cpp
@@ -420,15 +420,16 @@
        CEquipment::onTimer(nTimerid);
        // test
        /*
        static int i[2] = { 0, 0 };
        i[m_nIndex]++;
        if (i[m_nIndex] == 15) {
            char szBuffer[26];
            decodeJobProcessStartReport(getStep(STEP_ID_JOB_PROCESS_START_REPORT), szBuffer, 26);
        if (m_nIndex == 0 && i[m_nIndex] == 100) {
            if (m_listener.onAlarm != nullptr) {
                m_listener.onAlarm(this, 1,
                    100,
                    getID(),
                    1);
        }
        */
        }
    }
    void CBonder::serialize(CArchive& ar)