C#

说明

C# SDK中使用了三个工具库来方便调用

  1. RestSharp 用于发起http请求

  2. Newtonsoft.Json 用于Json字符串的解析

  3. SixLabors.ImageSharp 用于图像数据的存储

接口定义

函数名 功能解释 参数与返回值

public static string GetSDKVersion()

获取SDK版本号

返回值: string类型,SDK版本号

public static string? GetHeader(string ip, string frameId, int timeout=2000)

获取相机照片信息

参数:

ip: 相机的ip地址

frameId: 相机的frameId

timeout: 超时时间,默认2000ms

返回值: string类型,相机的照片信息,包含width,height

public static EpicEyeInfo? GetInfo(string ip, int timeout=2000)

获取相机信息

参数:

ip: 相机的ip地址

timeout: 超时时间,默认2000ms

返回值: EpicEyeInfo类型,相机的详细信息

public static string? TriggerCapture(string? ip, bool withPointCloud = true, int timeout=2000)

触发拍摄一个Frame

参数:

ip: 相机的ip地址

withPointCloud: 是否请求点云数据

timeout: 超时时间,默认2000ms

返回值: string类型,返回frameId用于后续获取数据

public static byte[]? GetPointCloud(string ip, string frameId, int timeout=15000)

获取点云数据

参数:

ip: 相机的ip地址

frameId: 待获取数据的frameId

timeout: 超时时间,默认15000ms

返回值: byte[]类型,点云数据

public static byte[]? GetDepth(string ip, string frameId, int timeout=15000)

获取深度图数据

参数:

ip: 相机的ip地址

frameId: 待获取数据的frameId

timeout: 超时时间,默认15000ms

返回值: byte[]类型,深度图数据

public static byte[]? GetImage(string ip, string frameId, int timeout=15000)

获取2D图像数据

参数:

ip: 相机的ip地址

frameId: 待获取数据的frameId

timeout: 超时时间,默认15000ms

返回值: byte[]类型,图像数据

public static Hashtable? GetConfig(string ip, string frameId = "", int timeout=2000)

获取相机参数配置

参数:

ip: 相机的ip地址

frameId: 待获取数据的frameId,空字符串表示获取最新配置

timeout: 超时时间,默认2000ms

返回值: Hashtable类型,相机配置数据

public static bool SetConfig(string ip, Hashtable config, int timeout=2000)

设置相机参数配置

参数:

ip: 相机的ip地址

config: 待设置的相机配置

timeout: 超时时间,默认2000ms

返回值: bool类型,表示是否设置成功

public static float[]? GetCameraMatrix(string ip, int timeout=2000)

获取相机内参矩阵

参数:

ip: 相机的ip地址

timeout: 超时时间,默认2000ms

返回值: float[]类型,3x3相机矩阵

public static float[]? GetDistortion(string ip, int timeout=2000)

获取相机畸变参数

参数:

ip: 相机的ip地址

timeout: 超时时间,默认2000ms

返回值: float[]类型,相机畸变参数

public static (byte[]? imageBytes, byte[]? pointCloudBytes) GetPointCloudAndImageWithTimeStats(string ip, string frameId, ref double networkTransmitTimeMs, ref double networkSpeedMbps, int timeout = 15000)

获取点云和图像数据

参数:

ip: 相机的ip地址

frameId: 待获取数据的frameId

networkTransmitTimeMs: 网络传输时间(ms)

networkSpeedMbps: 网络速度(Mbps)

timeout: 超时时间,默认15000ms

返回值: (byte[], byte[])类型,图像数据和点云数据

public static byte[]? GetPointCloudInPly(string ip, string frameId, int timeout=15000)

获取PLY格式点云数据

参数:

ip: 相机的ip地址

frameId: 待获取数据的frameId

timeout: 超时时间,默认15000ms

返回值: byte[]类型,PLY格式点云数据

public static List<EpicEyeInfo> SearchCamera()

搜索相机

返回值: List<EpicEyeInfo>类型,搜索到的相机列表

Linux运行

可参考 .NET and Ubuntu overview - .NET 配置Linux下的Dotnet环境,进入到Samples对应的例程中,执行dotnet run即可。

Windows运行

  1. 可参考 Install .NET on Windows - .NET 配置Windows下的dotnet环境。

    通过命令行进入到Samples对应的例程中,执行dotnet run即可。

  2. 使用Visual Studio则可以直接打开对应解决方案文件sln,执行生成解决方案。

    csharp 1

    选择对应项目执行

    csharp 2