技術棧
- 客戶端:Windows Phone 8.1 / UWP (C# + XAML)。
- 通訊:燈具支援的協定(MQTT、HTTP REST、TCP 原生、CoAP)。
- 發現:SSDP/mDNS 掃描局域網燈具,或掃描固定 IP 段。
核心流程
- 掃描燈具 → 顯示列表(名稱、IP、狀態)。
- 使用者點擊開關 → 發送控制指令(如 MQTT
cmnd/light/power ON)。
- 接收燈具狀態回報 → 更新 UI(綁定
INotifyPropertyChanged)。
程式碼骨架
public class LightViewModel : INotifyPropertyChanged {
public string Name { get; set; }
public bool IsOn { get; set; } // setter 觸發 PropertyChanged
public ICommand ToggleCommand { get; }
public LightViewModel(ILightService svc) {
ToggleCommand = new RelayCommand(async () => {
await svc.SendAsync(IsOn ? "OFF" : "ON");
IsOn = !IsOn;
});
}
}
參考資源
- MQTTnet (NuGet) 實作 MQTT 客戶端。
- Windows IoT Core 範例專案(GitHub)。