components/common/ 是项目自己写的代码 (火山 RTC SDK 的 wrapper + HTTP 客户端 + JSON 工具 + 设备管理), 历史上被 .gitignore 的 components/ 规则误排除。共 15 个文件 2750 行项目代码长期未被 git 跟踪, 修改易丢失, 不利于多设备开发和回溯。 主要变动: 1. .gitignore - 改 components/ → /components/* (顶层 children 而非目录本身) - 加 !/components/common/ 例外, 让项目自己代码进入跟踪 - 加 esp-spot/**/components/ 显式 ignore 子项目里的 components/ 保持原行为 2. components/common/ 首次入 git (~2750 行) - inc/volc_rtc.h, src/volc_rtc.c — 火山 RTC SDK 的封装层 - inc/volc_http.h, src/volc_http.c — HTTP 客户端 - inc/util/volc_json.h, src/volc_json.c — JSON 工具 - inc/base/volc_device_manager.h, src/volc_device_manager.c — RTC 设备凭证管理 - inc/util/volc_log.h — 日志宏 - inc/util/volc_list.h — 链表工具 - inc/volc_conv_ai.h — 会话 AI 接口定义 - inc/volc_platform.h, src/volc_platform.c — 平台抽象 - inc/base/volc_base.h — 基础类型 未跟踪的兄弟目录 (保持 ignore): - components/78__esp-opus-encoder/ (IDF managed component) - components/volc_engine_rtc_lite/ (火山 RTC SDK 二进制库) - components/zlib/ (第三方库) 后续 fix(rtc) NULL guard 等 components/common/ 的改动将作为独立 commit。 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
64 lines
2.2 KiB
C
64 lines
2.2 KiB
C
// Copyright (2025) Beijing Volcano Engine Technology Ltd.
|
||
// SPDX-License-Identifier: Apache-2.0
|
||
|
||
#ifndef __CONV_AI_BASE_VOLC_DEVICE_MANAGER_H__
|
||
#define __CONV_AI_BASE_VOLC_DEVICE_MANAGER_H__
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
#include <stdint.h>
|
||
|
||
// 硬件ID宏定义
|
||
#define HARDWARE_ID "a2:c8:2c:89:6e:46"
|
||
|
||
// 错误码宏定义
|
||
#define ERROR_LICENSE_EXHAUSTED 12000130
|
||
#define ERROR_LICENSE_EXPIRED 12000140
|
||
|
||
// IoT设备信息结构体
|
||
typedef struct {
|
||
char* instance_id; // 实例ID
|
||
char* product_key; // 产品密钥
|
||
char* product_secret; // 产品密钥
|
||
char* device_name; // 设备名称
|
||
char* device_secret; // 设备密钥
|
||
char* rtc_app_id; // RTC应用ID
|
||
char* bot_id; // Bot ID
|
||
} volc_iot_info_t;
|
||
|
||
// RTC配置结构体
|
||
typedef struct {
|
||
char* p_channel_name; // 频道名称
|
||
char* p_uid; // 用户ID
|
||
char* p_token; // 令牌
|
||
int audio_codec; // 音频编解码器
|
||
int video_codec; // 视频编解码器
|
||
uint32_t audio_bitrate; // 音频比特率
|
||
uint32_t video_bitrate; // 视频比特率
|
||
uint32_t sample_rate; // 采样率
|
||
uint32_t channels; // 声道数
|
||
uint32_t bits_per_sample;// 采样位数
|
||
} volc_rtc_config_t;
|
||
|
||
// 房间信息结构体
|
||
typedef struct {
|
||
volc_rtc_config_t rtc_opt; // RTC配置选项
|
||
char* task_id; // 任务ID
|
||
} volc_room_info_t;
|
||
|
||
// 为了向后兼容,添加volc_rtc_option_t作为volc_rtc_config_t的别名
|
||
typedef volc_rtc_config_t volc_rtc_option_t;
|
||
|
||
// 函数声明
|
||
int volc_device_register(volc_iot_info_t* info, char** output);
|
||
// 新增:extra_params 用于传递额外的AgentConfig配置参数
|
||
int volc_get_rtc_config(volc_iot_info_t* info, int audio_codec, const char* bot_id, const char* task_id, const char* extra_params, volc_room_info_t* room_info);
|
||
char* volc_generate_signature(const char* secret_key, const char* product_key, const char* device_name, int rnd, uint64_t timestamp, int auth_type);
|
||
char* volc_generate_signature_ws(const char* secret_key, const char* product_key, const char* device_name, const char* instance_id, int rnd, uint64_t timestamp, int auth_type);
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
#endif /* __CONV_AI_BASE_VOLC_DEVICE_MANAGER_H__ */ |