blob: da66f3de4a0cfdb326329b1bafee78cdcbc77924 [file] [log] [blame]
b.liu9e8584b2024-11-06 19:21:28 +08001#include <string.h>
b.liuf678f992024-05-08 15:23:10 +08002#include "mbtk_type.h"
b.liu61ad9172025-01-09 14:33:55 +08003#include "mbtk_utils.h"
b.liu472cfaf2024-12-19 19:08:19 +08004
5#ifdef MBTK_DEV_INFO_VERSION_2
6#include "mbtk_device_v2.h"
7#else
b.liubb5e7682024-02-28 20:13:04 +08008#include "mbtk_device.h"
b.liu472cfaf2024-12-19 19:08:19 +08009#endif
10
b.liubb5e7682024-02-28 20:13:04 +080011
12static char* band_2_str(mbtk_modem_band_area_enum band_area)
13{
14 switch(band_area)
15 {
16 case MBTK_MODEM_BAND_AREA_CN:
17 return "CN";
18 case MBTK_MODEM_BAND_AREA_EU:
19 return "EU";
b.liu288093c2024-05-09 17:02:57 +080020 case MBTK_MODEM_BAND_AREA_SA:
21 return "SA";
b.liubb5e7682024-02-28 20:13:04 +080022 default:
23 return "ALL";
24 }
25}
26
b.liuf2ea8bf2025-01-09 15:07:34 +080027#ifdef MBTK_DEV_INFO_VERSION_2
b.liu61ad9172025-01-09 14:33:55 +080028static char* net_support_str_get(uint32 net_support)
29{
30 static char net_str[100] = {0};
31
32 if(net_support & MBTK_NET_SUPPORT_2G) { // GSM
33 if(strlen(net_str) > 0) {
34 strcat(net_str, "/2G");
35 } else {
36 strcat(net_str, "2G");
37 }
38 }
39
40 if(net_support & MBTK_NET_SUPPORT_3G) { // WCDMA
41 if(strlen(net_str) > 0) {
42 strcat(net_str, "/3G");
43 } else {
44 strcat(net_str, "3G");
45 }
46 }
47
48 if(net_support & MBTK_NET_SUPPORT_4G) { // LTE
49 if(strlen(net_str) > 0) {
50 strcat(net_str, "/4G");
51 } else {
52 strcat(net_str, "4G");
53 }
54 }
55
56 if(net_support & MBTK_NET_SUPPORT_5G) { // NR
57 if(strlen(net_str) > 0) {
58 strcat(net_str, "/5G");
59 } else {
60 strcat(net_str, "5G");
61 }
62 }
63 return net_str;
64}
b.liuf2ea8bf2025-01-09 15:07:34 +080065#endif
b.liu61ad9172025-01-09 14:33:55 +080066
67static char* band_str_get(uint32 band, int index)
68{
69 int band_list[33] = {0};
70 int ret = mbtk_band_2_list(band, index, band_list);
71 if(ret > 0) {
72 static char buff[150] = {0};
73 memset(buff, 0, sizeof(buff));
74 int i = 0;
75 while(i < ret) {
76 if(strlen(buff) > 0) {
77 sprintf(buff + strlen(buff), "/b%d", band_list[i]);
78 } else {
79 sprintf(buff + strlen(buff), "b%d", band_list[i]);
80 }
81 i++;
82 }
83 return buff;
84 } else {
85 return "NON";
86 }
87}
88
b.liubb5e7682024-02-28 20:13:04 +080089int main(int argc, char *argv[])
90{
91 mbtk_device_info_basic_t info_basic;
92 memset(&info_basic, 0, sizeof(mbtk_device_info_basic_t));
93 int result = mbtk_dev_info_read(MBTK_DEVICE_INFO_ITEM_BASIC, &info_basic, sizeof(mbtk_device_info_basic_t));
94 if(result) {
95 printf("mbtk_dev_info_read(BASIC) fail.\n");
96 return -1;
97 }
98
99 /*
100 uint8 project[16]; // T108 / L508_X6
101 uint8 project_cust[16]; // T108_C1 / L508_X6_C1 (Refer to: Custom_Model in blf file.)
102 uint32 ab_support; // 1 for ab
103 uint8 revision_out[48]; // L508_X6v01.01b04.00
104 uint8 revision_in[64];
105 */
106 printf("Project:%s\n", info_basic.project);
107 printf("Custom_Model:%s\n", info_basic.project_cust);
108 printf("Revision_Out:%s\n", info_basic.revision_out);
109 printf("Revision_In:%s\n", info_basic.revision_in);
b.liu96f2ced2024-08-29 18:40:34 +0800110 printf("Build_Time:%s\n", info_basic.build_time);
b.liubb5e7682024-02-28 20:13:04 +0800111 printf("AB System:%s\n", info_basic.ab_support ? "Yes" : "No");
b.liuf678f992024-05-08 15:23:10 +0800112 printf("Reboot flag:%d\n", info_basic.reboot_flag);
b.liubb5e7682024-02-28 20:13:04 +0800113
114 mbtk_device_info_modem_t info_modem;
115 memset(&info_modem, 0, sizeof(mbtk_device_info_modem_t));
116 result = mbtk_dev_info_read(MBTK_DEVICE_INFO_ITEM_MODEM, &info_modem, sizeof(mbtk_device_info_modem_t));
117 if(result) {
118 printf("mbtk_dev_info_read(MODEM) fail.\n");
119 return -1;
120 }
121
b.liuf2ea8bf2025-01-09 15:07:34 +0800122#ifdef MBTK_DEV_INFO_VERSION_2
b.liu61ad9172025-01-09 14:33:55 +0800123 printf("net_pref:%d\n", info_modem.net_pref);
124 printf("net_support:%s\n", net_support_str_get(info_modem.net_support));
b.liubb5e7682024-02-28 20:13:04 +0800125 printf("Band:%s\n", band_2_str(info_modem.band_area));
b.liu61ad9172025-01-09 14:33:55 +0800126 printf("Band GSM:0x%08x(%s)\n", info_modem.band_gsm, band_str_get(info_modem.band_gsm, 0));
127 printf("Band WCDMA:0x%08x(%s)\n", info_modem.band_wcdma, band_str_get(info_modem.band_wcdma, 0));
128 printf("Band TDLTE:0x%08x(%s)\n", info_modem.band_tdlte, band_str_get(info_modem.band_tdlte, 1));
129 printf("Band FDDLTE:0x%08x(%s)\n", info_modem.band_fddlte, band_str_get(info_modem.band_fddlte, 0));
130 printf("Band EXT_LTE:0x%08x(%s)\n", info_modem.band_lte_ext, band_str_get(info_modem.band_lte_ext, 0));
131 printf("Band NR_3:0x%08x(%s)\n", info_modem.band_nr_3, band_str_get(info_modem.band_nr_3, 3));
132 printf("Band NR_2:0x%08x(%s)\n", info_modem.band_nr_2, band_str_get(info_modem.band_nr_2, 2));
133 printf("Band NR_1:0x%08x(%s)\n", info_modem.band_nr_1, band_str_get(info_modem.band_nr_1, 1));
134 printf("Band NR_0:0x%08x(%s)\n", info_modem.band_nr_0, band_str_get(info_modem.band_nr_0, 0));
b.liuf2ea8bf2025-01-09 15:07:34 +0800135#else
136 printf("Band:%s\n", band_2_str(info_modem.band_area));
137 printf("Band GSM:0x%08x(%s)\n", info_modem.band_gsm, band_str_get(info_modem.band_gsm, 0));
138 printf("Band WCDMA:0x%08x(%s)\n", info_modem.band_wcdma, band_str_get(info_modem.band_wcdma, 0));
139 printf("Band TDLTE:0x%08x(%s)\n", info_modem.band_tdlte, band_str_get(info_modem.band_tdlte, 1));
140 printf("Band FDDLTE:0x%08x(%s)\n", info_modem.band_fddlte, band_str_get(info_modem.band_fddlte, 0));
141 printf("Band EXT_LTE:0x%08x(%s)\n", info_modem.band_lte_ext, band_str_get(info_modem.band_lte_ext, 0));
142#endif
143
b.liubb5e7682024-02-28 20:13:04 +0800144 return 0;
145}
146
147