// Show list of bikes found void Keiser_DataEvent(object sender, KeiserM3EventArgs e) { KeiserM3 b = _bikes.GetData(e.Address); string line = string.Format("Type: Keiser {0} Firmware={1} DataType={2} Gear={3} Heartrate={4} KCal={5} Power={6} RPM={7} Time={8} Trip={9} Address={10}", b.Name, b.Build, b.DataType, b.Gear, b.HeartRate, b.KCal, b.Power, b.RPM, b.Time, b.Trip, b.Address); BleDevices.Items.Add(line); // Live update for a particular bike b.PropertyChanged += Keiser_PropertyChangedEvent; }
// Update bike data private void Keiser_PropertyChangedEvent(object sender, System.ComponentModel.PropertyChangedEventArgs e) { uint address = uint.Parse(e.PropertyName); // Build a line of data KeiserM3 b = _bikes.GetData(address); string line = string.Format("Type: Keiser {0} Firmware={1} DataType={2} Gear={3} Heartrate={4} KCal={5} Power={6} RPM={7} Time={8} Trip={9} Address={10}", b.Name, b.Build, b.DataType, b.Gear, b.HeartRate, b.KCal, b.Power, b.RPM, b.Time, b.Trip, b.Address); string strAddress = address.ToString(); int j = 0; // Find which one to update foreach (string s in BleDevices.Items) { if (s.Contains(strAddress)) { BleDevices.Items[j] = line; break; } j++; } }