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

如何使用Winform C#app通过USB电缆将数据传输到Hololens设备?,c#,winforms,usb,adb,hololens,C#,Winforms,Usb,Adb,Hololens,我正在使用Winform C#制作一个带有全息镜头设备的应用程序 我希望我能检查Hololens设备是否连接到PC,以便在Hololens和PC之间传输数据 我发现一个解决方案是检查我是否可以访问全息透镜的内部存储,如果可以检查,全息透镜已连接到PC 但我发现我无法获取Hololens内部存储,即使我可以在explorer中看到内部存储,但我无法获取驱动程序(如C:\或D:\),Hololens内部存储没有设备号 我该怎么办?除了网络之外,有没有更好的方法来检查Hololens是否在Holole

我正在使用Winform C#制作一个带有全息镜头设备的应用程序

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

我发现一个解决方案是检查我是否可以访问全息透镜的内部存储,如果可以检查,全息透镜已连接到PC

但我发现我无法获取Hololens内部存储,即使我可以在explorer中看到内部存储,但我无法获取驱动程序(如C:\或D:\),Hololens内部存储没有设备号

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

既然有一个叫做ADB的smiliar项目,有必要开发类似ADB的东西吗?如果是,我应该如何开始

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

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

首先,在PC应用程序中,我使用一个名为
libusbDotNet
的库,它允许您完全控制像Hololens这样的USB设备,以便向Hololens设备发送命令


其次,在Hololens平台上,编写一个UWP应用程序,通过usb线从PC机接收数据,并将讨论中的响应数据发送回PC机。实际问题是如何从远程PC访问HoloLens文件系统

这可以通过以下方式解决

但我建议使用。您应该通过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();

}

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

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

这可以通过以下方式解决

但我建议使用。您应该通过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();

}

类似的工作人员负责读取/写入设备上的文件。

好吧,我想做的是检查Hololens是否连接到PC,我使用的是Winform C,而不是UWP。我想知道如何使用USB访问Hololens,但我不知道如何做,因为C无法控制USB,Hololens没有向Winform平台提供SDK,我不明白你想要什么。我以为你的应用程序在设备上运行。现在的问题是:应用程序是否在通过usb电缆连接到hololens的PC上运行?是的,这就是我想使用usb电缆连接hololens的原因,我想使用我的PC应用程序将数据传输到hololens,hololens可以将数据发送回我的PC应用程序,听起来像ADB。好吧,我想做的是检查hololens是否连接到PC,我使用的是Winform C#而不是UWP。我想知道如何使用USB访问Hololens,但我不知道如何做到这一点,因为C#无法控制USB,Hololens也不向Winform平台提供SDK。我不明白你想要什么。我以为你的应用程序在设备上运行。现在的问题是:应用程序是否在通过usb电缆连接到hololens的PC上运行?是的,这就是我想要使用usb电缆连接hololens的原因,我想使用我的PC应用程序将数据传输到hololens,hololens可以将数据发送回我的PC应用程序,听起来像ADB。