/// <summary> /// Constructor method for DemographicsController /// </summary> /// <param name="demographicsService,appSettings,httpContextAccessor"></param> public DemographicsController(IDemographicsService demographicsService, IOptions <AppSettings> appSettings, IHttpContextAccessor httpContextAccessor) { _demographicsService = demographicsService; _appSettings = appSettings; _httpContextAccessor = httpContextAccessor; }
public UpdateFacetsFromTracker([NotNull] IIdentificationService identificationService, [NotNull] IDemographicsService demographicsService, [NotNull] ISportsService sportsService, [NotNull] IStringValueListFacetService stringValueListFacetService) { this.identificationService = identificationService; this.demographicsService = demographicsService; this.sportsService = sportsService; this.stringValueListFacetService = stringValueListFacetService; }
private async void Init() { _demographicsService = new BiometricTelemetryService(ConfigurationManager.AppSettings["Azure.Hub.Biometric"]); _demographicsService.DemographicsReceived += _demographicsService_DemographicsReceived; _demographicsService.DemographicsProcessingFailure += _demographicsService_DemographicsProcessingFailure; _sensorService = new KinectSensorService(_demographicsService); _sensorService.Open(); }
public KioskInteractionService(ISensorService <KinectSensor> sensorService, IDemographicsService demographicsService, IItemInteractionService itemInteractionService, IBodyTrackingService bodyTrackingService, IConfigurationProvider configurationProvider) { _currentZone = "NoTrack"; _demographicService = demographicsService; _InteractionEventHub = new EventHubMessageSender(ConfigurationManager.AppSettings["Azure.Hub.Kiosk"]); _sensorService = sensorService; SendKioskReportConfigurationToAzure(); _itemInteractionService = itemInteractionService; _itemInteractionService.ItemInteraction += _itemInteractionService_ItemInteraction; _coordinateMapper = _sensorService.Sensor.CoordinateMapper; _configurationProvider = configurationProvider; _configurationProvider.ConfigurationSettingsChanged += _configurationProvider_ConfigurationSettingsChanged; GetConfig(); _sensorService.StatusChanged += _sensorService_StatusChanged; _bodyFrameReader = _sensorService.Sensor.BodyFrameSource.OpenReader(); if (_bodyFrameReader != null) { _bodyFrameReader.FrameArrived += _bodyFrameReader_FrameArrived; } _sensorService.Open(); // Telemetry processing routine done on a seperate background thread via queues _interactionProcessingQueue = new BlockingCollection <KioskStateEventArgs>(); { IObservable <KioskStateEventArgs> ob = _interactionProcessingQueue. GetConsumingEnumerable(). ToObservable(TaskPoolScheduler.Default); ob.Subscribe(p => { // This handler will get called whenever // anything appears on myQueue in the future. this.SendIteraction(p); }); } _bodyTrackingService = bodyTrackingService; CurrentState = KioskStates.NoTrack; }
public KioskInteractionService(ISensorService<KinectSensor> sensorService, IDemographicsService demographicsService, IItemInteractionService itemInteractionService, IBodyTrackingService bodyTrackingService, IConfigurationProvider configurationProvider) { _currentZone = "NoTrack"; _demographicService = demographicsService; _eventHub = new EventHubMessageSender(ConfigurationManager.AppSettings["Azure.Hub.Kiosk"]); _sensorService = sensorService; // _telemetryService = telemetryService; _itemInteractionService = itemInteractionService; _itemInteractionService.ItemInteraction += _itemInteractionService_ItemInteraction; _coordinateMapper = _sensorService.Sensor.CoordinateMapper; _configurationProvider = configurationProvider; _configurationProvider.ConfigurationSettingsChanged += _configurationProvider_ConfigurationSettingsChanged; GetConfig(); _sensorService.StatusChanged += _sensorService_StatusChanged; _bodyFrameReader = _sensorService.Sensor.BodyFrameSource.OpenReader(); if (_bodyFrameReader != null) _bodyFrameReader.FrameArrived += _bodyFrameReader_FrameArrived; _sensorService.Open(); _interactionProcessingQueue = new BlockingCollection<KioskStateEventArgs>(); { IObservable<KioskStateEventArgs> ob = _interactionProcessingQueue. GetConsumingEnumerable(). ToObservable(TaskPoolScheduler.Default); ob.Subscribe(p => { //var temp = Thread.CurrentThread.ManagedThreadId; // This handler will get called whenever // anything appears on myQueue in the future. this.SendIteraction(p); //Debug.Write("Consuming: {0}\n", p); }); } _bodyTrackingService = bodyTrackingService; CurrentState = KioskStates.NoTrack; }
public MediaContentViewModel(IKioskInteractionService interactionService, IDemographicsService demographicSrv, IContentManagement<ZoneFileMetaData> contentManagement, IItemInteractionService itemInteractionService) { ItemState = ManipulationStates.NoTrack; _interactionService = interactionService; _interactionService.KioskStateChanged += _interactionService_KioskStateChanged; _demographicsService = demographicSrv; _demographicsService.DemographicsReceived += _demographicsService_DemographicsReceived; _demographicsService.DemographicsProcessingFailure += _demographicsService_DemographicsProcessingFailure; _contentManagement = contentManagement; _itemInteractionService = itemInteractionService; _itemInteractionService.ItemInteraction += _itemInteractionService_ItemStateChanged; ConfigurationProvider cp = new ConfigurationProvider(); IConfigSettings cs = cp.Load(); EnableDiagnostics = cs.EnableDiagnostics; }
public MediaContentViewModel(IKioskInteractionService interactionService, IDemographicsService demographicSrv, IContentManagement<ZoneFileMetaData> contentManagement, IItemInteractionService itemInteractionService) { ItemState = ManipulationStates.NoTrack; _interactionService = interactionService; _interactionService.KioskStateChanged += _interactionService_KioskStateChanged; _demographicsService = demographicSrv; _demographicsService.DemographicsReceived += _demographicsService_DemographicsReceived; _demographicsService.DemographicsProcessingFailure += _demographicsService_DemographicsProcessingFailure; _contentManagement = contentManagement; _itemInteractionService = itemInteractionService; _itemInteractionService.ItemInteraction += _itemInteractionService_ItemStateChanged; ConfigurationProvider cp = new ConfigurationProvider(); IConfigSettings cs = cp.Load(); EnableDiagnostics = cs.EnableDiagnostics; //ClosestZone = cs.ZoneDefinitions.Where(x => x.MaximumRange == cs.ZoneDefinitions.Min(o => o.MaximumRange)).First().Name; }
public MediaContentViewModel(IKioskInteractionService interactionService, IDemographicsService demographicSrv, IContentManagement <ZoneFileMetaData> contentManagement, IItemInteractionService itemInteractionService) { ItemState = ManipulationStates.NoTrack; _interactionService = interactionService; _interactionService.KioskStateChanged += _interactionService_KioskStateChanged; _demographicsService = demographicSrv; _demographicsService.DemographicsReceived += _demographicsService_DemographicsReceived; _demographicsService.DemographicsProcessingFailure += _demographicsService_DemographicsProcessingFailure; _contentManagement = contentManagement; _itemInteractionService = itemInteractionService; _itemInteractionService.ItemInteraction += _itemInteractionService_ItemStateChanged; ConfigurationProvider cp = new ConfigurationProvider(); IConfigSettings cs = cp.Load(); EnableDiagnostics = cs.EnableDiagnostics; }
private async void Init() { _demographicsService = new OxfordBiometricTelemetryService(ConfigurationManager.AppSettings["Azure.Hub.Biometric"]); _demographicsService.DemographicsReceived += _demographicsService_DemographicsReceived; _demographicsService.DemographicsProcessingFailure += _demographicsService_DemographicsProcessingFailure; _sensorService = new KinectSensorService(_demographicsService); _sensorService.Open(); }
public KinectSensorService(IDemographicsService biometricTelemetryService) { this.Sensor = KinectSensor.GetDefault(); _biometricTelemetry = (BiometricTelemetryService)biometricTelemetryService; _biometricTelemetry.IsPrimaryRoleBiometricID = false; _biometricTelemetry.EventHubConnectionString = ConfigurationManager.AppSettings["Azure.Hub.Biometric"]; _biometricTelemetry.DebugImages = false; _skeletalTelemetry = new SkeletalTelemetryService(ConfigurationManager.AppSettings["Azure.Hub.SkeletalHub"]); _BiometricProcessingQueue = new BlockingCollection <ProcessFaceData>(); { IObservable <ProcessFaceData> ob = _BiometricProcessingQueue. GetConsumingEnumerable(). ToObservable(TaskPoolScheduler.Default); ob.Subscribe(p => { // This handler will get called whenever // anything appears on myQueue in the future. _biometricTelemetry.ProcessFace(p); }); } // get FrameDescription from InfraredFrameSource _SkeletonTrackingProcessingQueue = new BlockingCollection <Body>(); { IObservable <Body> ob = _SkeletonTrackingProcessingQueue. GetConsumingEnumerable(). ToObservable(TaskPoolScheduler.Default); ob.Subscribe(p => { // This handler will get called whenever // anything appears on myQueue in the future. _skeletalTelemetry.TrackSkeleton(p, this.Sensor.UniqueKinectId); }); } demographicsSamplingRange = System.Convert.ToDouble(ConfigurationManager.AppSettings["Demographics.Sampling.Range"]); this.multiSourceFrameReader = this.Sensor.OpenMultiSourceFrameReader(FrameSourceTypes.Body | FrameSourceTypes.Color | FrameSourceTypes.Infrared); //set up event processing to only process telemetry frames ever 200 milliseonds to optimize app performance and avoid saturating the network TimeSpan ts = new TimeSpan(0, 0, 0, 0, 200); // AllFramesReadyEventArgs will all be timestamped. // Subscription is set to run on ThreadPool but observer // will be notified using UI thread dispatcher var frames = Observable.FromEventPattern <MultiSourceFrameArrivedEventArgs>( ev => this.multiSourceFrameReader.MultiSourceFrameArrived += ev, ev => this.multiSourceFrameReader.MultiSourceFrameArrived -= ev) .Sample(ts); var obsBodies = frames .Select(frame => { if (frame.EventArgs.FrameReference != null) { try { var multiSourceFrame = frame.EventArgs.FrameReference.AcquireFrame(); if (multiSourceFrame != null) { return(multiSourceFrame); } else { return(null); } } catch { return(null); } } else { return(null); } } ) .ObserveOnDispatcher() .Subscribe(x => { OnMultipleFramesArrivedHandler(x); }); // set the maximum number of bodies that would be tracked by Kinect this.bodyCount = this.Sensor.BodyFrameSource.BodyCount; // allocate storage to store body objects this.bodies = new Body[this.bodyCount]; // specify the required face frame results FaceFrameFeatures faceFrameFeatures = FaceFrameFeatures.BoundingBoxInColorSpace | FaceFrameFeatures.PointsInColorSpace | FaceFrameFeatures.RotationOrientation | FaceFrameFeatures.FaceEngagement | FaceFrameFeatures.Glasses | FaceFrameFeatures.Happy | FaceFrameFeatures.LeftEyeClosed | FaceFrameFeatures.RightEyeClosed | FaceFrameFeatures.LookingAway | FaceFrameFeatures.MouthMoved | FaceFrameFeatures.MouthOpen | FaceFrameFeatures.BoundingBoxInInfraredSpace; // create a face frame source + reader to track each face in the FOV this.faceFrameSources = new FaceFrameSource[this.bodyCount]; this.faceFrameReaders = new FaceFrameReader[this.bodyCount]; for (int i = 0; i < this.bodyCount; i++) { // create the face frame source with the required face frame features and an initial tracking Id of 0 this.faceFrameSources[i] = new FaceFrameSource(this.Sensor, 0, faceFrameFeatures); // open the corresponding reader this.faceFrameReaders[i] = this.faceFrameSources[i].OpenReader(); } // allocate storage to store face frame results for each face in the FOV this.faceFrameResults = new FaceFrameResult[this.bodyCount]; FrameDescription colorFrameDescription = this.Sensor.ColorFrameSource.CreateFrameDescription(ColorImageFormat.Bgra); this.colorBitmap = new WriteableBitmap(colorFrameDescription.Width, colorFrameDescription.Height, 96.0, 96.0, PixelFormats.Bgr32, null); // get the color frame details FrameDescription frameDescription = this.Sensor.ColorFrameSource.FrameDescription; // set the display specifics this.displayWidth = frameDescription.Width; this.displayHeight = frameDescription.Height; this.displayRect = new Rect(0.0, 0.0, this.displayWidth, this.displayHeight); this.Sensor.IsAvailableChanged += Sensor_IsAvailableChanged; }
public HabitatFitnessDemographicsController([NotNull] IDemographicsService service) { this.service = service; }
public PopulationProjectionTransformer(IDemographicsService demographics) { Demographics = demographics; }