如何使用Winform C#应用程序通过USB电缆将数据传输到Hololens设备?

时间:2019-07-16 07:31:47

标签: c# winforms usb adb hololens

我正在使用Winform C#使用Hololens设备制作应用程序。

我希望我可以检查Hololens设备是否已连接到PC,以便可以在Hololens和PC之间传输数据。

我发现一种解决方案是检查是否可以访问Hololens内部存储,如果可以,则检查Hololens是否已连接到PC。

但是我发现即使可以在资源管理器中看到内部存储,我也无法获得Hololens内部存储,但是我无法获得Hololens内部存储的驱动程序(例如C:\或D:\)没有设备号。

我该怎么办?除了网络以外,还有什么更好的方法可以检查Hololens是否已连接并在Hololens和PC之间传输数据?

由于有一个名为ADB的附属项目,是否有必要开发类似ADB的项目?如果是这样,我应该如何开始?

----------------------------编辑------------------ -

我终于找到了可行的解决方案:

首先,在PC应用程序中,我使用了一个名为libusbDotNet的库,该库可让您完全控制Hololens等USB设备,以向Hololens设备发送命令

第二,在Hololens平台上,编写一个UWP应用程序,该应用程序可以通过usb电缆从PC接收数据,并将响应数据发送回PC

1 个答案:

答案 0 :(得分:1)

从讨论开始。实际的问题是如何从远程PC访问HoloLens文件系统。

可以通过Windows Device Portal REST API解决。

但是我建议使用WindowsDevicePortalWrapper。您应该通过USB或WiFi连接到设备,并提供对其的访问权限。

简单代码,可读取一个已知文件夹的内容。

static void Main(string[] args1)
{

    string DeviceAddress = "http://127.0.0.1:10080/";

    DevicePortal Portal = new DevicePortal(new DefaultDevicePortalConnection(DeviceAddress, "user", "pass"));

    Portal.ConnectAsync().Wait(); 

    var folders = Portal.GetKnownFoldersAsync().Result.Folders;
    var rootDirOfFirstFolder = Portal.GetFolderContentsAsync(folders[0], null).Result.Contents;

    Console.WriteLine($"First known folder is {folders[0]}. It contains:");
    foreach(var file in rootDirOfFirstFolder)
    {
        Console.WriteLine($"\t{file.Name}");
    }


    Console.WriteLine("Press ANY key to continue.....");
    Console.ReadKey();

}

类似的人员用于在设备上读取/写入文件。