#include "awtk.h" #include "conversation_protocol.h" #include #include #include #include "chip.h" #include "board.h" #include "serial.h" #include "sysinfo.h" #include "user_data.h" #include "data_port.h" #include "universal.h" #define MAX_ENTRIES 100 // 假设最大条目数为100 // 定义电话本条目结构体 typedef struct { char name[50]; char phone[20]; } PhoneBookEntry; PhoneBookEntry phoneBook[MAX_ENTRIES]; // 存储电话本信息的数组 int numEntries = 0; // 当前电话本条目数量 void Phone_book_analysis(void){ /*int numEntries = 0; // 当前电话本条目数量 // 模拟收到的电话本信息字符串 char data[] = "+PBDATA=1JACK12345678911"; // 解析字符串并提取姓名和电话号码 char *token = strtok(data, ""); // 使用作为分隔符 if (token != NULL) { token = strtok(NULL, ""); // 跳过第一个分隔符 if (token != NULL) { strcpy(phoneBook[numEntries].name, token); token = strtok(NULL, ""); if (token != NULL) { strcpy(phoneBook[numEntries].phone, token); numEntries++; printf("Phone book entry stored successfully.\n"); } } }*/ // 打印存储的电话本信息 for (int i = 0; i < numEntries; i++) { printf("Entry %d: Name - %s, Phone - %s\n", i+1, phoneBook[i].name, phoneBook[i].phone); } } void Call_analysis(){ } void parseBtATCommand(char* cAtCmd,int cATLen) { uint8_t str[64]; static uint8_t flag = 0; uint8_t j=0; uint32_t num = 0; printf(">>"); for(uint16_t i =0;i 8 && !memcmp(cAtCmd,"+A2DPDEV",8))//蓝牙连接设备信息 远端设备信息 蓝牙连接 { Set_sys_bt_connect_state(1); }else if(strlen(cAtCmd) > 8 && !memcmp(cAtCmd,"+A2DPDEV",8)){ }else if(strlen(cAtCmd) > 9 && !memcmp(cAtCmd,"+A2DPLOST",9)){//远距离断开 设备丢失 }else if(strlen(cAtCmd) > 12 && !memcmp(cAtCmd,"+AVRCPSTAT=1",12)){//AVRCP状态 1是配对状态 蓝牙断开 Set_sys_bt_connect_state(0); }else if(strlen(cAtCmd) > 6 && !memcmp(cAtCmd,"+PBCNT",6)){//电话本数量 num = atoi(cAtCmd + 7); //从数字的起始位置开始转换为整数 printf("Extracted number from command: %d\n", num); }else if(strlen(cAtCmd) > 7 && !memcmp(cAtCmd,"+PBDATA",7)){//电话号码 printf("----------------------------\r\n"); // 解析字符串并提取姓名和电话号码 // char *token = strtok(cAtCmd, ""); // 使用作为分隔符 /*char *token = strtok(cAtCmd, 0x3F); // 使用作为分隔符 printf("token1 > %s .\r\n",token); if (token != NULL) { // token = strtok(NULL, ""); // 跳过第一个分隔符 token = strtok(NULL, 0x3F); // 跳过第一个分隔符 printf("token2 > %s .\r\n",token); if (token != NULL) { strcpy(phoneBook[numEntries].name, token); printf("token3 > %s .\r\n",token); // token = strtok(NULL, ""); token = strtok(NULL, 0x3F); // 跳过第一个分隔符 if (token != NULL) { strcpy(phoneBook[numEntries].phone, token); printf("token4 > %s .\r\n",token); numEntries++; printf("Phone book entry stored successfully.\n"); } } }*/ printf(">>"); for(uint16_t i =0;i%s.\r\n",start4); strncpy(start2, (cAtCmd + len2), len2);//number printf("start2 >%s.\r\n",start2); strncpy(start, (cAtCmd + 10), len2-len1);//name printf("start >%s, start2 >%s .\r\n",start,start2); // char *start = cAtCmd + 10; // char *start2; // strncpy(start2, start, len1); // char *start3 = start + len1; // // char *end = strchr(start, 0x3F); // // char *end2 = strchr(end, 0x3F); // printf("start >%s, end >%s, end2 >%s .\r\n",start,start2,start3); // if (end) { // *end = '\0'; // strncpy(call_num, start, 19); // call_num[19] = '\0'; // 确保字符串以null结尾 // printf("call_num > %s .\r\n",call_num); // } // if (end2) { // *end2 = '\0'; // strncpy(call_name, end, 19); // call_name[19] = '\0'; // 确保字符串以null结尾 // printf("call_name > %s .\r\n",call_name); // } } }