QMI NAS信号和服务状态主动上报

//bind subs

int uc_qmi_nas_bind_subscription(int subs_id) {

    int client_err = QMI_NO_ERR;
    nas_bind_subscription_req_msg_v01  pl_req;
    nas_bind_subscription_resp_msg_v01 pl_resp;
    memset(&pl_req, 0, sizeof(pl_req));
    memset(&pl_resp, 0, sizeof(pl_resp));
    pl_req.subs_type = (nas_subs_type_enum_v01) subs_id;
    client_err =  qmi_client_send_msg_sync (nas_clnt_hndl,
                                            QMI_NAS_BIND_SUBSCRIPTION_REQ_MSG_V01,
                                            &pl_req,
                                            sizeof(pl_req),
                                            &pl_resp,
                                            sizeof(pl_resp),
                                            30000);

    if(client_err != QMI_NO_ERR){
        ALOGI("%s error %d \n",__FUNCTION__, client_err);
        return client_err;
    }
    ALOGI("uc_qmi_bind_subscription %d\n",subs_id);
    return client_err;
}


//Register

int uc_qmi_nas_register_event(){
    qmi_client_error_type client_err = QMI_NO_ERR;

    nas_indication_register_req_msg_v01 req = {};
    nas_indication_register_resp_msg_v01 rsp = {};

    //QMI_NAS_RF_BAND_INFO_IND_V01
    req.reg_rf_band_info_valid = TRUE;
    req.reg_rf_band_info = 1;

    //QMI_NAS_LTE_CPHY_CA_IND_V01
    req.reg_lte_cphy_ca_valid = TRUE;
    req.reg_lte_cphy_ca = 1;

    //QMI_NAS_SERVING_SYSTEM_IND_MSG_V01
    req.req_serving_system_valid= TRUE;
    req.req_serving_system = 1;

    //QMI_NAS_SYS_INFO_IND_MSG_V01
    req.sig_info_valid = TRUE;
    req.sig_info = 1;
    req.err_rate_valid = TRUE;
    req.err_rate       = 1;

    //QMI_NAS_SYS_INFO_IND_MSG_V01
    req.sys_info_valid = TRUE;
    req.sys_info = 1;


  client_err = qmi_client_send_msg_sync(nas_clnt_hndl,
                                             QMI_NAS_INDICATION_REGISTER_REQ_MSG_V01,
                                             &req,
                                             sizeof(req),
                                             &rsp,
                                             sizeof(rsp),
                                             10000);
    if(client_err) {
        ALOGI("QMI_NAS_INDICATION_REGISTER_REQ_MSG_V01 error %d", client_err);
    }

    nas_config_sig_info2_req_msg_v01 reqMsg;
    nas_config_sig_info2_resp_msg_v01 respMsg;
    memset( &reqMsg, 0, sizeof(reqMsg));
    memset( &respMsg, 0, sizeof(respMsg));

    reqMsg.lte_rsrp_delta_valid = 1;
    reqMsg.lte_rsrp_delta = 50;

    client_err = qmi_client_send_msg_sync(nas_clnt_hndl,
                                         QMI_NAS_CONFIG_SIG_INFO2_REQ_MSG_V01,
                                         &reqMsg,
                                         sizeof(reqMsg),
                                         &respMsg,
                                         sizeof(respMsg),
                                         10000);
    if(client_err) {
        ALOGI("QMI_NAS_CONFIG_SIG_INFO2_REQ_MSG_V01 error %d", client_err);
    }

    return client_err;
}


其中信号上报必须设置两个监听 

QMI_NAS_INDICATION_REGISTER_REQ_MSG_V01

QMI_NAS_CONFIG_SIG_INFO2_REQ_MSG_V01,

lte_rsrp_delta表示变化范围为5db时,modem才上报

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值