예제 #1
0
 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);
     }
 }
예제 #2
0
 public void close()
 {
     lock (_radios)
     {
         _SharedRadio radio = _radios[_devid];
         radio.usage_counter--;
         if (radio.usage_counter == 0)
         {
             radio.radio.close();
             _radios.Remove(_devid);
         }
     }
 }
예제 #3
0
        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++;
            }
        }