81 lines
2.6 KiB
C
81 lines
2.6 KiB
C
#ifndef ATTR_BROADCAST_H
|
||
#define ATTR_BROADCAST_H
|
||
#include "cm_os.h"
|
||
#include "nmea/nmea.h"
|
||
|
||
// 版本类型定义
|
||
#define VERSION_TYPE_ATTRACTION 0
|
||
#define VERSION_TYPE_FENCE 1
|
||
|
||
// 操作类型定义
|
||
#define VERSION_OP_GET 0
|
||
#define VERSION_OP_SET 1
|
||
|
||
// 鉴权码管理操作类型定义
|
||
#define AUTH_OP_GET 0 // 获取鉴权码
|
||
#define AUTH_OP_SET 1 // 设置鉴权码
|
||
#define AUTH_OP_DEL 2 // 删除鉴权码
|
||
|
||
|
||
// 景点信息
|
||
typedef struct {
|
||
double longitude; // 经度
|
||
double latitude; // 纬度
|
||
char name[50]; // 景点名称
|
||
char description[200]; // 景点描述
|
||
} Attraction;
|
||
|
||
|
||
//位置信息
|
||
typedef struct {
|
||
double longitude;
|
||
double latitude;
|
||
} Location;
|
||
|
||
extern const char *park_desc[];
|
||
|
||
// 统一的版本号管理接口
|
||
// 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);
|
||
|
||
// 统一的鉴权码管理接口
|
||
// op: 操作类型 (AUTH_OP_GET, AUTH_OP_SET 或 AUTH_OP_DEL)
|
||
// auth_code: 用于设置或返回鉴权码的指针
|
||
// 对于 AUTH_OP_GET: 输出参数,需要预先分配足够的内存
|
||
// 对于 AUTH_OP_SET: 输入参数,指向要设置的鉴权码字符串
|
||
// 对于 AUTH_OP_DEL: 忽略此参数
|
||
// max_len: 对于 AUTH_OP_GET: 表示 auth_code 缓冲区的最大长度
|
||
// 对于其他操作: 忽略此参数
|
||
// 返回值: 0表示成功,负数表示失败
|
||
int auth_code_manage(uint8_t op, char* auth_code, uint16_t max_len);
|
||
|
||
//多文字tts,景区播报专用
|
||
void safe_tts_play(const char* segments[], int count);
|
||
|
||
|
||
// 初始化景点播报系统
|
||
void attr_broadcast_init(void);
|
||
|
||
// 添加景点
|
||
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);
|
||
|
||
// 停止景点播报任务
|
||
void attr_broadcast_stop(void);
|
||
|
||
// 删除所有景点
|
||
void attr_broadcast_remove_all(void);
|
||
|
||
// 设置播报距离阈值 (米)
|
||
void attr_broadcast_set_distance_threshold(double threshold);
|
||
|
||
|
||
#endif /* ATTR_BROADCAST_H */ |