public Crazyradio enter() { lock (_radios) { _SharedRadio radio = _radios[_devid]; radio.radio.set_channel(_channel); radio.radio.set_data_rate(_datarate); radio.radio.set_address(_address); return(radio.radio); } }
public void close() { lock (_radios) { _SharedRadio radio = _radios[_devid]; radio.usage_counter--; if (radio.usage_counter == 0) { radio.radio.close(); _radios.Remove(_devid); } } }
public _RadioManager(int devid, int channel = 0, Crazyradio.DATA_RATE datarate = Crazyradio.DATA_RATE.DR_250KPS, long address = 0xE7E7E7E7E7) { _devid = devid; _channel = channel; _datarate = datarate; _address = address; lock (_radios) { _SharedRadio radio; if (_radios.ContainsKey(devid)) { radio = _radios[devid]; } else { radio = new _SharedRadio(devid); _radios.Add(devid, radio); } radio.usage_counter++; } }