2025-07-03 15:12:57 +08:00
|
|
|
|
#ifndef ATTR_BROADCAST_H
|
|
|
|
|
|
#define ATTR_BROADCAST_H
|
|
|
|
|
|
#include "cm_os.h"
|
|
|
|
|
|
#include "nmea/nmea.h"
|
|
|
|
|
|
|
2025-08-18 14:16:14 +08:00
|
|
|
|
// 版本类型定义
|
|
|
|
|
|
#define VERSION_TYPE_ATTRACTION 0
|
|
|
|
|
|
#define VERSION_TYPE_FENCE 1
|
2025-07-03 15:12:57 +08:00
|
|
|
|
|
2025-08-18 14:16:14 +08:00
|
|
|
|
// 操作类型定义
|
|
|
|
|
|
#define VERSION_OP_GET 0
|
|
|
|
|
|
#define VERSION_OP_SET 1
|
2025-07-10 10:01:23 +08:00
|
|
|
|
|
2025-07-03 15:12:57 +08:00
|
|
|
|
// 景点信息
|
|
|
|
|
|
typedef struct {
|
|
|
|
|
|
double longitude; // 经度
|
|
|
|
|
|
double latitude; // 纬度
|
|
|
|
|
|
char name[50]; // 景点名称
|
|
|
|
|
|
char description[200]; // 景点描述
|
|
|
|
|
|
} Attraction;
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-07-10 10:01:23 +08:00
|
|
|
|
//位置信息
|
|
|
|
|
|
typedef struct {
|
|
|
|
|
|
double longitude;
|
|
|
|
|
|
double latitude;
|
|
|
|
|
|
} Location;
|
|
|
|
|
|
|
|
|
|
|
|
extern const char *park_desc[];
|
|
|
|
|
|
|
2025-08-18 14:16:14 +08:00
|
|
|
|
// 统一的版本号管理接口
|
|
|
|
|
|
// op: 操作类型 (VERSION_OP_GET 或 VERSION_OP_SET) 0:获取版本号 1:写入版本号
|
|
|
|
|
|
// type: 版本类型 (VERSION_TYPE_ATTRACTION 或 VERSION_TYPE_FENCE) 0:景区版本号 1:电子围栏版本号
|
|
|
|
|
|
// version: 用于设置或返回版本号的指针
|
|
|
|
|
|
int attr_broadcast_manage_version(uint8_t op, uint8_t type, uint32_t* version);
|
|
|
|
|
|
|
2025-07-10 10:01:23 +08:00
|
|
|
|
|
|
|
|
|
|
//多文字tts,景区播报专用
|
|
|
|
|
|
void safe_tts_play(const char* segments[], int count);
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-07-03 15:12:57 +08:00
|
|
|
|
// 初始化景点播报系统
|
|
|
|
|
|
void attr_broadcast_init(void);
|
|
|
|
|
|
|
|
|
|
|
|
// 添加景点
|
2025-07-16 13:31:57 +08:00
|
|
|
|
void attr_broadcast_add_attraction(uint32_t region_id,
|
|
|
|
|
|
double lon, double lat,
|
|
|
|
|
|
double radius, // 新增半径参数
|
|
|
|
|
|
const char* name,
|
|
|
|
|
|
const char* desc); // 新增触发距离参数
|
|
|
|
|
|
|
|
|
|
|
|
// 根据区域ID删除景点
|
|
|
|
|
|
void attr_broadcast_remove_attraction_by_id(uint32_t region_id);
|
|
|
|
|
|
|
2025-07-03 15:12:57 +08:00
|
|
|
|
// 停止景点播报任务
|
|
|
|
|
|
void attr_broadcast_stop(void);
|
|
|
|
|
|
|
2025-07-16 13:31:57 +08:00
|
|
|
|
// 删除所有景点
|
|
|
|
|
|
void attr_broadcast_remove_all(void);
|
|
|
|
|
|
|
2025-07-03 15:12:57 +08:00
|
|
|
|
// 设置播报距离阈值 (米)
|
|
|
|
|
|
void attr_broadcast_set_distance_threshold(double threshold);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* ATTR_BROADCAST_H */
|