Ejemplo n.º 1
0
        /// <summary>
        /// Backgroundworker replacement
        /// </summary>
        /// <returns></returns>
        public void DoReceptionCondWorkAsync(ReceptorAddress ra)
        {
            //New token
            _condTestCancellationToken = new CancellationTokenSource();

            if (_deviceManager.IsTransceiverConnected)
            {
                _deviceManager.Transceiver.FrameAckKoEvent   += Transceiver_FrameAckKoEvent;
                _deviceManager.Transceiver.FrameAckOkEvent   += Transceiver_FrameAckOkEvent;
                _deviceManager.Transceiver.FrameTimeOutEvent += Transceiver_FrameTimeOutEvent;
            }
            else
            {
                _condTestCancellationToken.Cancel();
            }

            Task.Run(() =>
            {
                if (_deviceManager.IsTransceiverConnected)
                {
                    Task conductivityTask = _deviceManager.Transceiver.SendConductivityFrame(_address, ra.Channel.ToString(), DEFAULT_COND_FRAME_TOTAL_TIMEOUT);
                    conductivityTask.Wait();
                }
            }).ContinueWith(t =>
            {
                _isPingCondRunning = false;

                if (_deviceManager.IsTransceiverConnected)
                {
                    _deviceManager.Transceiver.FrameAckKoEvent   -= Transceiver_FrameAckKoEvent;
                    _deviceManager.Transceiver.FrameAckOkEvent   -= Transceiver_FrameAckOkEvent;
                    _deviceManager.Transceiver.FrameTimeOutEvent -= Transceiver_FrameTimeOutEvent;
                }
            }).ConfigureAwait(false);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Get resiste of receptor address
        /// </summary>
        /// <param name="ra"></param>
        public void TestConductivite(ReceptorAddress ra)
        {
            _receptorAddressTested = ra;

            _isPingCondRunning = true;

            DoReceptionCondWorkAsync(ra);
        }
Ejemplo n.º 3
0
        public ReceptorAddress GetAddress(int channel)
        {
            ReceptorAddress receptorAddress = (from ra in _receptorAddresses
                                               where ra.Channel == channel
                                               select ra).FirstOrDefault();

            if (receptorAddress == null)
            {
                throw new CannotFindReceptorAddressException(string.Format("Cannot find address {0} on receptor with mac address {1}", channel.ToString(), _address));
            }

            return(receptorAddress);
        }