Esempio n. 1
0
        IEnumerator <ITask> OnConnectSickLRFHandler(OnConnectSickLRF onConnectSickLRF)
        {
            if (onConnectSickLRF.DriveControl != _driveControl)
            {
                yield break;
            }
            _laserPort     = ServiceForwarder <sicklrf.SickLRFOperations>(onConnectSickLRF.Service);
            _laserShutdown = new Port <Shutdown>();

            sicklrf.ReliableSubscribe subscribe = new sicklrf.ReliableSubscribe(
                new ReliableSubscribeRequestType(5)
                );
            subscribe.NotificationPort         = _laserNotify;
            subscribe.NotificationShutdownPort = _laserShutdown;

            _laserPort.Post(subscribe);

            yield return(Arbiter.Choice(
                             subscribe.ResponsePort,
                             delegate(SubscribeResponseType response)
            {
                LogInfo("Subscribed to " + onConnectSickLRF.Service);
            },
                             delegate(Fault fault)
            {
                _laserShutdown = null;
                LogError(fault);
            }
                             ));
        }
 public IEnumerator <ITask> ReliableSubscribeHandler(sicklrf.ReliableSubscribe subscribe)
 {
     yield return(Arbiter.Choice(
                      SubscribeHelper(_subMgrPort, subscribe.Body, subscribe.ResponsePort),
                      delegate(SuccessResult success)
     {
         _subMgrPort.Post(new submgr.Submit(
                              subscribe.Body.Subscriber, dssp.DsspActions.ReplaceRequest, _state, null));
     },
                      delegate(Exception ex) { LogError(ex); }
                      ));
 }
        // ====================================================================================
        // as generated:
        //[ServiceHandler]
        //public void ReliableSubscribeHandler(sicklrf.ReliableSubscribe reliablesubscribe)
        //{
        //    throw new NotImplementedException();
        //}

        /// <summary>
        /// Handles ReliableSubscribe requests
        /// </summary>
        /// <param name="reliablesubscribe">request message</param>
        IEnumerator <ITask> ReliableSubscribeHandler(sicklrf.ReliableSubscribe reliablesubscribe)
        {
            Tracer.Trace("TrackRoamerUsrfService::ReliableSubscribeHandler()");

            yield return(Arbiter.Choice(
                             SubscribeHelper(_submgrPort, reliablesubscribe.Body, reliablesubscribe.ResponsePort),
                             delegate(SuccessResult success)
            {
                if (_state != null &&
                    _state.DistanceMeasurements != null)
                {
                    _submgrPort.Post(new submgr.Submit(
                                         reliablesubscribe.Body.Subscriber, DsspActions.ReplaceRequest, _state, null));
                }
            },
                             null
                             ));
        }
Esempio n. 4
0
        IEnumerator<ITask> OnConnectSickLRFHandler(OnConnectSickLRF onConnectSickLRF)
        {
            if (onConnectSickLRF.DriveControl != _driveControl)
                yield break;
            _laserPort = ServiceForwarder<sicklrf.SickLRFOperations>(onConnectSickLRF.Service);
            _laserShutdown = new Port<Shutdown>();

            sicklrf.ReliableSubscribe subscribe = new sicklrf.ReliableSubscribe(
                new ReliableSubscribeRequestType(5)
            );
            subscribe.NotificationPort = _laserNotify;
            subscribe.NotificationShutdownPort = _laserShutdown;

            _laserPort.Post(subscribe);

            yield return Arbiter.Choice(
                subscribe.ResponsePort,
                delegate(SubscribeResponseType response)
                {
                    LogInfo("Subscribed to " + onConnectSickLRF.Service);
                },
                delegate(Fault fault)
                {
                    _laserShutdown = null;
                    LogError(fault);
                }
            );
        }