Update commands-nas.c

Add correct translation of WCDMA and LTE cid.
WCDMA: RNCid = int(cid/65536) Cell id = cid - int(cid/65536)*65536
LTE: eNodeB = int(cid/256) Cell id = cid - int(cid/256)256
master
mrhaav 3 years ago committed by GitHub
parent 421219faf1
commit 6972284729
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -313,9 +313,8 @@ print_system_info(uint8_t svc_status, uint8_t tsvc_status, bool preferred, bool
bool service_cap_valid, uint8_t service_cap,
bool roaming_status_valid, uint8_t roaming_status,
bool forbidden_valid, bool forbidden,
bool lac_valid, uint16_t lac,
bool cid_valid, uint32_t cid,
bool network_id_valid, char *mcc, char *mnc)
bool network_id_valid, char *mcc, char *mnc,
bool lac_valid, uint16_t lac)
{
static const char *map_service[] = {
[QMI_NAS_SERVICE_STATUS_NONE] = "none",
@ -362,15 +361,13 @@ print_system_info(uint8_t svc_status, uint8_t tsvc_status, bool preferred, bool
blobmsg_add_string(&status, "roaming_status", map_roaming[roaming_status]);
if (forbidden_valid)
blobmsg_add_u8(&status, "forbidden", forbidden);
if (lac_valid)
blobmsg_add_u32(&status, "location_area_code", (int32_t) lac);
if (cid_valid)
blobmsg_add_u32(&status, "cell_id", (int32_t) cid);
if (network_id_valid) {
blobmsg_add_string(&status, "mcc", mcc);
if ((uint8_t)mnc[2] == 255)
mnc[2] = 0;
blobmsg_add_string(&status, "mnc", mnc);
if (lac_valid)
blobmsg_add_u32(&status, "location_area_code", (int32_t) lac);
}
}
}
@ -405,13 +402,14 @@ cmd_nas_get_system_info_cb(struct qmi_dev *qmi, struct qmi_request *req, struct
res.data.gsm_system_info_v2.roaming_status,
res.data.gsm_system_info_v2.forbidden_valid,
res.data.gsm_system_info_v2.forbidden,
res.data.gsm_system_info_v2.lac_valid,
res.data.gsm_system_info_v2.lac,
res.data.gsm_system_info_v2.cid_valid,
res.data.gsm_system_info_v2.cid,
res.data.gsm_system_info_v2.network_id_valid,
res.data.gsm_system_info_v2.mcc,
res.data.gsm_system_info_v2.mnc);
res.data.gsm_system_info_v2.mnc,
res.data.gsm_system_info_v2.lac_valid,
res.data.gsm_system_info_v2.lac);
if (res.set.gsm_system_info_v2 && res.data.gsm_system_info_v2.cid_valid)
blobmsg_add_u32(&status, "cell_id",
res.data.gsm_system_info_v2.cid);
if (res.set.additional_gsm_system_info &&
res.data.additional_gsm_system_info.geo_system_index != 0xFFFF)
blobmsg_add_u32(&status, "geo_system_index",
@ -433,13 +431,17 @@ cmd_nas_get_system_info_cb(struct qmi_dev *qmi, struct qmi_request *req, struct
res.data.wcdma_system_info_v2.roaming_status,
res.data.wcdma_system_info_v2.forbidden_valid,
res.data.wcdma_system_info_v2.forbidden,
res.data.wcdma_system_info_v2.lac_valid,
res.data.wcdma_system_info_v2.lac,
res.data.wcdma_system_info_v2.cid_valid,
res.data.wcdma_system_info_v2.cid,
res.data.wcdma_system_info_v2.network_id_valid,
res.data.wcdma_system_info_v2.mcc,
res.data.wcdma_system_info_v2.mnc);
res.data.wcdma_system_info_v2.mnc,
res.data.wcdma_system_info_v2.lac_valid,
res.data.wcdma_system_info_v2.lac);
if (res.set.wcdma_system_info_v2 && res.data.wcdma_system_info_v2.cid_valid) {
int rncid = res.data.wcdma_system_info_v2.cid/65536;
int c_id = res.data.wcdma_system_info_v2.cid-(rncid*65536);
blobmsg_add_u32(&status, "rnc_id",rncid);
blobmsg_add_u32(&status, "cell_id",c_id);
}
if (res.set.additional_wcdma_system_info &&
res.data.additional_wcdma_system_info.geo_system_index != 0xFFFF)
blobmsg_add_u32(&status, "geo_system_index",
@ -461,16 +463,20 @@ cmd_nas_get_system_info_cb(struct qmi_dev *qmi, struct qmi_request *req, struct
res.data.lte_system_info_v2.roaming_status,
res.data.lte_system_info_v2.forbidden_valid,
res.data.lte_system_info_v2.forbidden,
res.data.lte_system_info_v2.lac_valid,
res.data.lte_system_info_v2.lac,
res.data.lte_system_info_v2.cid_valid,
res.data.lte_system_info_v2.cid,
res.data.lte_system_info_v2.network_id_valid,
res.data.lte_system_info_v2.mcc,
res.data.lte_system_info_v2.mnc);
res.data.lte_system_info_v2.mnc,
res.data.lte_system_info_v2.lac_valid,
res.data.lte_system_info_v2.lac);
if (res.set.lte_system_info_v2 && res.data.lte_system_info_v2.tac_valid)
blobmsg_add_u32(&status, "tracking_area_code",
res.data.lte_system_info_v2.tac);
if (res.set.lte_system_info_v2 && res.data.lte_system_info_v2.cid_valid) {
int enodebid = res.data.lte_system_info_v2cid/256;
int c_id = res.data.lte_system_info_v2cid-(enodebid*256);
blobmsg_add_u32(&status, "enodeb_id",enodebid);
blobmsg_add_u32(&status, "cell_id",c_id);
}
if (res.set.additional_lte_system_info &&
res.data.additional_lte_system_info.geo_system_index != 0xFFFF)
blobmsg_add_u32(&status, "geo_system_index",

Loading…
Cancel
Save