public override int GetHashCode() { return(BandColor.GetHashCode() + BandSpace + BandCount + Multiplier.GetHashCode() + BandWidth.GetHashCode() + BandRadius.GetHashCode()); }
/// <summary> /// Resets this indicator and all sub-indicators (StandardDeviation, LowerBand, MiddleBand, UpperBand, BandWidth, %B) /// </summary> public override void Reset() { StandardDeviation.Reset(); MiddleBand.Reset(); UpperBand.Reset(); LowerBand.Reset(); BandWidth.Reset(); PercentB.Reset(); base.Reset(); }
public TransceiverSettings( RadioModemKind radioModem, uint frequency, BandWidth bandWidth, SpreadingFactor spreadingFactor, CodingRate codingRate, ushort symbolTimeout, bool crcEnabled, bool enableLowDataRateOptimize, LoraSyncWord loraSyncWord) { RadioModem = radioModem; Frequency = frequency; BandWidth = bandWidth; SpreadingFactor = spreadingFactor; CodingRate = codingRate; SymbolTimeout = symbolTimeout; CrcEnabled = crcEnabled; EnableLowDataRateOptimize = enableLowDataRateOptimize; LoraSyncWord = loraSyncWord; }
private void InitModel() { _signals = new ObservableCollection <Signal>(); var signal = new Signal() { Id = 0x00, Name = "阵列信号" }; _signals.Add(signal); _signals.Add(new Signal() { Id = 0x01, Name = "标校信号" }); SelectedSignal = signal; _bandWidths = new ObservableCollection <BandWidth>(); var bandWidth = new BandWidth() { Id = 0x00, Name = "2MHz" }; SelectedKd = bandWidth; _bandWidths.Add(bandWidth); _bandWidths.Add(new BandWidth() { Id = 0x01, Name = "60MHz" }); _signalForms = new ObservableCollection <SignalForm>(); var signalform = new SignalForm() { Id = 0x00, Name = "梳状谱" }; SelectSignalForm = signalform; _signalForms.Add(signalform); _signalForms.Add(new SignalForm() { Id = 0x01, Name = "单载波" }); }
private static LoraRegisterModemConfig1.BandWidthEnum ConvertBandWidth(BandWidth bandWidth) { switch (bandWidth) { case BandWidth.BandWidth_007_80_kHz: return(LoraRegisterModemConfig1.BandWidthEnum.BandWidth_007_80_kHz); case BandWidth.BandWidth_010_40_kHz: return(LoraRegisterModemConfig1.BandWidthEnum.BandWidth_010_40_kHz); case BandWidth.BandWidth_015_60_kHz: return(LoraRegisterModemConfig1.BandWidthEnum.BandWidth_015_60_kHz); case BandWidth.BandWidth_020_80_kHz: return(LoraRegisterModemConfig1.BandWidthEnum.BandWidth_020_80_kHz); case BandWidth.BandWidth_031_25_kHz: return(LoraRegisterModemConfig1.BandWidthEnum.BandWidth_031_25_kHz); case BandWidth.BandWidth_041_70_kHz: return(LoraRegisterModemConfig1.BandWidthEnum.BandWidth_041_70_kHz); case BandWidth.BandWidth_062_50_kHz: return(LoraRegisterModemConfig1.BandWidthEnum.BandWidth_062_50_kHz); case BandWidth.BandWidth_125_00_kHz: return(LoraRegisterModemConfig1.BandWidthEnum.BandWidth_125_00_kHz); case BandWidth.BandWidth_250_00_kHz: return(LoraRegisterModemConfig1.BandWidthEnum.BandWidth_250_00_kHz); case BandWidth.BandWidth_500_00_kHz: return(LoraRegisterModemConfig1.BandWidthEnum.BandWidth_500_00_kHz); default: throw new ArgumentOutOfRangeException(nameof(bandWidth), bandWidth, null); } }
public override IEnumerator ReceivePayload(VisualPayload payload) { foreach (var entry in Scope.GetEntries(payload.Data)) { var generatedGradient = OpcodeToTextureBanding.GenerateTextureBanding( OpcodeHistogram.GetValue(entry), PrimaryColor.GetValue(entry), PrimaryImpactOnBands.GetValue(entry), NumberOfBands.GetValue(entry), BandWidth.GetValue(entry), BandSaturation.GetValue(entry), BandValue.GetValue(entry), BandEdgeWidth.GetValue(entry)); BandingTarget.SetValue(generatedGradient, entry); } var iterator = Router.TransmitAll(payload); while (iterator.MoveNext()) { yield return(null); } }
public void CalcType(ObjectId[] ids) { Type = null; BandSpacing = null; BandWidth = null; BandStart1 = null; BandStart2 = null; ProcessingAngle1 = null; ProcessingAngle2 = null; if (ids.Length < 2) { Acad.Alert("Выберите 2 элемента"); return; } var contourPoints = GetContour().GetPolyPoints().ToArray(); var curves = ids.QOpenForRead <Curve>(); var circles = curves.OfType <Circle>().ToArray(); if (circles.Any()) { var radius = circles.Max(p => p.Radius); circles = circles.Where(p => p.Radius == radius).ToArray(); const double Delta = 1; radius += Delta; var vector = circles[1].Center - circles[0].Center; var center = (circles[1].Center.X < circles[0].Center.X ? circles[1] : circles[0]).Center; BandSpacing = radius * 2; BandWidth = vector.Length - BandSpacing.Value; if (vector.IsParallelTo(Vector3d.XAxis) || vector.IsPerpendicularTo(Vector3d.XAxis)) { Type = "Конусы прямые"; ProcessingAngle1 = 0; ProcessingAngle2 = 90; BandStart1 = center.Y + radius - contourPoints[0].Y; BandStart2 = center.X + radius - contourPoints[0].X; } else { Type = "Конусы диагональные"; var ray = new Ray { BasePoint = center }; ProcessingAngle1 = 135; ray.UnitDir = Vector3d.XAxis.RotateBy(Graph.ToRad(ProcessingAngle1.Value), Vector3d.ZAxis); BandStart1 = ray.GetDistToPoint(contourPoints[0], true) + radius; ProcessingAngle2 = 45; ray.UnitDir = Vector3d.XAxis.RotateBy(Graph.ToRad(ProcessingAngle2.Value), Vector3d.ZAxis); BandStart2 = ray.GetDistToPoint(contourPoints[3], true) % vector.Length + radius; } RoundParams(); return; } var lines = curves.OfType <Line>().ToArray(); if (lines.Length == 8) { Type = "Квадраты"; ProcessingAngle1 = 0; ProcessingAngle2 = 90; BandSpacing = lines.First().Length; var points = lines.SelectMany(p => Graph.GetStartEndPoints(p)); var point1 = new Point3d(points.Min(p => p.X), points.Min(p => p.Y), 0); BandStart1 = point1.Y + BandSpacing - contourPoints[0].Y; BandStart2 = point1.X + BandSpacing - contourPoints[0].X; var point2 = new Point3d(points.Max(p => p.X), points.Max(p => p.Y), 0); var vector = point2 - point1; BandWidth = (vector.X > vector.Y ? point2.X - point1.X : point2.Y - point1.Y) - BandSpacing * 2; RoundParams(); return; } if (lines.Length == 3 || lines.Length == 4) { var vector = lines[0].Delta; if (vector.IsParallelTo(Vector3d.XAxis, Tolerance.Global)) { ProcessingAngle1 = 0; } if (vector.IsParallelTo(Vector3d.XAxis.RotateBy(Math.PI / 4, Vector3d.ZAxis))) { ProcessingAngle1 = 45; } if (vector.IsParallelTo(Vector3d.YAxis, Tolerance.Global)) { ProcessingAngle1 = 90; } if (vector.IsParallelTo(Vector3d.XAxis.RotateBy(Math.PI * 3 / 4, Vector3d.ZAxis))) { ProcessingAngle1 = 45; } if (ProcessingAngle1.HasValue) { Type = $"Полосы {ProcessingAngle1}"; var point = ProcessingAngle1 == 45 ? contourPoints[3] : contourPoints[0]; var dist = lines.Select(p => p.GetDistToPoint(point)).OrderBy(p => p).ToArray(); var s1 = dist[1] - dist[0]; var s2 = dist[2] - dist[1]; BandWidth = Math.Max(s1, s2); BandSpacing = Math.Min(s1, s2); BandStart1 = (s1 > s2 ? dist[0] : dist[1]) % (BandWidth + BandSpacing); RoundParams(); return; } } Acad.Alert("Тип плитки не распознан"); void RoundParams() { BandSpacing = BandSpacing?.Round(3); BandWidth = BandWidth?.Round(3); BandStart1 = BandStart1?.Round(3); BandStart2 = BandStart2?.Round(3); } }
/// <summary> /// 选择带宽 /// </summary> /// <param name="bandWidth"></param> private void OnSelectedKd(BandWidth bandWidth) { RadioVm.SelectedKd = bandWidth; }