4G_module/custom/attr_broadcast/inc/attr_broadcast.h

81 lines
2.6 KiB
C
Raw Normal View History

#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
2025-07-10 10:01:23 +08:00
// 鉴权码管理操作类型定义
#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;
2025-07-10 10:01:23 +08:00
//位置信息
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);
2025-07-10 10:01:23 +08:00
//多文字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 */