初始提交卡包 USB 工程
纳入固件源码、屏幕组件、nand_xfer 工具和文档。忽略本机构建产物、sdkconfig,以及含本机路径的依赖锁。 Co-authored-by: Cursor <[email protected]>
This commit is contained in:
@@ -0,0 +1,128 @@
|
||||
#ifndef PET_INIT_H
|
||||
#define PET_INIT_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include <time.h>
|
||||
#include "main.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef enum {
|
||||
PET_STAGE_BABY = 0,
|
||||
PET_STAGE_TEEN,
|
||||
PET_STAGE_ADULT,
|
||||
} pet_stage_t;
|
||||
|
||||
typedef enum {
|
||||
PET_VEHICLE_WALK = 0,
|
||||
PET_VEHICLE_BIKE,
|
||||
PET_VEHICLE_MOTORCYCLE,
|
||||
PET_VEHICLE_CAR,
|
||||
PET_VEHICLE_PLANE,
|
||||
} pet_vehicle_t;
|
||||
|
||||
typedef enum {
|
||||
PARK = 0,
|
||||
STREET, // 街道
|
||||
RIVER, // 河流
|
||||
ANCIENT_TOWN, // 古镇
|
||||
MOUNTAIN_TRAIL, // 山道
|
||||
RESERVOIR, // 水库
|
||||
SETTLEMENT, // 聚落
|
||||
ORCHARD, // 果园
|
||||
HUIZHOU, // 惠州
|
||||
DONGGUAN, // 东莞
|
||||
FOSHAN, // 佛山
|
||||
ZHONGSHAN, // 中山
|
||||
JIANGMEN, // 江门
|
||||
QINGYUAN, // 清远
|
||||
ZHAOQING, // 肇庆
|
||||
HEYUAN, // 河源
|
||||
MEIZHOU, // 梅州
|
||||
CHONGQING, // 重庆
|
||||
XIAN, // 西安
|
||||
GUANGZHOU, // 广州
|
||||
NANJING, // 南京
|
||||
SANYA, // 三亚
|
||||
BEIJING, // 北京
|
||||
CHANGSHA, // 长沙
|
||||
ZHANGJIAJIE, // 张家界
|
||||
XIANGXI, // 湘西
|
||||
FENGHUANG_GUZHEN, // 凤凰古镇
|
||||
SHANGHAI, // 上海
|
||||
XIANGGELILA, // 香格里拉
|
||||
LIJIANG, // 丽江
|
||||
DALI, // 大理
|
||||
XIZANG, // 西藏
|
||||
XIAMEN, // 厦门
|
||||
JINGDEZHEN, // 景德镇
|
||||
PINGTAN, // 平潭
|
||||
QINGDAO, // 青岛
|
||||
BEIHAI, // 北海
|
||||
WANNING, // 万宁
|
||||
ZIBO, // 淄博
|
||||
YANJI, // 延吉
|
||||
LIUZHOU, // 柳州
|
||||
YICHANG, // 宜昌
|
||||
MOHE, // 漠河
|
||||
GUILIN, // 桂林
|
||||
HANGZHOU, // 杭州
|
||||
XITANG, // 西塘
|
||||
QINGHAI, // 青海
|
||||
XISHUANGBANNA, // 西双版纳
|
||||
DUNHUANG, // 敦煌
|
||||
YUNNAN, // 云南(省/区域)
|
||||
CITY_COUNT, // 枚举计数(必须放最后)
|
||||
} travel_city_t;
|
||||
|
||||
extern const char *city_names[CITY_COUNT];
|
||||
|
||||
typedef struct {
|
||||
uint8_t hunger; // 0-100
|
||||
uint8_t cleanliness; // 0-100
|
||||
uint8_t mood; // 0-100
|
||||
uint16_t intimacy; // 0-300
|
||||
pet_stage_t stage;
|
||||
pet_vehicle_t vehicle;
|
||||
uint64_t last_timestamp; // UTC seconds stored as u64
|
||||
struct tm last_time; // 本地时间表示
|
||||
|
||||
bool is_travelling; //是否在旅行
|
||||
uint64_t travel_timestamp;
|
||||
bool can_travel;
|
||||
uint16_t travel_time;
|
||||
|
||||
uint16_t feed_time; //喂食状态
|
||||
uint64_t feed_timestamp;
|
||||
bool is_feed_cd;
|
||||
} pet_status_t;
|
||||
|
||||
/* 全局标志(在 pet_init.c 中定义) */
|
||||
extern bool g_pet_need_first_sync; // true 表示需要第一次 NTP 同步并写入时间
|
||||
extern bool g_pet_ntp_synced; // NTP 同步成功
|
||||
extern bool g_pet_animation_ready; // 同步成功后,动画可用标志
|
||||
|
||||
/* 对外接口 */
|
||||
void pet_init(void);
|
||||
const pet_status_t *pet_get_status(void);
|
||||
pet_stage_t pet_get_stage(uint16_t intimacy);
|
||||
pet_vehicle_t pet_get_vehicle_stage(uint16_t intimacy);
|
||||
void pet_feed(void);
|
||||
void pet_bath(void);
|
||||
void pet_interact(void);
|
||||
void pet_travel_return(void);
|
||||
|
||||
/* 时间同步任务控制 */
|
||||
void pet_start_time_task(void);
|
||||
|
||||
extern bool g_wifi_state;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user