This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

How to get mcc and mnc using modem_info.h ?

<environment>
- Windows10
- modem fw v1.2.0
- nrf v1.3.0

I try to get mnc and mcc data but no luck. Any help?

#include <zephyr.h>
#include <string.h>
#include <stdio.h>
#include <modem/modem_info.h>
#include <modem/lte_lc.h>

void main() {

    int ret;
    char rx_buf[MODEM_INFO_MAX_RESPONSE_SIZE];
    u16_t rx_buf_short;

    // Connect LTE first
    printk("LTE Link Connecting ...\n");
    ret = lte_lc_init_and_connect();
    if(ret < 0){
        printk("Error: lte_lc_init_and_connect\n");
        return;
    } else {
        printk("LTE Link Connected!\n");
    }

     // Init modem info
    ret = modem_info_init();
    if(ret < 0){
        printk("Error: modem_info_init\n");
        return;
    }
    
    // Get cell ID => this is successful
    ret = modem_info_string_get(MODEM_INFO_CELLID, rx_buf, MODEM_INFO_MAX_RESPONSE_SIZE);
    if(ret < 0){
        printk("Error: MODEM_INFO_CELLID\n");
        return;
    } else {
        printk("MODEM_INFO_CELLID = %s\n", rx_buf);
    }

    // Get MCC => Fail
    ret = modem_info_short_get(MODEM_INFO_MCC, &rx_buf_short);
    if(ret < 0){
        printk("Error: MODEM_INFO_MCC\n");
        return;
    } else {
        printk("MODEM_INFO_MCC = %u\n", rx_buf_short);
    }
    
    // Get MNC => Fail
    ret = modem_info_short_get(MODEM_INFO_MNC, &rx_buf_short);
    if(ret < 0){
        printk("Error: MODEM_INFO_MNC\n");
        return;
    } else {
        printk("MODEM_INFO_MNC = %u\n", rx_buf_short);
    }

    // Get TAC(tracking area code) => this is successful
    ret = modem_info_string_get(MODEM_INFO_AREA_CODE, rx_buf, MODEM_INFO_MAX_RESPONSE_SIZE);
    if(ret < 0){
        printk("Error: MODEM_INFO_AREA_CODE\n");
        return;
    } else {
        printk("MODEM_INFO_AREA_CODE = %s\n", rx_buf);
    }


    return;
}

I also tried it using modem_info_params_init and modem_info_params_get, but modem_info_params_get causes an error -11.

Related