private void UdpReceiver_UpdatedExtra(object sender, EventArgs e) { BaseUdpReceiver udpReceiver = (BaseUdpReceiver)sender; Device.BeginInvokeOnMainThread(() => { this.BatchBegin(); wearFL.Color = udpReceiver.InfoExtra.wearFL; wearFR.Color = udpReceiver.InfoExtra.wearFR; wearRL.Color = udpReceiver.InfoExtra.wearRL; wearRR.Color = udpReceiver.InfoExtra.wearRR; Distance.Text = ((Single)udpReceiver.InfoExtra.DistanceTraveled).ToString("0.0"); Position.Text = udpReceiver.InfoExtra.Position.ToString() + " / " + udpReceiver.InfoExtra.NumCars.ToString(); Lap.Text = (udpReceiver.InfoExtra.CompletedLaps + 1).ToString() + " / " + udpReceiver.InfoExtra.NumberOfLaps.ToString(); if (udpReceiver.InfoExtra.FuelAvg == 0) { Fuel.Text = udpReceiver.InfoExtra.Fuel.ToString() + "l / -"; FuelKKm.Text = "-"; } else { Fuel.Text = udpReceiver.InfoExtra.Fuel.ToString() + "l / " + ((Single)udpReceiver.InfoExtra.Fuel / udpReceiver.InfoExtra.FuelAvg * 10000).ToString("0") + "Km"; FuelKKm.Text = ((Single)udpReceiver.InfoExtra.FuelAvg).ToString(udpReceiver.InfoExtra.FuelAvg < 10 ? "0.0" : "0") + "l /100Km"; } this.BatchCommit(); }); }
private static void OnUdpDataReceived(IAsyncResult result) { BaseUdpReceiver thi = (BaseUdpReceiver)result.AsyncState; IPEndPoint remoteAddr = null; byte[] recvBuffer = null; try { recvBuffer = thi.udpClient.EndReceive(result, ref remoteAddr); } catch (Exception ex) { Debug.Print(ex.Message); return; } if (recvBuffer != null) { thi.setData(recvBuffer); } if (thi.udpClient != null) { thi.udpClient.BeginReceive(OnUdpDataReceived, thi); } }
private void UdpReceiver_Updated(object sender, EventArgs e) { BaseUdpReceiver udpReceiver = (BaseUdpReceiver)sender; Device.BeginInvokeOnMainThread(() => { this.BatchBegin(); speed.Text = udpReceiver.Info.speed.ToString(); gear.Text = udpReceiver.Info.gear; slipFL.Color = udpReceiver.Info.slipFL; slipFR.Color = udpReceiver.Info.slipFR; slipRL.Color = udpReceiver.Info.slipRL; slipRR.Color = udpReceiver.Info.slipRR; dirtFL.Color = udpReceiver.Info.dirtFL; dirtFR.Color = udpReceiver.Info.dirtFR; dirtRL.Color = udpReceiver.Info.dirtRL; dirtRR.Color = udpReceiver.Info.dirtRR; rpm.WidthRequest = udpReceiver.Rpm1024(); rpm.Color = udpReceiver.RpmColor(); gearAuto.Text = udpReceiver.Info.gearAuto ? "Gear Auto" : "Gear Manual"; clutch.HeightRequest = udpReceiver.Info.clutch * 325; brake.HeightRequest = udpReceiver.Info.brake * 325; accel.HeightRequest = udpReceiver.Info.accel * 325; Distance.Text = ((Single)udpReceiver.InfoExtra.DistanceTraveled).ToString("0.0"); Lap.Text = (udpReceiver.InfoExtra.CompletedLaps + 1).ToString() + " / " + udpReceiver.InfoExtra.NumberOfLaps.ToString(); if (udpReceiver.InfoExtra.FuelAvg == 0) { FuelKMs.Text = "-"; FuelAvg.Text = "-"; } else { FuelKMs.Text = ((Single)udpReceiver.InfoExtra.Fuel / udpReceiver.InfoExtra.FuelAvg * 10).ToString("0"); FuelAvg.Text = (udpReceiver.InfoExtra.FuelAvg).ToString(udpReceiver.InfoExtra.FuelAvg < 10 ? "0.0" : "0"); } this.BatchCommit(); }); }
public App() { InitializeComponent(); udpReceiver = new BaseUdpReceiver(); }
public void Start(BaseUdpReceiver udpReceiver) { udpReceiver.UpdatedExtra += new EventHandler(UdpReceiver_UpdatedExtra); }