| | |
| | | else if (nStream == 2 && pHeader->function == 43) { |
| | | replyConfigureSpooling(pMessage); |
| | | } |
| | | else if (nStream == 3 && pHeader->function == 17) { |
| | | replyCarrierAction(pMessage); |
| | | } |
| | | else if (nStream == 5 && pHeader->function == 3) { |
| | | replyEanbleDisableAlarmReport(pMessage); |
| | | } |
| | |
| | | return 0; |
| | | } |
| | | |
| | | // S3F17 |
| | | int CHsmsPassive::replyCarrierAction(IMessage* pRecv) |
| | | { |
| | | if (m_pPassive == NULL || STATE::SELECTED != m_pPassive->getState()) { |
| | | return ER_NOTSELECT; |
| | | } |
| | | |
| | | unsigned char CAACK = CAACK_0; |
| | | unsigned int ERRCODE = 0; |
| | | std::string strError = "no error"; |
| | | if (m_listener.onCarrierAction == nullptr) { |
| | | CAACK = 5; |
| | | ERRCODE = CAACK_5; |
| | | strError = "Not supported"; |
| | | goto MYREPLY; |
| | | } |
| | | |
| | | |
| | | ISECS2Item* pBody = pRecv->getBody(); |
| | | if (pBody == nullptr || pBody->getType() != SITYPE::L) ER_PARAM_ERROR; |
| | | |
| | | unsigned int DATAID; |
| | | unsigned char PTN; |
| | | const char* pszCarrierAction, *pszCarrierId; |
| | | pBody->getSubItemU4(0, DATAID); |
| | | pBody->getSubItemString(1, pszCarrierAction); |
| | | pBody->getSubItemString(2, pszCarrierId); |
| | | pBody->getSubItemU1(3, PTN); |
| | | ERRCODE = m_listener.onCarrierAction(this, |
| | | DATAID, |
| | | pszCarrierAction, |
| | | pszCarrierId, |
| | | PTN, |
| | | strError); |
| | | CAACK = ERRCODE; |
| | | |
| | | // 回复 |
| | | MYREPLY: |
| | | IMessage* pMessage = NULL; |
| | | HSMS_Create1Message(pMessage, m_nSessionId, 3, 18, pRecv->getHeader()->systemBytes); |
| | | pMessage->getBody()->addU1Item(CAACK, "CAACK"); |
| | | ISECS2Item* pErrItem = pMessage->getBody()->addItem(); |
| | | pErrItem->addU4Item(ERRCODE, "ERRCODE"); |
| | | pErrItem->addItem(strError.c_str(), "ERRTEXT"); |
| | | m_pPassive->sendMessage(pMessage); |
| | | LOGI("<HSMS>[SECS Msg SEND]S3F18 (SysByte=%u)", pMessage->getHeader()->systemBytes); |
| | | HSMS_Destroy1Message(pMessage); |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | // S5F3 |
| | | int CHsmsPassive::replyEanbleDisableAlarmReport(IMessage* pRecv) |
| | | { |