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

81 lines
2.6 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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 */