資料介紹
描述
在 Raspberry Pi 上為Windows 10 IoT Core開發應用程序,您很快就會熟悉安裝在開發機器上的“ Windows IoT Core Watcher ”以及 Raspberry Pi 映像的 ISO:

我在想如果我自己的代碼中有這個功能會很好,所以我使用Wireshark試圖找出幕后的魔法。
事實證明,Raspberry Pi(或者更確切地說是 Windows 10 IoT 核心版)?每五秒(大約)廣播一個 150 字節的大UDP 包,其中包含觀察程序應用程序提供的信息。
這是我的設備發送的字節數組的內容(其中 MAC 地址字節的中間部分用 XX 消隱):

不難看出這些字節是?UTF-16文本字符串,這意味著該包實際上包含 75 個 Unicode 字符。
由于只存在 ASCII 字符(實際上只有英文字母、常規數字和幾個標點符號),因此實際上每隔一個字節都未使用。(只有當你設法給你的設備一個非英文字符的名稱時,它們才會被使用。)
將字節解碼為 UTF-16 字符,您將得到:

?
請注意,上面背景較淺的空單元格包含二進制零,因此完全是空的(即,甚至沒有空格字符——完全空白,正如您可以從字節數組中看出的那樣)。
無論如何,我將其包裝到 C# 中的一個庫中,以便在其他項目中進行簡單集成。
例如,這是一個常規 Windows 控制臺應用程序的方法,它偵聽在網絡上找到的設備:Main
using System;
using Laserbrain.WinIoTCoreListener.Lib;
namespace Laserbrain.WinIoTCoreListener.ConsoleExample
{
internal static class Program
{
private static void Main()
{
using (IWinIotCoreListener winIotCoreListener = WinIotCoreListenerFactory
.Create())
{
winIotCoreListener.OnDeviceInfoUpdated += (s, e) =>
{
Console.WriteLine(e.UpdateStatus + ": " + e.DeviceInfo);
};
Console.WriteLine("Up'n'running.");
Console.WriteLine("Press SPACE to list devices!");
Console.WriteLine("Press ESCAPE to exit!");
while (true)
{
switch (Console.ReadKey(true).Key)
{
case ConsoleKey.Spacebar:
Console.WriteLine("-------------------------");
foreach (DeviceInfo deviceInfo in winIotCoreListener.DeviceInfos)
{
Console.WriteLine("* " + deviceInfo);
}
Console.WriteLine("-------------------------");
break;
case ConsoleKey.Escape:
return;
}
}
}
}
}
}
怎么運行的
IWinIotCoreListener
通過調用Create
static 的方法獲取 an WinIotCoreListenerFactory
。只要您不處置提供給您的偵聽器,它就會繼續觸發該OnDeviceInfoUpdated
事件。每次發現新設備、現有設備更改屬性或設備停止廣播其數據包時都會觸發此事件。UpdateStatus
事件 args的屬性告訴您更改的類型(枚舉表示Found
,Updated
或Lost
)。事件 args 的屬性包含在廣播包中收到的所有屬性:和MAC地址——以字符串格式 ( ) 和字節數組 ( )。DeviceInfo
MachineName
IpAddress
MacAddressString
MacAddressBytes
您還可以隨時從DeviceInfos
偵聽器接口的屬性中獲取當前設備列表。
在偵聽器上調用該Dispose
方法將使其停止接收廣播并釋放其所有資源。
獲取庫
您可以通過下載此NuGet 包來獲取該庫,或者,如果您愿意,您可以從GitHub獲取完整的源代碼。
享受!:-)
- 2023可穿戴設備行業技術與市場分析 22次下載
- 使用指紋控制您的設備
- 在Windows IoT(WinIoT)和GrovePi上運行Hello World
- pcb可讓您從電池消除器更改您的設備
- 直流接地故障檢測原理分析及接地故障種類 查找方法
- 基于預測緩存的OpenFlow虛擬流表查找方法 11次下載
- 自動機終結字查找算法實現優化綜述 3次下載
- EXCEL函數:5大模糊查找技巧資料下載
- 幾種查找電路板中地線的方法資料下載
- FPGA查找表LUT和編程方式的基礎知識說明 16次下載
- 您知道你使用的WiFi設備技術是哪一代嗎 12次下載
- OpenFlow流表查找方法 0次下載
- 基于查找表算法的數字減影血管造影系統
- 基于散列表的單片機快速查找算法
- 快速路由器的路由查找和流分類算法研究
- 直流接地故障的查找程序和方法 662次閱讀
- 中性點接地10 kV線路故障的查找方法 131次閱讀
- 電氣故障查找方法介紹 1983次閱讀
- 泰凌微電子蘋果“查找”網絡配件方案介紹 1185次閱讀
- Python如何快速查找文件 1455次閱讀
- 在Android系統開發過程中如何快速查找定位代碼呢 2098次閱讀
- 使用Pytrack跟蹤您的汽車 1231次閱讀
- 如何查找出電線短路故障 1.9w次閱讀
- 空氣開關跳閘的原因有哪些應該如何查找 6561次閱讀
- 故障模型---缺陷查找攻擊的二十一招大法 2221次閱讀
- 虛擬機:Linux查找網卡所用的驅動 3564次閱讀
- PLC外圍線路和控制線路的故障查找及解決 8240次閱讀
- nova 3e深度體驗,開啟您的智慧生活 6078次閱讀
- 圖像處理算法之二分查找 4892次閱讀
- AVL 樹和普通的二叉查找樹的詳細區別分析 5924次閱讀
下載排行
本周
- 1DD3118電路圖紙資料
- 0.08 MB | 1次下載 | 免費
- 2AD庫封裝庫安裝教程
- 0.49 MB | 1次下載 | 免費
- 3PC6206 300mA低功耗低壓差線性穩壓器中文資料
- 1.12 MB | 1次下載 | 免費
- 4網絡安全從業者入門指南
- 2.91 MB | 1次下載 | 免費
- 5DS-CS3A P00-CN-V3
- 618.05 KB | 1次下載 | 免費
- 6海川SM5701規格書
- 1.48 MB | 次下載 | 免費
- 7H20PR5電磁爐IGBT功率管規格書
- 1.68 MB | 次下載 | 1 積分
- 8IP防護等級說明
- 0.08 MB | 次下載 | 免費
本月
- 1貼片三極管上的印字與真實名稱的對照表詳細說明
- 0.50 MB | 103次下載 | 1 積分
- 2涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 89次下載 | 1 積分
- 3錦銳科技CA51F2 SDK開發包
- 24.06 MB | 43次下載 | 1 積分
- 4錦銳CA51F005 SDK開發包
- 19.47 MB | 19次下載 | 1 積分
- 5PCB的EMC設計指南
- 2.47 MB | 16次下載 | 1 積分
- 6HC05藍牙原理圖加PCB
- 15.76 MB | 13次下載 | 1 積分
- 7802.11_Wireless_Networks
- 4.17 MB | 12次下載 | 免費
- 8蘋果iphone 11電路原理圖
- 4.98 MB | 6次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191390次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65989次下載 | 10 積分
評論