// called from TrackRoamerBrickProximityBoardService: public ProximityBoardCcrServiceCommander(DispatcherQueue dispatcherQueue, PBCommandPort uplinkPort, Int32 vendorId, Int32 productId) : base(dispatcherQueue) { Tracer.Trace(string.Format("ProximityBoardCcrServiceCommander::ProximityBoardCcrServiceCommander() vendorId = 0x{0:X} productId = 0x{0:X}", vendorId, productId)); _pbCommanderDataEventsPort = uplinkPort; _pmManager = new ProximityBoardManager(dispatcherQueue, vendorId, productId); _pmManager.PicPxMod.DeviceAttachedEvent += new EventHandler <ProximityModuleEventArgs>(picpxmod_DeviceAttachedEvent); _pmManager.PicPxMod.DeviceDetachedEvent += new EventHandler <ProximityModuleEventArgs>(picpxmod_DeviceDetachedEvent); _pmManager.Start(); Activate <ITask>( Arbiter.Receive <SonarData>(true, _pmManager.MeasurementsPort, SonarDataHandler), Arbiter.Receive <DirectionData>(true, _pmManager.MeasurementsPort, DirectionDataHandler), Arbiter.Receive <AccelerometerData>(true, _pmManager.MeasurementsPort, AccelerometerDataHandler), Arbiter.Receive <ProximityData>(true, _pmManager.MeasurementsPort, ProximityDataHandler), Arbiter.Receive <ParkingSensorData>(true, _pmManager.MeasurementsPort, ParkingSensorDataHandler), Arbiter.Receive <AnalogData>(true, _pmManager.MeasurementsPort, AnalogDataHandler), Arbiter.Receive <Exception>(true, _pmManager.MeasurementsPort, ExceptionHandler) ); }