private void InstantiateNewDevice(WifiDevice wifiDevice)
        {
            wifiDevice.Timer.Tick    += (sender, args) => Timer_Tick(wifiDevice);
            wifiDevice.Timer.Interval = new TimeSpan(0, 0, 30);
            wifiDevice.Timer.Start();

            Devices.Add(wifiDevice);
        }
        public LiveWifiAndBluetoothShellDataViewModel(IBluetoothFinder bluetoothFinder,
                                                      IShellTemperatureRepository <ShellTemp> shellTemperatureRepository,
                                                      IShellTemperatureRepository <SdCardShellTemp> sdCardShellTemperatureRepository,
                                                      IDeviceRepository <DeviceInfo> deviceRepository,
                                                      IConfiguration configuration,
                                                      BluetoothConnectionSubject subject,
                                                      TemperatureSubject temperatureSubject,
                                                      ILogger <LiveBluetoothOnlyShellDataViewModel> logger,
                                                      OutlierDetector outlierDetector,
                                                      ClearList clear,
                                                      IRepository <ShellTemperatureComment> commentRepository,
                                                      IReadingCommentRepository <ReadingComment> readingCommentRepository,
                                                      IRepository <Positions> positionRepository,
                                                      IRepository <ShellTemperaturePosition> shellTempPositionRepository,
                                                      IRepository <SdCardShellTemperatureComment> sdCardCommentRepository)
            : base(bluetoothFinder, shellTemperatureRepository, sdCardShellTemperatureRepository, deviceRepository, configuration, subject,
                   temperatureSubject, logger, outlierDetector, clear, commentRepository, readingCommentRepository,
                   positionRepository, shellTempPositionRepository, sdCardCommentRepository)
        {
            _shellTemperatureRepository = shellTemperatureRepository;

            IList <DeviceInfo> potentialWifiDevices = FindPotentialWifiDevices();

            foreach (DeviceInfo device in potentialWifiDevices.ToList())
            {
                DateTime start = DateTime.Now.AddMinutes(-2);
                DateTime end   = DateTime.Now;

                WifiDevice wifiDevice = new WifiDevice(device.DeviceName, device.DeviceAddress, start);

                IEnumerable <ShellTemp> shellTemps = _shellTemperatureRepository.GetShellTemperatureData(start, end,
                                                                                                         device.DeviceName, device.DeviceAddress);
                ShellTemp[] dataReadings = shellTemps as ShellTemp[] ?? shellTemps.ToArray();

                if (dataReadings.Length == 0)
                {
                    potentialWifiDevices.Remove(device);
                }
                else
                {
                    SetWifiDeviceDataReadings(wifiDevice, dataReadings);
                    SetWifiDeviceDataPoints(wifiDevice);
                    InstantiateNewDevice(wifiDevice);

                    wifiDevice.State.Message = "Connected To - " + wifiDevice.DeviceName;
                }
            }

            SetSelectedDeviceWhenNull();
            if (Devices.Count == 1) // only one in devices so, must be selected
            {
                SetConnectionStatus(SelectedDevice, DeviceConnectionStatus.CONNECTED);
            }

            SetCanRemoveDevices();
        }
Beispiel #3
0
        public void Connect(WifiDevice item)
        {
            var config = new WifiConfiguration
            {
                Ssid         = item.Name,
                PreSharedKey = "\"12345678\""
            };

            _wifiManager.AddNetwork(config);

            _wifiManager.Disconnect();
            _wifiManager.EnableNetwork(config.NetworkId, true);
            _wifiManager.Reconnect();
        }
Beispiel #4
0
        /// <summary>
        /// Creates an instance.
        /// </summary>
        public FeatherBoard()
        {
            try
            {
                // Initialize hardware
                HardwareProvider.Initialize();

                // Initialize components
                Network = WifiDevice.Initialize();
                Led     = new LedDevice(SC20100.GpioPin.PE11);
            }
            catch
            {
                // Close devices in case partially initialized
                Network?.Dispose();

                // Continue error
                throw;
            }
        }
Beispiel #5
0
        /// <summary>
        /// Creates an instance.
        /// </summary>
        public DuinoBoard()
        {
            try
            {
                // Initialize hardware
                HardwareProvider.Initialize();

                // Initialize components
                Network = WifiDevice.Initialize();
                Storage = CardDevice.Connect(SC20100.StorageController.SdCard);
                Led     = new LedDevice(SC20100.GpioPin.PE11);
            }
            catch
            {
                // Close devices in case partially initialized
                Network?.Dispose();
                Storage?.Dispose();

                // Continue error
                throw;
            }
        }
 private void Timer_Tick(WifiDevice device)
 {
     // Last record datetime plus one second
     DateTime start = device.Temp[^ 1].RecordedDateTime.AddSeconds(1);
 private ShellTemp[] GetDeviceData(DateTime start, DateTime end, WifiDevice device)
 {
     return(ShellTemperatureRepository.GetShellTemperatureData(start, end,
                                                               device.DeviceName, device.DeviceAddress).ToArray());
 }