Files
DP44/Common/DTS.CommonCore/Converters/InitialOffsetToIEPESensorOffsetConverter.cs
2026-04-17 14:55:32 -04:00

54 lines
1.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
namespace DTS.Common.Converters
{
public class InitialOffsetToIEPESensorOffsetConverter : IValueConverter
{
/// <summary>
/// Used to convert millivolt offset to IEPE sensor offset in volts
/// </summary>
/// <param name="value"></param>
/// <param name="targetType"></param>
/// <param name="parameter"></param>
/// <param name="culture"></param>
/// <returns></returns>
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value is double milliUnit)
{
return ConvertDouble(milliUnit);
}
else
{
return 0D;
}
}
const double IEPE_MIDPOINT = 12.25D;
public static double ConvertDouble(double milliUnit)
{
if (double.IsNaN(milliUnit)) { return 0D; }
return (milliUnit / 1000.0D) + IEPE_MIDPOINT;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value is double unit)
{
if (double.IsNaN(unit)) { return 0D; }
return (unit - IEPE_MIDPOINT) * 1000.0D;
}
else
{
return 0D;
}
}
}
}