private object TranslateNumeric(string value, OpenZWrapper.ValueType valueType) { if (valueType == OpenZWrapper.ValueType.Byte || valueType == OpenZWrapper.ValueType.Int || valueType == OpenZWrapper.ValueType.Short || valueType == OpenZWrapper.ValueType.Decimal) { var valueNum = double.Parse(value); var range = OpenZWrapper.Utils.GetRangeFor(valueType); if (valueType == OpenZWrapper.ValueType.Byte) { return((byte)TranslateByMargin(Math.Round(valueNum, 0), (byte)range.Min, (byte)range.Max)); } if (valueType == OpenZWrapper.ValueType.Int) { return((int)TranslateByMargin(Math.Round(valueNum, 0), (int)range.Min, (int)range.Max)); } if (valueType == OpenZWrapper.ValueType.Short) { return((short)TranslateByMargin(Math.Round(valueNum, 0), (short)range.Min, (short)range.Max)); } if (valueType == OpenZWrapper.ValueType.Decimal) { return((decimal)TranslateByMargin(valueNum, (double)range.Min, (double)range.Max)); } } return(value); }
public static Type GetTypeBy(OpenZWrapper.ValueType zWaveValueType) { switch (zWaveValueType) { case OpenZWrapper.ValueType.Bool: return(typeof(Lazurite.ActionsDomain.ValueTypes.ToggleValueType)); case OpenZWrapper.ValueType.Button: return(typeof(Lazurite.ActionsDomain.ValueTypes.ButtonValueType)); case OpenZWrapper.ValueType.Byte: case OpenZWrapper.ValueType.Decimal: case OpenZWrapper.ValueType.Short: case OpenZWrapper.ValueType.Int: return(typeof(Lazurite.ActionsDomain.ValueTypes.FloatValueType)); case OpenZWrapper.ValueType.String: return(typeof(Lazurite.ActionsDomain.ValueTypes.InfoValueType)); case OpenZWrapper.ValueType.List: return(typeof(Lazurite.ActionsDomain.ValueTypes.StateValueType)); } return(typeof(ValueTypeBase)); }