public void RemoveSensor(ITtlSensor sensor) { if (sessionThreadControl.InvokeRequired) { sessionThreadControl.Invoke(new Action<ITtlSensor>(RemoveSensor), sensor); return; } int channelHandle = GetChannelHandle(sensor); session.DropChannel(channelHandle); return; }
int GetChannelHandle(ITtlSensor sensor) { KeyValuePair<int, TtlSensor> pair = channelHandleToSensor.First((x) => x.Value == sensor); int channelHandle = pair.Key; return channelHandle; }
public void RemoveSensor(ITtlSensor sensor) { if (sessionThreadControl.InvokeRequired) { sessionThreadControl.Invoke(new Action<ITtlSensor>(RemoveSensor), sensor); return; } // Get channel handle int channelHandle = channelToChannelHandle[sensor.Channel]; // Get sensor list for the channel List<TtlSensor> sensors = channelHandleToSensor[channelHandle]; // Remove sensor bool ret = sensors.Remove((TtlSensor)sensor); Debug.Assert(ret); sensorsCreated--; // Remove channel if no sensors left if (sensorsCreated == 0) { // Drop all channels (we can't drop the channels individually because the TTLLive SDK is broken) session.DropChannels(); channelToChannelHandle.Clear(); channelHandleToSensor.Clear(); } return; }