public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (value is string name && DeviceAxis.TryParse(name, out var axis)) { return(axis); } return(base.ConvertFrom(context, culture, value)); }
public bool Parse(string data, IDictionary <int, float> values) { var matches = _regex.Matches(data).OfType <Match>(); if (!matches.Any()) { return(false); } foreach (var match in matches) { var axisName = match.Groups[1].Value; var axisValue = match.Groups[2].Value; var value = int.Parse(axisValue) / ((float)Math.Pow(10, axisValue.Length) - 1); var axis = -1; if (DeviceAxis.TryParse(axisName, out axis)) { values[axis] = value; } } return(true); }