toy-Kapi_Rtc/components/common/inc/base/volc_device_manager.h
Rdzleo aeae073e4f chore(git): 把 components/common/ 纳入 git 跟踪
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>
2026-05-19 13:50:52 +08:00

64 lines
2.2 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.

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