Hotcan

享受生活的点点滴滴

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

昨天的那篇文章引起了不小的追捧,主要追捧的同学都感叹这个东西太贵,当然对未来孜孜不倦的追求是it民工的人生目标。还有一些同事说既然都开头了,怎么也不写个hello world。其实hello world的程序在最后一张截图里,我加了名字,时间,内嵌广告,这样就算被抄了也能看出是几几年写的,不会让某些神经脆弱的同学又感慨人生。

废话不表,昨天那个Hello World的程序很简单,打开Visual Studio 创建一个UWP程序,创建完了以后拖几个Control上去,我这里放了一个text box,一个web view。textbox里面说了几句废话,webview访问了鄙公司拳头产品云舶:www.yunboard.net

编译部署的流程是这样的。选择Release,x86,编译目标可以是模拟器,也可以是真机。真机调试需要首先打开Hololens的开发模式,在设置->更新->开发者里面,首先打开开发模式,然后打开设备管理器,这样就可以用浏览器来监控hololens的状态了。

在Visual Studio里面可以选择Remote Machine,开始部署。输入127.0.0.1,如果是第一次部署,还需要输入Pin,到刚才那个打开hololens开发模式的地方获取。

然后你的程序就愉快地跑起来了,是这个样子的。

注意到工具栏上有滚动,拖动,放大缩小等功能,还有调整位置,基本上就是windows上的窗口拖拽,放大缩小,不过比windows多了一个角度宣传,谁让他是3d的呢。窗口会自动附着在一个平面上,也就是我面前的墙壁上。整个窗口没有最大化的按钮,所有的操作都可以用语音来控制,非常简单。

我们有2种方式来看Hololens的Device Portal, 一种是直接Wifi模式,用https://hololens的ip,另外一种是通过usb,访问https://127.0.0.1:10080。可以打开配置页面,了解hololens的各种信息,比如视角,性能,系统等等,包括可以设置访问证书,密码,当前运行的进程,日志。具体可以访问https://developer.microsoft.com/en-us/windows/holographic/using_the_windows_device_portal了解详情。

 

值得一提的是Hololens Device Portal里所有的功能都支持Rest API,可以通过代码的方式管理Hololens,这对开发而言方便了很多,具体说明在https://developer.microsoft.com/en-us/windows/holographic/device_portal_api_reference。不过认证部分完全没提到,不加认证的话会拿到一个403错误。我给hololens设置了密码,所以HTTP的请求需要加认证头,但是这个认证头怎么拿到却没有说明。不过这难不倒IT老屌丝,用Fiddler抓一个简单的HTTP包,就可以发现某个http request有一个Authorization头,使用Basic验证模式和一串credential。要复习一下http协议的同学可以参考http协议1.1 (RFC2616) 14.8节Authorization的部分 https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html ,具体加密方式和方法请参考HTTP Authentication: Basic and Digest Access Authentication(http://www.ietf.org/rfc/rfc2617.txt)。

Authorization: Basic aG90Y2FuOlVzZXJAMTIz

 

市面上有很多用来测试Rest API的工具,我在Chrome里面直接用了一个叫Insomania的东西,比如说我调用这个http://127.0.0.1:10080/api/networking/ipconfig来获取hololens的网络信息。返回就是一串Json格式的信息:

{
    "Adapters": [
        {
            "Description": "Bluetooth Device (Personal Area Network)",
            "HardwareAddress": "b4-ae-2b-be-ff-97",
            "Index": 4,
            "Name": "{39A74CEF-9AFF-46D4-AF65-5E25DED69711}",
            "Type": "Ethernet",
            "DHCP": {
                "LeaseExpires": 0,
                "LeaseObtained": 0,
                "Address": {
                    "IpAddress": "",
                    "Mask": ""
                }
            },
            "Gateways": [
                {
                    "IpAddress": "0.0.0.0",
                    "Mask": "255.255.255.255"
                }
            ],
            "IpAddresses": [
                {
                    "IpAddress": "0.0.0.0",
                    "Mask": "0.0.0.0"
                }
            ]
        },
        {
            "Description": "Broadcom 802.11ac Wireless PCIE Full Dongle Adapter",
            "HardwareAddress": "b4-ae-2b-be-ff-96",
            "Index": 6,
            "Name": "{5F3FDFA6-C33B-40D2-913F-4E191047A138}",
            "Type": "IEEE 802.11",
            "DHCP": {
                "LeaseExpires": 1466732947,
                "LeaseObtained": 1466722147,
                "Address": {
                    "IpAddress": "192.168.12.1",
                    "Mask": "255.255.255.255"
                }
            },
            "Gateways": [
                {
                    "IpAddress": "192.168.12.1",
                    "Mask": "255.255.255.255"
                }
            ],
            "IpAddresses": [
                {
                    "IpAddress": "192.168.13.148",
                    "Mask": "255.255.252.0"
                }
            ]
        }
    ]
}

在API里面看到一个很有趣的方法,叫做/api/holographic/stream/live.mp4 (GET),可以把hololens上看到的东西streaming到电脑上来。调试方法很简单, 直接打开chrome,输入http://127.0.0.1:10080/api/holographic/stream/live_high.mp4,直接可以在电脑上看到hololens里面看到的东西。

还可以去读一些硬件信息,例如电池信息:

http://127.0.0.1:10080/api/power/battery(GET)

返回结果是电池信息,总共16208mWh,还能运行

{
"AcOnline": 1,
"BatteryPresent": 1,
"Charging": 0,
"DefaultAlert1": 0,
"DefaultAlert2": 1620,
"EstimatedTime": 4294967295,
"MaximumCapacity": 16208,
"RemainingCapacity": 15701
}

有了Rest API,就意味着这个硬件设备是完全可编程的,可以全自动进行管理,这和IoT的概念也是完全一样的,并且可以远程设置和管理。昨天和今天的内容都是hololen的基础理解,开发和传统Windows 开发并没有什么不同,明天我们开始针对Hololens的一些传感器,利用Unity进行编程。这种交互的变化导致了程序设计思路的大幅改变,也能够把计算机应用带到一个全新的阶段。

posted on 2016-06-24 08:23  Hotcan  阅读(5946)  评论(1编辑  收藏  举报