This commit is contained in:
f1iwq2
2021-09-17 11:10:26 +02:00
parent e290a73dc1
commit 72b4c8563f
9 changed files with 104 additions and 102 deletions

View File

@@ -1780,7 +1780,7 @@ object FormConfig: TFormConfig
Top = 8 Top = 8
Width = 633 Width = 633
Height = 457 Height = 457
ActivePage = TabSheetAutonome ActivePage = TabSheetAig
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack Font.Color = clBlack
Font.Height = -11 Font.Height = -11
@@ -2474,7 +2474,7 @@ object FormConfig: TFormConfig
Width = 137 Width = 137
Height = 17 Height = 17
Hint = 'Cocher si l'#39'aiguillage est invers'#233' dans CDM rail' Hint = 'Cocher si l'#39'aiguillage est invers'#233' dans CDM rail'
Caption = 'Inversion de l'#39#233'tat CDM' Caption = 'Inversion du pilotage'
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
TabOrder = 1 TabOrder = 1
@@ -2614,6 +2614,8 @@ object FormConfig: TFormConfig
Top = 20 Top = 20
Width = 41 Width = 41
Height = 21 Height = 21
ParentShowHint = False
ShowHint = True
TabOrder = 0 TabOrder = 0
OnKeyPress = Edit_HGKeyPress OnKeyPress = Edit_HGKeyPress
end end
@@ -2622,6 +2624,8 @@ object FormConfig: TFormConfig
Top = 44 Top = 44
Width = 41 Width = 41
Height = 21 Height = 21
ParentShowHint = False
ShowHint = True
TabOrder = 1 TabOrder = 1
OnKeyPress = EditPointe_BGKeyPress OnKeyPress = EditPointe_BGKeyPress
end end
@@ -2662,6 +2666,8 @@ object FormConfig: TFormConfig
Top = 20 Top = 20
Width = 33 Width = 33
Height = 21 Height = 21
ParentShowHint = False
ShowHint = True
TabOrder = 6 TabOrder = 6
OnKeyPress = EditDevie_HDKeyPress OnKeyPress = EditDevie_HDKeyPress
end end
@@ -2670,6 +2676,8 @@ object FormConfig: TFormConfig
Top = 44 Top = 44
Width = 33 Width = 33
Height = 21 Height = 21
ParentShowHint = False
ShowHint = True
TabOrder = 7 TabOrder = 7
OnKeyPress = EditDroit_BDKeyPress OnKeyPress = EditDroit_BDKeyPress
end end
@@ -2723,45 +2731,33 @@ object FormConfig: TFormConfig
TabOrder = 7 TabOrder = 7
object Label37: TLabel object Label37: TLabel
Left = 8 Left = 8
Top = 18 Top = 26
Width = 66 Width = 66
Height = 13 Height = 13
Caption = 'D'#233'vi'#233' ou droit' Caption = 'D'#233'vi'#233' ou droit'
end end
object Label38: TLabel object Label38: TLabel
Left = 8 Left = 8
Top = 42 Top = 50
Width = 129 Width = 129
Height = 13 Height = 13
Caption = 'Temporisation (1/10'#232'me s)' Caption = 'Temporisation (1/10'#232'me s)'
end end
object EditTempo10: TEdit object EditTempo10: TEdit
Left = 160 Left = 160
Top = 40 Top = 48
Width = 41 Width = 41
Height = 21 Height = 21
TabOrder = 0 TabOrder = 0
OnKeyPress = EditTempo10KeyPress OnKeyPress = EditTempo10KeyPress
end end
object CheckInvInit: TCheckBox
Left = 8
Top = 64
Width = 153
Height = 17
Hint = 'Inverse le pilotage de l'#39'aiguillage'
Caption = 'Pilotage invers'#233
ParentShowHint = False
ShowHint = True
TabOrder = 1
OnClick = CheckInvInitClick
end
object ComboBoxDD: TComboBox object ComboBoxDD: TComboBox
Left = 160 Left = 160
Top = 16 Top = 24
Width = 97 Width = 97
Height = 21 Height = 21
ItemHeight = 13 ItemHeight = 13
TabOrder = 2 TabOrder = 1
OnChange = ComboBoxDDChange OnChange = ComboBoxDDChange
Items.Strings = ( Items.Strings = (
'D'#233'vi'#233 'D'#233'vi'#233
@@ -3050,7 +3046,7 @@ object FormConfig: TFormConfig
Top = 48 Top = 48
Width = 129 Width = 129
Height = 21 Height = 21
ItemHeight = 13 ItemHeight = 0
TabOrder = 1 TabOrder = 1
OnChange = ComboBoxDecChange OnChange = ComboBoxDecChange
end end
@@ -3067,6 +3063,8 @@ object FormConfig: TFormConfig
Top = 120 Top = 120
Width = 41 Width = 41
Height = 21 Height = 21
ParentShowHint = False
ShowHint = True
TabOrder = 4 TabOrder = 4
OnKeyPress = EditSuiv1KeyPress OnKeyPress = EditSuiv1KeyPress
end end
@@ -3083,6 +3081,8 @@ object FormConfig: TFormConfig
Top = 144 Top = 144
Width = 41 Width = 41
Height = 21 Height = 21
ParentShowHint = False
ShowHint = True
TabOrder = 6 TabOrder = 6
OnKeyPress = EditSuiv2KeyPress OnKeyPress = EditSuiv2KeyPress
end end
@@ -3099,6 +3099,8 @@ object FormConfig: TFormConfig
Top = 168 Top = 168
Width = 41 Width = 41
Height = 21 Height = 21
ParentShowHint = False
ShowHint = True
TabOrder = 8 TabOrder = 8
OnKeyPress = EditSuiv3KeyPress OnKeyPress = EditSuiv3KeyPress
end end
@@ -3115,6 +3117,8 @@ object FormConfig: TFormConfig
Top = 192 Top = 192
Width = 41 Width = 41
Height = 21 Height = 21
ParentShowHint = False
ShowHint = True
TabOrder = 10 TabOrder = 10
OnKeyPress = EditSuiv4KeyPress OnKeyPress = EditSuiv4KeyPress
end end

View File

@@ -219,7 +219,6 @@ type
Label37: TLabel; Label37: TLabel;
Label38: TLabel; Label38: TLabel;
EditTempo10: TEdit; EditTempo10: TEdit;
CheckInvInit: TCheckBox;
Label39: TLabel; Label39: TLabel;
EditV4F: TEdit; EditV4F: TEdit;
EditV4O: TEdit; EditV4O: TEdit;
@@ -324,7 +323,6 @@ type
const const
// variables du fichier de configuration "config-gl.cfg" // variables du fichier de configuration "config-gl.cfg"
section_init='[section_init]';
nb_det_dist_ch='nb_det_dist'; nb_det_dist_ch='nb_det_dist';
IpV4_PC_ch='IpV4_PC'; IpV4_PC_ch='IpV4_PC';
retro_ch='retro'; retro_ch='retro';
@@ -570,8 +568,7 @@ begin
if index=0 then exit; if index=0 then exit;
s:=IntToSTR(aiguillage[index].Adresse)+','; s:=IntToSTR(aiguillage[index].Adresse)+',';
s:=s+IntToSTR(aiguillage[index].posInit)+','; s:=s+IntToSTR(aiguillage[index].posInit)+',';
s:=s+IntToSTR(aiguillage[index].temps)+','; s:=s+IntToSTR(aiguillage[index].temps);
s:=s+intToSTR(aiguillage[index].inversion);
encode_init_aig:=s; encode_init_aig:=s;
end; end;
@@ -644,9 +641,8 @@ begin
// valeur d'initialisation // valeur d'initialisation
s:=s+',INIT('; s:=s+',INIT(';
s:=s+IntToSTR(aiguillage[index].posInit)+','; s:=s+IntToSTR(aiguillage[index].posInit)+',';
s:=s+IntToSTR(aiguillage[index].temps)+','; s:=s+IntToSTR(aiguillage[index].temps)+')';
s:=s+intToSTR(aiguillage[index].inversion)+')';
encode_aig:=s; encode_aig:=s;
end; end;
@@ -756,6 +752,20 @@ begin
end; end;
end; end;
//
function TypeElAIg_to_char(adr : integer;c : char) : string;
var s: string;
begin
case c of
'Z',#0 : s:='détecteur '+IntToSTR(adr);
'P' : s:='pointe de l''aiguillage '+IntToSTR(adr);
'S' : s:='position déviée de l''aiguillage '+IntToSTR(adr);
'D' : s:='position droite de l''aiguillage '+IntToSTR(adr);
else s:='Erreur';
end;
TypeElAIg_to_char:=s;
end;
// transforme le signal du tableau feux[] en texte // transforme le signal du tableau feux[] en texte
function encode_sig_feux(i : integer): string; function encode_sig_feux(i : integer): string;
var s : string; var s : string;
@@ -1746,11 +1756,13 @@ begin
b:=aiguillage[Index_Aig(adresse)].ADroitB; b:=aiguillage[Index_Aig(adresse)].ADroitB;
if b='Z' then b:=#0; if b='Z' then b:=#0;
Edit_HG.Text:=intToSTR(aiguillage[index].ADroit)+b; Edit_HG.Text:=intToSTR(aiguillage[index].ADroit)+b;
Edit_HG.Hint:=TypeElAIg_to_char(aiguillage[index].Adroit,b);
// champ en bas à gauche // champ en bas à gauche
b:=aiguillage[Index].ADevieB; b:=aiguillage[Index].ADevieB;
if b='Z' then b:=#0; if b='Z' then b:=#0;
EditPointe_BG.Text:=intToSTR(aiguillage[index].ADevie)+b; EditPointe_BG.Text:=intToSTR(aiguillage[index].ADevie)+b;
EditPointe_BG.Hint:=TypeElAIg_to_char(aiguillage[index].ADevie,b);
// milieu haut gauche // milieu haut gauche
EditP1.Text:=intToSTR(adresse)+aiguillage[Index].DDroitB; EditP1.Text:=intToSTR(adresse)+aiguillage[Index].DDroitB;
@@ -1764,10 +1776,12 @@ begin
// droit haut // droit haut
EditDevie_HD.Text:=intToSTR(aiguillage[id2].Adevie)+aiguillage[id2].AdevieB; EditDevie_HD.Text:=intToSTR(aiguillage[id2].Adevie)+aiguillage[id2].AdevieB;
EditDevie_HD.Hint:=TypeElAIg_to_char(aiguillage[id2].Adevie,aiguillage[id2].AdevieB);
LabelTJD1.Caption:=IntToSTR(adresse); LabelTJD1.Caption:=IntToSTR(adresse);
// droit bas // droit bas
EditDroit_BD.Text:=intToSTR(aiguillage[id2].Adroit)+aiguillage[Id2].AdroitB; EditDroit_BD.Text:=intToSTR(aiguillage[id2].Adroit)+aiguillage[Id2].AdroitB;
EditDroit_BD.Hint:=TypeElAIg_to_char(aiguillage[id2].ADroit,aiguillage[Id2].AdroitB);
LabelTJD2.Caption:=IntToSTR(adr2); LabelTJD2.Caption:=IntToSTR(adr2);
CheckInverse.checked:=aiguillage[Index_Aig(adresse)].inversionCDM=1; CheckInverse.checked:=aiguillage[Index_Aig(adresse)].inversionCDM=1;
@@ -1807,8 +1821,13 @@ begin
if aiguillage[Index].vitesse=60 then begin RadioButtonSans.checked:=false;RadioButton30kmh.checked:=false;RadioButton60kmh.checked:=true;end; if aiguillage[Index].vitesse=60 then begin RadioButtonSans.checked:=false;RadioButton30kmh.checked:=false;RadioButton60kmh.checked:=true;end;
EditPointe_BG.Text:=intToSTR(aiguillage[index].Apointe)+aiguillage[index].ApointeB; EditPointe_BG.Text:=intToSTR(aiguillage[index].Apointe)+aiguillage[index].ApointeB;
EditPointe_BG.Hint:=TypeElAIg_to_char(aiguillage[index].Apointe,aiguillage[index].ApointeB);
EditDevie_HD.Text:=intToSTR(aiguillage[index].Adevie)+aiguillage[index].AdevieB; EditDevie_HD.Text:=intToSTR(aiguillage[index].Adevie)+aiguillage[index].AdevieB;
EditDevie_HD.Hint:=TypeElAIg_to_char(aiguillage[index].Adevie,aiguillage[index].AdevieB);
EditDroit_BD.Text:=intToSTR(aiguillage[index].Adroit)+aiguillage[index].AdroitB; EditDroit_BD.Text:=intToSTR(aiguillage[index].Adroit)+aiguillage[index].AdroitB;
EditDroit_BD.Hint:=TypeElAIg_to_char(aiguillage[index].Adroit,aiguillage[index].AdroitB);
if tri then if tri then
begin begin
ComboBoxAig.ItemIndex:=3; // 0=n'existe pas 1=aiguillage 2=TJD 3=TJS 4=aiguillage triple ComboBoxAig.ItemIndex:=3; // 0=n'existe pas 1=aiguillage 2=TJD 3=TJS 4=aiguillage triple
@@ -1835,7 +1854,6 @@ begin
if position=const_devie then formconfig.ComboBoxDD.ItemIndex:=0; if position=const_devie then formconfig.ComboBoxDD.ItemIndex:=0;
formconfig.EditTempo10.text:=InttoSTr(aiguillage[index].temps); formconfig.EditTempo10.text:=InttoSTr(aiguillage[index].temps);
formconfig.EditTempo10.text:=InttoSTr(aiguillage[index].temps); formconfig.EditTempo10.text:=InttoSTr(aiguillage[index].temps);
formconfig.CheckInvInit.Checked:=aiguillage[index].inversion=1;
clicListe:=false; clicListe:=false;
end; end;
@@ -1895,6 +1913,22 @@ begin
end; end;
end; end;
// transforme une chaine "élément" en une chaine affichable pour le hint
// ex chaine_element("A32")=aiguillage 32
function chaine_element(Equip : Tequipement;adr : integer) : string;
var s: string;
begin
case Equip of
aig : s:='Aiguillage ';
tjd : s:='Tjd ';
tjs : s:='Tjs ';
triple : s:='Aiguillage triple ';
det : s:='Détecteur ';
else s:='Inconnu ';
end;
result:=s+intToSTR(adr);
end;
// mise à jour des champs du signal d'après le tableau feux // mise à jour des champs du signal d'après le tableau feux
Procedure aff_champs_sig_feux(index : integer); Procedure aff_champs_sig_feux(index : integer);
var i,j,l,d,k,nc,condCarre : integer; var i,j,l,d,k,nc,condCarre : integer;
@@ -1946,29 +1980,35 @@ begin
LabelDetAss.visible:=true; LabelDetAss.visible:=true;
LabelElSuiv.visible:=true; LabelElSuiv.visible:=true;
EditDet1.Visible:=true;EditDet2.Visible:=true;EditDet3.Visible:=true;EditDet4.Visible:=true; EditDet1.Visible:=true;EditDet2.Visible:=true;EditDet3.Visible:=true;EditDet4.Visible:=true;
EditSuiv1.Visible:=true;EditSuiv2.Visible:=true;EditSuiv3.Visible:=true;EditSuiv4.Visible:=true; EditSuiv1.Visible:=true;EditSuiv2.Visible:=true;EditSuiv3.Visible:=true;EditSuiv4.Visible:=true;
Label24.Visible:=true; Label25.Visible:=true;Label26.Visible:=true;Label27.Visible:=true; Label24.Visible:=true; Label25.Visible:=true;Label26.Visible:=true;Label27.Visible:=true;
CheckVerrouCarre.Visible:=true; CheckVerrouCarre.Visible:=true;
EditDet1.Text:=IntToSTR(feux[i].Adr_det1); EditDet1.Text:=IntToSTR(feux[i].Adr_det1);
EditSuiv1.Text:=TypeEl_To_char(feux[i].Btype_suiv1)+IntToSTR(feux[i].Adr_el_suiv1); EditSuiv1.Text:=TypeEl_To_char(feux[i].Btype_suiv1)+IntToSTR(feux[i].Adr_el_suiv1);
EditSuiv1.Hint:=chaine_element(feux[i].Btype_suiv1,feux[i].Adr_el_suiv1);
j:=feux[i].Adr_det2; j:=feux[i].Adr_det2;
if j<>0 then if j<>0 then
begin begin
Editdet2.Text:=IntToSTR(j);EditSuiv2.Text:=TypeEl_To_char(feux[i].Btype_suiv2)+IntToSTR(feux[i].Adr_el_suiv2); Editdet2.Text:=IntToSTR(j);EditSuiv2.Text:=TypeEl_To_char(feux[i].Btype_suiv2)+IntToSTR(feux[i].Adr_el_suiv2);
end else begin EditDet2.Text:='';EditSuiv2.Text:='';end; EditSuiv2.Hint:=chaine_element(feux[i].Btype_suiv2,feux[i].Adr_el_suiv2);
end else begin EditDet2.Text:='';EditSuiv2.Text:='';EditSuiv2.Hint:='';end;
j:=feux[i].Adr_det3; j:=feux[i].Adr_det3;
if j<>0 then if j<>0 then
begin begin
EditDet3.Text:=IntToSTR(j);EditSuiv3.Text:=TypeEl_To_char(feux[i].Btype_suiv3)+IntToSTR(feux[i].Adr_el_suiv3); EditDet3.Text:=IntToSTR(j);EditSuiv3.Text:=TypeEl_To_char(feux[i].Btype_suiv3)+IntToSTR(feux[i].Adr_el_suiv3);
EditSuiv3.Hint:=chaine_element(feux[i].Btype_suiv3,feux[i].Adr_el_suiv3);
end end
else begin EditDet3.Text:='';EditSuiv3.Text:='';end; else begin EditDet3.Text:='';EditSuiv3.Text:='';EditSuiv3.Hint:='';end;
j:=feux[i].Adr_det4; j:=feux[i].Adr_det4;
if j<>0 then if j<>0 then
begin begin
EditDet4.Text:=IntToSTR(j);EditSuiv4.Text:=TypeEl_To_char(feux[i].Btype_suiv4)+IntToSTR(feux[i].Adr_el_suiv4); EditDet4.Text:=IntToSTR(j);EditSuiv4.Text:=TypeEl_To_char(feux[i].Btype_suiv4)+IntToSTR(feux[i].Adr_el_suiv4);
EditSuiv4.Hint:=chaine_element(feux[i].Btype_suiv4,feux[i].Adr_el_suiv4);
end end
else begin EditDet4.Text:='';EditSuiv4.Text:='';end; else begin EditDet4.Text:='';EditSuiv4.Text:='';EditSuiv4.Hint:='';end;
checkVerrouCarre.Checked:=feux[i].VerrouCarre; checkVerrouCarre.Checked:=feux[i].VerrouCarre;
checkBoxFB.Checked:=feux[i].FeuBlanc; checkBoxFB.Checked:=feux[i].FeuBlanc;
@@ -2601,7 +2641,7 @@ begin
EditAdrSig.Color:=clWindow; EditAdrSig.Color:=clWindow;
RE_ColorLine(Formconfig.RichSig,ligneClicSig,Clyellow); RE_ColorLine(Formconfig.RichSig,ligneClicSig,Clyellow);
aff_champs_sig_feux(lc+1); aff_champs_sig_feux(lc+1); // affiche les champs du feu
clicliste:=false; clicliste:=false;
end; end;
@@ -4048,6 +4088,14 @@ begin
ok:=false; ok:=false;
Affiche('Erreur : Détecteur '+intToSTR(i)+' non existant mais associé au signal '+IntToSTR(feux[j].adresse),clred); Affiche('Erreur : Détecteur '+intToSTR(i)+' non existant mais associé au signal '+IntToSTR(feux[j].adresse),clred);
end; end;
end
else
begin
if feux[j].Aspect<10 then
begin
ok:=false;
Affiche('Erreur : Adresse de détecteur nul sur signal '+IntToSTR(feux[j].adresse),clred);
end;
end; end;
i:=feux[j].Adr_det2; i:=feux[j].Adr_det2;
@@ -5037,7 +5085,6 @@ begin
if affevt then affiche('Evt change InvInit',clyellow); if affevt then affiche('Evt change InvInit',clyellow);
s:=formconfig.RichAig.Lines[ligneclicAig]; s:=formconfig.RichAig.Lines[ligneclicAig];
Val(s,adrAig,erreur); Val(s,adrAig,erreur);
if checkInvInit.Checked then aiguillage[Index_Aig(adraig)].Inversion:=1 else aiguillage[Index_Aig(adraig)].Inversion:=0;
// réencoder la ligne // réencoder la ligne
s:=encode_aig(Index_Aig(AdrAig)); s:=encode_aig(Index_Aig(AdrAig));
formconfig.RichAig.Lines[ligneclicAig]:=s; formconfig.RichAig.Lines[ligneclicAig]:=s;

Binary file not shown.

View File

@@ -216,13 +216,12 @@ TBranche = record
position, // position actuelle : 1=dévié 2=droit (centrale LENZ) position, // position actuelle : 1=dévié 2=droit (centrale LENZ)
posInit, // position d'initialisation 1=dévié 2=droit 9=non positionné posInit, // position d'initialisation 1=dévié 2=droit 9=non positionné
Adrtriple, // 2eme adresse pour un aiguillage triple Adrtriple, // 2eme adresse pour un aiguillage triple
temps, // temps de pilotage (durée de l'impulsion en x 100 ms) temps, // temps de pilotage (durée de l'impulsion en x 100 ms
inversion : integer; // positionné dans fichier config_gl section_init
InversionCDM : integer ; // pour les aiguillages déclarés inversés dans CDM, utilisé en mode autonome (paramètre I1) InversionCDM : integer ; // pour les aiguillages déclarés inversés dans CDM, utilisé en mode autonome (paramètre I1)
vitesse : integer; // vitesse de franchissement de l'aiguillage en position déviée (60 ou 90) vitesse : integer; // vitesse de franchissement de l'aiguillage en position déviée (60 ou 90)
ADroit : integer ; // (TJD:identifiant extérieur) connecté sur la position droite en talon ADroit : integer ; // (TJD:identifiant extérieur) connecté sur la position droite en talon
ADroitB : char ; // id de branche pour TJD ADroitB : char ; // P D S Z
ADevie : integer ; // (TJD:identifiant extérieur) adresse de l'élément connecté en position déviée ADevie : integer ; // (TJD:identifiant extérieur) adresse de l'élément connecté en position déviée
ADevieB : char; // caractère (D ou S)si aiguillage de l'élément connecté en position déviée ADevieB : char; // caractère (D ou S)si aiguillage de l'élément connecté en position déviée
@@ -2634,7 +2633,7 @@ var s,sa,chaine,SOrigine: string;
pds,trouve_section_branche,trouve_section_sig,trouve_section_act,compile_init_cfg : boolean; pds,trouve_section_branche,trouve_section_sig,trouve_section_act,compile_init_cfg : boolean;
bd,virgule,i_detect,i,erreur,aig2,detect,offset,index, adresse,j,position,temporisation,invers,indexPointe,indexDevie,indexDroit, bd,virgule,i_detect,i,erreur,aig2,detect,offset,index, adresse,j,position,temporisation,invers,indexPointe,indexDevie,indexDroit,
ComptEl,Compt_IT,Num_Element,k,modele,adr,adr2,erreur2,l,t,Nligne,postriple,itl, ComptEl,Compt_IT,Num_Element,k,modele,adr,adr2,erreur2,l,t,Nligne,postriple,itl,
postjd,postjs,nv,it,Num_Champ,asp,inversion,adraig : integer; postjd,postjs,nv,it,Num_Champ,asp,adraig : integer;
label ici1,ici2,ici3,ici4 ; label ici1,ici2,ici3,ici4 ;
function lit_ligne : string ; function lit_ligne : string ;
@@ -2654,41 +2653,6 @@ var s,sa,chaine,SOrigine: string;
lit_ligne:=s; lit_ligne:=s;
end; end;
procedure compile_section_init;
var index : integer;
begin
//initialisation aiguillages
repeat
s:=lit_ligne;
j:=pos(',',s);
if j>1 then
begin
begin
Val(s,adresse,erreur);
Delete(s,1,j); // adresse aiguillage
if (adresse>0) and (AvecInitAiguillages) then
begin
j:=pos(',',s);
Val(s,position,erreur);
Delete(S,1,j);// position aiguillage
if (position<1) or (position>2) then position:=1;
index:=Index_Aig(adresse);
aiguillage[index].posInit:=position;
// temporisation aiguillage
j:=pos(',',s);if j=0 then j:=length(s);
val(s,temporisation,erreur);Delete(S,1,j);
if (temporisation<0) or (temporisation>10) then temporisation:=5;
aiguillage[index].temps:=temporisation;
val(s,invers,erreur);
if (invers<0) or (invers>1) then invers:=0; // inversion commande
aiguillage[index].inversion:=invers;
end;
end;
end;
until (adresse=0);
end;
begin begin
compile_init_cfg:=true; compile_init_cfg:=true;
@@ -2723,7 +2687,6 @@ begin
Aiguillage[i].position:=const_inconnu; // position inconnue Aiguillage[i].position:=const_inconnu; // position inconnue
Aiguillage[i].PosInit:=const_inconnu; // position inconnue Aiguillage[i].PosInit:=const_inconnu; // position inconnue
Aiguillage[i].temps:=5 ; Aiguillage[i].temps:=5 ;
Aiguillage[i].inversion:=0;
Aiguillage[i].inversionCDM:=0; Aiguillage[i].inversionCDM:=0;
end; end;
for i:=1 to 1024 do for i:=1 to 1024 do
@@ -3005,11 +2968,11 @@ begin
i:=pos(',',enregistrement); i:=pos(',',enregistrement);
if i<>0 then delete(enregistrement,1,i); if i<>0 then delete(enregistrement,1,i);
Val(enregistrement,j,erreur); Val(enregistrement,j,erreur);
i:=pos(',',enregistrement); //i:=pos(',',enregistrement);
if i<>0 then delete(enregistrement,1,i); //if i<>0 then delete(enregistrement,1,i);
Val(enregistrement,inversion,erreur); //Val(enregistrement,inversion,erreur);
aiguillage[maxaiguillage].temps:=j; aiguillage[maxaiguillage].temps:=j;
aiguillage[maxaiguillage].inversion:=inversion; //aiguillage[maxaiguillage].inversion:=inversion;
aiguillage[maxaiguillage].posinit:=position; aiguillage[maxaiguillage].posinit:=position;
i:=pos(')',enregistrement); i:=pos(')',enregistrement);
delete(enregistrement,1,i); delete(enregistrement,1,i);
@@ -3427,21 +3390,6 @@ begin
val(s,Tempo_Aig,erreur); val(s,Tempo_Aig,erreur);
end; end;
i:=pos(uppercase(section_init),s);
if (i<>0) then
begin
if compile_init_cfg then
begin
trouve_sec_init:=true;
compile_section_init;
inc(nv);
Affiche('compilation de la section [init aig]',cllime);
end;
Affiche('Attention la section [init_aig] n''est plus gérée, elle est déplacée dans la configuration des aiguillages',clWhite);
Affiche('Veuillez regénérer les fichiers de configuration: ',clWhite);
Affiche('Menu Divers/configuration bouton "Enregistrement de la configuration et fermer"',clWhite);
end;
sa:=uppercase(verif_version_ch)+'='; sa:=uppercase(verif_version_ch)+'=';
i:=pos(sa,s); i:=pos(sa,s);
if i<>0 then if i<>0 then
@@ -3542,7 +3490,6 @@ begin
if not(trouve_NbDetDist) then s:=nb_det_dist_ch; if not(trouve_NbDetDist) then s:=nb_det_dist_ch;
if not(trouve_ipv4_PC) then s:=IpV4_PC_ch; if not(trouve_ipv4_PC) then s:=IpV4_PC_ch;
if not(trouve_retro) then s:=retro_ch; if not(trouve_retro) then s:=retro_ch;
//if not(trouve_sec_init) and compile_init_cfg then s:=section_init;
if not(trouve_init_aig) then s:=INIT_AIG_ch; if not(trouve_init_aig) then s:=INIT_AIG_ch;
if not(trouve_lay) then s:=LAY_ch; if not(trouve_lay) then s:=LAY_ch;
if not(trouve_INTER_CAR) then s:=INTER_CAR_ch; if not(trouve_INTER_CAR) then s:=INTER_CAR_ch;
@@ -5907,6 +5854,14 @@ var groupe,temps,index : integer ;
label mise0; label mise0;
begin begin
//Affiche(IntToSTR(adresse)+' '+intToSTr(octet),clYellow); //Affiche(IntToSTR(adresse)+' '+intToSTr(octet),clYellow);
index:=index_aig(adresse);
// test si pilotage aiguillage inversé
if (acc=aigP) and (aiguillage[index].inversionCDM=1) then
begin
if octet=1 then octet:=2 else octet:=1;
end;
// pilotage par CDM rail ----------------- // pilotage par CDM rail -----------------
if CDM_connecte then if CDM_connecte then
@@ -5926,13 +5881,6 @@ begin
// pilotage par USB ou par éthernet de la centrale ------------ // pilotage par USB ou par éthernet de la centrale ------------
if (hors_tension2=false) and (portCommOuvert or parSocketLenz) then if (hors_tension2=false) and (portCommOuvert or parSocketLenz) then
begin begin
// test si pilotage aiguillage inversé
index:=index_aig(adresse);
if (acc=aigP) and (aiguillage[index].inversion=1) then
begin
if octet=1 then octet:=2 else octet:=1;
end;
if (octet=0) or (octet>2) then exit; if (octet=0) or (octet>2) then exit;
groupe:=(adresse-1) div 4; groupe:=(adresse-1) div 4;

Binary file not shown.

Binary file not shown.

View File

@@ -24,7 +24,7 @@ var
verifVersion,notificationVersion : boolean; verifVersion,notificationVersion : boolean;
Const Version='3.2'; // sert à la comparaison de la version publiée Const Version='3.2'; // sert à la comparaison de la version publiée
SousVersion=' '; // en cas d'absence de sous version mettre un espace SousVersion='C'; // en cas d'absence de sous version mettre un espace
implementation implementation

View File

@@ -62,6 +62,9 @@ version 3.1 : Renforcement de la v
Correction d'un bug sur l'affichage des rappels de ralentissement non présentés. Correction d'un bug sur l'affichage des rappels de ralentissement non présentés.
Correction d'un bug sur certains évènements aiguillages. Correction d'un bug sur certains évènements aiguillages.
Correction d'un bug sur présence train avant signal sur aiguille en talon mal positionnée. Correction d'un bug sur présence train avant signal sur aiguille en talon mal positionnée.
version 3.2 : Correction bug cohérence signal unisemaf.
: Simplification des aiguillages pilotés inversés