{\r
#if 1\r
static struct nand_driver_struct *cached_driver = NULL;\r
- \r
- // 如果已经缓存了驱动,直接返回\r
+\r
if (cached_driver != NULL) {\r
return cached_driver;\r
}\r
- \r
- // 初始化NAND驱动硬件\r
+\r
nand_driver_init(SPEED_MID);\r
- \r
- // 读取CHIP ID\r
+\r
uint16_t chip_id = 0;\r
qspi_data_type_def qspi_data = {0};\r
qspi_data.instruction = CMD_FLASH_ID;\r
\r
chip_id = read_id(&qspi_data);\r
- \r
- // 根据CHIP ID查找对应的驱动\r
+\r
for (uint32_t i = 0; i < NAND_CHIP_MAPPINGS_COUNT; i++) {\r
if (nand_chip_mappings[i].chip_id == chip_id) {\r
cached_driver = nand_chip_mappings[i].driver;\r
return cached_driver;\r
}\r
}\r
- \r
- // 如果没有找到匹配的CHIP ID,使用默认驱动\r
+\r
cached_driver = &g_ds35x1g_driver;\r
return cached_driver;\r
#else\r
{\r
#if 1\r
static struct nand_driver_struct *cached_driver = NULL;\r
- \r
- // 如果已经缓存了驱动,直接返回\r
+\r
if (cached_driver != NULL) {\r
return cached_driver;\r
}\r
- \r
- // 初始化NAND驱动硬件\r
+\r
nand_driver_init(SPEED_MID);\r
- \r
- // 读取CHIP ID\r
+\r
uint16_t chip_id = 0;\r
qspi_data_type_def qspi_data = {0};\r
qspi_data.instruction = CMD_FLASH_ID;\r
\r
chip_id = read_id(&qspi_data);\r
\r
- PRINT("检测到NAND Flash CHIP ID: 0x%04X\r\n", chip_id);\r
- \r
- // 根据CHIP ID查找对应的驱动\r
+ PRINT("find nand flash chip id: 0x%04X\r\n", chip_id);\r
+\r
for (uint32_t i = 0; i < NAND_CHIP_MAPPINGS_COUNT; i++) {\r
if (nand_chip_mappings[i].chip_id == chip_id) {\r
cached_driver = nand_chip_mappings[i].driver;\r
- PRINT("选择NAND Flash驱动: %s\r\n", nand_chip_mappings[i].name);\r
+ PRINT("nand flash %s start init\r\n", nand_chip_mappings[i].name);\r
return cached_driver;\r
}\r
}\r
- \r
- // 如果没有找到匹配的CHIP ID,使用默认驱动\r
- PRINT("未找到匹配的CHIP ID 0x%04X,使用默认驱动 DS35X1G\r\n", chip_id);\r
+\r
+ PRINT("No matching nand flash chip id 0x%04X found, using default driver DS35X1G\r\n", chip_id);\r
cached_driver = &g_ds35x1g_driver;\r
return cached_driver;\r
#else\r
{
update++;
cat1_api_runtime_set_cat1_imei(ppbuf);
+
+ cat1_print_info("IMEI received, sending AT+ICCID command\n");
+ cat1_at_cmd("AT+ICCID");
}
continue;
}else if(strncmp(s,"sim:",4) == 0)
cat1_print_warning("MESSAGE_4G_NETWORK_DISCONNECTED");
break;
case MESSAGE_4G_NETWORK_STAT_CHANGED: //含signal,sim,运营商,
- cat1_print_warning("MESSAGE_4G_NETWORK_STAT_CHANGED netstat(%d),signal(%d),sim(%d),network(%s),imei(%s),operator(%s)",
+ cat1_print_warning("MESSAGE_4G_NETWORK_STAT_CHANGED netstat(%d),signal(%d),sim(%d),network(%s),imei(%s),iccid(%s),operator(%s)",
cat1_api_runtime_get_cat1_networkstat(),
cat1_api_runtime_get_cat1_signal(),
cat1_api_runtime_get_cat1_simstat(),
cat1_api_runtime_get_cat1_networktype()==0?"无网络":(cat1_api_runtime_get_cat1_networktype()==1?"GSM":(cat1_api_runtime_get_cat1_networktype()==2?"3G":"4G/LTE")),
cat1_api_runtime_get_cat1_imei(),
+ cat1_api_runtime_get_cat1_iccid(),
cat1_api_runtime_get_cat1_operator()
);
break;
break;
case MESSAGE_4G_AT_RECEIVED: //返回值为字符串
cat1_print_warning("MESSAGE_4G_AT_RECEIVED %s",msg_buf);
+ if(strlen(msg_buf) == 28 && strncmp(msg_buf, "+ICCID: ", 8) == 0)
+ {
+ char iccid_buffer[21] = {0};
+ strncpy(iccid_buffer, msg_buf + 8, 20);
+ cat1_api_runtime_set_cat1_iccid(iccid_buffer);
+ cat1_print_warning("ICCID extracted and set: %s", iccid_buffer);
+ }
break;
case MESSAGE_4G_TIME_SYNCED: //无参数
cat1_print_warning("MESSAGE_4G_TIME_SYNCED");