Ejemplo n.º 1
0
        public SenseResponse GetSensorsData()
        {
            var response = new SenseResponse();

            try
            {
                var imu      = _senseCommon.GetData();
                var pressure = _sensePressure.Read();
                var humidity = _senseHumidity.Read();
                response = new SenseResponse
                {
                    FusionPose          = imu.FusionPoseValid ? imu.FusionPose : (Vector3?)null,
                    FusionQPose         = imu.FusionQPoseValid ? imu.FusionQPose : (Quaternion?)(null),
                    Gyro                = imu.GyroValid ? imu.Gyro : (Vector3?)null,
                    Accel               = imu.AccelValid ? imu.Accel : (Vector3?)null,
                    Compass             = imu.CompassValid ? imu.Compass : (Vector3?)null,
                    Pressure            = pressure.PressureValid ? pressure.Pressure : (float?)null,
                    PressureTemperature = pressure.TemperatureValid ? pressure.Temperatur : (float?)null,
                    Humidity            = humidity.HumidityValid ? humidity.Humidity : (float?)null,
                    HumidityTemperature = humidity.TemperatureValid ? humidity.Temperatur : (float?)null
                };
                _statusReportService.DisplayStatus(response);
                return(response);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Error reading Sense data");
                _statusReportService.DisplayStatus(response);
            }
            return(null);
        }
Ejemplo n.º 2
0
        private void OpenDevices()
        {
            var temperatureInterfaces = DeviceList
                                        .Local
                                        .GetHidDevices()
                                        .Where(hid => hid.ProductID == PRODUCT_ID && hid.VendorID == VENDOR_ID);

            _controlDevice = temperatureInterfaces.FirstOrDefault(x => x.DevicePath.Contains(CONTROL_INTERFACE_NAME));
            _bulkDevice    = temperatureInterfaces.FirstOrDefault(x => x.DevicePath.Contains(BULK_INTERFACE_NAME));

            if (_controlDevice == null || _bulkDevice == null)
            {
                _statusReportService.DisplayStatus(new OutsideTemperatureResponse());
                return;
            }
            if (_controlDevice.TryOpen(out _controlStream))
            {
                _controlDeviceOpen = true;
                _controlStream.Write(_iniCommand);
                _controlStream.Write(_ini1Command);
                _controlStream.Write(_ini2Command);
            }
            if (_bulkDevice.TryOpen(out _bulkStream))
            {
                _bulkDeviceOpen = true;
            }
        }
Ejemplo n.º 3
0
        public GpsModuleStatusResponse GetStatus()
        {
            var response = new GpsModuleStatusResponse {
                Enabled = false
            };
            var command = $"{BASE_COMMAND}{GET_STATUS_COMMAND}";

            _logger.LogInformation(command);
            _serialPort.WriteLine(command);
            Thread.Sleep(500);
            var rawResponse = _serialPort.ReadExisting();

            _logger.LogInformation(rawResponse);
            if (rawResponse.Contains("OK"))
            {
                try
                {
                    var parsedResponse = ParseStatusResponse(rawResponse);
                    response = new GpsModuleStatusResponse
                    {
                        Enabled = parsedResponse[0] == "1",
                        Mode    = (GpsModuleModes)int.Parse(parsedResponse[1])
                    };
                    _statusReportService.DisplayStatus(response);
                    return(response);
                }
                catch (Exception ex)
                {
                    _logger.LogError(ex, "Error parsing GPS Status Response");
                    _statusReportService.DisplayStatus(response);
                }
            }
            return(response);
        }
Ejemplo n.º 4
0
        public GpsModuleResponse GetGpsData()
        {
            var response = new GpsModuleResponse();
            var command  = $"{BASE_COMMAND}";

            _logger.LogInformation(command);
            _serialPort.WriteLine(command);
            var rawResponse = _serialPort.ReadExisting();

            _logger.LogInformation(rawResponse);
            try
            {
                response = FormatResponse(ParseCoordinatesResponse(rawResponse));
                _statusReportService.DisplayStatus(response);
                return(response);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Error parsing coordinates");
                _statusReportService.DisplayStatus(response);
            }
            return(null);
        }