public void UpdateTestValues(DynoTestValues values) { if (InvokeRequired) { var d = new UpdateTestValuesDelegate(UpdateTestValues); Invoke(d, new object[] { values }); } else { _currentValues = values; if (_currentValues != null) { circularProgressBarSpeed.SubscriptText = ((int)_currentValues.Speed).ToString(); circularProgressBarTorque.SubscriptText = ((int)_currentValues.Torque).ToString(); circularProgressBarPower.SubscriptText = ((int)_currentValues.Power).ToString(); circularProgressBarSpeed.Value = (int)Math.Min(Math.Max(circularProgressBarSpeed.Minimum, _currentValues.Speed), circularProgressBarSpeed.Maximum); circularProgressBarTorque.Value = (int)Math.Min(Math.Max(circularProgressBarTorque.Minimum, _currentValues.Torque), circularProgressBarTorque.Maximum); circularProgressBarPower.Value = (int)Math.Min(Math.Max(circularProgressBarPower.Minimum, _currentValues.Power), circularProgressBarPower.Maximum); this.Refresh(); } else { circularProgressBarSpeed.SubscriptText = "N/A"; circularProgressBarTorque.SubscriptText = "N/A"; circularProgressBarPower.SubscriptText = "N/A"; circularProgressBarSpeed.Value = circularProgressBarSpeed.Minimum; circularProgressBarTorque.Value = circularProgressBarTorque.Minimum; circularProgressBarPower.Value = circularProgressBarPower.Minimum; } } }
public DynoTestValues GetDynoTestNumbers() { char[] s = new char[4]; s[0] = (char)0xB4; s[1] = (char)0x11; s[2] = 'C'; s[3] = (char)0x05; _uartService.Send(s); string power = ""; string torque = ""; string speed = ""; for (int i = 0; i < 51; i++) { int t = Read(); if (t == -1) { goto badTestValues; } char c = (char)t; if (i == 0 && c != 0x02) { goto badTestValues; } if (i == 1 && c != '2') { goto badTestValues; } if (i == 2 && c != '1') { goto badTestValues; } if (i == 3 && c != '1') { goto badTestValues; } if (i == 4 && c != '=') { goto badTestValues; } if (i > 4 && i < 11) { power += c; } if (i == 11 && c != ' ') { goto badTestValues; } if (i == 12 && c != 'H') { goto badTestValues; } if (i == 13 && c != 'p') { goto badTestValues; } if (i == 14 && c != '\r') { goto badTestValues; } if (i == 15 && c != '2') { goto badTestValues; } if (i == 16 && c != '3') { goto badTestValues; } if (i == 17 && c != '1') { goto badTestValues; } if (i == 18 && c != '=') { goto badTestValues; } if (i > 18 && i < 26) { torque += c; } if (i == 26 && c != ' ') { goto badTestValues; } if (i == 27 && c != 'l') { goto badTestValues; } if (i == 28 && c != 'b') { goto badTestValues; } if (i == 29 && c != 'f') { goto badTestValues; } if (i == 30 && c != '\r') { goto badTestValues; } if (i == 31 && c != '2') { goto badTestValues; } if (i == 32 && c != '0') { goto badTestValues; } if (i == 33 && c != '9') { goto badTestValues; } if (i == 34 && c != '=') { goto badTestValues; } if (i > 34 && i < 42) { speed += c; } if (i == 42 && c != ' ') { goto badTestValues; } if (i == 43 && c != 'm') { goto badTestValues; } if (i == 44 && c != 'p') { goto badTestValues; } if (i == 45 && c != 'h') { goto badTestValues; } if (i == 46 && c != '\r') { goto badTestValues; } if (i == 47 && c != 0x17) { goto badTestValues; } if (i == 48 || i == 49) { //todo do check checksum } if (i == 50 && c != '$') { goto badTestValues; } } DynoTestValues testValues = new DynoTestValues(); testValues.Power = float.Parse(power); testValues.Torque = float.Parse(torque); testValues.Speed = float.Parse(speed); return(testValues); badTestValues: while (Read() != -1) { ; } return(null); }