#include "debug_print.h"
+
+#include "custom_utils.h"
+
#define batteryservice_VOLTAGE_MAX (4.2f)
#define batteryservice_VOLTAGE_MIN (3.2f)
uapi_tcxo_delay_ms(20);
enable_charge();
}
-static void battery_check_task(void const *arg)
+static void battery_check_task(void *arg)
{
unused(arg);
int32_t ret;
return ERRCODE_SUCC;
}
-
-errcode_t uapi_battery_init(void)
+void uapi_battery_create_queue(void)
{
-
- // PRINT("uapi_battery_init !\r\n");
-
if (osal_msg_queue_create("battery_queue", APP_BOARD_MSG_COUNT, &g_app_queue,
0, sizeof(common_notify_mail_t)) != ERRCODE_SUCC) {
PRINT("[battery][service] app create mail fail\n");
- return ERRCODE_FAIL;
+
}
+}
+errcode_t uapi_battery_init(void)
+{
- osal_task *task_handle = osal_kthread_create((osal_kthread_handler)battery_check_task, NULL,
- "battery_service", APP_BOARD_TASK_SIZE*2);
- if (task_handle == NULL) {
- osal_msg_queue_is_full(g_app_queue);
- PRINT("create battery service thread fail!\r\n");
+
+ app_task_definition_t taskcfg={0};
+
+ PRINT("uapi_battery_init !\r\n");
+ taskcfg.create_queue_handle = uapi_battery_create_queue;
+ taskcfg.attr.name="battery_service";
+ taskcfg.attr.priority = TASK_PRIORITY_APP;
+ taskcfg.attr.stack_size = APP_BOARD_TASK_SIZE;
+ taskcfg.func = battery_check_task;
+ taskcfg.use_mem = USE_EXTEND_MEM;
+
+ errcode_t ret=uapi_create_osThread_custom(&taskcfg);
+ if(ret != ERRCODE_SUCC)
+ {
+ PRINT("create battery_service failed %d!\r\n",ret);
return ERRCODE_FAIL;
}
- osal_kthread_set_priority(task_handle, APP_BOARD_TASK_PRIO);
// osal_kthread_set_priority(task_handle, 10);
g_battery_timer = osTimerNew((osTimerFunc_t)battery_check_timer_callback, osTimerPeriodic, NULL, NULL);
{
mbedtls_adapt_register();
- /* δ½Ólcdʱ²»Äܵ÷ÓÃͼÐÎÏà¹ØÀàµÄʵÀý */
+ /* 未接lcd时不能调用图形相关类的实例 */
if (!uapi_is_lcd_connect()) {
return;
}
TSK_INFO_S task_info;\r
uint32_t taskId;\r
\r
- wstp_print("\r\n");\r
+ wstp_print("\r\nOS_EXTEND_MEM_ADDR\r\n");\r
OsMemInfoPrint(OS_EXTEND_MEM_ADDR);\r
wstp_print("\n\t\tstack name task id used size peak size\n");\r
for (taskId = 0; taskId <= LOSCFG_BASE_CORE_TSK_LIMIT; taskId++) {\r
wstp_print("%22s %-5d 0x%-8x 0x%-8x\n", task_info.acName, taskId,\r
heapMan->stat.taskMemstats[taskId].memUsed, heapMan->stat.taskMemstats[taskId].memPeak);\r
}\r
- wstp_print("\r\n\r\n");\r
+ wstp_print("\r\nOS_SYS_MEM_ADDR\r\n");\r
\r
heapMan = (LosMemPoolInfo*)OS_SYS_MEM_ADDR;\r
OsMemInfoPrint(OS_SYS_MEM_ADDR);\r
}\r
wstp_print("\r\n");\r
\r
+\r
+\r
#endif\r
#if defined __FREERTOS__ && defined FREERTOS_DEBUG\r
freertos_heap_print();\r
#if LOSCFG_MEM_TASK_STAT && defined __LITEOS__\r
TSK_INFO_S task_info;\r
uint32_t taskId;\r
+ uint32_t total_size = 0;\r
+ uint32_t used_size = 0;\r
+ uint32_t peak_size = 0;\r
\r
- wstp_print("\n stack name task id prio status stack addr total size used size peak size\n"\r
+ wstp_print("\n stack name task id prio status stack addr total size used size peak size percentage\n"\r
" -------------- ------- --- ------ --------- -------- -------- --------\n");\r
for (taskId = 0; taskId <= LOSCFG_BASE_CORE_TSK_LIMIT; taskId++) {\r
if (0 != LOS_TaskInfoGet(taskId, &task_info)) {\r
continue;\r
}\r
- wstp_print("%22s %-5d %-2d %-2d %-10p 0x%-8x 0x%-8x 0x%-8x\n", task_info.acName,\r
+ wstp_print("%22s %-5d %-2d %-2d %-10p 0x%-8x 0x%-8x 0x%-8x %.02f\n", task_info.acName,\r
task_info.uwTaskID, task_info.usTaskPrio, task_info.usTaskStatus, task_info.uwTopOfStack,\r
- task_info.uwStackSize, task_info.uwCurrUsed, task_info.uwPeakUsed);\r
+ task_info.uwStackSize, task_info.uwCurrUsed, task_info.uwPeakUsed, (task_info.uwCurrUsed*1.0f/task_info.uwStackSize));\r
+ total_size += task_info.uwStackSize;\r
+ used_size += task_info.uwCurrUsed;\r
+ peak_size += task_info.uwPeakUsed;\r
}\r
+ wstp_print("\n total size(%d) used size(%d) peak size(%d)\n",total_size,used_size,peak_size);\r
+ \r
+\r
#endif\r
\r
#if defined __FREERTOS__ && defined FREERTOS_DEBUG\r
#define CYWEE_SERVICE_H__
#ifdef __cplusplus
-#if __cplusplus
extern "C" {
#endif /* __cplusplus */
-#endif /* __cplusplus */
#include "stdint.h"
#include "errcode.h"
#define CYWEE_SERVICE_CMD_STOP_CHECK 0x13
#define CYWEE_SERVICE_CMD_TEST 0x14
-errcode_t uapi_acc_service_init(void);
-void uapi_acc_service_deinit(void);
+errcode_t uapi_cywee_service_init(void);
+void uapi_cywee_service_deinit(void);
/**
* 测试指令 参数cmd 选项: ACC_SERVICE_CMD_START_CHECK,ACC_SERVICE_CMD_STOP_CHECK
*/
void do_cywee_service_check_msg(int cmd);
#ifdef __cplusplus
-#if __cplusplus
}
#endif /* __cplusplus */
-#endif /* __cplusplus */
#endif
\ No newline at end of file
#include "cywee_service.h"
#include "los_printf.h"
+#include "custom_utils.h"
typedef struct
{
uint8_t cmd;
}
if (mail.cmd == CYWEE_SERVICE_CMD_TIMER_CHECK) {
- // cywee_int_handler();
- lis2doc_read_data();
- PRINT("CYWEE_SERVICE_CMD_TIMER_CHECK\r\n");
+ cywee_int_handler();
+ // lis2doc_read_data();
+ // printf("CYWEE_SERVICE_CMD_TIMER_CHECK\r\n");
}else if (mail.cmd == CYWEE_SERVICE_CMD_TEST){
test_api();
}else if (mail.cmd == CYWEE_SERVICE_CMD_START_CHECK){
cywee_service_running_stat = true;
#ifdef TEST_CYWEE_LIB
- SettingControl_t scl;
- memset(&scl, 0, sizeof(scl));
- scl.iData[0] = 1;
- CWM_SettingControl(SCL_GET_LIB_INFO, &scl);
-
+ // SettingControl_t scl;
+ // memset(&scl, 0, sizeof(scl));
+ // scl.iData[0] = 1;
+ // CWM_SettingControl(SCL_GET_LIB_INFO, &scl);
+ printf("CYWEE_SERVICE_CMD_START_CHECK \r\n");
+ // CWM_lib_init();
#endif
- // cywee_main_dml();
+ cywee_main_dml();
cywee_service_timer_start_check(CYWEE_CHECK_MS);
}else if (mail.cmd == CYWEE_SERVICE_CMD_STOP_CHECK){
cywee_service_running_stat = false;
}
}
#define CYWEE_APP_BOARD_MSG_COUNT 50
-#define CYWEE_APP_BOARD_TASK_SIZE 0x1C00
+#define CYWEE_APP_BOARD_TASK_SIZE 0x1100
#define CYWEE_BOARD_TASK_PRIO 7
-errcode_t uapi_cywee_service_init(void)
+void create_cywee_queue(void)
{
-
if (osal_msg_queue_create("cywee_service_queue", CYWEE_APP_BOARD_MSG_COUNT, &g_cywee_queue,
0, sizeof(cywee_cmd_t)) != ERRCODE_SUCC) {
- PRINT("[cywee][service] app create mail fail\n");
- return ERRCODE_FAIL;
+ printf("[cywee][service] app create mail fail\n");
}
+}
+errcode_t uapi_cywee_service_init(void)
+{
+ PRINT("uapi_cywee_service_init !\r\n");
+ app_task_definition_t taskcfg={0};
+ taskcfg.create_queue_handle = create_cywee_queue;
+ taskcfg.attr.name="cywee_service";
+ taskcfg.attr.priority = TASK_PRIORITY_APP;
+ taskcfg.attr.stack_size = CYWEE_APP_BOARD_TASK_SIZE;
+ taskcfg.func = cywee_service_check_task;
+ taskcfg.use_mem = USE_EXTEND_MEM;
-
- osal_task *task_handle = osal_kthread_create((osal_kthread_handler)cywee_service_check_task, NULL,
- "cywee_service", CYWEE_APP_BOARD_TASK_SIZE);
- if (task_handle == NULL) {
- osal_msg_queue_is_full(g_cywee_queue);
- PRINT("create cywee service thread fail!\r\n");
+ errcode_t ret=uapi_create_osThread_custom(&taskcfg);
+ if(ret != ERRCODE_SUCC)
+ {
+ PRINT("create cywee_service failed %d!\r\n",ret);
return ERRCODE_FAIL;
}
-
- osal_kthread_set_priority(task_handle, CYWEE_BOARD_TASK_PRIO);
g_cywee_service_timer = osTimerNew((osTimerFunc_t)cywee_service_check_timer_callback, osTimerPeriodic, NULL, NULL);
}
-int CWM_enableGpioIRQ(uint16_t sensorType, uint16_t sensorPin, PFN_IRQHANDLE callback)
-{
+// int CWM_enableGpioIRQ(uint16_t sensorType, uint16_t sensorPin, PFN_IRQHANDLE callback)
+// {
- return 1;
-}
+// return 1;
+// }
-int CWM_disableGpioIRQ(uint16_t sensorType, uint16_t sensorPin)
-{
+// int CWM_disableGpioIRQ(uint16_t sensorType, uint16_t sensorPin)
+// {
- return 1;
-}
+// return 1;
+// }
int CWM_OS_dbgOutput(const char * format)
{
- PRINT("%s", format);
+ printf("%s", format);
return 0;
}
int CWM_OS_dbgOutput_checkLog(const char * format)
{
static int s_sn = 0;
- PRINT("#_#|%d|%s", s_sn, format);
+ printf("#_#|%d|%s", s_sn, format);
s_sn ++;
return 0;
}
/*********************/
/*** Include Files ***/
/*********************/
+
+
+#if 1
+
+#include "cwm_lib.h"
+#include "CWM_EventStructure.h"
+#include "CWM_CustomDataStruct.h"
+#include "os_api.h"
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+
+/*********************/
+/*** Macro Defines ***/
+/*********************/
+
+
+/*************************/
+/*** Variables Defines ***/
+/*************************/
+
+
+/************************/
+/*** Function Defines ***/
+/************************/
+extern int CWM_OS_dbgOutput(const char * format);
+extern int CWM_OS_dbgPrintf(const char * format,...);
+#define IDX_ALGO_ACTIVITY_OUTPUT 14
+
+void CWM_AP_SensorListen(SensorEVT_t *sensorEVT) {
+
+ switch (sensorEVT->sensorType) {
+ case 0:
+ // printf("IDX[%d]: %.3f, %.3f, %.3f, %.3f, %.3f, %.3f, %.3f, %.3f\n", sensorEVT->sensorType,
+ // sensorEVT->fData[0],
+ // sensorEVT->fData[1],
+ // sensorEVT->fData[2],
+ // sensorEVT->fData[3],
+ // sensorEVT->fData[4],
+ // sensorEVT->fData[5],
+ // sensorEVT->fData[6],
+ // sensorEVT->fData[7]);
+ break;
+
+ case 1:
+ // printf("IDX[%d]: %.3f, %.3f, %.3f, %.3f, %.3f, %.3f, %.3f, %.3f\n", sensorEVT->sensorType,
+ // sensorEVT->fData[0],
+ // sensorEVT->fData[1],
+ // sensorEVT->fData[2],
+ // sensorEVT->fData[3],
+ // sensorEVT->fData[4],
+ // sensorEVT->fData[5],
+ // sensorEVT->fData[6],
+ // sensorEVT->fData[7]);
+ break;
+
+ default:
+ printf("IDX[%d]: %.3f, %.3f, %.3f, %.3f, %.3f, %.3f, %.3f, %.3f\n", sensorEVT->sensorType,
+ sensorEVT->fData[0],
+ sensorEVT->fData[1],
+ sensorEVT->fData[2],
+ sensorEVT->fData[3],
+ sensorEVT->fData[4],
+ sensorEVT->fData[5],
+ sensorEVT->fData[6],
+ sensorEVT->fData[7]);
+ }
+}
+
+void CWM_lib_init(void) {
+ os_api api = {
+ .dbgOutput = CWM_OS_dbgOutput,
+ };
+ CWM_LibPreInit(&api);
+
+
+ SettingControl_t scl;
+
+ memset(&scl, 0, sizeof(scl));
+ scl.iData[0] = 1;
+ // scl.iData[3] = 1;
+ scl.iData[4] = 1 + 4;
+ CWM_SettingControl(SCL_LOG, &scl);
+
+
+ memset(&scl, 0, sizeof(scl));
+ scl.iData[0] = 1;
+ CWM_SettingControl(SCL_GET_LIB_INFO, &scl);
+ printf("version:%d.%d.%d.%d product:%d model:%d\n", scl.iData[1], scl.iData[2], scl.iData[3], scl.iData[4], scl.iData[5], scl.iData[6]);
+
+ printf("[DBG] ach: %d\n", scl.iData[7]);
+
+ memset(&scl, 0, sizeof(scl));
+ scl.iData[0] = 1;
+ scl.iData[1] = 2; //chip vendor, 0:defualt auto detect, 1:auto detect, 2:skip auto detect
+ CWM_SettingControl(SCL_CHIP_VENDOR_CONFIG, &scl);
+
+ CWM_LibPostInit(CWM_AP_SensorListen);
+ // CWM_LibPostInit(NULL);
+
+ CWM_Sensor_Enable(IDX_REQUEST_SENSOR);
+ CWM_Sensor_Enable(IDX_ACCEL);
+ CWM_Sensor_Enable(IDX_GYRO);
+ CWM_Sensor_Enable(IDX_ALGO_ACTIVITY_OUTPUT);
+
+ memset(&scl, 0, sizeof(scl));
+ scl.iData[0] = 1;
+ scl.iData[1] = 1001;
+ CWM_SettingControl(SCL_SET_ACTIVITY_MODE, &scl);
+}
+
+
+
+#else
+
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include "simulate_signal.h"
#endif
-/*********************/
-/*** Macro Defines ***/
-/*********************/
-
/*************************/
/*** Variables Defines ***/
/*************************/
+
+
static const char* REQ_SENS_NAME[] = {"acc", "gyro", "mag", "baro", "temp", "hr", "gnss", "ob", "oc", "accany"};
static int m_req_sensor_state = 0;
+
+
/************************/
/*** Function Defines ***/
/************************/
return 1;
return 0;
}
+
+
/**
* @brief Sensor listen callback, when you register sensor listen,
* when sensor data is ready, sensor manager will call this function to send pSensorEVT_t.
CWM_process();
}
}
+
+#endif
#include "mag_service.h"
#include "mmc_customer.h"
-
+#include "custom_utils.h"
/***
* 其他cmd在Header里定义,对外开放
*/
}
}
}
-
-errcode_t uapi_mag_service_init(void)
+void create_mag_queue(void)
{
+
if (osal_msg_queue_create("mag_service_queue", APP_BOARD_MSG_COUNT, &g_app_queue,
0, sizeof(common_notify_mail_t)) != ERRCODE_SUCC) {
MMC_ERROR("[mag][service] app create mail fail\n");
- return ERRCODE_FAIL;
}
+}
+errcode_t uapi_mag_service_init(void)
+{
+
-
- osal_task *task_handle = osal_kthread_create((osal_kthread_handler)mag_service_check_task, NULL,
- "mag_service", APP_BOARD_TASK_SIZE*2);
- if (task_handle == NULL) {
- osal_msg_queue_is_full(g_app_queue);
- MMC_ERROR("create mag service thread fail!\r\n");
+ PRINT("uapi_mag_service_init !\r\n");
+ app_task_definition_t taskcfg={0};
+ taskcfg.create_queue_handle = create_mag_queue;
+ taskcfg.attr.name="mag_service";
+ taskcfg.attr.priority = TASK_PRIORITY_APP;
+ taskcfg.attr.stack_size = APP_BOARD_TASK_SIZE;
+ taskcfg.func = mag_service_check_task;
+ taskcfg.use_mem = USE_EXTEND_MEM;
+
+ errcode_t ret=uapi_create_osThread_custom(&taskcfg);
+ if(ret != ERRCODE_SUCC)
+ {
+ PRINT("create mag_service failed %d!\r\n",ret);
return ERRCODE_FAIL;
}
- osal_kthread_set_priority(task_handle, APP_BOARD_TASK_PRIO);
- // osal_kthread_set_priority(task_handle, 10);
-
g_mag_service_timer = osTimerNew((osTimerFunc_t)mag_service_check_timer_callback, osTimerPeriodic, NULL, NULL);
}\r
\r
// i2c 连读函数, 客户需填写\r
-bool hx3695_brust_read_reg(uint8_t addr, uint8_t *buf, uint8_t length)\r
+bool hx3695_brust_read_reg(uint8_t addr, uint8_t *buf, uint16_t length)\r
{\r
//TYHX_LOG("brust read\r\n");\r
tyhx_read_regs(addr,buf,length);\r
// #define HRV_ALG_LIB\r
// #define CHECK_TOUCH_LIB\r
//#define CHECK_LIVING_LIB\r
-#define BP_CUSTDOWN_ALG_LIB\r
+//#define BP_CUSTDOWN_ALG_LIB\r
\r
//**************** read_data_mode ******************//\r
#define TIMMER_MODE //timmer read fifo\r
\r
//****************** print_swi ********************//\r
#define HRS_DEBUG\r
-#define AGC_DEBUG\r
+//#define AGC_DEBUG\r
\r
//**************************************************//\r
#include "debug_print.h"\r
FT_SINGLE_CHECK_MODE,\r
FT_LED_OFF_MODE,\r
FT_WEAR_MODE,\r
+ NEW_PPG_TEST_MODE,\r
NULL_MODE,\r
} WORK_MODE_T;\r
\r
void hx3695_delay_ms(uint32_t ms);\r
bool hx3695_write_reg(uint8_t addr, uint8_t data); \r
uint8_t hx3695_read_reg(uint8_t addr); \r
-bool hx3695_brust_read_reg(uint8_t addr , uint8_t *buf, uint8_t length);\r
+bool hx3695_brust_read_reg(uint8_t addr , uint8_t *buf, uint16_t length);\r
bool hx3695_chip_check(void);\r
uint8_t hx3695_read_fifo_size(void);\r
uint16_t hx3695_read_fifo_data(int32_t *s_buf, uint8_t size, uint8_t phase_num);\r
return ERRCODE_SUCC;
}
-uint32_t tyhx_read_regs(uint8_t reg_addr, uint8_t *data_buf, uint8_t data_len)
+uint32_t tyhx_read_regs(uint8_t reg_addr, uint8_t *data_buf, uint16_t data_len)
{
errcode_t ret;
uint32_t retry;
uint32_t tyhx_write_reg( uint8_t reg_addr, uint8_t data);
// i2c 读函数, 客户需填写
-uint32_t tyhx_read_regs( uint8_t reg_addr,uint8_t *readbuf,uint8_t readlen);
+uint32_t tyhx_read_regs( uint8_t reg_addr,uint8_t *readbuf,uint16_t readlen);
#define TYHX_TIMER_40MS 40
#define TYHX_TIMER_320MS 320
#include "hx3695_hal.h"
-
+#include "custom_utils.h"
static bool g_ppg_service_initialled = false;
uint8_t card_databuf[64] = {0};
}
-static void ppg_service_check_task(void const *arg)
+static void ppg_service_check_task(void *arg)
{
unused(arg);
int32_t ret;
}
}
-
-errcode_t uapi_ppg_service_init(void)
+void create_ppg_queue(void)
{
if (osal_msg_queue_create("ppg_service_queue", PPG_SERVICE_MSG_COUNT, &g_app_queue,
0, sizeof(PPG_CMD_TYPE_T)) != ERRCODE_SUCC) {
PRINT_ERR("[ppg][service] app create mail fail\n");
- return ERRCODE_FAIL;
}
+}
+errcode_t uapi_ppg_service_init(void)
+{
+
-
- osal_task *task_handle = osal_kthread_create((osal_kthread_handler)ppg_service_check_task, NULL,
- "ppg_service", PPG_SERVICE_TASK_SIZE);
- if (task_handle == NULL) {
- osal_msg_queue_is_full(g_app_queue);
- PRINT_ERR("create ppg service thread fail!\r\n");
+ PRINT("uapi_ppg_service_init !\r\n");
+ app_task_definition_t taskcfg={0};
+ taskcfg.create_queue_handle = create_ppg_queue;
+ taskcfg.attr.name="ppg_service";
+ taskcfg.attr.priority = TASK_PRIORITY_APP;
+ taskcfg.attr.stack_size = PPG_SERVICE_TASK_SIZE;
+ taskcfg.func = ppg_service_check_task;
+ taskcfg.use_mem = USE_EXTEND_MEM;
+
+ errcode_t ret=uapi_create_osThread_custom(&taskcfg);
+ if(ret != ERRCODE_SUCC)
+ {
+ PRINT("create ppg_service failed %d!\r\n",ret);
return ERRCODE_FAIL;
}
- osal_kthread_set_priority(task_handle, PPG_SERVICE_TASK_PRIO);
-
return ERRCODE_SUCC;
}
#include "cmsis_os2.h"
extern osStatus_t osDelay(uint32_t ticks);
#define cat1_msleep(ms) osDelay(ms) /* osDelay(1) : 1ms */
-int cat1_server_task(void *pvParameters)
+void cat1_server_task(void *pvParameters)
{
char rx_buffer[512];
char tx_buffer[256];
}
}
- return 0;
+
}
errcode_t cat1_server_init(void)
{
-
- osal_task *task_handle = osal_kthread_create((osal_kthread_handler)cat1_server_task, NULL,
- "cat1_service", CAT1_SERVICE_TASK_SIZE);
- if (task_handle == NULL) {
- PRINT_ERR("create cat1 service thread fail!\r\n");
+ PRINT("cat1_server_init !\r\n");
+ app_task_definition_t taskcfg={0};
+ taskcfg.create_queue_handle = NULL;
+ taskcfg.attr.name="cat1_service";
+ taskcfg.attr.priority = TASK_PRIORITY_APP;
+ taskcfg.attr.stack_size = CAT1_SERVICE_TASK_SIZE;
+ taskcfg.func = cat1_server_task;
+ taskcfg.use_mem = USE_EXTEND_MEM;
+
+ errcode_t ret=uapi_create_osThread_custom(&taskcfg);
+ if(ret != ERRCODE_SUCC)
+ {
+ PRINT("create cat1_service failed %d!\r\n",ret);
return ERRCODE_FAIL;
}
-
- osal_kthread_set_priority(task_handle, CAT1_SERVICE_TASK_PRIO);
g_timer_time_sync = osTimerNew((osTimerFunc_t)time_sync_func, osTimerPeriodic, NULL, NULL);
g_timer_cat1_sleep = osTimerNew((osTimerFunc_t)timeout_handler_sleep_cat1, osTimerPeriodic, NULL, NULL);
-
return ERRCODE_SUCC;
}
#include "sys/time.h"
#include "time.h"
+#include "custom_utils.h"
+
+errcode_t uapi_create_osThread_custom(app_task_definition_t *task_cfg)
+{
+ if (task_cfg==NULL)
+ return ERRCODE_FAIL;
+ /* Create queues before tasks in case they are used during initialisation. */
+ if (task_cfg->create_queue_handle) {
+ task_cfg->create_queue_handle();
+ }
+ /* Create tasks */
+ if (task_cfg->use_mem == USE_EXTEND_MEM) {
+ task_cfg->attr.stack_mem = memalign(16, task_cfg->attr.stack_size); // 16字节对齐
+ }
+ task_cfg->task_handle = osThreadNew(task_cfg->func, NULL, &(task_cfg->attr));
+ if (task_cfg->task_handle == NULL) {
+ return ERRCODE_FAIL;
+ }
+ return ERRCODE_SUCC;
+}
+
uint32_t zh_get_sn(uint8_t *buf_sn, uint32_t *len_sn)
{
return ERRCODE_SUCC;
}
+
* History: \n
* 2023-02-24, Create file. \n
*/
-#ifndef BUTTON_H
-#define BUTTON_H
+#ifndef CUSTOM_UTILS_H
+#define CUSTOM_UTILS_H
+
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
#include "hal_gpio.h"
#include "soc_osal.h"
#include "platform_core.h"
#include <errcode.h>
+#include "thread_init.h"
-#ifdef __cplusplus
-#if __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-#endif /* __cplusplus */
+#define TASK_PRIORITY_APP (osPriority_t)(17)
+#define TASK_PRIORITY_LOG (osPriority_t)(18)
+#define TASK_PRIORITY_CMD (osPriority_t)(17)
+#define TASK_PRIORITY_BRANDY_APP (osPriority_t)(15)
+#define TASK_PRIORITY_SDK (osPriority_t)(31)
+#define TASK_PRIORITY_DFX_MSG (osPriority_t)(18)
+#define TASK_PRIORITY_TRANSMIT (osPriority_t)(20)
uint32_t zh_get_sn(uint8_t *buf_sn, uint32_t *len_sn);
uint32_t zh_set_sn(uint8_t *buf_sn, uint32_t len_sn);
errcode_t init_btaddr_btname(void);
errcode_t disable_bt_service(void);
+errcode_t uapi_create_osThread_custom(app_task_definition_t *task_cfg);
errcode_t uapi_get_buildversion(uint8_t *para, uint32_t para_len);
/**
*/
#ifdef __cplusplus
-#if __cplusplus
}
#endif /* __cplusplus */
-#endif /* __cplusplus */
#endif
\ No newline at end of file
#include "vibrator_service.h"
#include "vibrator_hal.h"
#include "vibrator.h"
-
+#include "custom_utils.h"
void custom_VibratorFunc(OHOS::VibratorType vibratorType)
{
}
-static void vibrator_service_check_task(void const *arg)
+static void vibrator_service_check_task(void *arg)
{
unused(arg);
int32_t ret;
}
}
-
-errcode_t uapi_vibrator_service_init(void)
+void create_vib_queue(void)
{
if (osal_msg_queue_create("vibrator_service_queue", APP_BOARD_MSG_COUNT, &g_app_queue,
0, sizeof(vibrator_cmd_t)) != ERRCODE_SUCC) {
PRINT("[mag][service] app create mail fail\n");
- return ERRCODE_FAIL;
}
-
-
- osal_task *task_handle = osal_kthread_create((osal_kthread_handler)vibrator_service_check_task, NULL,
- "vibrator_service", APP_BOARD_TASK_SIZE);
- if (task_handle == NULL) {
- osal_msg_queue_is_full(g_app_queue);
- PRINT("create mag service thread fail!\r\n");
+}
+errcode_t uapi_vibrator_service_init(void)
+{
+ PRINT("uapi_vibrator_service_init !\r\n");
+ app_task_definition_t taskcfg={0};
+ taskcfg.create_queue_handle = NULL;
+ taskcfg.attr.name="vib_service";
+ taskcfg.attr.priority = TASK_PRIORITY_TRANSMIT;
+ taskcfg.attr.stack_size = APP_BOARD_TASK_SIZE;
+ taskcfg.func = vibrator_service_check_task;
+ taskcfg.use_mem = USE_EXTEND_MEM;
+
+ errcode_t ret=uapi_create_osThread_custom(&taskcfg);
+ if(ret != ERRCODE_SUCC)
+ {
+ PRINT("create cat1_service failed %d!\r\n",ret);
return ERRCODE_FAIL;
}
- osal_kthread_set_priority(task_handle, 10);
- // osal_kthread_set_priority(task_handle, 10);
-
-
OHOS::VibratorManager::GetInstance()->RegisterVibratorFunc(custom_VibratorFunc);
return ERRCODE_SUCC;
* History: \n
* 2023-02-24, Create file. \n
*/
-#ifndef BUTTON_H
-#define BUTTON_H
+#ifndef VIBRATOR_H
+#define VIBRATOR_H
#include "hal_gpio.h"
#include "soc_osal.h"