123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277 |
- #ifndef _AEM_WORKOUT_IF_H_
- #define _AEM_WORKOUT_IF_H_
- #include <stdint.h>
- #include <stdbool.h>
- #include "aem_sensor_if.h"
- #include "aem_core_if.h"
- #include "res_include.h"
- #define WORKOUT_TOP_LIST_MAX 11
- #pragma pack(push, 1)
- typedef enum
- {
- WORKOUT_CATEGORY_GENERAL,
- WORKOUT_CATEGORY_MAX,
- } workout_category_e;
- typedef enum
- {
- WORKOUT_ID_BEGIN = 0,
- WORKOUT_OUTDOOR_RUNNING = 0,
- WORKOUT_INDOOR_RUNNING,
- WORKOUT_HIKE,
- WORKOUT_OUTDOOR_CYCLE,
- WORKOUT_INDOOR_CYCLE,
- WORKOUT_POOL_SWIM,
- WORKOUT_OPEN_WATER,
- WORKOUT_BADMINTON,
- WORKOUT_YOGA,
- WORKOUT_TENNIS,
- WORKOUT_ROPE,
- WORKOUT_ID_MAX,
- WORKOUT_ID_INVALID = 0xff,
- } workout_id_e;
- typedef enum
- {
- WORKOUT_FIELD_BEGIN = 0,
- WORKOUT_DURATION_FIELD = 0,
- WORKOUT_DISTANCE_FIELD,
- WORKOUT_CALORIE_FIELD,
- WORKOUT_RT_HR_FIELD,
- WORKOUT_MAX_HR_FIELD,
- WORKOUT_MIN_HR_FIELD,
- WORKOUT_RT_PACE_FIELD,
- WORKOUT_AVERAGE_PACE_FIELD,
- WORKOUT_SPEED_FIELD,
- WORKOUT_AVERAGE_SPEED_FIELD,
- WORKOUT_STEPS_FIELD,
- WORKOUT_RT_STRIDE_FREQ_FIELD,
- WORKOUT_AVG_CADENCE_FIELD,
- WORKOUT_ALTITUDE_FIELD,
- WORKOUT_MAX_ALTITUDE_FIELD,
- WORKOUT_MIN_ALTITUDE_FIELD,
- WORKOUT_CUMULATIVE_RISE_FIELD,
- WORKOUT_LAPS_FIELD,
- WORKOUT_ROPES_FIELD,
- WORKOUT_MAX_FIELD_UNKNOW,
- WORKOUT_PARAM_INVALID = 0xff,
- } workout_data_type_e;
- typedef enum
- {
- WORKOUT_RUN = 0,
- WORKOUT_PAUSE = 1,
- } workout_state_e;
- typedef enum
- {
- UNIT_STR_KCAL,
- UNIT_STR_DISTANCE_M,
- UNIT_STR_DISTANCE_YARD,
- UNIT_STR_DISTANCE_KM,
- UNIT_STR_DISTANCE_MILE,
- UNIT_STR_PACE_KM,
- UNIT_STR_PACE_MILE,
- UNIT_STR_SPEED_KMH,
- UNIT_STR_SPEED_MMH,
- UNIT_STR_LAPS,
- UNIT_STR_ROPES,
- UNIT_STR_STEPS,
- UNIT_STR_SPM,
- UNIT_STR_BPM,
- } unit_type_e;
- typedef struct
- {
- uint8_t id;
- uint8_t category_id;
- uint32_t name_id;
- uint32_t icon_id;
- uint32_t big_icon_id;
- uint32_t bk_color;
- void *icon;
- void *big_icon;
- res_string_id_e name_key;
-
- uint32_t attr_gps : 1;
- uint32_t attr_pool : 1;
- uint32_t attr_running : 1;
- uint32_t attr_cycle : 1;
- } workout_info_t;
- typedef enum
- {
- WORKOUT_OK = 0,
- WORKOUT_FAIL,
- WORKOUT_INVALID_PARAM,
- WORKOUT_TYPE_ALGO_NO_SUPPORT,
- WORKOUT_OUT_OF_MEMORY,
- WORKOUT_TAG_NOT_EXIST,
- } workout_error_e;
- typedef struct
- {
- uint8_t auto_start;
- uint8_t auto_pause;
- uint8_t auto_stop;
- uint8_t hr_alarm_enable;
- uint8_t hr_alarm_value;
- } workout_switch_settings_t;
- typedef struct
- {
- uint8_t s_workout_toplist[11];
- workout_switch_settings_t switch_settings;
- uint8_t pool_length;
- } aem_workout_settings_t;
- typedef enum
- {
- GOAL_SETTING_NO_GOAL = 0,
- GOAL_SETTING_DURAION,
- GOAL_SETTING_DISTANCE,
- GOAL_SETTING_CALORIE,
- GOAL_SETTING_COUNT,
- GOAL_SETTING_MAX_UNKNOW,
- } workout_goal_type_e;
- typedef enum
- {
- WORKOUT_REMIND_BEGIN = 0,
- WORKOUT_REMIND_NO_REMIND = 0,
- WORKOUT_REMIND_DURATION,
- WORKOUT_REMIND_DISTANCE,
- WORKOUT_REMIND_COUNT,
- WORKOUT_REMIND_MAX_UNKNOW,
- } workout_remind_type_e;
- typedef struct
- {
- uint16_t distance;
- uint16_t durMin;
- uint16_t count;
- workout_remind_type_e active_remind;
- } workout_remind_setting_t;
- typedef struct
- {
- uint16_t calories;
- uint16_t distance;
- uint16_t durMin;
- uint16_t count;
- workout_goal_type_e active_goal;
- } workout_goal_settings_t;
- typedef struct
- {
- workout_id_e id;
- workout_goal_settings_t goal;
- workout_remind_setting_t remind;
- } workout_goal_remind_t;
- typedef struct
- {
- workout_id_e workout_id;
- workout_goal_settings_t goal;
- workout_remind_setting_t remind;
- sports_status_e status;
- bool is_save;
- bool gps_enable;
- uint16_t target_pace;
- } workout_state_t;
- typedef struct
- {
- workout_id_e workout_id;
- uint32_t start_time;
- uint32_t end_time;
- uint32_t sport_time;
- uint32_t paused_time;
- uint16_t active_durations;
- uint32_t calories;
- uint32_t steps;
- uint32_t distances;
- uint32_t smart_distances;
- workout_rt_hr_t hr;
- rt_speed_info_t speed;
- rt_pace_info_t pace;
- altitude_info_t altitude;
- rt_swim_info_t swim;
- aem_gps_rt_info_t gps;
- uint8_t avg_step_frequency;
- uint8_t cur_step_frequency;
- uint8_t max_step_frequency;
- uint8_t avg_step_len;
- uint8_t max_step_len;
- bool gps_enable;
- } workout_rt_info_t;
- typedef struct
- {
- workout_id_e workout_id;
- uint32_t start_time;
- uint32_t duration;
- uint32_t distance;
- uint32_t ropes;
- uint8_t index;
- } aem_wk_record_brief_t;
- typedef struct
- {
- uint32_t ai_distance;
- uint16_t ai_pace;
- bool enable;
- } ai_pacer_data_t;
- typedef struct
- {
- workout_id_e workout_id;
- uint32_t start_time;
- uint32_t end_time;
- workout_goal_settings_t goal;
- ai_pacer_data_t ai_pacer;
- uint16_t duration;
- uint16_t calorie;
- uint32_t distance;
- uint8_t hr_max;
- uint8_t hr_min;
- uint8_t hr_avg;
- uint16_t fast_pace;
- uint16_t avg_pace;
- uint32_t speed_max;
- uint32_t speed_avg;
- uint16_t steps;
- uint8_t avg_stride;
- uint8_t avg_stride_freq;
- int16_t altitude_avg;
- int16_t altitude_max;
- int16_t altitude_min;
- uint16_t cumulative_rise;
- uint16_t cumulative_fall;
- uint16_t laps;
- uint16_t ropes;
- uint8_t gps_enable;
- } workout_result_t;
- #pragma pack(pop)
- #define is_workout_goal_setting(a) ((GOAL_SETTING_DURAION <= (a)) && ((a) < GOAL_SETTING_MAX_UNKNOW))
- #define is_workout_remind_valid(a) ((WORKOUT_REMIND_BEGIN <= (a)) && ((a) < WORKOUT_REMIND_MAX_UNKNOW))
- #endif
|