DLLDiscoverControllers
函数 DLLDiscoverControllers 在指定 UDP 端口上发送广播,发现局域网内运行中的 One 控制器。(无句柄,进程全局广播。)
C/C++
ErrorCode DLLDiscoverControllers(uint16_t port, char* outControllerIp, int* inOutIpSize, uint32_t timeoutMs);
C#
.NET SDK 无直接等效项;控制器发现与网络配置由 Setup Manager 应用完成(本 C API 保留供 C 客户使用)。
参数
port (uint16_t)
UDP 广播端口。建议使用 60049(与控制器默认命令端口一致)。
outControllerIp (char*)
输出。接收以 ip=<地址> 开头、后续为 key=value 行的字符串,以 \0 结尾。如果无控制器响应,字符串为空。
inOutIpSize (int*)
输入输出。调用时传入 outControllerIp 缓冲区容量(字符数);返回时写入实际写入的字符数,不含终止 \0。
timeoutMs (uint32_t)
广播超时时间,单位毫秒。无控制器响应时返回 CallbackTimeout。
返回值
返回 ErrorCode;NoError (0) 表示成功,CallbackTimeout 表示在超时时间内未收到响应,详见 SDK 发布头 ErrorCode.h。
说明
此函数无需客户端句柄,为进程全局调用。控制器响应的字符串格式示例: ip=192.168.1.100 name=OneController version=1.0.0
示例
char ip[64] = {0};
int len = sizeof(ip);
if (DLLDiscoverControllers(60049, ip, &len, 1000) == NoError)
printf("Found controller: %s\n", ip);