public async void StartReceiveAsync() { isRun = true; while(isRun) { if(!isReceive) { System.Diagnostics.Debug.WriteLine("Start Receive"); udpSocket = new Windows.Networking.Sockets.DatagramSocket(); udpSocket.MessageReceived += UdpSocket_MessageReceived; Windows.Networking.HostName hostName = null; IReadOnlyList<Windows.Networking.HostName> networkinfo = Windows.Networking.Connectivity.NetworkInformation.GetHostNames(); foreach (Windows.Networking.HostName h in networkinfo) { if (h.IPInformation != null) { Windows.Networking.Connectivity.IPInformation ipinfo = h.IPInformation; if (h.RawName == IPAddr) { hostName = h; break; } } } if (hostName != null) await udpSocket.BindEndpointAsync(hostName, Port); else await udpSocket.BindServiceNameAsync(Port); outstm = await udpSocket.GetOutputStreamAsync(new Windows.Networking.HostName("255.255.255.255"), "49002"); await outstm.FlushAsync(); Windows.Storage.Streams.DataWriter dw = new Windows.Storage.Streams.DataWriter(outstm); dw.WriteString("Start Receive"); await dw.StoreAsync(); isReceive = true; } else { if(CurrentStat.GPSStatus !=null & CurrentStat.ATTStatus != null) { if (onXPlaneStatReceived != null) onXPlaneStatReceived.Invoke(this, CurrentStat); } System.Diagnostics.Debug.WriteLine("Try To Sleep"); isReceive = false; await udpSocket.CancelIOAsync(); udpSocket.MessageReceived -= UdpSocket_MessageReceived; udpSocket.Dispose(); udpSocket = null; } await Task.Delay(waitSeconds*1000); } }
private async void Save_Click(object sender, RoutedEventArgs e) { save.IsChecked = false; StorageFile file; if (alreadySaved) { file = lastFile; } else { Windows.Storage.Pickers.FileSavePicker savePicker = new Windows.Storage.Pickers.FileSavePicker(); savePicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.DocumentsLibrary; savePicker.FileTypeChoices.Add("GIF with embedded ISF", new List <string>() { ".gif" }); savePicker.DefaultFileExtension = ".gif"; savePicker.SuggestedFileName = "Sketch"; file = await savePicker.PickSaveFileAsync(); } if (file != null) { Windows.Storage.CachedFileManager.DeferUpdates(file); Windows.Storage.Streams.IRandomAccessStream stream = await file.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite); using (Windows.Storage.Streams.IOutputStream outputStream = stream.GetOutputStreamAt(0)) { await canvas.InkPresenter.StrokeContainer.SaveAsync(outputStream); await outputStream.FlushAsync(); } stream.Dispose(); Windows.Storage.Provider.FileUpdateStatus status = await Windows.Storage.CachedFileManager.CompleteUpdatesAsync(file); if (!alreadySaved) { alreadySaved = true; lastFile = file; } } }
private async void MessageReceived(Windows.Networking.Sockets.DatagramSocket sender, Windows.Networking.Sockets.DatagramSocketMessageReceivedEventArgs args) { this.writer = await this.client.GetOutputStreamAsync(args.RemoteAddress, args.RemotePort); }