private static void OnRadioDataReceived(object sender, RadioDataReceivedEventArgs e) { #if DEBUG var data = "RECEIVED: "; foreach (var d in e.Data) { data += (data.Length > 11 ? "|" : "") + d; } Debug.Print(data); #endif }
//string[] data) private void OnRadioDataReceived(object sender, RadioDataReceivedEventArgs e) { #if DEBUG1 var d1 = "RECEIVED: "; foreach (var d in data) { d1 += (d.Length > 11 ? "|" : "") + d; } Debug.Print(d1); Thread.Sleep(400); #endif var data = e.Data; switch (data[0]) { case "M": var propId = byte.Parse(data[1]); if (_propellors[propId] != null) { var powerLevel = int.Parse(data[2]); _propellors[propId].SetPower(powerLevel); Thread.Sleep(2000); _propellors[propId].SetPower(0); } break; case "D": if (data.Length != 4) break; var direction = (float)double.Parse(data[1]); var magnitude = (float)double.Parse(data[2]); if ( _flightVector == null || (MathEx.Abs((_flightVector.Direction.Radians - direction)) > 1E-10 && MathEx.Abs(_flightVector.Magnitude - magnitude) > 1E-10)) { _flightVector = new EuclideanVector(new Angle(direction), magnitude); } break; } return; }