添加录音回环测试(补交),优化睡眠数据时间戳计算 1000/1 1000/head
authorpenglei <1624952103@qq.com>
Sat, 21 Sep 2024 10:01:46 +0000 (18:01 +0800)
committerpenglei <1624952103@qq.com>
Sat, 21 Sep 2024 10:01:46 +0000 (18:01 +0800)
code/sdk/application/audio/sample_ai/sample_ai_aenc.c
code/sdk/application/audio/sample_audio_api.h
code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp
code/sdk/drivers/peripheral/utils/custom_utils.c
code/sdk/drivers/peripheral/utils/custom_utils.h

index 14d2585..76bbfb8 100755 (executable)
@@ -305,6 +305,13 @@ static td_void sample_ai_aenc_close_sea(sample_ai_aenc_inst *inst)
     inst->h_sea = 0;
 }
 
+static uint32_t audio_param[48] = {0, 0, 0, 0, 16843009, 33620225, 16000, 16000, 
+                1024, 100, 1985229328, 1985229328, 16842753, 257, 257, 512, 
+                33555332, 16844032, 4, 0, 458824, 11796580, 327946, 1310720005, 
+                65576964, 1000, 21499085, 67108874, 327680, 655367, 2126009683, 654734439, 
+                1, 0, 0, 0, 0, 0, 5308396, 655336, 
+                4286447619, 64536, 500, 16384, 3277, 0, 66049, 0};
+
 static td_s32 sample_ai_aenc_open_sea(sample_ai_aenc_inst *inst)
 {
     td_s32 ret;
@@ -348,6 +355,13 @@ static td_s32 sample_ai_aenc_open_sea(sample_ai_aenc_inst *inst)
         goto out;
     }
 
+    ret = uapi_sea_set_param(inst->h_sea,UAPI_SEA_AFE_SEE,(const void *)audio_param,sizeof(audio_param));
+    printf("uapi_sea_set_param ret = %d\r\n", ret);
+    if (ret != AUDIO_SUCCESS) {
+        sap_err_log_fun(uapi_sea_set_param, ret);
+        return ret;
+    }
+
     ret = uapi_sea_attach_output(inst->h_sea, UAPI_SEA_OUTPUT_ASR_SRC, inst->h_aenc);
     if (ret != EXT_SUCCESS) {
         sap_err_log_fun(uapi_sea_attach_output, ret);
@@ -395,7 +409,9 @@ static td_void sample_ai_aenc_set_port_attr(const sample_ai_aenc_inst *inst, uap
         return;
     }
 
-    ai_attr->ref_attr.enable = TD_FALSE;
+    //ai_attr->ref_attr.enable = TD_FALSE;
+    ai_attr->ref_attr.enable = TD_TRUE;
+    ai_attr->ref_attr.port = SND_OUT_PORT_DEFAULT;
 
     switch (inst->ai_port) {
         case UAPI_AI_PORT_PDM0:
index 53263d5..8d8b6be 100755 (executable)
@@ -94,7 +94,7 @@
 #define BT_SCO_FRAME_SIZE 57
 
 #if (SAP_CHIP_TYPE == brandy)
-#define SND_OUT_PORT_DEFAULT UAPI_SND_OUT_PORT_I2S2 /* Out port for SmartPA SPK output */
+#define SND_OUT_PORT_DEFAULT UAPI_SND_OUT_PORT_I2S0 /* Out port for SmartPA SPK output */
 #else
 #define SND_OUT_PORT_DEFAULT UAPI_SND_OUT_PORT_DAC0
 #endif
index d457d07..3973e4f 100644 (file)
@@ -502,8 +502,7 @@ void MsgCenterNotifyLowPowerAlarmProc(const Topic topic, Request* req)
 static SLEEP_T sleep_data = {0};
 static NAP_T nap_data = {0};
 static int state_num = 0;
-static uint32_t day_timestamp = 0;
-static uint32_t current_day = 0;
+static int current_year = 0;
 static uint8_t fall_asleep_state_num = 0;
 #endif
 
@@ -513,7 +512,7 @@ void MsgCenterNotifyNextDayProc(const Topic topic, Request *req)
     unused(topic);
     unused(req);
     AlarmClockModel::GetInstance()->NextDayNotify();
-    day_timestamp = 0;
+    current_year = 0;
 #ifdef FD230
     printf("******nextday is begin******\r\n");
     /* ----------------------------------- 睡眠相关 ----------------------------------- */
@@ -1228,15 +1227,14 @@ void MsgCenterNotifyInactivityProc(const Topic topic, Request *req)
     //unused(topic);
 #ifdef FD230
     uint32_t timestamp = 0;
-    if(day_timestamp == 0)
+    if(current_year == 0)
     {
         time_t rawtime;
         struct tm* timeinfo;
         time(&rawtime);
         timeinfo = localtime(&rawtime);
-        uapi_get_timestampe_ss(&timestamp);
-        day_timestamp = timestamp - (timeinfo->tm_hour * 60 * 60 + timeinfo->tm_min * 60 + timeinfo->tm_sec);
-        current_day = timeinfo->tm_mday;
+        current_year = timeinfo->tm_year + 1900;
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "timeinfo->tm_year : %d",timeinfo->tm_year);
     }
 #endif
     OHOS::SLEEP_STATE_T state_data = {0};
@@ -1295,13 +1293,12 @@ void MsgCenterNotifyInactivityProc(const Topic topic, Request *req)
             // }
             if(state_num < SLEEP_STATUS_LENGTH)
             {
-                sleep_data.sleep_status[state_num].timestamp = day_timestamp + cywee_Inactivity_Info->hour * 60 * 60 + cywee_Inactivity_Info->minute * 60;
-                if(current_day != cywee_Inactivity_Info->day)
-                {
-                    sleep_data.sleep_status[state_num].timestamp -= 24 * 60 * 60;
-                }
+                uapi_get_timestampe_ss_extend(&timestamp,current_year,cywee_Inactivity_Info->month,cywee_Inactivity_Info->day,cywee_Inactivity_Info->hour,cywee_Inactivity_Info->minute,0);
+                WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "timestamp : %d ",timestamp);
+                sleep_data.sleep_status[state_num].timestamp = timestamp;
                 sleep_data.sleep_status[state_num].stat = cywee_Inactivity_Info->status;
-                if(sleep_data.sleep_status[state_num].stat == 7 || sleep_data.sleep_status[state_num].stat == 13)
+                WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "stat : %d , timestamp : %d ", sleep_data.sleep_status[state_num].stat,sleep_data.sleep_status[state_num].timestamp);
+                if(sleep_data.sleep_status[state_num].stat == 7 || sleep_data.sleep_status[state_num].stat == 9 || sleep_data.sleep_status[state_num].stat == 13)
                 {
                     uapi_get_timestampe_ss(&timestamp);
                     sleep_data.sleep_status[state_num].timestamp = timestamp;
@@ -1325,13 +1322,15 @@ void MsgCenterNotifyInactivityProc(const Topic topic, Request *req)
             if(cywee_Inactivity_Info->status == 0) //0进入睡眠  1潜睡 2深睡 3清醒 4结束睡眠 6入睡 7出睡最后一笔输出 8未出睡最后一笔输出 12快速动眼 13取消入睡
             {
 #ifdef FD230
-                nap_data.fall_asleep_timestamp = day_timestamp + cywee_Inactivity_Info->hour * 60 * 60 + cywee_Inactivity_Info->minute * 60;
+                uapi_get_timestampe_ss_extend(&timestamp,current_year,cywee_Inactivity_Info->month,cywee_Inactivity_Info->day,cywee_Inactivity_Info->hour,cywee_Inactivity_Info->minute,0);
+                nap_data.fall_asleep_timestamp = timestamp;
 #endif
             }
             else if(cywee_Inactivity_Info->status == 14)
             {
 #ifdef FD230
-                nap_data.wake_up_timestamp = day_timestamp + cywee_Inactivity_Info->hour * 60 * 60 + cywee_Inactivity_Info->minute * 60;
+                uapi_get_timestampe_ss_extend(&timestamp,current_year,cywee_Inactivity_Info->month,cywee_Inactivity_Info->day,cywee_Inactivity_Info->hour,cywee_Inactivity_Info->minute,0);
+                nap_data.wake_up_timestamp = timestamp;
 #endif
             }
             break;
index 5953930..f4edea0 100644 (file)
@@ -490,6 +490,24 @@ errcode_t uapi_get_timestampe_ss(uint32_t *tm)
     return ERRCODE_SUCC;
 }
 
+errcode_t uapi_get_timestampe_ss_extend(uint32_t *tm,int year, int month, int day, int hour, int minute, int second) 
+{
+    if (tm == NULL) {
+        return ERRCODE_FAIL;
+    }
+    PRINT("year[%d],mon[%d],day[%d],hour[%d],min[%d],sec[%d] \n",year,month,day,hour,minute,second);
+    struct tm timeinfo;
+    timeinfo.tm_year = year - 1900;
+    timeinfo.tm_mon = month - 1;
+    timeinfo.tm_mday = day;
+    timeinfo.tm_hour = hour;
+    timeinfo.tm_min = minute;
+    timeinfo.tm_sec = second;
+    timeinfo.tm_isdst = -1;
+    *tm = mktime(&timeinfo);
+    return ERRCODE_SUCC;
+}
+
 errcode_t uaip_set_time_utc_zone(uint32_t seconds,int16_t zone_quarters)
 {    
     return sync_time_utc(seconds,zone_quarters);
index ae607ed..a9ff72d 100644 (file)
@@ -44,7 +44,7 @@ errcode_t uaip_cmd_update_request(void);
 errcode_t uapi_get_timestampe_ms(uint32_t *tm);
 /*获取单位秒的时间戳*/
 errcode_t uapi_get_timestampe_ss(uint32_t *tm);
-
+errcode_t uapi_get_timestampe_ss_extend(uint32_t *tm,int year, int month, int day, int hour, int minute, int second); 
 /**返回timezone quarters*/
 uint16_t uapi_get_timezone(void);
 /**set timezone quarters*/