void InsertEntityNotificationHandler(InsertSimulationEntity ins)
        {
            _entity = (SonarEntity)ins.Body;
            _entity.ServiceContract = Contract.Identifier;

            // CreateDefaultState();

            RaycastProperties raycastProperties = new RaycastProperties();

            raycastProperties.StartAngle     = (float)-_state.AngularRange / 2.0f;
            raycastProperties.EndAngle       = (float)_state.AngularRange / 2.0f;
            raycastProperties.AngleIncrement = (float)_state.AngularResolution;
            // raycastProperties.Range = LASER_RANGE;
            raycastProperties.Range = SONAR_RANGE;
            // Raul - This should be the pose of the sonar transducer.
            // Raul - I consider 8 Sonar transducers rays in the P3DX frontal ring
            // Raul - coming from a common central point.
            raycastProperties.OriginPose = new Pose();

            _entity.RaycastProperties = raycastProperties;
            _entity.Register(_raycastResults);

            // attach handler to raycast results port
            Activate(Arbiter.Receive(true, _raycastResults, RaycastResultsHandler));
        }
 void InsertEntityNotificationHandlerFirstTime(InsertSimulationEntity ins)
 {
     InsertEntityNotificationHandler(ins);
     base.Start();
     MainPortInterleave.CombineWith(
         new Interleave(
             new TeardownReceiverGroup(),
             new ExclusiveReceiverGroup(
                 Arbiter.Receive <InsertSimulationEntity>(true, _notificationTarget, InsertEntityNotificationHandler),
                 Arbiter.Receive <DeleteSimulationEntity>(true, _notificationTarget, DeleteEntityNotificationHandler)
                 ),
             new ConcurrentReceiverGroup()
             )
         );
 }
 void InsertEntityNotificationHandlerFirstTime(InsertSimulationEntity ins)
 {
     InsertEntityNotificationHandler(ins);
     Activate(Arbiter.Interleave(
                  new TeardownReceiverGroup
                  (
                  ),
                  new ExclusiveReceiverGroup(
                      Arbiter.Receive <FromWinformMsg>(true, _fromWinformPort, OnWinformMessageHandler),
                      Arbiter.Receive <InsertSimulationEntity>(true, _notificationTarget, InsertEntityNotificationHandler),
                      Arbiter.Receive <DeleteSimulationEntity>(true, _notificationTarget, DeleteEntityNotificationHandler)
                      ),
                  new ConcurrentReceiverGroup()
                  ));
 }
        void InsertEntityNotificationHandler(InsertSimulationEntity ins)
        {
            _entity = (SonarEntity)ins.Body;
            _entity.ServiceContract = Contract.Identifier;

            // CreateDefaultState();

            RaycastProperties raycastProperties = new RaycastProperties();            
            raycastProperties.StartAngle = (float) -_state.AngularRange / 2.0f;
            raycastProperties.EndAngle = (float) _state.AngularRange / 2.0f;
            raycastProperties.AngleIncrement = (float)_state.AngularResolution;
            // raycastProperties.Range = LASER_RANGE;
            raycastProperties.Range = SONAR_RANGE;
            // Raul - This should be the pose of the sonar transducer.
            // Raul - I consider 8 Sonar transducers rays in the P3DX frontal ring
            // Raul - coming from a common central point.
            raycastProperties.OriginPose = new Pose();

            _entity.RaycastProperties = raycastProperties;
            _entity.Register(_raycastResults);

            // attach handler to raycast results port
            Activate(Arbiter.Receive(true, _raycastResults, RaycastResultsHandler));
        }
 void InsertEntityNotificationHandlerFirstTime(InsertSimulationEntity ins)
 {
     InsertEntityNotificationHandler(ins);
     base.Start();
     MainPortInterleave.CombineWith(
         new Interleave(
             new TeardownReceiverGroup(),
             new ExclusiveReceiverGroup(
                 Arbiter.Receive<InsertSimulationEntity>(true, _notificationTarget, InsertEntityNotificationHandler),
                 Arbiter.Receive<DeleteSimulationEntity>(true, _notificationTarget, DeleteEntityNotificationHandler)
             ),
             new ConcurrentReceiverGroup()
         )
     );
 }
예제 #6
0
 void InsertEntityNotificationHandler(InsertSimulationEntity ins)
 {
     _observer = (CameraEntity)ins.Body;
     _observer.Subscribe(_bitmapPort);
 }
예제 #7
0
        void InsertEntityNotificationHandlerFirstTime(InsertSimulationEntity ins)
        {
            _bitmapPort = new Port<Bitmap>();

            InsertEntityNotificationHandler(ins);
            Activate(Arbiter.Interleave(
                    new TeardownReceiverGroup
                    (
                    ),
                    new ExclusiveReceiverGroup(
                        Arbiter.ReceiveFromPortSet<OnSimulLoaded>(true, _eventsPort, OnSimulLoadedHandler),
                        Arbiter.ReceiveFromPortSet<OnSimulDrag>(true, _eventsPort, OnSimulDragHandler),
                        Arbiter.ReceiveFromPortSet<OnSimulZoom>(true, _eventsPort, OnSimulZoomHandler),
                        Arbiter.Receive<InsertSimulationEntity>(true, _notificationTarget, InsertEntityNotificationHandler),
                        Arbiter.Receive<DeleteSimulationEntity>(true, _notificationTarget, DeleteEntityNotificationHandler),
                        Arbiter.Receive<Bitmap>(true, _bitmapPort, UpdateCameraImage)
                    ),
                    new ConcurrentReceiverGroup()
                ));
        }
 void InsertEntityNotificationHandler(InsertSimulationEntity ins)
 {
     _observer = (CameraEntity)ins.Body;
     // kick of polling
     Activate(new Task(() => UpdateCameraImage(DateTime.UtcNow)));
 }
예제 #9
0
	    private void InsertEntityNotificationHandler(InsertSimulationEntity ins)
	    {
            _robotArm = (SimulatedRobotArmEntity)ins.Body;
            _robotArm.ServiceContract = Contract.Identifier;

	    }
예제 #10
0
	    private void InsertEntityNotificationHandlerFirstTime(InsertSimulationEntity ins)
	    {
            InsertEntityNotificationHandler(ins);

            // Create the user interface form
            WinFormsServicePort.Post(new RunForm(CreateForm));

            // Listen on the main port for requests and call the appropriate handler.
            MainPortInterleave.CombineWith(
                new Interleave(
                    new TeardownReceiverGroup(),
                    new ExclusiveReceiverGroup(
                        Arbiter.Receive<InsertSimulationEntity>(true, _notificationTarget, InsertEntityNotificationHandler),
                        Arbiter.Receive<DeleteSimulationEntity>(true, _notificationTarget, DeleteEntityNotificationHandler),
                        Arbiter.ReceiveWithIterator<armproxy.SetEndEffectorPose>(true, _armPort, SetEndEffectorHandler)
                        /*Arbiter.ReceiveWithIterator<armproxy.SetJointTargetPose>(true, _armPort, SetJointPoseHandler),
                        Arbiter.ReceiveWithIterator<armproxy.SetJointTargetVelocity>(true, _armPort, SetJointVelocityHandler)*/
                    ),
                    new ConcurrentReceiverGroup(
                        /*Arbiter.ReceiveWithIterator<armproxy.Subscribe>(true, _armPort, SubscribeHandler),
                        Arbiter.ReceiveWithIterator<armproxy.GetEndEffectorPose>(true, _armPort, GetEndEffectorHandler),
                        Arbiter.Receive<DsspDefaultLookup>(true, _armPort, DefaultLookupHandler),
                        Arbiter.ReceiveWithIterator<armproxy.Get>(true, _armPort, ArmGetHandler)*/
                    )
                )
            );
	    }