Ejemplo n.º 1
0
        public MainPage()
        {
            InitializeComponent();
            Loaded += MainPage_Loaded;

            iotHubService          = new IotHubService();
            gpio                   = GpioController.GetDefault();
            tempMeasurements       = new List <double>();
            humidMeasurements      = new List <double>();
            thisMinutesMessageSent = false;
        }
Ejemplo n.º 2
0
 public DeviceController(IotHubService iotHubService)
 {
     _iotHubService = iotHubService;
 }
Ejemplo n.º 3
0
        public async Task Execute(IJobExecutionContext context)
        {
            // Used to determine if we should notify all other bulbs, besides the latest that was received
            bool isNewActivityPresent = false;

            List <int> bulbIdsToSkipWhenNotifying           = new List <int>();
            List <BulbTelemetryDTO> latestTelemetryActivity = new List <BulbTelemetryDTO>();
            List <int> teamsToNotify = new List <int>();


            if (AppSettingsUtil.DebugUsingLocalTelemetryData)
            {
                LocalFileService localFileService = new LocalFileService();
                latestTelemetryActivity = localFileService.GetLocalMockTelemetry();
            }
            else
            {
                // Received new telemetry activity.
                latestTelemetryActivity = GetLatestTelemetryActivity();
            }

            DeleteExpiredTelemetry(latestTelemetryActivity);

            foreach (var teleActivity in latestTelemetryActivity)
            {
                var newActivityFromTelemetry = new BulbActivity
                {
                    BulbId       = teleActivity.Telemetry.BrightBulbId,
                    DeviceId     = teleActivity.DeviceId,
                    RegisteredOn = teleActivity.CreatedOn
                };

                AddTeamToNotifyToList(teamsToNotify, newActivityFromTelemetry);
            }

            var latestDBActivities = DbService.GetBulbActivities();

            isNewActivityPresent = AddNewActivitiesToDb(isNewActivityPresent, bulbIdsToSkipWhenNotifying, latestTelemetryActivity, latestDBActivities);

            var signalrContext = GlobalHost.ConnectionManager.GetHubContext <StatusUpdateHub>();

            var expiredActivitites = DeleteExpiredActivities(latestDBActivities);

            if (expiredActivitites != null)
            {
                await signalrContext.Clients.All.receiveDataUpdate(
                    JsonConvert.SerializeObject(latestDBActivities),
                    JsonConvert.SerializeObject(expiredActivitites)
                    );
            }
            else
            {
                await signalrContext.Clients.All.receiveDataUpdate(
                    JsonConvert.SerializeObject(latestDBActivities),
                    JsonConvert.SerializeObject(null)
                    );
            }
            foreach (var teamId in teamsToNotify)
            {
                IotHubService.sendLightUpCommandToAllDevicesInTeam(teamId, bulbIdsToSkipWhenNotifying, isNewActivityPresent);
            }
            return;
        }
Ejemplo n.º 4
0
 public void LightUpTeamBulbs(int teamId)
 {
     IotHubService.sendLightUpCommandToAllDevicesInTeam(3, null, true);
 }