return TD_FALSE;
}
-static sample_ai_inst *sample_ai_alloc_inst(td_void)
+sample_ai_inst *sample_ai_alloc_inst(td_void)
{
sample_ai_inst *inst = (sample_ai_inst *)malloc(sizeof(sample_ai_inst));
if (inst == TD_NULL) {
return inst;
}
-static td_void sample_ai_free_inst(sample_ai_inst *inst)
+td_void sample_ai_free_inst(sample_ai_inst *inst)
{
if (inst == TD_NULL) {
return;
free(inst);
}
-static sample_ai_inst *sample_ai_get_inst(td_void)
+sample_ai_inst *sample_ai_get_inst(td_void)
{
if (osal_list_empty(&g_sample_ai_list) != TD_FALSE) {
return TD_NULL;
return EXT_SUCCESS;
}
-static td_void sample_ai_close_inst(sample_ai_inst *inst)
+td_void sample_ai_close_inst(sample_ai_inst *inst)
{
sample_ai_close_ai(inst);
sample_ai_close_adp(inst);
sample_ai_sys_deinit();
}
-static td_s32 sample_ai_open_inst(sample_ai_inst *inst)
+td_s32 sample_ai_open_inst(sample_ai_inst *inst)
{
td_s32 ret;
return ret;
}
-static td_void sample_ai_stop_inst(sample_ai_inst *inst)
+td_void sample_ai_stop_inst(sample_ai_inst *inst)
{
td_s32 ret;
sap_printf("\n");
}
-static td_void sample_ai_ao_parse_port(const td_char *port_name, sample_ai_inst *inst)
+td_void sample_ai_ao_parse_port(const td_char *port_name, sample_ai_inst *inst)
{
td_u32 i;
const struct {
return EXT_SUCCESS;
}
-static td_s32 sample_ai_ao_start_inst(sample_ai_inst *inst)
+td_s32 sample_ai_ao_start_inst(sample_ai_inst *inst)
{
td_s32 ret;
athread_attr attr;
return ret;
}
-static td_void sample_ai_ao_inst_init(sample_ai_inst *inst)
+td_void sample_ai_ao_inst_init(sample_ai_inst *inst)
{
inst->ai_port = sample_ai_get_test_port();
#endif
}
-static td_s32 sample_ai_player_open(sample_ai_inst *inst)
+td_s32 sample_ai_player_open(sample_ai_inst *inst)
{
td_s32 ret;
td_handle h_snd;
{
if(button!=NULL)
{
-
+ errcode_t ret = 0;
if(makphone_falg==0)
{
- char *args[6] = {0};
- const char *defaultArgs[6] = {"01", "mp3", "16000", "1", "16","/user/userdata/microphone.mp3"}; // 默认参数数组
-
- for (int i = 0; i < 6; ++i)
+ // char *args[6] = {0};
+ // const char *defaultArgs[6] = {"01", "mp3", "16000", "1", "16","/user/userdata/microphone.mp3"}; // 默认参数数组
+
+ // for (int i = 0; i < 6; ++i)
+ // {
+ // args[i] = (char *)malloc(64);
+ // sprintf(args[i], "%s", defaultArgs[i]);
+ // }
+ // /* ---------------------------------- 开始录音 ---------------------------------- */
+ // AudioCaptureSample(6, (const char **)args);
+ ret = uapi_start_audio_test();
+ if(ret != ERRCODE_SUCC)
{
- args[i] = (char *)malloc(64);
- sprintf(args[i], "%s", defaultArgs[i]);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " uapi_start_audio_test failed ret : %d ",ret);
+ uapi_stop_audio_test();
}
- /* ---------------------------------- 开始录音 ---------------------------------- */
- AudioCaptureSample(6, (const char **)args);
- button->SetText("stop");
- makphone_falg++;
- }
- else if(makphone_falg==1)
- {
- int32_t argc = 1;
- uint8_t *argv = (uint8_t*)"stop";
- AudioCaptureSample(argc, (const char **)&argv);
- button->SetText("play");
- makphone_falg++;
-
- FILE *file =fopen("/user/userdata/microphone.mp3","rb");
- if(file==NULL)
+ else
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ffffffffffffffffsssssss");
+ button->SetText("stop");
+ makphone_falg = 1;
}
- fclose(file);
+
}
- else if(makphone_falg==2)
+ else if(makphone_falg==1)
{
+ // int32_t argc = 1;
+ // uint8_t *argv = (uint8_t*)"stop";
+ // AudioCaptureSample(argc, (const char **)&argv);
+ // button->SetText("play");
+ // makphone_falg++;
+
+ // FILE *file =fopen("/user/userdata/microphone.mp3","rb");
+ // if(file==NULL)
+ // {
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ffffffffffffffffsssssss");
+ // }
+ // fclose(file);
+ uapi_stop_audio_test();
+ button->SetText("start");
+ makphone_falg = 0;
+ }
+ // else if(makphone_falg==2)
+ // {
- AlarmClockModel::GetInstance()->testPlayerStart(Path);
+ // AlarmClockModel::GetInstance()->testPlayerStart(Path);
- }
+ // }
* @Author: penglei 1624952103@qq.com
* @Date: SLEPPNOTIFY24-06-26 19:36:48
* @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2024-09-06 09:25:33
+ * @LastEditTime: 2024-09-07 12:03:34
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/sleep/src/SleepModel.cpp
* @Description:
*
static char status_file_path[64] = {0};
static uint32_t fall_asleep_timestamp = 0;
-
+ static uint32_t history_wake_up_timestamp = 0;
+
void clean_sleep_data(void)
{
total_time = 0;
memset(status_file_path,0,sizeof(status_file_path));
sprintf_s(status_file_path, 64, SLEEP_STATUS_PATH, day);
fp = fopen(status_file_path, "wb+");
+
+ history_wake_up_timestamp = data->wake_up_timestamp;
}
else
{
fp = fopen(status_file_path, "ab+");
+ if(history_wake_up_timestamp != data->wake_up_timestamp)
+ {
+ SLEEP_STATE_T sleep_status = {0,0};
+ sleep_status.stat = 3; //清醒状态
+ sleep_status.timestamp = history_wake_up_timestamp + 60; //时间戳为上一次的出睡时间 加 1分钟
+ history_wake_up_timestamp = data->wake_up_timestamp; //更新历史出睡时间戳
+ fwrite(&sleep_status, sizeof(SLEEP_STATE_T), 1, fp);
+ }
}
if (fp == NULL)
* @Author: penglei 1624952103@qq.com\r
* @Date: 2024-06-17 14:31:08\r
* @LastEditors: penglei 1624952103@qq.com\r
- * @LastEditTime: 2024-08-13 09:47:02\r
+ * @LastEditTime: 2024-09-07 12:28:55\r
* @FilePath: /FD230/code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c\r
* @Description: \r
* \r
{\r
//开始录音\r
uint8_t send_data= 0;\r
- uapi_microhone_switch(1);\r
+ uapi_start_audio_test();\r
factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
BLE_TEST_CMD_SOFT_TEST_SUB_MODE_SPEAKER,\r
0x01,\r
{\r
//停止录音\r
uint8_t send_data= 0;\r
- uapi_microhone_switch(0);\r
+ uapi_stop_audio_test();\r
factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
BLE_TEST_CMD_SOFT_TEST_SUB_MODE_SPEAKER,\r
0x02,\r
&send_data,\r
1);\r
- } else if(testitem == 0x03)\r
- {\r
- //播放录音\r
- uint8_t send_data= 0;\r
- uapi_check_spk(1);\r
- factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
- BLE_TEST_CMD_SOFT_TEST_SUB_MODE_SPEAKER,\r
- 0x03,\r
- &send_data,\r
- 1);\r
- } else if(testitem == 0x04)\r
- {\r
- //停止播放\r
- uint8_t send_data= 0;\r
- uapi_check_spk(0);\r
- factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
- BLE_TEST_CMD_SOFT_TEST_SUB_MODE_SPEAKER,\r
- 0x04,\r
- &send_data,\r
- 1);\r
- } else if(testitem == 0x05)\r
- {\r
- //删除录音\r
- uint8_t send_data = uapi_delete_files("/user/userdata/microphone.mp3");\r
- factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
- BLE_TEST_CMD_SOFT_TEST_SUB_MODE_SPEAKER,\r
- 0x05,\r
- &send_data,\r
- 1);\r
- }\r
+ } \r
+ //else if(testitem == 0x03)\r
+ // {\r
+ // //播放录音\r
+ // uint8_t send_data= 0;\r
+ // uapi_check_spk(1);\r
+ // factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
+ // BLE_TEST_CMD_SOFT_TEST_SUB_MODE_SPEAKER,\r
+ // 0x03,\r
+ // &send_data,\r
+ // 1);\r
+ // } else if(testitem == 0x04)\r
+ // {\r
+ // //停止播放\r
+ // uint8_t send_data= 0;\r
+ // uapi_check_spk(0);\r
+ // factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
+ // BLE_TEST_CMD_SOFT_TEST_SUB_MODE_SPEAKER,\r
+ // 0x04,\r
+ // &send_data,\r
+ // 1);\r
+ // } else if(testitem == 0x05)\r
+ // {\r
+ // //删除录音\r
+ // uint8_t send_data = uapi_delete_files("/user/userdata/microphone.mp3");\r
+ // factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
+ // BLE_TEST_CMD_SOFT_TEST_SUB_MODE_SPEAKER,\r
+ // 0x05,\r
+ // &send_data,\r
+ // 1);\r
+ //}\r
break;\r
\r
default:\r
\r
if(hrs_wear_status == MSG_HRS_WEAR && hrsresult.hr_living == MSG_LIVING_TRUE)\r
{\r
- if(hrsresult.lastesthrs > 60 && hrsresult.lastesthrs < 220)\r
+ if(hrsresult.lastesthrs > 30 && hrsresult.lastesthrs < 220)\r
get_avg_hrs(hrsresult.lastesthrs);\r
\r
hrsresult.wearstatus = MSG_HRS_WEAR;\r
${CMAKE_CURRENT_SOURCE_DIR}
${ROOT_DIR}/application/wearable/fd230app/nativeui/phoneservice/include
${ROOT_DIR}/application/wearable/fd230app/nativeui/uiservice/include
+ ${ROOT_DIR}/application/audio/thread/
+ ${ROOT_DIR}/application/audio
+ ${ROOT_DIR}/drivers/drivers/driver/audio/source/include
+ ${ROOT_DIR}/drivers/drivers/driver/audio/source/core/common/include/
)
char wake_up_time_str[10] = {0};
uapi_get_TIME_STR(wake_up_time,wake_up_time_str, '.', ':',DATE_H_M);
- PRINT("入睡时间 : %s \n",asleep_time_str);
- PRINT("出睡时间 : %s \n",wake_up_time_str);
+ PRINT("入睡时间 : %s %d \n",asleep_time_str,asleep_time);
+ PRINT("出睡时间 : %s %d \n",wake_up_time_str,wake_up_time);
PRINT("总时长 : %d 分钟\n",total_time);
PRINT("深睡时长 : %d 分钟\n",total_deep_sleep_time);
PRINT("浅睡时长 : %d 分钟\n",total_mild_sleep_time);
}
+#include "thread_os.h"
+#include "soc_uapi_ai.h"
+#include "sample_audio_api.h"
+typedef struct sample_ai_inst {
+ athread_handle task;
+ td_bool task_enable;
+ td_bool mute;
+
+ FILE *h_file;
+ td_u32 file_size;
+ td_u32 file_limit_size;
+ td_handle h_adp;
+ td_handle h_ai;
+ td_handle h_player;
+ td_u32 channel_type;
+ uapi_ai_port ai_port;
+ uapi_audio_pcm_format pcm_format;
+ uapi_ai_gain volume;
+
+ /* ao */
+ uapi_snd snd_id;
+ uapi_snd_out_port ao_port;
+
+ td_u32 (*save_frame)(struct sample_ai_inst *inst, const uapi_audio_frame *frame);
+ data_info write_data;
+ td_bool run_bt_loopback;
+ td_void (*sample_ai_process)(struct sample_ai_inst *inst, const uapi_audio_frame *frame);
+ struct osal_list_head node;
+} sample_ai_inst;
+
+
+
+errcode_t uapi_start_audio_test(void)
+{
+ errcode_t ret;
+ sample_ai_inst *inst = TD_NULL;
+
+ inst = sample_ai_alloc_inst();
+ if (inst == TD_NULL) {
+ PRINT("sample_ai_ao_alloc_inst failed\n");
+ return ERRCODE_FAIL;
+ }
+
+ sample_ai_ao_inst_init(inst);
+
+ // ret = sample_ai_ao_parse_cmd_line(argc, argv, inst);
+ // if (ret != EXT_SUCCESS) {
+ // goto out0;
+ // }
+
+ inst->pcm_format.sample_rate = 16000;
+ inst->pcm_format.channels = 1;
+ inst->pcm_format.bit_depth = 16;
+ sample_ai_ao_parse_port("adc0", inst);
+ inst->volume.integer = 25;
+
+ ret = sample_ai_player_open(inst);
+ if (ret != ERRCODE_SUCC) {
+ PRINT("sample_ao_player_open error : %d\n", ret);
+ goto out0;
+ }
+
+ ret = sample_ai_open_inst(inst);
+ if (ret != ERRCODE_SUCC) {
+ PRINT("sample_ai_open_inst error : %d\n", ret);
+ goto out1;
+ }
+
+ ret = sample_ai_ao_start_inst(inst);
+ if (ret != ERRCODE_SUCC) {
+ PRINT("sample_ai_ao_start_inst error : %d\n", ret);
+ goto out2;
+ }
+
+ sap_alert_log_u32(inst->pcm_format.sample_rate);
+ sap_alert_log_u32(inst->pcm_format.channels);
+ sap_alert_log_u32(inst->pcm_format.bit_depth);
+
+ return ERRCODE_SUCC;
+out2:
+ sample_ai_close_inst(inst);
+out1:
+ sample_ao_player_close();
+out0:
+ sample_ai_free_inst(inst);
+ return ret;
+}
+
+errcode_t uapi_stop_audio_test(void)
+{
+ sample_ai_inst *inst = sample_ai_get_inst();
+
+ if (inst != NULL) {
+ sample_ai_stop_inst(inst);
+ sample_ai_close_inst(inst);
+ sample_ao_player_close();
+ sample_ai_free_inst(inst);
+ }
+
+ return ERRCODE_SUCC;
+}
+
+
extern void save_file_main(void);
#define SAVE_FILE_STACK_SIZE 0xC00
uint32_t uapi_get_a5133_update_state(void);
uint32_t uapi_get_a5133_update_state1(void);
-
-
+errcode_t uapi_start_audio_test(void);
+errcode_t uapi_stop_audio_test(void);
void start_save_file_thread(void);