From: cheng.chen Date: Sat, 26 Jul 2025 06:24:17 +0000 (+0800) Subject: 新硬件更新配置 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=a4b23ba6297fba8d45f1dc38290060107d68ea2e;p=mirrors%2FFX01.git 新硬件更新配置 --- diff --git a/2.code/aicos/app/AI_AMP_2_5/AI_AMP_2_5.c b/2.code/aicos/app/AI_AMP_2_5/AI_AMP_2_5.c index 8ee1940..a1dc428 100644 --- a/2.code/aicos/app/AI_AMP_2_5/AI_AMP_2_5.c +++ b/2.code/aicos/app/AI_AMP_2_5/AI_AMP_2_5.c @@ -35,7 +35,7 @@ #include "app_msg.h" #include "aic_ogg.h" #include "efuse.h" -#include "bk_make_time.h" +// #include "bk_make_time.h" // #include "opus/include/opus.h" char FXH01_Version[100]; @@ -47,7 +47,7 @@ typedef enum attributes_format_OPUS, }attributes_format_type; attributes_format_type inbound_attributes_format = attributes_format_PCM; -attributes_format_type outbound_attributes_format = attributes_format_PCM; +attributes_format_type outbound_attributes_format = attributes_format_OPUS; #define OPUS_ENCODER_PACK_MS 60 //多少ms一帧数据 @@ -136,6 +136,7 @@ int play_data_len = 0; void VC_Play_End(void); //打开音频播放 void VC_Play_Start(void); + int bk_get_imei(char *imei) { if(imei == NULL) @@ -143,6 +144,16 @@ int bk_get_imei(char *imei) strcpy(imei,vc_cfg.dev_imei); return 0; } + +int bk_get_iccid(char *iccid) +{ + if(iccid == NULL) + return -1; + strcpy(iccid,vc_cfg.ICCID); + return 0; +} + + #if (BK_LOG_CFG==BK_LOG_UART) int bk_printf(const char *format, ...) { @@ -281,7 +292,7 @@ void reset_VC_cfg(void) //vc_cfg.dev_type = DEV_ADS;//奥德赛 vc_cfg.dev_type = DEV_JSWM;//金山完美 //vc_cfg.dev_type = DEV_ALY;//阿里云 - //strcpy(vc_cfg.server_ip,"amp.raisound.com");//服务器地址 + // strcpy(vc_cfg.server_ip,"amp.raisound.com");//服务器地址 strcpy(vc_cfg.server_ip,"115.190.94.208:22080");//服务器地址 vc_cfg.VC_mode =0;//对话模式 strcpy(vc_cfg.power_on_tone,"你好,请问您有什么需要我帮忙的吗?");//开机提示词 @@ -332,6 +343,38 @@ int init_VC_cfg(void) return 0; } + +int isExist_file(char *filepath){ + + + FILE *fp = NULL; + fp = fopen(filepath,"r"); + + if(fp){ + + fclose(fp); + + return 0; + + }else{ + + return -1; + } + + +} + +int isneedsave=0; + +int startsave_tts=0; + +FILE *fp_tts_save = NULL; + +u8 recv_get[1024]; + +static int play_audio_file_event(char *file_name); + + int check_text(char *text,int ret_str_len) { //bk_printf("check_text:text:%s",text); @@ -413,6 +456,26 @@ int check_text(char *text,int ret_str_len) } + + // status + + if(strstr(text,"升级版本")) + { + + AI_AMP_MSG_put("开始升级版本,大概需要几分钟",strlen("开始升级版本,大概需要几分钟"),VC_TTS_PLAY); + ret = 0; + goto RET; + } + + if(strstr(text,"最新版本")) + { + + AI_AMP_MSG_put("当前版本是最新的",strlen("当前版本是最新的"),VC_TTS_PLAY); + ret = 0; + goto RET; + } + + if(strstr(text,"查询")) { if(strstr(text,"信号")) @@ -448,8 +511,51 @@ int check_text(char *text,int ret_str_len) goto RET; }else if(strstr(text,"设备号")) { - tmp_data_len = snprintf(tmp_data,sizeof(tmp_data),"当前设备号为:%s。",vc_cfg.dev_imei); - AI_AMP_MSG_put(tmp_data,tmp_data_len,VC_TTS_PLAY); + tmp_data_len = snprintf(tmp_data,sizeof(tmp_data),"当前设备号为%s。",vc_cfg.dev_imei); + + // bk_printf("playshebei"); + + + isneedsave=isExist_file("C:/cmd_local_301.pcm"); + + if(isneedsave==0){ + + bk_printf("exist"); + + // play_audio_file_event("C:/R_POWER_1.mp3"); + + FILE *fp_play_local=fopen("C:/cmd_local_301.pcm","r"); + + + if(fp_play_local){ + + + while(fread(recv_get,1,1024,fp_play_local)>0){ + + // fread(recv_get,1,1024,fp_play_local); + // bk_printf("readttsfile"); + + AI_VC_put_play_data(recv_get,1024); + + + } + + fclose(fp_play_local); + } + + }else{ + + bk_printf("needsave"); + + fp_tts_save=fopen("C:/cmd_local_301.pcm","wb"); + + AI_AMP_MSG_put(tmp_data,tmp_data_len,VC_TTS_PLAY); + + startsave_tts=1; + + } + + ret = 0; goto RET; }else if(strstr(text,"卡号")) @@ -731,9 +837,10 @@ static void AI_VC_send_satrt(char is_greeting) cJSON_AddNumberToObject(outbound_cfg, "channel", 1); cJSON_AddNumberToObject(outbound_cfg, "volume", 100); cJSON_AddNumberToObject(outbound_cfg, "speech_rate", vc_cfg.speech_rate); - cJSON_AddNumberToObject(outbound_cfg, "chunk_interval_ms", 20); + cJSON_AddNumberToObject(outbound_cfg, "chunk_interval_ms", 10); //cJSON_AddStringToObject(outbound_cfg, "voice", "7426720361733013513"); //cJSON_AddStringToObject(outbound_cfg, "voice", "ICL_zh_female_huoponvhai_tob"); + if(vc_cfg.dev_type == DEV_ADS) cJSON_AddStringToObject(outbound_cfg, "voice", "7511638457475710987"); @@ -944,7 +1051,9 @@ void AI_VC_send_ping_ping(void) AI_VC_send_data("ping",strlen("ping"),AIC_WEBSOCKET_OPCODE_TEXT_FRAME);//发送数据 } +int send_count_pcm=0; +int send_update=0;; static void AI_VC_send_task(void *thread_input)//websocket 发送线程 { @@ -984,8 +1093,14 @@ static void AI_VC_send_task(void *thread_input)//websocket 发送线程 } }else { + + + + // audio_data(AI_VC_send_queue_data.data,AI_VC_send_queue_data.len,28); + ret = send_websocket_message(AI_client_VC,AI_VC_send_queue_data.data,AI_VC_send_queue_data.len, (WebSocketMessageType)AI_VC_send_queue_data.AIC_WEBSOCKET_OPCODE); + //bk_printf("AI_VC_send_task:send str!"); } @@ -994,6 +1109,18 @@ static void AI_VC_send_task(void *thread_input)//websocket 发送线程 else if(AI_VC_send_queue_data.AIC_WEBSOCKET_OPCODE ==AIC_WEBSOCKET_OPCODE_BINARY_FRAME ) { bk_printf("send ret=%d,len=%d",ret,AI_VC_send_queue_data.len); + + // send_update+=AI_VC_send_queue_data.len; + + // send_count_pcm++; + + // bk_printf("send_count_pcm: %d len: %d !",send_count_pcm,send_update); + + + + + // audio_data(AI_VC_send_queue_data.data,AI_VC_send_queue_data.len,25); + } if(AI_VC_send_queue_data.data) aic_free(AI_VC_send_queue_data.data); @@ -1142,12 +1269,28 @@ static void AI_VC_read_task(void *thread_input)//websocket 读线程 { VC_state = VC_State_TTSStart; play_data_len = 0; + + if(outbound_attributes_format == attributes_format_OPUS){ + + bk_printf("opus_clean tts.started....\n"); + + opus_clean(); + + } + + + AI_AMP_MSG_put(0,0,VC_PLAY_START);//打开声音 }else if(strstr(recv_buff,"\"tts.completed\""))//tts结束 { // VC_state = VC_State_TTSData; // AI_AMP_MSG_put(0,0,VC_PLAY_START);//打开声音 + + startsave_tts=0; + + if(fp_tts_save) + fclose(fp_tts_save); } else if(strstr(recv_buff,"\"completed\""))//结束 @@ -1184,8 +1327,22 @@ static void AI_VC_read_task(void *thread_input)//websocket 读线程 bk_printf("read BIN status:%d,code:%d!!!!!!",status,code); + + if(startsave_tts==1){ + + if(fp_tts_save){ + + // bk_printf("save tts!!!"); + fwrite(recv_buff,1,status,fp_tts_save); + } + } + + + // audio_data(recv_buff,status,29); + if(outbound_attributes_format == attributes_format_OPUS) { + bk_printf("ogg_opus_decode_data"); ogg_opus_decode_data(recv_buff,status); }else { @@ -1261,9 +1418,11 @@ static void AI_VC_record_task(void *thread_input)//录音线程 //bk_printf("AI_VC_record_task 1 "); ret = app_audio_read(APP_AUDIO_TYPE_STREAM_DUPLEX, vrecord_buf, 3200, 1010); + + // audio_data(vrecord_buf,ret,23); // u32 timer_ms = aos_get_tickcount(); // bk_printf("%d:ret=%d",timer_ms,ret); - app_logi("AI_VC_record_task app_audio_read len = %d,VC_state = %d",ret,VC_state); + // app_logi("AI_VC_record_task app_audio_read len = %d,VC_state = %d",ret,VC_state); if(ret<=0) { //bk_printf("AI_VC_record_task continue len = %d,VC_state = %d",ret,VC_state); @@ -1282,8 +1441,9 @@ static void AI_VC_record_task(void *thread_input)//录音线程 run_vad((int16_t *)vrecord_buf, ret / 2); //bk_printf("run_vad 用时:%d",aos_get_tickcount()-vad_test_time); vad_status_t = vad_detect(); - //bk_printf("VAD:vad_status_t:%d",vad_status_t); - audio_data(vrecord_buf,ret,23); + // bk_printf("VAD:vad_status_t:%d",vad_status_t); + // audio_data(vrecord_buf,ret,23); + if (vad_status_t == 2) {//说话停止 vad_clear(); if(VAD_status == 1)//清空buff @@ -1302,9 +1462,9 @@ static void AI_VC_record_task(void *thread_input)//录音线程 AI_VC_put_record_data(vrecord_buf,ret); } VAD_status = 2; - audio_data(vrecord_buf,ret,21); + // audio_data(vrecord_buf,ret,21); memset(vrecord_buf,0xff,sizeof(vrecord_buf)); - audio_data(vrecord_buf,sizeof(vrecord_buf),21); + // audio_data(vrecord_buf,sizeof(vrecord_buf),21); }else if(vad_status_t == 1 )//检测到说话 { @@ -1323,7 +1483,7 @@ static void AI_VC_record_task(void *thread_input)//录音线程 { unsigned int r_len = bk_rb_read(VAD_rb_data,vad_r_tmp,2560); - audio_data(vad_r_tmp,r_len,21); + // audio_data(vad_r_tmp,r_len,21); //AI_VC_send_data(vad_r_tmp,r_len,AIC_WEBSOCKET_OPCODE_BINARY_FRAME);//发送缓冲数据 AI_VC_put_record_data(vad_r_tmp,r_len);//入队缓冲数据 if(vc_cfg.is_KWS) @@ -1352,7 +1512,7 @@ static void AI_VC_record_task(void *thread_input)//录音线程 AI_VC_put_record_data(vrecord_buf,ret); - audio_data(vrecord_buf,ret,21); + // audio_data(vrecord_buf,ret,21); if(vc_cfg.is_KWS) { int KWS_time = aos_get_tickcount(); @@ -1410,7 +1570,7 @@ static void AI_VC_record_task(void *thread_input)//录音线程 { if(aos_recv_from_queue(AI_VC_record_tmp_queue,&AI_VC_play_record_data,AOS_NO_WAIT) == AOS_SUCCESS)//有有效录音数据 { - audio_data(AI_VC_play_record_data.data,AI_VC_play_record_data.len,22); + // audio_data(AI_VC_play_record_data.data,AI_VC_play_record_data.len,22); AI_VC_send_data(AI_VC_play_record_data.data,AI_VC_play_record_data.len,AIC_WEBSOCKET_OPCODE_BINARY_FRAME); if(AI_VC_play_record_data.data) @@ -2751,6 +2911,12 @@ static void sys_10S_timeout_even(void) //tmp_data_len = snprintf(tmp_data,sizeof(tmp_data),"当前电量为百分之%d。",psy_info.bat_capacity); } + // extern char *ota_url; + + const char *bk_make_timer = "V1_2_250730_1"; + + + static void AI_AMP_2_5_task(void *thread_input)//做逻辑线程 { char count = 30; @@ -2760,12 +2926,25 @@ static void AI_AMP_2_5_task(void *thread_input)//做逻辑线程 init_VC_cfg(); app_audio_set_master_volume(15*vc_cfg.VC_TTS_volume/100); - play_audio_file_event("C:/R_POWER_1.mp3"); - //aic_get_version(FXH01_Version,sizeof(FXH01_Version)); - snprintf(FXH01_Version,sizeof(FXH01_Version),"FX01H_%s",bk_make_timer); + + play_audio_file_event("C:/R_POWER_1.mp3"); + + // play_audio_file("C:/R_POWER_1.mp3"); + + // aic_get_version(FXH01_Version,sizeof(FXH01_Version)); + // snprintf(FXH01_Version,sizeof(FXH01_Version),"FX01H_%s",bk_make_timer); + + snprintf(FXH01_Version,sizeof(FXH01_Version),"FX01H_%s",bk_make_timer); + + // bk_printf("new version123...\n"); + + // http://dmp-ota.tos-cn-guangzhou.volces.com/ota/2025_07_24/1948312805093978114gx306l_h3.diff + bk_printf("FXH01_Version:%s",FXH01_Version); bk_printf("FXH01_Version:%s",FXH01_Version); bk_printf("FXH01_Version:%s",FXH01_Version); + + while(count --) { pdp_activated = aic_is_default_pdp_activated(); @@ -2776,6 +2955,7 @@ static void AI_AMP_2_5_task(void *thread_input)//做逻辑线程 //audio_play_tone(3,500);//播放提示音,测试用 aos_sleep(1000); } + bk_websocket_demo(); aic_get_uid(uid,&uid_len); bk_printf("UID:%s",uid); @@ -2787,6 +2967,20 @@ static void AI_AMP_2_5_task(void *thread_input)//做逻辑线程 memset(vc_cfg.ICCID,0,sizeof(vc_cfg.ICCID)); aic_srv_tele_sim_get_iccid_sync(current_card_id,vc_cfg.ICCID); bk_printf("vc_cfg.ICCID:%s",vc_cfg.ICCID); + + bk_printf("start V123dev_authentication_init123456 ..... \n"); + + // play_audio_file_event("C:/local_tts_004.wav"); + + ota_check_version(); + + // AI_AMP_MSG_put("正常启动",4,VC_TTS_PLAY); + + ota_update_version(); + + // if(strlen(ota_url)>3){ + + dev_authentication_init(); count =50; while(count --) @@ -2807,13 +3001,13 @@ static void AI_AMP_2_5_task(void *thread_input)//做逻辑线程 aic_assert(sys_10S_timer); } aic_network_enable_pdp_nic_capdump();//打开网络调试log - struct AuthInfo auth_info; - strcpy(auth_info.dmp_token, get_token()); - auth_vad(&auth_info); + // while(1) // { // aos_sleep(1000); // } + + if(vc_cfg.dev_type == DEV_JSWM)//金三完美使用dmp配置开场白 { AI_VC_start(1); diff --git a/2.code/aicos/app/AI_AMP_2_5/AI_AMP_2_5.h b/2.code/aicos/app/AI_AMP_2_5/AI_AMP_2_5.h index 0f4d2da..0d3dd53 100644 --- a/2.code/aicos/app/AI_AMP_2_5/AI_AMP_2_5.h +++ b/2.code/aicos/app/AI_AMP_2_5/AI_AMP_2_5.h @@ -6,7 +6,8 @@ #define BK_LOG_USB 2//USB打印 -#define BK_LOG_CFG BK_LOG_UART +// #define BK_LOG_CFG BK_LOG_UART + typedef enum { DEV_FX1_H,//玩具机芯 @@ -32,8 +33,8 @@ typedef struct unsigned int start_flag; char dev_pass[50]; DEV_TYPE dev_type;//产品 - char dev_imei[20] ; - char ICCID[20] ; + char dev_imei[30] ; + char ICCID[30] ; char server_ip[100];//服务器地址 char VC_mode ;//对话模式 char power_on_tone[1024];//开机提示词 diff --git a/2.code/aicos/app/AI_AMP_2_5/bk_opus_coder.c b/2.code/aicos/app/AI_AMP_2_5/bk_opus_coder.c index 86bc93d..7dd5d28 100644 --- a/2.code/aicos/app/AI_AMP_2_5/bk_opus_coder.c +++ b/2.code/aicos/app/AI_AMP_2_5/bk_opus_coder.c @@ -154,6 +154,10 @@ void opus_clean(void) bk_rb_clear(OPUS_encoder_rb_data); } ogg_hend_len = 0; + + // bk_printf("opus_clean ogg_hend_len123:%d",ogg_hend_len); + + // bk_printf("opus_clean bk_rb_data_len:%d",bk_rb_data_len(OPUS_decoder_rb_data)); } int opus_encode_data(char *PCM_data,int data_len,int one_pack_len,char *opus_data,int opus_data_max_len) { @@ -270,8 +274,14 @@ int ogg_opus_decode_data(char *in_ogg_data,int in_ogg_data_len) /**********1阶段判断头********** */ if(ogg_hend_len==0)//没有剩余的头数据 { + bk_printf("ogg_hend_len123:%d",ogg_hend_len); + + bk_printf("bk_rb_data_len:%d",bk_rb_data_len(OPUS_decoder_rb_data)); + bk_rb_read(OPUS_decoder_rb_data,ogg_hend,27); ogg_hend_len+=27;//读页头 + + } /**********2阶段判段数********** */ @@ -356,6 +366,9 @@ int ogg_opus_decode_data(char *in_ogg_data,int in_ogg_data_len) if (ret == OPUS_RESULT_ERROR) { bk_printf("opus解码 error:%d", ret); //bk_printf("ogg data:"); + + audio_data(ogg_buf,27+seg_num+seg_size,27); + bk_print_hex(ogg_buf,27+seg_num+seg_size); aic_free(pcm_buf); break; diff --git a/2.code/aicos/app/AI_AMP_2_5/bk_websocket.c b/2.code/aicos/app/AI_AMP_2_5/bk_websocket.c index a4f06fb..1a28154 100644 --- a/2.code/aicos/app/AI_AMP_2_5/bk_websocket.c +++ b/2.code/aicos/app/AI_AMP_2_5/bk_websocket.c @@ -413,6 +413,7 @@ int send_websocket_message(WebSocketClient *client, const unsigned char *message } offset += message_len; + // audio_data(message,message_len,27); // 发送帧 if (send(client->sockfd, frame, offset, 0) < 0) { bk_printf("send message failed"); diff --git a/2.code/aicos/app/AI_AMP_2_5/dev_authentication.c b/2.code/aicos/app/AI_AMP_2_5/dev_authentication.c index 92352bb..9ad0993 100644 --- a/2.code/aicos/app/AI_AMP_2_5/dev_authentication.c +++ b/2.code/aicos/app/AI_AMP_2_5/dev_authentication.c @@ -22,6 +22,8 @@ #include "dev_authentication.h" #include "aic_http_comm.h" #include "aic_http_client.h" +#include "aic_fota.h" + #define bk_malloc aic_malloc #define bk_free aic_free int get_dev_pass_MAX_len(void)//获取设备密码最大长度,注意要防止内存越界 @@ -373,6 +375,8 @@ void aut_active(void)//设备激活 bk_printf("dev_id:%s timestamp:%s ",deviceId,timestamp_str); char *sign_url = "http://dmp.raisound.com/bz-api/dev/auth/active"; + bk_printf("http://dmp.raisound.com/bz-api/dev/auth/active\n"); + u32 response = 0; //创建客户端实例 aut_active_http_handle = aic_http_client_create("HTTP_DEMO_CLIENT_NAME"); @@ -500,6 +504,688 @@ aut_active_return: if(aut_active_http_handle) aic_http_client_delete(aut_active_http_handle); } + +void update_iccid(void)//设备激活 +{ + int ret; + bk_printf("update_iccid"); + + + AIC_HTTPS_CLIENT_INSTANCE *http_client; + char deviceId[30] = {0}; + //char dev_pass_base64[100] ={0}; + // char enc_iv[65] = {0}; + + char dev_iccid[100] ={0}; + + // http创建客户端句柄 + u32 aut_active_http_handle = 0; + char *aut_buf =NULL; + char *json_string =NULL; + char form_data_string[200]={0}; + + + char sign_url[200]={0}; + + cJSON *root = NULL; + aut_buf = bk_malloc(5*1024); + if(aut_buf) + memset(aut_buf , 0,5*1024); + else + goto aut_active_return; + + bk_get_imei(deviceId); + + bk_get_iccid(dev_iccid); + + + // const char *signMethod ="MD5"; + + // alog_info("http demo start"); + //登陆数据 + + // bk_printf("dev_id:%s timestamp:%s ",deviceId,timestamp_str); + // char *sign_url = "http://dmp.raisound.com/bz-api/dev/iccid"; + + sprintf(sign_url,"http://dmp.raisound.com/bz-api/dev/iccid?deviceId=%s&iccid=%s",deviceId,dev_iccid); + + bk_printf(sign_url); + + + // http://dmp.raisound.com/bz-api/dev/iccid + u32 response = 0; + //创建客户端实例 + aut_active_http_handle = aic_http_client_create("HTTP_DEMO_CLIENT_NAME"); + if (aut_active_http_handle == 0) { + bk_printf("Failed to create HTTP client instance\n"); + goto aut_active_return; + } + int url_value = aic_process_https_url(aut_active_http_handle,sign_url,AIC_HTTP_HEAD); + bk_printf("url_value:%d",url_value); + http_client = (AIC_HTTPS_CLIENT_INSTANCE *)aut_active_http_handle; + http_client->login_info.server_port = 80; + aic_http_client_connect(aut_active_http_handle, 5000); + + // 创建JSON对象 + root = cJSON_CreateObject(); + if (root == NULL) { + bk_printf( "Failed to create JSON object\n"); + goto aut_active_return; ; + } + + // 添加字段 + // cJSON_AddStringToObject(root, "deviceId", deviceId); + // cJSON_AddStringToObject(root, "iccid", dev_iccid); + //cJSON_AddStringToObject(root, "sign", md5_buf); + //cJSON_AddStringToObject(root, "timeStamp", timestamp_str); + // cJSON_AddStringToObject(root, "signMethod", signMethod); + + // 生成JSON字符串 + json_string = cJSON_Print(root); + if (json_string == NULL) { + bk_printf("Failed to print JSON\n"); + //cJSON_Delete(root); + goto aut_active_return; + } + + // 输出JSON + bk_printf("JSON output: %s\n", json_string); + + //sprintf(form_data_string,"deviceId=%s&iccid=%s",deviceId,dev_iccid); + + //bk_printf("form_data_string: %s\n", form_data_string); + + + aic_https_client_request_initialize(aut_active_http_handle,AIC_HTTPS_METHOD_POST, strlen(json_string), + 0, NULL,NULL, 10000); + + aic_https_client_request_header_add(aut_active_http_handle,"Content-Type",strlen("Content-Type"),"application/json",strlen("application/json"),10000);//添加头 + bk_printf("aic_https_client_request_header_add1"); + + aic_https_client_request_header_add(aut_active_http_handle,"bz-dt",strlen("bz-dt"),aut_token,strlen(aut_token),10000);//添加头 + bk_printf("aic_https_client_request_header_add3"); + + + response = nx_web_http_client_request_send(http_client->https_client,10 * 1000); + + + http_client->https_client->nx_web_http_client_state = NX_WEB_HTTP_CLIENT_STATE_POST; + + ret = aic_https_client_put_data(aut_active_http_handle, json_string, strlen(json_string), + 1000); + if (ret == 0) { + bk_printf("数据发送成功\n"); + + } else { + // 处理错误 + bk_printf("数据发送失败,错误码: %d\n", ret); + goto aut_active_return; + } + + long read_bytes = aic_https_client_response_data_get(aut_active_http_handle,aut_buf,5*1024,10000); + + bk_printf("read_bytes :%d\n",read_bytes); + + + if(read_bytes<=0) + goto aut_active_return; + + bk_printf("http put data update_iccid :%s",aut_buf); + + char *str_tmp = NULL; + str_tmp = strstr(aut_buf,"\"password\":\""); + //bk_printf("str_tmp:%p",str_tmp); + if(str_tmp)//解析password + { + // str_tmp += strlen("\"password\":\""); + // int count = str_count(str_tmp,'\"'); + // bk_printf("count:%d",count); + // if(count < sizeof(dev_pass_base64)) + // { + // memcpy(dev_pass_base64,str_tmp,count); + // dev_pass_base64[count] = 0; + // bk_printf("dev_pass_base64:%s",dev_pass_base64); + + // }else + // { + // bk_printf("激活获取base64失败"); + // } + } + str_tmp = NULL; + str_tmp = strstr(aut_buf,"\"nonce\":\""); + if(str_tmp)//nonce + { + // str_tmp += strlen("\"nonce\":\""); + // int count = str_count(str_tmp,'\"'); + // if(count < sizeof(enc_iv)) + // { + // if(count>=sizeof(enc_iv)) + // count = sizeof(enc_iv)-1; + // memcpy(enc_iv,str_tmp,count); + // enc_iv[count] = 0; + // bk_printf("nonce:%s",enc_iv); + + //} + // else + // { + // bk_printf("激活获取nonce失败"); + // } + } + int dev_pass_len = get_dev_pass_MAX_len(); + char *dev_pass = bk_malloc(dev_pass_len); + if(dev_pass) + { + // memset(dev_pass,0,dev_pass_len); + // if(strlen(enc_iv)>8 && strlen(dev_pass_base64)>8) + // { + // aes_cbc_pkcs5_decrypt(dev_pass_base64, dev_key, enc_iv,dev_pass,&dev_pass_len);//解密 + // dev_pass[dev_pass_len] = 0; + // bk_printf("dev_pass:%s dev_pass_len:%d",dev_pass,dev_pass_len); + // save_dev_pass(dev_pass);//保存设备密钥 + //} + // bk_free(dev_pass); + + }else + { + bk_printf("dev_pass malloc error!!!!!!!!!!!"); + } + + +aut_active_return: + // 释放内存 + if(aut_buf) + bk_free(aut_buf); + if(json_string) + cJSON_free(json_string); + if(root) + cJSON_Delete(root); + if(aut_active_http_handle) + aic_http_client_delete(aut_active_http_handle); +} + + char ota_url[200] ={0}; + +static int apifota_start_h3(void) +{ + struct fota_input fota_input; + + // u8 url[]="http:// xx.xx.xx.xx /doc/test_fota/gx316h_h1_old_to_new.diff"; + u8 user_name[]=""; + u8 password[]=""; + + if(strlen(ota_url)<3) + return -1; + + bk_printf("apifota_start_h3:%s\n",ota_url); + + + memset(fota_input.http.url,0,257); + + strncpy(fota_input.http.url, ota_url, strlen(ota_url)); + + fota_input.http.port=80; + + strncpy(fota_input.http.user_name, user_name, strlen(user_name)); + strncpy(fota_input.http.password, password, strlen(password)); + + fota_input.serial_port_id=0xFF; + fota_input.serial_port_baud=0; + + fota_input.upgrd_mode=0; + + fota_input.upgrd_type=FOTA_UPG_ALL; + + fota_input.dl_urc=10; + fota_input.upgrd_urc=18; + + fota_start(&fota_input); + +//if(retstatus==0){ + + bk_printf("fota_start success\n"); + +//}else{ + + // bk_printf("fota_start fail\n"); + +//} + + + + return 0; +} + + +static void apifota_callback(void *user_data, int event, u32 data1, u32 data2) +{ + bk_printf("apifota_callback test!!!\n"); +} + +static int apifota_callback_init(void) +{ +if(AIC_SUCCESS != fota_notify_register(apifota_callback, 0, +FOTA_START_BY_APP)) + { + FASSERT(0); + return -1; + } + return 0; +} + + + +void ota_check_version(void)//OTA更新 +{ + int ret; + bk_printf("ota_check_version"); + + + AIC_HTTPS_CLIENT_INSTANCE *http_client; + char deviceId[30] = {0}; + //char dev_pass_base64[100] ={0}; + + // http创建客户端句柄 + u32 aut_active_http_handle = 0; + char *aut_buf =NULL; + + //char *json_string =NULL; + //char form_data_string[200]={0}; + + char sign_url[200]={0}; + + cJSON *root = NULL; + aut_buf = bk_malloc(5*1024); + if(aut_buf) + memset(aut_buf , 0,5*1024); + else + goto aut_active_return; + + bk_get_imei(deviceId); + + // bk_get_iccid(dev_iccid); + + sprintf(sign_url,"http://dmp.raisound.com/bz-api/ota/task?deviceId=%s&sourceVersion=%s",deviceId,FXH01_Version); + + bk_printf(sign_url); + + u32 response = 0; + //创建客户端实例 + aut_active_http_handle = aic_http_client_create("HTTP_DEMO_CLIENT_NAME"); + if (aut_active_http_handle == 0) { + bk_printf("Failed to create HTTP client instance\n"); + goto aut_active_return; + } + int url_value = aic_process_https_url(aut_active_http_handle,sign_url,AIC_HTTP_HEAD); + bk_printf("url_value:%d",url_value); + http_client = (AIC_HTTPS_CLIENT_INSTANCE *)aut_active_http_handle; + http_client->login_info.server_port = 80; + aic_http_client_connect(aut_active_http_handle, 5000); + + // 创建JSON对象 + root = cJSON_CreateObject(); + if (root == NULL) { + bk_printf( "Failed to create JSON object\n"); + goto aut_active_return; ; + } + + // 输出JSON + // bk_printf("JSON output: %s\n", json_string); + + aic_https_client_request_initialize(aut_active_http_handle,AIC_HTTPS_METHOD_GET, 0, + 0, NULL,NULL, 10000); + + // aic_https_client_request_header_add(aut_active_http_handle,"Content-Type",strlen("Content-Type"),"application/json",strlen("application/json"),10000);//添加头 + // bk_printf("aic_https_client_request_header_add1"); + + // aic_https_client_request_header_add(aut_active_http_handle,"bz-dt",strlen("bz-dt"),aut_token,strlen(aut_token),10000);//添加头 + // bk_printf("aic_https_client_request_header_add3"); + + response = nx_web_http_client_request_send(http_client->https_client,10 * 1000); + + // http_client->https_client->nx_web_http_client_state = NX_WEB_HTTP_CLIENT_STATE_GET; + // ret = aic_https_client_put_data(aut_active_http_handle, json_string, strlen(json_string), + // 1000); + + ret=0; + if (ret == 0) { + bk_printf("数据发送成功\n"); + + } else { + // 处理错误 + bk_printf("数据发送失败,错误码: %d\n", ret); + goto aut_active_return; + } + + long read_bytes = aic_https_client_response_data_get(aut_active_http_handle,aut_buf,5*1024,10000); + + bk_printf("read_bytes :%d\n",read_bytes); + + if(read_bytes<=0) + goto aut_active_return; + + bk_printf("ota_check_version :%s",aut_buf); + + + char *str_tmp = NULL; + str_tmp = strstr(aut_buf,"\"url\":\""); + //bk_printf("str_tmp:%p",str_tmp); + if(str_tmp)//解析password + { + str_tmp += strlen("\"url\":\""); + int count = str_count(str_tmp,'\"'); + bk_printf("count:%d",count); + if(count < sizeof(ota_url)) + { + memcpy(ota_url,str_tmp,count); + ota_url[count] = 0; + bk_printf("otaurl:%s",ota_url); + + + + } + else + { + bk_printf("获取otaurl失败"); + } + } + + if(strlen(ota_url)>3){ + + + int total_size=0,dl_dize=0; + + int status_fota=0; + + int count_test=10; + + bk_printf("OTA need update 2222....\n"); + + + + while(count_test--){ + + // // status_fota=fota_get_stage(); + + // // fota_get_download_size(&total_size,&dl_dize); + + bk_printf("count: %d ....",count_test); + + aos_sleep(1000); + + } + + apifota_start_h3(); + + // fota_stop(); + }else{ + + + + } + + + +aut_active_return: + // 释放内存 + if(aut_buf) + bk_free(aut_buf); + // if(json_string) + // cJSON_free(json_string); + if(root) + cJSON_Delete(root); + if(aut_active_http_handle) + aic_http_client_delete(aut_active_http_handle); +} + + +void ota_download_version(void)//OTA更新 +{ + int ret; + bk_printf("ota_download_version"); + + + AIC_HTTPS_CLIENT_INSTANCE *http_client; + char deviceId[30] = {0}; + //char dev_pass_base64[100] ={0}; + + // http创建客户端句柄 + u32 aut_active_http_handle = 0; + char *aut_buf =NULL; + + //char *json_string =NULL; + //char form_data_string[200]={0}; + + char sign_url[200]={0}; + + cJSON *root = NULL; + aut_buf = bk_malloc(5*1024); + if(aut_buf) + memset(aut_buf , 0,5*1024); + else + goto aut_active_return; + + bk_get_imei(deviceId); + + // bk_get_iccid(dev_iccid); + + sprintf(sign_url,"http://dmp-ota.tos-cn-guangzhou.volces.com/ota/2025_07_24/1948312805093978114gx306l_h3.diff"); + + bk_printf(sign_url); + + u32 response = 0; + //创建客户端实例 + aut_active_http_handle = aic_http_client_create("HTTP_DEMO_CLIENT_NAME"); + if (aut_active_http_handle == 0) { + bk_printf("Failed to create HTTP client instance\n"); + goto aut_active_return; + } + int url_value = aic_process_https_url(aut_active_http_handle,sign_url,AIC_HTTP_HEAD); + bk_printf("url_value:%d",url_value); + http_client = (AIC_HTTPS_CLIENT_INSTANCE *)aut_active_http_handle; + http_client->login_info.server_port = 80; + aic_http_client_connect(aut_active_http_handle, 5000); + + // 创建JSON对象 + root = cJSON_CreateObject(); + if (root == NULL) { + bk_printf( "Failed to create JSON object\n"); + goto aut_active_return; ; + } + + // 输出JSON + // bk_printf("JSON output: %s\n", json_string); + + aic_https_client_request_initialize(aut_active_http_handle,AIC_HTTPS_METHOD_GET, 0, + 0, NULL,NULL, 10000); + + response = nx_web_http_client_request_send(http_client->https_client,10 * 1000); + + ret=0; + + if (ret == 0) { + bk_printf("数据发送成功\n"); + + } else { + // 处理错误 + bk_printf("数据发送失败,错误码: %d\n", ret); + goto aut_active_return; + } + + long read_bytes = aic_https_client_response_data_get(aut_active_http_handle,aut_buf,5*1024,10000); + + bk_printf("read_bytes :%d\n",read_bytes); + + if(read_bytes<=0) + goto aut_active_return; + + bk_printf("ota_download_version :%s",aut_buf); + + +aut_active_return: + // 释放内存 + if(aut_buf) + bk_free(aut_buf); + // if(json_string) + // cJSON_free(json_string); + if(root) + cJSON_Delete(root); + if(aut_active_http_handle) + aic_http_client_delete(aut_active_http_handle); +} + +void ota_update_version(void)//OTA上报 +{ + int ret; + bk_printf("ota_update_version"); + + + AIC_HTTPS_CLIENT_INSTANCE *http_client; + char deviceId[30] = {0}; + //char dev_pass_base64[100] ={0}; + // char enc_iv[65] = {0}; + + char dev_iccid[100] ={0}; + + // http创建客户端句柄 + u32 aut_active_http_handle = 0; + char *aut_buf =NULL; + char *json_string =NULL; + char form_data_string[200]={0}; + + + char sign_url[200]={0}; + + cJSON *root = NULL; + aut_buf = bk_malloc(5*1024); + if(aut_buf) + memset(aut_buf , 0,5*1024); + else + goto aut_active_return; + + bk_get_imei(deviceId); + + // bk_get_iccid(dev_iccid); + + + sprintf(sign_url,"http://dmp.raisound.com/bz-api/ota/result?deviceId=%s¤tVersion=%s",deviceId,FXH01_Version); + + bk_printf(sign_url); + + // http://dmp.raisound.com/bz-api/dev/iccid + + u32 response = 0; + //创建客户端实例 + aut_active_http_handle = aic_http_client_create("HTTP_DEMO_CLIENT_NAME"); + if (aut_active_http_handle == 0) { + bk_printf("Failed to create HTTP client instance\n"); + goto aut_active_return; + } + int url_value = aic_process_https_url(aut_active_http_handle,sign_url,AIC_HTTP_HEAD); + bk_printf("url_value:%d",url_value); + http_client = (AIC_HTTPS_CLIENT_INSTANCE *)aut_active_http_handle; + http_client->login_info.server_port = 80; + aic_http_client_connect(aut_active_http_handle, 5000); + + // 创建JSON对象 + root = cJSON_CreateObject(); + if (root == NULL) { + bk_printf( "Failed to create JSON object\n"); + goto aut_active_return; ; + } + + // 添加字段 + // cJSON_AddStringToObject(root, "deviceId", deviceId); + // cJSON_AddStringToObject(root, "iccid", dev_iccid); + // cJSON_AddStringToObject(root, "sign", md5_buf); + // cJSON_AddStringToObject(root, "timeStamp", timestamp_str); + // cJSON_AddStringToObject(root, "signMethod", signMethod); + + // 生成JSON字符串 + json_string = cJSON_Print(root); + if (json_string == NULL) { + bk_printf("Failed to print JSON\n"); + //cJSON_Delete(root); + goto aut_active_return; + } + + // 输出JSON + bk_printf("JSON output: %s\n", json_string); + + //sprintf(form_data_string,"deviceId=%s&iccid=%s",deviceId,dev_iccid); + + //bk_printf("form_data_string: %s\n", form_data_string); + + + aic_https_client_request_initialize(aut_active_http_handle,AIC_HTTPS_METHOD_POST, strlen(json_string), + 0, NULL,NULL, 10000); + + aic_https_client_request_header_add(aut_active_http_handle,"Content-Type",strlen("Content-Type"),"application/json",strlen("application/json"),10000);//添加头 + bk_printf("aic_https_client_request_header_add1"); + + // aic_https_client_request_header_add(aut_active_http_handle,"bz-dt",strlen("bz-dt"),aut_token,strlen(aut_token),10000);//添加头 + // bk_printf("aic_https_client_request_header_add3"); + + + response = nx_web_http_client_request_send(http_client->https_client,10 * 1000); + + + http_client->https_client->nx_web_http_client_state = NX_WEB_HTTP_CLIENT_STATE_POST; + + ret = aic_https_client_put_data(aut_active_http_handle, json_string, strlen(json_string), + 1000); + if (ret == 0) { + bk_printf("数据发送成功\n"); + + } else { + // 处理错误 + bk_printf("数据发送失败,错误码: %d\n", ret); + goto aut_active_return; + } + + long read_bytes = aic_https_client_response_data_get(aut_active_http_handle,aut_buf,5*1024,10000); + + bk_printf("read_bytes :%d\n",read_bytes); + + + if(read_bytes<=0) + goto aut_active_return; + + bk_printf("http put data update_iccid :%s",aut_buf); + + char *str_tmp = NULL; + str_tmp = strstr(aut_buf,"\"password\":\""); + //bk_printf("str_tmp:%p",str_tmp); + if(str_tmp)//解析password + { + // str_tmp += strlen("\"password\":\""); + // int count = str_count(str_tmp,'\"'); + // bk_printf("count:%d",count); + // if(count < sizeof(dev_pass_base64)) + // { + // memcpy(dev_pass_base64,str_tmp,count); + // dev_pass_base64[count] = 0; + // bk_printf("dev_pass_base64:%s",dev_pass_base64); + + // }else + // { + // bk_printf("激活获取base64失败"); + // } + } + + +aut_active_return: + // 释放内存 + if(aut_buf) + bk_free(aut_buf); + if(json_string) + cJSON_free(json_string); + if(root) + cJSON_Delete(root); + if(aut_active_http_handle) + aic_http_client_delete(aut_active_http_handle); +} + + void aut_login(void)//登录 { bk_printf("dev_sign_in 1"); @@ -692,7 +1378,11 @@ static void dev_authentication_task(void *thread_input)//鉴权逻辑线程 //ase_encrypt_demo(); //dev_NTP();//获取时间 //aut_active();//激活 - aut_login();//登录 + + aut_login(); + + update_iccid(); + //登录 /** @@ -741,3 +1431,5 @@ void dev_authentication_init(void) 35, AOS_AUTO_START); } + +// AIC_BASIC_APP_P2_INIT_EXPORT(apifota_callback_init); \ No newline at end of file diff --git a/2.code/aicos/projects/banyan/ap/307h_du_tracker/default_config b/2.code/aicos/projects/banyan/ap/307h_du_tracker/default_config index ae2fa08..9740038 100644 --- a/2.code/aicos/projects/banyan/ap/307h_du_tracker/default_config +++ b/2.code/aicos/projects/banyan/ap/307h_du_tracker/default_config @@ -514,6 +514,9 @@ CONFIG_FOTA_HTTP_SUPPORT=y # end of FOTA protocol # CONFIG_ATFOTA is not set + +CONFIG_ATFOTA=y + # CONFIG_FOTA_CERT_SUPPORT is not set CONFIG_COMPLETE_UPGRADE_PKG=y CONFIG_FOTA_CMIOT_CMD=y diff --git a/2.code/aicos/projects/banyan/ap/gx306l_h3_d_sms_aichat/config/connmgr_cfg.h b/2.code/aicos/projects/banyan/ap/gx306l_h3_d_sms_aichat/config/connmgr_cfg.h index 3804231..d9bf95a 100644 --- a/2.code/aicos/projects/banyan/ap/gx306l_h3_d_sms_aichat/config/connmgr_cfg.h +++ b/2.code/aicos/projects/banyan/ap/gx306l_h3_d_sms_aichat/config/connmgr_cfg.h @@ -15,7 +15,7 @@ /* at cmd dev config tbl. */ const static conn_dev_t s_at_dev_tbl[] = { -// {AIC_IODEV_UART, AIC_COM0}, /* use the uart com5. */ + // {AIC_IODEV_UART, AIC_COM0}, /* use the uart com5. */ #ifdef CONFIG_CDC_ACM_INSTANCE {AIC_IODEV_USB, AIC_COM2}, /* use the usb com2. */ #endif diff --git a/2.code/aicos/projects/banyan/ap/gx306l_h3_d_sms_aichat/config/pin_cfg.h b/2.code/aicos/projects/banyan/ap/gx306l_h3_d_sms_aichat/config/pin_cfg.h index 63d3826..f1e03c6 100644 --- a/2.code/aicos/projects/banyan/ap/gx306l_h3_d_sms_aichat/config/pin_cfg.h +++ b/2.code/aicos/projects/banyan/ap/gx306l_h3_d_sms_aichat/config/pin_cfg.h @@ -9,7 +9,7 @@ /* @@Platform: GX306 */ /* @@Author: */ /* @@Version: */ -/* @@Time: 2025/5/13 17:00:19 */ +/* @@Time: 2025/7/22 17:13:54 */ #ifndef __PIN_CFG_H__ #define __PIN_CFG_H__ @@ -51,8 +51,8 @@ const u32 pin_cfg0[][2] = { {REG_IOMUX_RFCTRL7, BIT_FUNC_SEL(1)},//RFFE_SDA {REG_PG1_PAD_CTRL_RFCTRL7, BIT_PAD_DRV(1)|BIT_PAD_WPD|BIT_PAD_SLP_CP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z}, /* Group2 */ -{REG_IOMUX_IIS_MCLK, BIT_FUNC_SEL(3)},//GPIO20_MOT_EN1 -{REG_PG2_PAD_CTRL_IIS_MCLK, BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE}, +{REG_IOMUX_IIS_MCLK, BIT_FUNC_SEL(0)},//IIS_MCLK +{REG_PG2_PAD_CTRL_IIS_MCLK, BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z}, {REG_IOMUX_IIS_CLK, BIT_FUNC_SEL(0)},//IIS_CLK {REG_PG2_PAD_CTRL_IIS_CLK, BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z}, {REG_IOMUX_IIS_LRCLK, BIT_FUNC_SEL(0)},//IIS_LRCLK @@ -66,18 +66,18 @@ const u32 pin_cfg0[][2] = { {REG_IOMUX_UART1_TXD, BIT_FUNC_SEL(0)},//DEBUG_TXD {REG_PG2_PAD_CTRL_UART1_TXD, BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPU|BIT_PAD_SLP_Z}, /* Group3 */ -{REG_IOMUX_SSP_CS1, BIT_FUNC_SEL(3)},//2210_WAKE_6824 -{REG_PG3_PAD_CTRL_SSP_CS1, BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE}, +{REG_IOMUX_SSP_CS1, BIT_FUNC_SEL(3)},//MOT_EN_REV_GPO14 +{REG_PG3_PAD_CTRL_SSP_CS1, BIT_PAD_DRV(1)|BIT_PAD_WPD|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE}, {REG_IOMUX_SSP_CLK, BIT_FUNC_SEL(3)},//NC {REG_PG3_PAD_CTRL_SSP_CLK, BIT_PAD_DRV(2)|BIT_PAD_WPD|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z}, {REG_IOMUX_SSP_CS0, BIT_FUNC_SEL(3)},//NC {REG_PG3_PAD_CTRL_SSP_CS0, BIT_PAD_DRV(2)|BIT_PAD_WPD|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z}, -{REG_IOMUX_SSP_MISO, BIT_FUNC_SEL(3)},//NC -{REG_PG3_PAD_CTRL_SSP_MISO, BIT_PAD_DRV(1)|BIT_PAD_WPD|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z}, -{REG_IOMUX_SSP_MOSI, BIT_FUNC_SEL(3)},//NC -{REG_PG3_PAD_CTRL_SSP_MOSI, BIT_PAD_DRV(1)|BIT_PAD_WPD|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z}, -{REG_IOMUX_AUX_CLK0, BIT_FUNC_SEL(5)},//IIS_MCLK -{REG_PG3_PAD_CTRL_AUX_CLK0, BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z}, +{REG_IOMUX_SSP_MISO, BIT_FUNC_SEL(3)},//LED0_GPIO17 +{REG_PG3_PAD_CTRL_SSP_MISO, BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z}, +{REG_IOMUX_SSP_MOSI, BIT_FUNC_SEL(3)},//LED1_GPIO18 +{REG_PG3_PAD_CTRL_SSP_MOSI, BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z}, +{REG_IOMUX_AUX_CLK0, BIT_FUNC_SEL(3)},//GPIO19_MOT_EN +{REG_PG3_PAD_CTRL_AUX_CLK0, BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE}, /* Group4 */ {REG_PG4_PAD_CTRL_PSRAM_RWDS, BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_NONE|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z}, {REG_PG4_PAD_CTRL_PSRAM_DQ7, BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_NONE|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z}, @@ -96,12 +96,12 @@ const u32 pin_cfg0[][2] = { /* Group5 */ {REG_IOMUX_GPO0, BIT_FUNC_SEL(4)},//TP_EN_GPO0 {REG_PG5_PAD_CTRL_GPO0, BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE}, -{REG_IOMUX_GPO1, BIT_FUNC_SEL(4)},//MOT_EN_REV_GPO1 +{REG_IOMUX_GPO1, BIT_FUNC_SEL(4)},//2210_WAKE_6824 {REG_PG5_PAD_CTRL_GPO1, BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE}, -{REG_IOMUX_EIU_INT4, BIT_FUNC_SEL(0)},//KEY3_INT4 -{REG_PG5_PAD_CTRL_EIU_INT4, BIT_PAD_DRV(1)|BIT_PAD_WPU|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPU|BIT_PAD_SLP_IE}, +{REG_IOMUX_EIU_INT4, BIT_FUNC_SEL(4)},//MOT_EN_FWD_GPO2 +{REG_PG5_PAD_CTRL_EIU_INT4, BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE}, {REG_IOMUX_EIU_INT5, BIT_FUNC_SEL(4)},//GPO3_INT5_TPQ1 -{REG_PG5_PAD_CTRL_EIU_INT5, BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE}, +{REG_PG5_PAD_CTRL_EIU_INT5, BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_IE}, {REG_IOMUX_EIU_INT6, BIT_FUNC_SEL(5)},//IIC3_SDA {REG_PG5_PAD_CTRL_EIU_INT6, BIT_PAD_DRV(1)|BIT_PAD_SSPU|BIT_PAD_SLP_MCU|BIT_PAD_SLP_SPU|BIT_PAD_SLP_Z}, {REG_IOMUX_EIU_INT7, BIT_FUNC_SEL(5)},//IIC3_SCL @@ -124,14 +124,14 @@ const u32 pin_cfg0[][2] = { {REG_PG6_PAD_CTRL_PMIC_INT, BIT_PAD_DRV(1)|BIT_PAD_WPD|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_IE}, {REG_IOMUX_CHIP_SLEEP, BIT_FUNC_SEL(0)},//CHIP_SLEEP {REG_PG6_PAD_CTRL_CHIP_SLEEP, BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE}, -{REG_IOMUX_UART0_TXD, BIT_FUNC_SEL(4)},//MOT_EN_FWD_GPO -{REG_PG6_PAD_CTRL_UART0_TXD, BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE}, +{REG_IOMUX_UART0_TXD, BIT_FUNC_SEL(1)},//KEY3_INT4 +{REG_PG6_PAD_CTRL_UART0_TXD, BIT_PAD_DRV(1)|BIT_PAD_WPU|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPU|BIT_PAD_SLP_IE}, {REG_IOMUX_UART0_RXD, BIT_FUNC_SEL(4)},//STATUS_GPO9 {REG_PG6_PAD_CTRL_UART0_RXD, BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE}, -{REG_IOMUX_UART0_CTS, BIT_FUNC_SEL(1)},//G_EINT_INT6_GPO1 +{REG_IOMUX_UART0_CTS, BIT_FUNC_SEL(1)},//G_EINT_INT6_GPO10 {REG_PG6_PAD_CTRL_UART0_CTS, BIT_PAD_DRV(1)|BIT_PAD_WPU|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPU|BIT_PAD_SLP_IE}, {REG_IOMUX_UART0_RTS, BIT_FUNC_SEL(4)},//GPO11_INT7_TPQ2 -{REG_PG6_PAD_CTRL_UART0_RTS, BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE}, +{REG_PG6_PAD_CTRL_UART0_RTS, BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_IE}, {REG_IOMUX_EIU_INT0, BIT_FUNC_SEL(0)},//U_BOOT_KEY_KEYIN {REG_PG6_PAD_CTRL_EIU_INT0, BIT_PAD_DRV(1)|BIT_PAD_WPU|BIT_PAD_SLP_MCU|BIT_PAD_SLP_WPU|BIT_PAD_SLP_IE}, {REG_IOMUX_EIU_INT3, BIT_FUNC_SEL(4)},//CODEC_VDD_EN_GPO13 @@ -176,15 +176,15 @@ const u32 pin_cfg0[][2] = { {REG_IOMUX_SIM_DAT, BIT_FUNC_SEL(0)},//SIM0_DAT {REG_PG9_PAD_CTRL_SIM_DAT, BIT_PAD_DRV(1)|BIT_PAD_SSPU|BIT_PAD_SLP_CP|BIT_PAD_SLP_SPU|BIT_PAD_SLP_Z}, /* Group10 */ -{REG_IOMUX_CAN_TXD, BIT_FUNC_SEL(6)},//LED1_GPIO30 +{REG_IOMUX_CAN_TXD, BIT_FUNC_SEL(6)},//NC {REG_PG10_PAD_CTRL_CAN_TXD, BIT_PAD_DRV(1)|BIT_PAD_WPD|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z}, -{REG_IOMUX_CAN_RXD, BIT_FUNC_SEL(6)},//LED2_GPIO32 +{REG_IOMUX_CAN_RXD, BIT_FUNC_SEL(6)},//NC {REG_PG10_PAD_CTRL_CAN_RXD, BIT_PAD_DRV(1)|BIT_PAD_WPD|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z}, -{REG_IOMUX_CAN_STBY, BIT_FUNC_SEL(6)},//LED0_GPIO25 +{REG_IOMUX_CAN_STBY, BIT_FUNC_SEL(6)},//NC {REG_PG10_PAD_CTRL_CAN_STBY, BIT_PAD_DRV(1)|BIT_PAD_WPD|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z}, /* Group11 */ -{REG_IOMUX_SPI_LCD_SDI, BIT_FUNC_SEL(6)},//NC -{REG_PG11_PAD_CTRL_SPI_LCD_SDI, BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z}, +{REG_IOMUX_SPI_LCD_SDI, BIT_FUNC_SEL(6)},//LED3_GPIO26 +{REG_PG11_PAD_CTRL_SPI_LCD_SDI, BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE}, {REG_IOMUX_SPI_LCD_SDO, BIT_FUNC_SEL(5)},//SPI_D0 {REG_PG11_PAD_CTRL_SPI_LCD_SDO, BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_MCU|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z}, {REG_IOMUX_SPI_LCD_DCX, BIT_FUNC_SEL(5)},//SPI_D1 diff --git a/2.code/aicos/projects/banyan/ap/gx306l_h3_d_sms_aichat/config/serial/serial_config.h b/2.code/aicos/projects/banyan/ap/gx306l_h3_d_sms_aichat/config/serial/serial_config.h index 5016b43..cc69f37 100644 --- a/2.code/aicos/projects/banyan/ap/gx306l_h3_d_sms_aichat/config/serial/serial_config.h +++ b/2.code/aicos/projects/banyan/ap/gx306l_h3_d_sms_aichat/config/serial/serial_config.h @@ -160,7 +160,7 @@ struct aic_uart aic_uart[4] = { .inf = SERIAL_INF1, .dst_inf = SERIAL_INF1, .base = REG_BASE_TOP_UART, - .baud = 2000000, + .baud = 115200, .source_clk = SERIAL_96M_CLK, .irq = IRQ_TOP_UART0, .wsize = SERIAL_WSIZE1, @@ -189,7 +189,7 @@ struct aic_uart aic_uart[4] = { .inf = SERIAL_INF2, .dst_inf = SERIAL_INF2, .base = REG_BASE_BLK_MCU_UART0, - .baud = 2000000, + .baud = 115200, .source_clk = SERIAL_26M_CLK, .irq = IRQ_UART0, .wsize = SERIAL_WSIZE1, @@ -216,7 +216,7 @@ struct aic_uart aic_uart[4] = { .inf = SERIAL_INF3, .dst_inf = SERIAL_INF3, .base = REG_BASE_BLK_MCU_UART1, - .baud = 2000000, + .baud = 115200, .source_clk = SERIAL_26M_CLK, .irq = IRQ_UART1, .wsize = SERIAL_WSIZE1, diff --git a/2.code/aicos/projects/banyan/ap/gx306l_h3_d_sms_aichat/default_config b/2.code/aicos/projects/banyan/ap/gx306l_h3_d_sms_aichat/default_config index 22cb2cb..8b7c128 100644 --- a/2.code/aicos/projects/banyan/ap/gx306l_h3_d_sms_aichat/default_config +++ b/2.code/aicos/projects/banyan/ap/gx306l_h3_d_sms_aichat/default_config @@ -552,14 +552,14 @@ CONFIG_FOTA_SUPPORT=y # # FOTA protocol # -# CONFIG_FOTA_HTTPS_SUPPORT is not set -# CONFIG_FOTA_HTTP_SUPPORT is not set +# CONFIG_FOTA_HTTPS_SUPPORT=y +CONFIG_FOTA_HTTP_SUPPORT=y # CONFIG_FOTA_FTP_SUPPORT is not set # CONFIG_FOTA_BY_UART is not set # CONFIG_FOTA_BY_MCU is not set # end of FOTA protocol -# CONFIG_ATFOTA is not set +CONFIG_ATFOTA=y # CONFIG_FOTA_CERT_SUPPORT is not set CONFIG_COMPLETE_UPGRADE_PKG=y # CONFIG_FOTA_CMIOT_CMD is not set diff --git a/2.code/make.py b/2.code/make.py index f5f9353..0e672a6 100644 --- a/2.code/make.py +++ b/2.code/make.py @@ -6,7 +6,6 @@ import os, sys, time, re, shutil, platform import subprocess, fileinput from multiprocessing import cpu_count from colorama import init -from datetime import datetime init(autoreset=True) # set global path and value @@ -23,9 +22,7 @@ global md_board_name, nv_board_name, nvram_board_config global subsys_config, board_config global binary_path, board_path, common_path global maincmd, subcmd, thirdcmd -# 获取当前日期时间 -now = datetime.now() -build_start_time_str = now.strftime("%Y_%m_%d_%H_%M_%S") + # # Get build command parameter # @@ -685,7 +682,7 @@ def aicos_build(cmd): global common_path global script_path global board_path - global build_start_time_str + if cmd == "mkpkg": set_subsys_config("ap") else: @@ -765,7 +762,7 @@ def aicos_build(cmd): suffix = "release" else: suffix = "debug" - suffix +="_{}".format(build_start_time_str) + pkg_cfg_dir = targets_path + "/" + chip_name + "/" + project_name + "/pkg" for root, dirs, files in os.walk(pkg_cfg_dir): for pkg_cfg_name in files: @@ -1063,13 +1060,8 @@ def kconfig_build(subsys, kcfg_cmd): except: print("Unexpected error:", sys.exc_info()) exit(1) -def add_make_time_file(): - global build_start_time_str - with open('aicos/app/AI_AMP_2_5/bk_make_time.h', 'w', encoding='utf-8') as file: - file.write('const char *bk_make_timer = \"{}\";\n'.format(build_start_time_str)) + if __name__ == '__main__': - #创建版本.h文件 - add_make_time_file() # Init global board parameters. get_board_config()