/// <summary> /// Subscribe to notifications when bumpers are pressed /// </summary> void SubscribeToBumpers() { // Create bumper notification port bumper.ContactSensorArrayOperations bumperNotificationPort = new bumper.ContactSensorArrayOperations(); // Subscribe to the bumper service, send notifications to bumperNotificationPort _bumperPort.Subscribe(bumperNotificationPort); // Start listening for Bumper Replace notifications Activate( Arbiter.Receive <bumper.Update> (true, bumperNotificationPort, BumperHandler)); }
/// <summary> /// Subscribe to the Bumpers service /// </summary> void SubscribeToBumpers() { // Create the bumper notification port. #region CODECLIP 04-1 bumper.ContactSensorArrayOperations bumperNotificationPort = new bumper.ContactSensorArrayOperations(); #endregion // Subscribe to the bumper service, receive notifications on the bumperNotificationPort. #region CODECLIP 04-2 _bumperPort.Subscribe(bumperNotificationPort); #endregion // Start listening for updates from the bumper service. #region CODECLIP 04-3 Activate( Arbiter.Receive <bumper.Update> (true, bumperNotificationPort, BumperHandler)); #endregion }
protected virtual void Initialize() { // Initialize the port sensorPort = DssEnvironment.ServiceForwarder <contact.ContactSensorArrayOperations>(new Uri(serviceUri)); }
/// <summary> /// Handles Bumper service connection request /// </summary> /// <param name="onConnectBumpers">Bumper connection request</param> /// <returns></returns> IEnumerator<ITask> OnConnectBumpersHandler(OnConnectBumpers onConnectBumpers) { if (onConnectBumpers.DriveControl != _driveControl) yield break; _bumpersPort = ServiceForwarder<pxbumper.ContactSensorArrayOperations>(onConnectBumpers.Service); _bumpersShutdown = new Port<Shutdown>(); pxbumper.ReliableSubscribe subscribe = new pxbumper.ReliableSubscribe( new ReliableSubscribeRequestType(5) ); subscribe.NotificationPort = _bumpersNotify; subscribe.NotificationShutdownPort = _bumpersShutdown; _bumpersPort.Post(subscribe); yield return Arbiter.Choice( subscribe.ResponsePort, delegate(SubscribeResponseType response) { LogInfo("Subscribed to " + onConnectBumpers.Service); }, delegate(Fault fault) { _bumpersShutdown = null; LogError(fault); } ); }