public void TestPointTypeConverter() { var converter = new PointTypeConverter(); Assert.True(converter.CanConvertFrom(typeof(string))); Assert.AreEqual(new Point(1, 2), converter.ConvertFromInvariantString("1,2")); Assert.AreEqual(new Point(1, 2), converter.ConvertFromInvariantString("1, 2")); Assert.AreEqual(new Point(1, 2), converter.ConvertFromInvariantString(" 1 , 2 ")); Assert.AreEqual(new Point(1.1, 2), converter.ConvertFromInvariantString("1.1,2")); Assert.Throws <InvalidOperationException> (() => converter.ConvertFromInvariantString("")); }
/// <include file="../../../docs/Microsoft.Maui.Controls.Shapes/PointCollectionConverter.xml" path="//Member[@MemberName='ConvertTo']/Docs" /> public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (value is not PointCollection pc) { throw new NotSupportedException(); } var converter = new PointTypeConverter(); return(string.Join(", ", pc.Select(p => converter.ConvertToInvariantString(p)))); }
public override string ConvertToInvariantString(object value) { if (!(value is PointCollection pc)) { throw new NotSupportedException(); } var converter = new PointTypeConverter(); return(string.Join(", ", pc.Select(p => converter.ConvertToInvariantString(p)))); }
public override object?ConvertFromInvariantString(string?value) { if (value == null) { return(null); } value = value?.Trim(); var pointConverter = new PointTypeConverter(); var point = (Point)pointConverter.ConvertFromInvariantString(value); return(new SKConfettiPhysics(point.X, point.Y)); }
public override object?ConvertFromInvariantString(string?value) { if (value == null) { return(null); } value = value?.Trim(); if (string.Compare(value, "top", StringComparison.OrdinalIgnoreCase) == 0) { return(SKConfettiEmitterBounds.Top); } if (string.Compare(value, "left", StringComparison.OrdinalIgnoreCase) == 0) { return(SKConfettiEmitterBounds.Left); } if (string.Compare(value, "right", StringComparison.OrdinalIgnoreCase) == 0) { return(SKConfettiEmitterBounds.Right); } if (string.Compare(value, "bottom", StringComparison.OrdinalIgnoreCase) == 0) { return(SKConfettiEmitterBounds.Bottom); } if (string.Compare(value, "center", StringComparison.OrdinalIgnoreCase) == 0) { return(SKConfettiEmitterBounds.Center); } if (value?.IndexOf(',') == value?.LastIndexOf(',')) { var pointConverter = new PointTypeConverter(); var point = (Point)pointConverter.ConvertFromInvariantString(value); return(SKConfettiEmitterBounds.Point(point)); } var rectConverter = new RectTypeConverter(); var rect = (Rect)rectConverter.ConvertFromInvariantString(value); return(SKConfettiEmitterBounds.Bounds(rect)); }
public AlarmToday(string[] segments, DateTime now) { if (segments == null || segments.Length != 16) { IsValid = false; return; } try { var pointCode = GetPointCode(segments[0]); if (pointCode.Contains("A")) { _pointType = PointTypeConverter.A; } var alarmState = ConvertAlarmState((ProtocalAlarmState)segments[1].ToInt(), pointCode); var realValue = segments[2]; var alarmLimit = segments[3]; var disAlarmLimit = segments[4]; var startTime = segments[5].ToDateTime(); var endTime = segments[6] == "X" ? now : segments[6].ToDateTime(); var maxValue = segments[7]; var maxTime = segments[8]; var minTime = segments[9]; var avgValue = segments[10]; var minValue = segments[11]; AlarmTodayModel = new AlarmTodayModel() { EquipId = GetSensorEquipId(pointCode), Index = 0, PointCode = pointCode, PointId = 0, StartTime = startTime, EndTime = endTime, Value = realValue, ValueState = alarmState.ValueState, FeedState = 0, EquipState = alarmState.EquipState, TreatType = 0, Treatment = segments[13], TreatTime = segments[14].ToDateTime(), TreatUser = segments[15], Status = segments[6] == "X" ? 0 : 1 }; if (_pointType == PointTypeConverter.A) { AnalogAlarmModel = new AnalogAlarmModel() { EquipId = GetSensorEquipId(pointCode), Index = 0, PointCode = pointCode, PointId = 0, StartTime = startTime, EndTime = endTime, Value = realValue.ToFloat(), ValueState = alarmState.ValueState, MaxValue = maxValue.ToFloat(), MaxTime = maxTime.ToDateTime(), MinValue = minValue.ToFloat(), MinTime = minTime.ToDateTime(), AvgValue = avgValue.ToFloat(), FeedCount = 0, EquipState = alarmState.EquipState, Status = segments[6] == "X" ? 0 : 1 }; } } catch { IsValid = false; return; } IsValid = true; }
public XamlPointTypeConverter() { _converter = new PointTypeConverter(); }
protected (int valueState, int equipState) ConvertValueState(ProtocolState protocolState, PointTypeConverter pointType, string value) { int equipState = 1030000; int valueState = 0; switch (protocolState) { case ProtocolState.标校: { valueState = (int)PointState.Analog_OK; equipState += 1; } break; case ProtocolState.正常: { switch (pointType) { case PointTypeConverter.A: { valueState = (int)PointState.Analog_OK; equipState = 1030000; } break; case PointTypeConverter.D: { if (int.TryParse(value, out var realValue)) { if (realValue == 0) { valueState = (int)PointState.Switch_State1; } else if (realValue == 1) { valueState = (int)PointState.Switch_State2; } else { valueState = (int)PointState.Switch_State0; } } else { valueState = (int)PointState.Switch_State0; } } break; case PointTypeConverter.C: { if (int.TryParse(value, out var realValue)) { if (realValue == 0) { valueState = (int)PointState.Control_State0; } else { valueState = (int)PointState.Control_State1; } } else { valueState = (int)PointState.Control_State1; } } break; } } break; case ProtocolState.断电: { valueState = (int)PointState.Analog_UpperLimitSwitchingOff; equipState = 1030000; } break; case ProtocolState.标校报警: { valueState = (int)PointState.Analog_UpperLimitSwitchingOff; equipState += 1; } break; case ProtocolState.超量程: { valueState = (int)PointState.Analog_Underflow; equipState = 1030000; } break; case ProtocolState.感器故障: { switch (pointType) { case PointTypeConverter.A: { valueState = (int)PointState.Analog_OFF; equipState = 1; } break; case PointTypeConverter.D: { valueState = (int)PointState.Switch_State0; equipState = 1; } break; case PointTypeConverter.C: { valueState = (int)PointState.Control_OFF; equipState = 1; } break; } } break; case ProtocolState.分站故障: { switch (pointType) { case PointTypeConverter.A: { valueState = (int)PointState.Analog_SubStationOFF; equipState = 1; } break; case PointTypeConverter.D: { valueState = (int)PointState.Switch_SubStationOFF; equipState = 1; } break; case PointTypeConverter.C: { valueState = (int)PointState.Control_SubStationOFF; equipState = 1; } break; } } break; default: break; } return(valueState, equipState); }
protected int GetSensorEquipId(string pointCode, PointTypeConverter pointType) { return(pointCode.Replace(pointType.ToString(), ((int)pointType).ToString()).ToInt()); }
public void TestPointTypeConverter () { var converter = new PointTypeConverter (); Assert.True (converter.CanConvertFrom (typeof(string))); Assert.AreEqual (new Point (1, 2), converter.ConvertFromInvariantString ("1,2")); Assert.AreEqual (new Point (1, 2), converter.ConvertFromInvariantString ("1, 2")); Assert.AreEqual (new Point (1, 2), converter.ConvertFromInvariantString (" 1 , 2 ")); Assert.AreEqual (new Point (1.1, 2), converter.ConvertFromInvariantString ("1.1,2")); Assert.Throws<InvalidOperationException> (()=>converter.ConvertFromInvariantString ("")); }