Esempio n. 1
0
        private void onNext(KafkaMessage km)
        {
            var extractVoltageRegExp = new Regex("[0-9]{4,5}");

            float voltage = 0.0f;

            try
            {
                var stationFragment = _ackDetecRegExp.Match(km.Payload).Groups[0].Value;

                var match = _stationExtractorRegExp.Match(stationFragment);

                if (match.Success)
                {
                    var intermediateValue = _ackVoltageRegExp.Match(km.Payload).Groups[0].Value;

                    float.TryParse(extractVoltageRegExp.Match(intermediateValue).Groups[0].Value, out voltage);

                    voltage = voltage / 1000.0f;

                    var stationId = match.Groups[0].Value;

                    var station = _stationConfig.Stations.Where(x => x.Id == stationId).FirstOrDefault();

                    _influxClient.WritePirVoltage(km.Id, station.Id, voltage, _timeProvider.GetCurrentTimeUtc());
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.ToString());
            }
        }