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

65 lines
1.8 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
// 景点信息
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);
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 */