Esempio n. 1
0
 /// <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;
 }
Esempio n. 2
0
 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;
 }
Esempio n. 3
0
        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;
        }
Esempio n. 5
0
        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;
        }
Esempio n. 6
0
        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;
        }
Esempio n. 7
0
        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;
        }
Esempio n. 8
0
        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;
        }
Esempio n. 9
0
        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();     



        }
Esempio n. 10
0
        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;
 }
Esempio n. 12
0
 public PopulationProjectionTransformer(IDemographicsService demographics)
 {
     Demographics = demographics;
 }