Ejemplo n.º 1
0
        private int GetVerlengenSetting(FaseCyclusModel fc, DetectorModel dm)
        {
            var dmVerl = (int)dm.Verlengen;

            if (fc.ToepassenMK2)
            {
                switch (dm.Rijstrook)
                {
                default:
                case 1:
                    // leave as is
                    break;

                case 2:
                    dmVerl += 4;
                    break;

                case 3:
                    dmVerl += 8;
                    break;

                case 4:
                    dmVerl += 12;
                    break;
                }
            }
            return(dmVerl);
        }
Ejemplo n.º 2
0
        private void AddFaseDetectorCommand_Executed(object prm)
        {
            DetectorModel d = new DetectorModel();

            d.Naam = "fase_" + (FaseDetectoren.Count + 1);
            FaseDetectoren.Add(d);
        }
Ejemplo n.º 3
0
 private void AppendDetectorFlutterTabString(StringBuilder sb, DetectorModel dm, int?tflmax)
 {
     if (dm.TFL != null || dm.CFL != null)
     {
         if (dm.TFL != null)
         {
             sb.Append($"{ts}");
             var l = $"TFL_max[{dm.GetDefine()}] = {dm.TFL};";
             sb.Append($"TFL_max[{dm.GetDefine()}] = {dm.TFL};".PadRight(tflmax.Value));
         }
         else
         {
             sb.Append("".PadRight(tflmax.Value));
         }
         if (dm.CFL != null)
         {
             if (dm.TFL != null)
             {
                 sb.Append(" ");
             }
             sb.Append($"CFL_max[{dm.GetDefine()}] ");
             sb.AppendLine($"= {dm.CFL};");
         }
         else
         {
             sb.AppendLine("");
         }
     }
 }
Ejemplo n.º 4
0
        private void AddDetectorCommand_Executed(object prm)
        {
            DetectorModel d = new DetectorModel();

            d.Naam = Replace + "_" + (Detectoren.Count + 1);
            Detectoren.Add(d);
        }
        void AddNewDetectorCommand_Executed(object prm)
        {
            DetectorModel dm       = new DetectorModel();
            string        newname  = "1";
            int           inewname = 1;

            foreach (DetectorViewModel dvm in SelectedFase.Detectoren)
            {
                if (Regex.IsMatch(dvm.Naam, @"[0-9]$"))
                {
                    Match  m    = Regex.Match(dvm.Naam, @"[0-9]$");
                    string next = m.Value;
                    if (Int32.TryParse(next, out inewname))
                    {
                        inewname++;
                        newname = inewname.ToString();
                        while (!Integrity.IntegrityChecker.IsElementNaamUnique(SelectedFase.Naam + newname))
                        {
                            inewname++;
                            newname = inewname.ToString();
                        }
                    }
                }
            }
            dm.Define = SettingsProvider.Instance.GetDetectorDefinePrefix() + SelectedFase.Naam + newname;
            dm.Naam   = SelectedFase.Naam + newname;
            DetectorViewModel dvm1 = new DetectorViewModel(dm);

            dvm1.FaseVM = SelectedFase;
            SelectedFase.Detectoren.Add(dvm1);
        }
Ejemplo n.º 6
0
        private void AppendDetectorTabString(StringBuilder sb, DetectorModel dm, int pad1, int pad2, int pad3, int pad4, int pad5, int pad6)
        {
            sb.Append("    ");
            sb.Append($"D_code[{dm.GetDefine()}] ".PadRight(pad1));
            sb.Append($"= \"{dm.Naam}\"; ".PadRight(pad2));
            if (dm.TDB != null)
            {
                sb.Append($"TDB_max[{dm.GetDefine()}] ".PadRight(pad3));
                sb.Append($"= {dm.TDB}; ".PadRight(pad4));
            }
            if (dm.TDH != null)
            {
                sb.Append($"TDH_max[{dm.GetDefine()}] ".PadRight(pad5));
                sb.AppendLine($"= {dm.TDH};");
            }
            else
            {
                sb.AppendLine("");
            }

            if (dm.TBG != null || dm.TOG != null)
            {
                sb.Append("    ");
                sb.Append("".PadLeft(pad6));
                if (dm.TBG != null)
                {
                    sb.Append($"TBG_max[{dm.GetDefine()}] ".PadRight(pad3));
                    sb.Append($"= {dm.TBG}; ".PadRight(pad4));
                }
                if (dm.TOG != null)
                {
                    sb.Append($"TOG_max[{dm.GetDefine()}] ".PadRight(pad5));
                    sb.AppendLine($"= {dm.TOG};");
                }
                else
                {
                    sb.AppendLine("");
                }
            }

            if (dm.TFL != null || dm.CFL != null)
            {
                sb.Append("    ");
                sb.Append("".PadLeft(pad6));
                if (dm.TFL != null)
                {
                    sb.Append($"TFL_max[{dm.GetDefine()}] ".PadRight(pad3));
                    sb.Append($"= {dm.TFL}; ".PadRight(pad4));
                }
                if (dm.CFL != null)
                {
                    sb.Append($"CFL_max[{dm.GetDefine()}] ".PadRight(pad5));
                    sb.AppendLine($"= {dm.CFL};");
                }
                else
                {
                    sb.AppendLine("");
                }
            }
        }
 public SimpleDetectorSim(DetectorModel model, DateTime startDate, Random random)
 {
     _model              = model;
     _random             = random;
     NextIntensityChange = startDate.AddHours(_random.Next(3, 6));
     _intensityLow       = GetRandomNumber(300, 2, 4);
     _intensityHigh      = GetRandomNumber(_intensityLow * 2, _intensityLow + 2, 3);
     NextChange          = startDate.AddSeconds(_random.Next(_intensityLow, _intensityHigh));
 }
Ejemplo n.º 8
0
        public static int GetAanvraagSetting(DetectorModel dm)
        {
            var set = dm.Aanvraag switch
            {
                DetectorAanvraagTypeEnum.Uit => 0,
                DetectorAanvraagTypeEnum.RnietTRG => 1,
                DetectorAanvraagTypeEnum.Rood => 2,
                DetectorAanvraagTypeEnum.RoodGeel => 3,
                _ => 0
            };

            return(set);
        }
        private void AddDetectorTemplateCommand_Executed(object prm)
        {
            var dtm = new TLCGenTemplateModel <DetectorModel>();

            dtm.Naam    = "Nieuw template";
            dtm.Replace = "fase";
            var dm = new DetectorModel();

            dm.Naam = "fase_1";
            DefaultsProvider.Default.SetDefaultsOnModel(dm, "Auto");
            dtm.Items.Add(dm);
            DetectorenTemplates.Add(new DetectorTemplateViewModel(dtm));
            MessengerInstance.Send(new TemplatesChangedMessage());
        }
Ejemplo n.º 10
0
                        void RenameDetector(DetectorModel detector, string oldFaseCyclusName)
                        {
                            var nd = detector.Naam.Replace(oldFaseCyclusName, value);

                            if (TLCGenModelManager.Default.IsElementIdentifierUnique(TLCGenObjectTypeEnum.Detector, nd))
                            {
                                var oldD = detector.Naam;
                                detector.Naam = nd;
                                Messenger.Default.Send(new NameChangingMessage(TLCGenObjectTypeEnum.Detector, oldD, detector.Naam));
                            }

                            nd = detector.VissimNaam?.Replace(oldFaseCyclusName, value);
                            if (TLCGenModelManager.Default.IsElementIdentifierUnique(TLCGenObjectTypeEnum.Detector, nd, vissim: true))
                            {
                                detector.VissimNaam = nd;
                            }
                        }
        private void AddDetectorTemplateCommand_Executed(object prm)
        {
            var dtm = new TLCGenTemplateModel <DetectorModel>
            {
                Naam    = "Nieuw template",
                Replace = "fase"
            };
            var dm = new DetectorModel
            {
                Naam = "fase_1"
            };

            DefaultsProvider.Default.SetDefaultsOnModel(dm, "Auto");
            dtm.Items.Add(dm);
            var d = new DetectorTemplateViewModel(dtm);

            DetectorenTemplates.Add(d);
            TemplatesProvider.Default.LoadedTemplates.First(x => x.Editable).Templates.DetectorenTemplates.Add(dtm);
            MessengerInstance.Send(new TemplatesChangedMessage());
            SelectedDetectorTemplate = d;
        }
Ejemplo n.º 12
0
        /// <summary>
        /// 设置显示内容
        /// </summary>
        /// <param name="item"></param>
        void SetDisplayDetector(DetectorModel item)
        {
            //清空
            {
                this.ed_DetectorName.Text = "";
                this.ed_Parity.Text       = "";
                this.ed_PortName.Text     = "";
                this.ed_StopBits.Text     = "";
                this.ed_BaudRate.Text     = "";
                this.ed_DataBits.Text     = "";

                CurrentPortItems.Clear();
            }

            this.ed_DetectorName.Text = item.DetectorName;
            //判断有无串口id,有则获取并显示
            if (item.PortId > 0)
            {
                var portInfo = Data.SQLiteProvider.GetPortItemsByID(item.PortId);
                if (portInfo.Id > 0)
                {
                    this.ed_Parity.Text   = portInfo.Parity.ToString();
                    this.ed_PortName.Text = portInfo.PortName.ToString();
                    this.ed_StopBits.Text = portInfo.StopBits.ToString();
                    this.ed_BaudRate.Text = portInfo.BaudRate.ToString();
                    this.ed_DataBits.Text = portInfo.DataBits.ToString();
                }
            }
            //获取此项目的辅助列表
            var assistList = Data.SQLiteProvider.GetAssistItemsByDetectID(item.Id);

            assistList.ForEach(x =>
            {
                var queryPort = Data.SQLiteProvider.GetPortItemsByID(x.PortId);
                CurrentPortItems.Add(queryPort);
            });
        }
Ejemplo n.º 13
0
#pragma warning restore 0169
#pragma warning restore 0649

        private int GetAanvraagSetting(DetectorModel dm)
        {
            var set = 0;

            switch (dm.Aanvraag)
            {
            case DetectorAanvraagTypeEnum.Uit:
                set = 0;
                break;

            case DetectorAanvraagTypeEnum.RnietTRG:
                set = 1;
                break;

            case DetectorAanvraagTypeEnum.Rood:
                set = 2;
                break;

            case DetectorAanvraagTypeEnum.RoodGeel:
                set = 3;
                break;
            }
            return(set);
        }
Ejemplo n.º 14
0
        public static TabCImportHelperOutcome GetNewData(string[] lines)
        {
            var dz = MessageBoxResult.None;

            TabCImportHelperOutcome outcome = new TabCImportHelperOutcome();

            if (lines.Count() <= 1)
            {
                return(null);
            }

            // Compile a list of Phases with conflicts from the file
            foreach (var _line in lines)
            {
                var line = Regex.Replace(_line, @"/\*.*\*/", "");
                if (Regex.IsMatch(line, @"^\s+TO_max\["))
                {
                    string fc1   = Regex.Replace(line, @"^\s*TO_max\s*\[\s*(fc[0-9]+).*", "$1");
                    string fc2   = Regex.Replace(line, @"^\s*TO_max\s*\[\s*fc[0-9]+\s*\]\s*\[\s*(fc[0-9]+).*", "$1");
                    string _conf = Regex.Replace(line, @"^\s*TO_max\s*\[\s*fc[0-9]+\s*\]\s*\[\s*fc[0-9]+\s*\]\s*=\s*(([0-9]+|FK|GK|GKL)).*", "$1");

                    int conf = 0;
                    if (_conf == "FK" || _conf == "GK" || _conf == "GKL")
                    {
                        continue;
                    }

                    if (!Int32.TryParse(_conf, out conf))
                    {
                        throw new InvalidOperationException($"Conflict van {fc1} naar {fc2} heeft een foutieve waarde: {_conf}");
                    }

                    FaseCyclusModel _fcm1 = null;
                    foreach (var fcm in outcome.Fasen)
                    {
                        if (fcm.Naam == fc1.Replace("fc", ""))
                        {
                            _fcm1 = fcm;
                            break;
                        }
                    }
                    if (_fcm1 == null)
                    {
                        _fcm1      = new FaseCyclusModel();
                        _fcm1.Naam = fc1.Replace("fc", "");
                        outcome.Fasen.Add(_fcm1);
                    }

                    FaseCyclusModel _fcm2 = null;
                    foreach (FaseCyclusModel fcm in outcome.Fasen)
                    {
                        if (fcm.Naam == fc2.Replace("fc", ""))
                        {
                            _fcm2 = fcm;
                            break;
                        }
                    }
                    if (_fcm2 == null)
                    {
                        _fcm2      = new FaseCyclusModel();
                        _fcm2.Naam = fc2.Replace("fc", "");
                        outcome.Fasen.Add(_fcm2);
                    }
                    outcome.Conflicten.Add(new ConflictModel()
                    {
                        FaseVan = _fcm1.Naam, FaseNaar = _fcm2.Naam, Waarde = conf
                    });
                }

                if (dz != MessageBoxResult.No &&
                    Regex.IsMatch(line, @"^\s+D_code\[") || Regex.IsMatch(line, @"^\s+TBG_max\["))
                {
                    if (dz != MessageBoxResult.Yes)
                    {
                        dz = MessageBox.Show("Detectoren zoeken in tab.c?", "Detectoren zoeken?", MessageBoxButton.YesNo);
                        if (dz == MessageBoxResult.No)
                        {
                            continue;
                        }
                    }
                    string d  = Regex.Replace(line, @"^\s*D_code\s*\[\s*(d[0-9a-zA-Z_]+).*", "$1");
                    string dd = Regex.Replace(d, @"^d", "");
                    if (dd.StartsWith("r"))
                    {
                        dd = "k" + dd.Substring(1);
                    }
                    var tdb = -1;
                    var tdh = -1;
                    var tog = -1;
                    var tbg = -1;
                    if (Regex.IsMatch(line, @"TDB_max"))
                    {
                        var mtdb = Regex.Match(line, @"TDB_max\[.*?\]\s*=\s*([0-9]+);");
                        if (mtdb.Groups.Count > 1)
                        {
                            int.TryParse(mtdb.Groups[1].Value, out tdb);
                        }
                    }
                    if (Regex.IsMatch(line, @"TDH_max"))
                    {
                        var mtdb = Regex.Match(line, @"TDH_max\[.*?\]\s*=\s*([0-9]+);");
                        if (mtdb.Groups.Count > 1)
                        {
                            int.TryParse(mtdb.Groups[1].Value, out tdh);
                        }
                    }
                    if (Regex.IsMatch(line, @"TBG_max"))
                    {
                        var mtdb = Regex.Match(line, @"TBG_max\[.*?\]\s*=\s*([0-9]+);");
                        if (mtdb.Groups.Count > 1)
                        {
                            int.TryParse(mtdb.Groups[1].Value, out tbg);
                        }
                    }
                    if (Regex.IsMatch(line, @"TOG_max"))
                    {
                        var mtdb = Regex.Match(line, @"TOG_max\[.*?\]\s*=\s*([0-9]+);");
                        if (mtdb.Groups.Count > 1)
                        {
                            int.TryParse(mtdb.Groups[1].Value, out tog);
                        }
                    }
                    var nd = new DetectorModel
                    {
                        Naam = dd, Rijstrook = 1
                    };
                    if (tdb != -1)
                    {
                        nd.TDB = tdb;
                    }
                    if (tdh != -1)
                    {
                        nd.TDH = tdh;
                    }
                    if (tbg != -1)
                    {
                        nd.TBG = tbg;
                    }
                    if (tog != -1)
                    {
                        nd.TOG = tog;
                    }
                    if (nd.Naam.StartsWith("k"))
                    {
                        nd.Type      = DetectorTypeEnum.Knop;
                        nd.Aanvraag  = DetectorAanvraagTypeEnum.RoodGeel;
                        nd.Verlengen = DetectorVerlengenTypeEnum.Geen;
                    }
                    else if (Regex.IsMatch(nd.Naam, "1[a-z]?$"))
                    {
                        nd.Type           = DetectorTypeEnum.Kop;
                        nd.Aanvraag       = DetectorAanvraagTypeEnum.RnietTRG;
                        nd.AanvraagDirect = true;
                        nd.Verlengen      = DetectorVerlengenTypeEnum.Kopmax;
                    }
                    else if (Regex.IsMatch(nd.Naam, "2[a-z]?$"))
                    {
                        nd.Type      = DetectorTypeEnum.Lang;
                        nd.Aanvraag  = DetectorAanvraagTypeEnum.RnietTRG;
                        nd.Verlengen = DetectorVerlengenTypeEnum.MK2;
                    }
                    else if (Regex.IsMatch(nd.Naam, "3[a-z]?$"))
                    {
                        nd.Type      = DetectorTypeEnum.Verweg;
                        nd.Aanvraag  = DetectorAanvraagTypeEnum.RnietTRG;
                        nd.Verlengen = DetectorVerlengenTypeEnum.MK2;
                    }
                    else
                    {
                        nd.Type     = DetectorTypeEnum.Overig;
                        nd.Aanvraag = DetectorAanvraagTypeEnum.Uit;
                    }
                    foreach (var fc in outcome.Fasen)
                    {
                        if (fc.Naam.Length < nd.Naam.Length &&
                            Regex.IsMatch(nd.Naam, $@"^k?{fc.Naam}"))
                        {
                            fc.Detectoren.Add(nd);
                        }
                    }
                }
            }
            return(outcome);
        }
Ejemplo n.º 15
0
 public DetectorSim(DetectorModel model)
 {
     Model = model;
 }
        public static void GenerateXml(TLCGen.Models.ControllerModel model, string pathname)
        {
            try
            {
                var newmodel = new ControllerModel();
                newmodel.Data.Name = model.Data.Naam;
                newmodel.Data.MaximumWaitingTime = model.Data.Fasebewaking;

                foreach (var sg in model.Fasen)
                {
                    var nsg = new SignalGroupModel(sg.Naam, sg.TGG, sg.TFG, 250, sg.TGL, sg.TRG, sg.TRG, sg.Kopmax);
                    nsg.ExtendGreenFree = sg.Meeverlengen == NooitAltijdAanUitEnum.Altijd ||
                                          sg.Meeverlengen == NooitAltijdAanUitEnum.SchAan;
                    nsg.WaitGreen = sg.Wachtgroen == NooitAltijdAanUitEnum.Altijd ||
                                    sg.Wachtgroen == NooitAltijdAanUitEnum.SchAan;
                    nsg.FixedRequest = (sg.VasteAanvraag == NooitAltijdAanUitEnum.Altijd ||
                                        sg.VasteAanvraag == NooitAltijdAanUitEnum.SchAan) ? FixedRequestTypeEnum.Red : FixedRequestTypeEnum.None;
                    var coor = sg.BitmapCoordinaten.FirstOrDefault();
                    if (coor != null)
                    {
                        nsg.Coordinates = new System.Drawing.Point(coor.X, coor.Y);
                    }
                    foreach (var d in sg.Detectoren)
                    {
                        var nd = new DetectorModel(d.Naam, ConvertRequestType(d.Aanvraag),
                                                   ConvertExtendingType(d.Verlengen),
                                                   d.TDB ?? 0, d.TDH ?? 0, d.TBG ?? 0, d.TDH ?? 0)
                        {
                            Type = ConvertDetectorType(d.Type)
                        };
                        var dcoor = d.BitmapCoordinaten.FirstOrDefault();
                        if (dcoor != null)
                        {
                            nd.Coordinates = new System.Drawing.Point(dcoor.X, dcoor.Y);
                        }
                        nsg.Detectors.Add(nd);
                    }
                    newmodel.SignalGroups.Add(nsg);
                }
                foreach (var c in model.InterSignaalGroep.Conflicten)
                {
                    var sgf = newmodel.SignalGroups.First(x => x.Name == c.FaseVan);
                    sgf.InterGreenTimes.Add(new InterGreenTimeModel(sgf.Name, c.FaseNaar, c.Waarde));
                }
                foreach (var ml in model.ModuleMolen.Modules)
                {
                    var nml = new BlockModel(ml.Naam);
                    foreach (var mlsg in ml.Fasen)
                    {
                        nml.AddSignalGroup(mlsg.FaseCyclus);
                    }
                    newmodel.BlockStructure.Blocks.Add(nml);
                }
                foreach (var msg in model.ModuleMolen.FasenModuleData)
                {
                    var newmsg = newmodel.BlockStructure.Blocks.SelectMany(x => x.SignalGroups).First(x => x.SignalGroupName == msg.FaseCyclus);
                    if (newmsg != null)
                    {
                        newmsg.BlocksAheadAllowed = msg.ModulenVooruit;
                        newmsg.AlternativeSpace   = msg.AlternatieveRuimte * 100;
                    }
                }
                newmodel.BlockStructure.WaitingBlockName = model.ModuleMolen.WachtModule;

                var filename = Path.Combine(pathname, model.Data.Naam + "_tlcprof.xml");

                var xmlWriterSettings = new XmlWriterSettings
                {
                    Indent          = true,
                    NewLineHandling = NewLineHandling.Entitize
                };
                var ser = new DataContractSerializer(typeof(ControllerModel), new DataContractSerializerSettings()
                {
                    SerializeReadOnlyTypes = true
                });
                using (var fs = new FileStream(filename, FileMode.Create))
                    using (var xmlWriter = XmlWriter.Create(fs, xmlWriterSettings))
                    {
                        ser.WriteObject(xmlWriter, newmodel);
                        xmlWriter.Close();
                    }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString(), "TLCProFCodeGenerator: Error occured");
            }
        }
Ejemplo n.º 17
0
 public DetectorViewModel(DetectorModel detector)
 {
     _Detector = detector;
 }
Ejemplo n.º 18
0
 public static string GetDefine(this DetectorModel d)
 {
     return(CCOLGeneratorSettingsProvider.Default.GetPrefix("d") + d.Naam);
 }
Ejemplo n.º 19
0
        public override string GetCode(ControllerModel c, CCOLCodeTypeEnum type, string ts)
        {
            var fcs = c.Fasen.Where(x => x.SeniorenIngreep != Models.Enumerations.NooitAltijdAanUitEnum.Nooit &&
                                    x.Detectoren.Any(x2 => x2.Type == Models.Enumerations.DetectorTypeEnum.KnopBinnen || x2.Type == Models.Enumerations.DetectorTypeEnum.KnopBuiten)).ToList();

            if (!fcs.Any())
            {
                return(null);
            }

            var sb = new StringBuilder();

            switch (type)
            {
            case CCOLCodeTypeEnum.RegCPreApplication:
                sb.AppendLine($"{ts}/* Reset BITs senioren ingreep */");
                sb.AppendLine($"{ts}for (fc = 0; fc < FCMAX; ++fc)");
                sb.AppendLine($"{ts}{{");
                sb.AppendLine($"{ts}    if (US_type[fc] & VTG_type) RW[fc] &= ~BIT7;");
                sb.AppendLine($"{ts}}}");
                break;

            case CCOLCodeTypeEnum.RegCMaxgroen:
                sb.AppendLine($"{ts}/* Seniorengroen (percentage van TFG extra als WG) */");
                foreach (var fc in fcs)
                {
                    var           dks      = fc.Detectoren.Where(x => x.Type == Models.Enumerations.DetectorTypeEnum.KnopBuiten || x.Type == Models.Enumerations.DetectorTypeEnum.KnopBinnen).ToList();
                    var           dk1      = dks.FirstOrDefault();
                    DetectorModel dk2      = ((dks.Count() > 1) ? dks[1] : null);
                    var           nl_extra = c.InterSignaalGroep.Nalopen.Where(x => x.Type == Models.Enumerations.NaloopTypeEnum.StartGroen && x.FaseVan == fc.Naam);
                    var           extra_d  = "";
                    sb.Append($"{ts}");
                    if (fc.SeniorenIngreep != Models.Enumerations.NooitAltijdAanUitEnum.Altijd)
                    {
                        sb.Append($"if (SCH[{_schpf}{_schsi}{fc.Naam}]) ");
                    }
                    if (nl_extra.Any())
                    {
                        foreach (var nl in nl_extra)
                        {
                            var tnl = _tnlsg;
                            if (nl.DetectieAfhankelijk)
                            {
                                tnl = _tnlsgd;
                            }
                            extra_d += _tpf + tnl + nl.FaseVan + nl.FaseNaar + ", ";
                        }
                        extra_d += "END";
                    }
                    else
                    {
                        extra_d = "END";
                    }
                    sb.AppendLine($"SeniorenGroen({_fcpf}{fc.Naam}, " +
                                  $"{(dk1 != null ? $"{_dpf}{dk1.Naam}" : "NG")}, " +
                                  $"{(dk1 != null ? $"{_tpf}{_tdbsiexgr}{_dpf}{dk1.Naam}" : "NG")}, " +
                                  $"{(dk2 != null ? $"{_dpf}{dk2.Naam}" : "NG")}, " +
                                  $"{(dk2 != null ? $"{_tpf}{_tdbsiexgr}{_dpf}{dk2.Naam}" : "NG")}, " +
                                  $"{_prmpf}{_prmsiexgrperc}{fc.Naam}, " +
                                  $"{_hpf}{_hsiexgr}{fc.Naam}, " +
                                  $"{_tpf}{_tsiexgr}{fc.Naam}, " +
                                  $"{extra_d});");
                }
                break;
            }

            return(sb.ToString());
        }