EM7455 API return error

I use EM7455 for MT7628 platform. This platform linux kernel version is 3.10. so I must use Gobinet driver and sdk. This topic does not talk about this version of the problem.

I encountered some errors when use sdk.

firmware:9999999_9904609_SWI9X30C_02.33.03.00_00_GENERIC_002.072_000.exe
sdk version:SLQS04.00.27-lite.bin.tar.gz

  1. API error when verify PIN.
# syslog
Mon Oct 25 16:39:24 2021 user.debug modem_mgr: [1] [  pack] QMI_DMS_UIM_VERIFY_PIN xid 0x0004 returned 0x0
Mon Oct 25 16:39:25 2021 user.debug modem_mgr: [1] [helper] DMS_UIM_PIN_VERIFY svc 2 xid 0x0004
===:255,255
Mon Oct 25 16:39:25 2021 user.debug modem_mgr: [1] [unpack] QMI_DMS_UIM_VERIFY_PIN xid 0x0004 returned 0x42f

#my code 
int AtcVerifyPin(unsigned int modem_id, char *pincode) {
  int rtn;
  pack_qmi_t req_ctx;
  uint8_t qmi_req[QMI_MSG_MAX];
  uint8_t qmi_rsp[QMI_MSG_MAX];
  uint16_t qmi_req_len;
  uint16_t qmi_rsp_len;

  QmiInfo *qmi_handler = AtcGetQmiHanderFromId(modem_id);
  if (!qmi_handler) {
    return -1;
  }
  pack_dms_UIMVerifyPIN_t pinVerify;
  memset(&pinVerify, 0, sizeof(pinVerify));
  memset(qmi_req, 0, QMI_MSG_MAX);
  memset(qmi_rsp, 0, QMI_MSG_MAX);
  memset(&req_ctx, 0, sizeof(pack_qmi_t));
  pinVerify.id = 1;
  strncpy((char *)pinVerify.value, pincode, sizeof(pinVerify.value) - 1);

  req_ctx.xid = create_xid(qmi_handler, eLITE_DMS_FD_ARR_INDEX);
  rtn = pack_dms_UIMVerifyPIN(&req_ctx, qmi_req, &qmi_req_len, &pinVerify);
  if (rtn != eQCWWAN_ERR_NONE) {
    return -1;
  }
/* our version for wait rsp use socket but condition/mutex. */
  rtn = write_fd_waitrsp(&req_ctx, qmi_req, qmi_req_len, qmi_handler,
                         eLITE_DMS_FD_ARR_INDEX, QMI_CMD_TIMEOUT_MSEC, qmi_rsp,
                         &qmi_rsp_len);
  if (rtn != 0) {
    return -1;
  }

  unpack_dms_UIMSetPINProtection_t test;
  memset(&test, 0, sizeof(test));
  rtn = unpack_dms_UIMVerifyPIN(qmi_rsp, qmi_rsp_len, &test);
  printf("===:%d,%d\n", test.verifyRetriesLeft, test.unblockRetriesLeft);
  return 0;
}
  1. SIM card status not report to dms service watch.
    how can I enable report for SIM cart status(plug in/plug out) ? sdk demo have not specfic exaples.
# my Fake code
  uint8_t setInd = 0x1;

  pack_dms_SetEventReport_t dmsReqPara;
  memset(&dmsReqPara, 0, sizeof(pack_dms_SetEventReport_t));
  dmsReqPara.mode = DMS_SET_REPORT_ENABLE;
  rtn = pack_dms_SetEventReport(&req_ctx, qmi_req, &qmi_req_len, (void *)&dmsReqPara);
  //write(2);

  pack_dms_SwiSetEventReport_t SwiEventSettingsUINStatus = {NULL, NULL, &setInd};												
  rtn = pack_dms_SwiSetEventReport(&req_ctx, qmi_req, &qmi_req_len,  (void *)&SwiEventSettingsUINStatus);
// write(2);

  pack_dms_SLQSDmsSwiIndicationRegister_t dmsIndRegPara;
  memset(&dmsIndRegPara, 0, sizeof(pack_dms_SLQSDmsSwiIndicationRegister_t));
  dmsIndRegPara.resetInfoInd = DMS_SWI_SET_IND_ENABLE;
  pack_dms_SLQSDmsSwiIndicationRegister(&req_ctx, qmi_req, &qmi_req_len, (void *)&dmsIndRegPara);
//write(2);