}
/*开机读取睡眠数据*/
- SleepModel::GetInstance().read_sleep_file_data();
+ // SleepModel::GetInstance().read_sleep_file_data();
//更新主表盘配置
MainModel::GetInstance().InitDialState();
* @Author: penglei 1624952103@qq.com
* @Date: 2025-05-15 11:27:16
* @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2025-05-16 16:24:33
+ * @LastEditTime: 2025-07-31 17:10:15
* @FilePath: /FD230/code/sdk/application/wearable/fd230/nativeapp/nativeui/compass/src/CompassModel.cpp
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
#include <ctime>
#ifdef SUPORT_MAG_SERVICE
-#include "mag/hal/mag_hal.h"
#include "mag/service/mag_service.h"
#include "mag/mmc5603/mmc5603_hal.h"
#endif
int get_sleep_min();
int get_sleep_goal();
int get_sleep_total();
+ void set_sleep_total(uint16_t time);
+ void set_nap_total(uint16_t time);
//清除睡眠数据
void clean_sleep_data(void);
std ::string sleep_time_str{"--"};
+ uint32_t sleep_update_time{0};
+
int sleep_total_time = 0;
int goal_total_time = 0;
int nap_total_time = 0;
- uint32_t sleep_update_time{0};
-
SLEEPSTATE sleepstate_ = SLEEPSTATE::WAKE;
int CradId = 0; // 主界面状态
};
* @Author: penglei 1624952103@qq.com
* @Date: SLEPPNOTIFY24-06-26 19:36:48
* @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2025-07-31 15:02:23
+ * @LastEditTime: 2025-07-31 17:21:20
* @FilePath:
* /FD230/code/sdk/application/wearable/fd230app/nativeui/sleep/src/SleepModel.cpp
* @Description:
{
uint32_t sleep_fall_asleep_timestamp = 0;
uint32_t sleep_wake_up_timestamp = 0;
+ uint16_t total_time = 0;
#ifdef SUPPORT_CYWEE_SERVICE
- cywee_get_sleep_time_data(&sleep_fall_asleep_timestamp, &sleep_wake_up_timestamp, &sleep_total_time, SLEEP_DATA_TYPE);
+ cywee_get_sleep_time_data(&sleep_fall_asleep_timestamp, &sleep_wake_up_timestamp, &total_time, SLEEP_DATA_TYPE);
#endif
+ OHOS::SleepModel::GetInstance().set_sleep_total(total_time);
std::string timestr;
char labelTime[20] = {0};
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "sleep_data.fall_asleep_timestamp : %d",sleep_fall_asleep_timestamp);
{
uint32_t sleep_fall_asleep_timestamp = 0;
uint32_t sleep_wake_up_timestamp = 0;
+ uint16_t total_time = 0;
#ifdef SUPPORT_CYWEE_SERVICE
- cywee_get_sleep_time_data(&sleep_fall_asleep_timestamp, &sleep_wake_up_timestamp, &sleep_total_time, SLEEP_DATA_TYPE);
+ cywee_get_sleep_time_data(&sleep_fall_asleep_timestamp, &sleep_wake_up_timestamp, &total_time, SLEEP_DATA_TYPE);
#endif
+ OHOS::SleepModel::GetInstance().set_sleep_total(total_time);
std::string timestr;
char labelTime[20] = {0};
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "sleep_data.wake_up_timestamp : %d",sleep_wake_up_timestamp);
uint32_t nap_fall_asleep_timestamp = 0;
uint32_t nap_wake_up_timestamp = 0;
+ uint16_t nap_total = 0;
+ uint16_t sleep_total = 0;
+
#ifdef SUPPORT_CYWEE_SERVICE
- cywee_get_sleep_time_data(&sleep_fall_asleep_timestamp, &sleep_wake_up_timestamp, &sleep_total_time, SLEEP_DATA_TYPE);
- cywee_get_sleep_time_data(&nap_fall_asleep_timestamp, &nap_wake_up_timestamp, &nap_total_time, NAP_DATA_TYPE);
+ cywee_get_sleep_time_data(&sleep_fall_asleep_timestamp, &sleep_wake_up_timestamp, &sleep_total, SLEEP_DATA_TYPE);
+ cywee_get_sleep_time_data(&nap_fall_asleep_timestamp, &nap_wake_up_timestamp, &nap_total, NAP_DATA_TYPE);
#endif
+ OHOS::SleepModel::GetInstance().set_sleep_total(sleep_total);
+ OHOS::SleepModel::GetInstance().set_nap_total(nap_total);
+
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
"ReadSleepData sleepStr %u wakeStr %u sleep_total_time %d",
sleep_fall_asleep_timestamp,
int SleepModel::get_sleep_goal() { return goal_total_time; }
// 获取睡眠总时长(实际)
int SleepModel::get_sleep_total() { return sleep_total_time; }
+ void SleepModel::set_sleep_total(uint16_t time) { sleep_total_time = time; }
+ void SleepModel::set_nap_total(uint16_t time) { nap_total_time = time; }
// 获取实际入睡时间str
std::string SleepModel::get_rest_str() { return sleepStr; }
// 获取实际醒来时间str
\r
void cst86xx_get_chip_id(uint16_t *chip_id)\r
{\r
+ cst86xx_resume();\r
ext_errno ret = cst86xx_tp_i2c_data_read(CST86XX_HW_ID, chip_id, 1);\r
if (ret != EXT_ERR_SUCCESS) {\r
tp_err("configuration error (read chip id) 0x%x", ret);\r
return;\r
}\r
+ cst86xx_suspend();\r
}\r
\r
#ifdef __cplusplus\r
void ft6x46_get_chip_id(uint16_t *id)
{
+ ft6x46_resume();
ext_errno ret;
uint8_t chip_id[2] = {0};
/*get chip id*/
//sprintf(id,"0x%02x%02x", chip_id[0], chip_id[1]);
}
}
+ ft6x46_suspend();
}
#ifdef __cplusplus
}
}
+uint32_t uapi_cat1_reset(uint32_t pwron)
+{
+
+#if defined(BOARD_FD230)
+ if( pwron == 0)
+ {
+ uapi_gpio_set_dir(S_AGPIO_L28, GPIO_DIRECTION_OUTPUT);
+ uapi_gpio_set_val(S_AGPIO_L28, GPIO_LEVEL_HIGH);
+ printf("clear reset Cat1! L28 high \r\n");
+ }else{
+ uapi_gpio_set_dir(S_AGPIO_L28, GPIO_DIRECTION_OUTPUT);
+ uapi_gpio_set_val(S_AGPIO_L28, GPIO_LEVEL_LOW);
+ printf("Reset Cat1! L28 low\r\n");
+ }
+#endif
+ return 0;
+}
+
+
+uint32_t uapi_cat1_power_on(uint32_t pwron)
+{
+
+ pin_t bat_en_pin = S_AGPIO_L23;
+ if( pwron == 0)
+ {
+ uapi_gpio_set_dir(bat_en_pin, GPIO_DIRECTION_OUTPUT);
+ uapi_gpio_set_val(bat_en_pin, GPIO_LEVEL_LOW);
+ printf("Power Cat1! %d low \r\n",bat_en_pin);
+ }else{
+ uapi_gpio_set_dir(bat_en_pin, GPIO_DIRECTION_OUTPUT);
+ uapi_gpio_set_val(bat_en_pin, GPIO_LEVEL_HIGH);
+ printf("Power Cat1! %d high \r\n",bat_en_pin);
+ }
+
+ return 0;
+}
+
void power_on_cat1(void)
{
- #ifdef BOARD_FD230
- cat1_api_cat1_power_on(1);
- cat1_api_cat1_reset(0);
- #else
- cat1_api_cat1_reset(0);
- cat1_api_cat1_power_on(1);
- cat1_api_cat1_bat_on(1);
+ #if defined(BOARD_FD230)
+ uapi_cat1_power_on(1);
+ uapi_cat1_reset(0);
+ #elif (defined(BOARD_W9) || defined(BOARD_N9))
+ uapi_cat1_reset(0);
+ uapi_cat1_power_on(1);
+ uapi_cat1_bat_on(1);
osDelay(900);
- cat1_api_cat1_power_on(0);
+ uapi_cat1_power_on(0);
#endif
}
void power_off_cat1(void)
{
- #ifdef BOARD_FD230
- cat1_api_cat1_reset(1);
- cat1_api_cat1_power_on(0);
- #else
- cat1_api_cat1_bat_on(0);
- cat1_api_cat1_reset(1);
- cat1_api_cat1_power_on(1);
+ #if defined(BOARD_FD230)
+ uapi_cat1_reset(1);
+ uapi_cat1_power_on(0);
+ #elif (defined(BOARD_W9) || defined(BOARD_N9))
+ uapi_cat1_bat_on(0);
+ uapi_cat1_reset(1);
+ uapi_cat1_power_on(1);
#endif
}
+/*\r
+ * @Author: penglei 1624952103@qq.com\r
+ * @Date: 2025-05-15 11:28:07\r
+ * @LastEditors: penglei 1624952103@qq.com\r
+ * @LastEditTime: 2025-07-31 17:29:02\r
+ * @FilePath: /FD230/code/sdk/zhihui/4g/cat1Service/include/cat1_ctl.h\r
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r
+ */\r
\r
#ifndef __CAT1_CTL_H\r
#define __CAT1_CTL_H\r
/**set powerpin 0 ,set resetpin 1*/\r
void power_off_cat1(void);\r
\r
+uint32_t uapi_cat1_reset(uint32_t pwron);\r
+uint32_t uapi_cat1_power_on(uint32_t pwron);\r
+\r
void cat1_api_wakeup_cat1(uint8_t wakeup);\r
void cat1_api_keep_wakeup(uint8_t keep_wakeup);\r
\r
#endif
}
-void mag_sensonr_start(void)
+void mag_sensor_start(void)
{
#ifdef MAG_MMC5603
mmc5603_start();
#endif
}
-void mag_sensonr_stop(void)
+void mag_sensor_stop(void)
{
#ifdef MAG_MMC5603
mmc5603_stop();
* @Author: penglei 1624952103@qq.com
* @Date: 2024-06-07 11:18:26
* @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2025-07-29 14:17:19
+ * @LastEditTime: 2025-07-31 17:27:56
* @FilePath: /FD230/code/sdk/drivers/peripheral/ppg/hx3695/hx3695_hal.h
* @Description:
*
void mag_timer_handler(void);
-void mag_sensonr_start(void);
-void mag_sensonr_stop(void);
+void mag_sensor_start(void);
+void mag_sensor_stop(void);
uint8_t mag_get_chip_id(void);
int mag_get_iAccuracy(void);
static int history_wear_status = -1;\r
static uint8_t wear_status = 0;\r
static uint8_t spo2_result = 0;\r
-\r
+static int32_t factory_data = 0;\r
static uint8_t hx3695_chip_id = 0;\r
\r
// static int timeout = 0;\r
gsen_fifo_y_send[ii] = gsensordata[ii].y * 4096 / 10;\r
gsen_fifo_z_send[ii] = gsensordata[ii].z * 4096 / 10;\r
}\r
-\r
+ factory_data = PPG_buf[ii];\r
// cywee_get_gsensor_data(8,gsensordata); \r
// for(ii=0; ii<*count; ii++)\r
// {\r
//("hxdata:%d/%d %d %d %d %d %d %d\r\n",\r
//1+ii,*count,red_buf[ii],ir_buf[ii],green_buf[ii],gsen_fifo_x_send[ii],gsen_fifo_y_send[ii],gsen_fifo_z_send[ii]);\r
//printf("FFF==>spo2 red_buf : %d, %d, %d, %d \n", 1+ii, *count, red_buf[ii], ir_buf[0]);\r
+ factory_data = red_buf[ii];\r
}\r
\r
// ft_ppg_iir = spo2_s_dat.red_data[0];\r
* @Author: penglei 1624952103@qq.com\r
* @Date: 2025-05-15 11:28:07\r
* @LastEditors: penglei 1624952103@qq.com\r
- * @LastEditTime: 2025-07-11 11:03:23\r
+ * @LastEditTime: 2025-07-31 17:02:23\r
* @FilePath: /FD230/code/sdk/zhihui/drivers/ppg/hx3695/hx3695_factory_test.h\r
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r
*/\r
void hx3695_lab_test(uint32_t test_mode);\r
void hx3695_lab_test_read(void);\r
\r
-void hx3695_get_factory_data(uint32_t *green,uint32_t *red,uint32_t *ir);\r
-\r
void hx3695_get_leaklight_data(uint32_t *green,uint32_t *red,uint32_t *ir);\r
\r
\r
#include "custom_utils.h"
#include "custom_save_runtime.h"
#include "ppg_hal.h"
+#include "los_tick.h"
static bool g_ppg_service_initialled = false;
void ppg_int_callback(pin_t pin, uintptr_t param);
+void ppg_hr_start(void);
+void ppg_hr_stop(void);
+void ppg_spo2_start(void);
+void ppg_spo2_stop(void);
+
#ifdef __cplusplus
#if __cplusplus
}
* @Author: penglei 1624952103@qq.com
* @Date: 2024-08-08 16:33:23
* @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2025-07-31 15:11:35
+ * @LastEditTime: 2025-07-31 17:09:45
* @FilePath: /FD230/code/sdk/drivers/peripheral/vibrator/service/vibrator_service.cpp
* @Description:
*
#include "custom_runtime.h"
#include "../../../../../zhihui/config/include/ConfigModelC.h"
#include "custom_save_runtime.h"
+#include "input_app.h"
void custom_VibratorFunc_int(int vibratorType)
{
// PRINT("[battery][service] charger_plug_event_ui_sendmsg_toUI plugged \n");
oncharging_status = 1;
#ifdef SUPPORT_CYWEE_SERVICE
- cywee_charge_status_update(&oncharging_status);
+ cywee_charge_status_update((uint8_t *)&oncharging_status);
#endif
battery_check_chargement();
charger_plug_event_ui_sendmsg_toUI(1);
// PRINT("[battery][service] charger_plug_event_ui_sendmsg_toUI unplugged \n");
oncharging_status = 0;
#ifdef SUPPORT_CYWEE_SERVICE
- cywee_charge_status_update(&oncharging_status);
+ cywee_charge_status_update((uint8_t *)&oncharging_status);
#endif
#ifndef DISABLE_VBUS_CHECK
disable_charge();
* @Author: penglei 1624952103@qq.com\r
* @Date: 2024-06-17 14:31:08\r
* @LastEditors: penglei 1624952103@qq.com\r
- * @LastEditTime: 2025-07-29 14:46:36\r
+ * @LastEditTime: 2025-07-31 16:23:18\r
* @FilePath: /FD230/code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c\r
* @Description: \r
* \r
\r
//读LCD ID\r
uint32_t id;\r
- lcd_getid(&id);\r
+ uapi_get_lcd_id(&id);\r
if(id != 0x1133)\r
{\r
aging_t.display_error++;\r
if(id != 0x65)\r
send_data[1] |= 1 << 3;\r
\r
- lcd_getid(&chip_id);\r
+ uapi_get_lcd_id(&chip_id);\r
if(chip_id != 0x1133)\r
send_data[1] |= 1 << 5;\r
\r
uint8_t i;\r
uint32_t id;\r
uint8_t lcd_id[3] = {0};\r
- lcd_getid(&id);\r
+ uapi_get_lcd_id(&id);\r
\r
lcd_id[0] = 0;\r
lcd_id[1] = id >> 8;\r
#ifdef BLE_INSTRUCT
#include "bleInstruct.h"
#endif
-
+#endif
typedef struct
{
uint8_t cmd;
#include "audio_base_type.h"
#include <sys/stat.h>
#include "audio_service.h"
+#include "lcd_common.h"
errcode_t uapi_create_osThread_custom(app_task_definition_t *task_cfg)
{
return AudioServiceGetVolume(AUDIO_STREAM_VOICE_CALL_VOLTE);
}
-
-void power_on_cat1(void)
-{
- #if defined(BOARD_FD230)
- uapi_cat1_power_on(1);
- uapi_cat1_reset(0);
- #elif (defined(BOARD_W9) || defined(BOARD_N9))
- uapi_cat1_reset(0);
- uapi_cat1_power_on(1);
- uapi_cat1_bat_on(1);
- osDelay(900);
- uapi_cat1_power_on(0);
- #endif
-
-}
-
-void power_off_cat1(void)
-{
- #if defined(BOARD_FD230)
- uapi_cat1_reset(1);
- uapi_cat1_power_on(0);
- #elif (defined(BOARD_W9) || defined(BOARD_N9))
- uapi_cat1_bat_on(0);
- uapi_cat1_reset(1);
- uapi_cat1_power_on(1);
- #endif
-}
-
//设置4G能力开关是否开启
void uapi_set4GCapability(bool isopen)
{
}
// WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE,"\r\nCAT1 SERVICE MCU WAKEUP SUCCESS\r\n");
#endif
+}
+
+void uapi_get_lcd_id(uint32_t *id)
+{
+ if(id == NULL)
+ return;
+
+ lcd_drv_common *lcd_drv_comm_api = NULL;
+
+ lcd_drv_comm_api = lcd_drv_get_common_api();
+ if (lcd_drv_comm_api == NULL)
+ {
+ PRINT("lcd_drv_comm_api is null.\r\n");
+ }
+ else
+ {
+ lcd_drv_comm_api->get_chip_id(id);
+ }
}
\ No newline at end of file
void uapi_cat1_remove_cat1_vote(void);
void uapi_cat1_add_cat1_vote(void);
+void uapi_get_lcd_id(uint32_t *id);
+
#include "custom_utilscpp.h"
UNUSED(strCommonCmd);
uint32_t id;
- lcd_getid(&id);
+ uapi_get_lcd_id(&id);
return ERRCODE_SUCC;
}
{
// gsenson_t *t;
uint8_t databuf[6];
- get_gsensor_single(databuf);
+ // get_gsensor_single(databuf);
UNUSED(strCommonCmd);
return ERRCODE_SUCC;