V1.42
This commit is contained in:
@@ -3581,6 +3581,7 @@ begin
|
||||
//if fini then Affiche('fini',clyellow);
|
||||
end;
|
||||
end;
|
||||
if (j>4) or (not(multiple)) then begin Affiche('Erreur: fichier de configuration ligne erronnée : '+chaine,clred); closefile(fichier);exit;end;
|
||||
|
||||
k:=pos(',',s);
|
||||
delete(s,1,k);
|
||||
@@ -5036,11 +5037,9 @@ begin
|
||||
// trouve une séquence chronologique 010 sur un détecteur
|
||||
function trouve_seq_chrono_010(Adresse : integer) : boolean;
|
||||
var i,etat : integer;
|
||||
etat0_seq1,etat1_seq2,etat0_seq3 : boolean;
|
||||
etat0_seq1,etat1_seq2,etat0_seq3 : boolean;
|
||||
begin
|
||||
i:=N_Event_tick;
|
||||
if i<2 then exit;
|
||||
Affiche('test si seq 010 sur det '+intToSTR(Adresse),clyellow);
|
||||
i:=N_Event_tick;
|
||||
if i<2 then exit;
|
||||
Affiche('test si seq 010 sur det '+intToSTR(Adresse),clyellow);
|
||||
etat0_seq1:=false; etat1_seq2:=false; etat0_seq3:=false;
|
||||
@@ -5070,18 +5069,19 @@ begin
|
||||
|
||||
// supprime un évènement détecteur dans la liste Event_det[]
|
||||
procedure supprime_event(i : integer);
|
||||
var l : integer;
|
||||
var l : integer;
|
||||
begin
|
||||
for l:=i to N_Event_det do event_det[l]:=event_det[l+1];
|
||||
dec(N_event_det);
|
||||
end;
|
||||
|
||||
// trouve adresse d'un détecteur à "etat" avant "index" dans le tableau chrono
|
||||
function trouve_index_det_chrono(Adr,etat,index : integer) : integer;
|
||||
var i : integer;
|
||||
trouve : boolean;
|
||||
begin
|
||||
begin
|
||||
i:=index;
|
||||
if index<=0 then begin affiche('Erreur 784 index invalide',clred);exit; end;
|
||||
i:=index;
|
||||
if i>N_Event_tick then begin trouve_index_det_chrono:=0;exit; end;
|
||||
inc(i);
|
||||
repeat
|
||||
@@ -5332,6 +5332,7 @@ begin
|
||||
i:=index_feu(Adrfeu);
|
||||
if AdrFeu<>0 then
|
||||
begin
|
||||
modele:=Feux[i].aspect;
|
||||
|
||||
Adr_det:=Feux[i].Adr_det1; // détecteur sur le signal
|
||||
Adr_El_Suiv:=Feux[i].Adr_el_suiv1; // adresse élément suivant au feu
|
||||
@@ -5339,6 +5340,7 @@ begin
|
||||
|
||||
// signal directionnel ?
|
||||
if (modele>10) then
|
||||
begin
|
||||
//Affiche('Signal directionnel '+IntToSTR(AdrFeu),clyellow);
|
||||
Signal_direction(AdrFeu);
|
||||
exit;
|
||||
@@ -5357,16 +5359,21 @@ begin
|
||||
exit;
|
||||
end;
|
||||
if (AdrFeu=217) then
|
||||
begin
|
||||
if ((aiguillage[24].position<>const_droit) and (aiguillage[26].position<>const_droit)) then
|
||||
begin
|
||||
if ((aiguillage[24].position<>const_droit) and (aiguillage[26].position<>const_droit)) then
|
||||
Maj_Etat_Signal(AdrFeu,blanc) else Maj_Etat_Signal(AdrFeu,violet);
|
||||
envoi_LEB(AdrFeu);
|
||||
exit;
|
||||
end;
|
||||
|
||||
exit;
|
||||
end;
|
||||
|
||||
// signal à 2 feux = carré violet+blanc
|
||||
if (Feux[i].aspect=2) then //or (feux[i].check<>nil) then // si carré violet
|
||||
begin
|
||||
// si aiguillage après signal mal positionnées
|
||||
if (Feux[i].aspect=2) then //or (feux[i].check<>nil) then // si carré violet
|
||||
begin
|
||||
if carre_signal(AdrFeu) then
|
||||
begin
|
||||
Maj_Etat_Signal(AdrFeu,violet);
|
||||
Envoi_signauxCplx;
|
||||
exit;
|
||||
end
|
||||
else
|
||||
@@ -5778,7 +5785,7 @@ begin
|
||||
var i,trainAdj1,TrainAdj2,TrainActuel,Etat01 : integer;
|
||||
s : string;
|
||||
begin
|
||||
if Etat then Etat01:=1 else Etat01:=0;
|
||||
if Etat then Etat01:=1 else Etat01:=0;
|
||||
// vérifier si l'état du détecteur est déja stocké, car on peut reçevoir plusieurs évènements pour le même détecteur dans le même état
|
||||
// on reçoit un doublon dans deux index consécutifs.
|
||||
if N_Event_tick>=1 then
|
||||
@@ -5805,7 +5812,8 @@ begin
|
||||
end;
|
||||
|
||||
// stocke les changements d'état des détecteurs dans le tableau chronologique
|
||||
if (N_Event_tick<Max_Event_det_tick) then
|
||||
if (N_Event_tick<Max_Event_det_tick) then
|
||||
begin
|
||||
inc(N_Event_tick);
|
||||
// event_det_tick[N_event_tick].train:=0;
|
||||
|
||||
@@ -5857,7 +5865,7 @@ begin
|
||||
|
||||
// évènement d'aiguillage
|
||||
procedure Event_Aig(adresse,pos : integer);
|
||||
begin
|
||||
begin
|
||||
if (N_Event_tick<Max_Event_det_tick) then
|
||||
begin
|
||||
inc(N_Event_tick);
|
||||
@@ -6521,8 +6529,12 @@ begin
|
||||
begin
|
||||
cree_image(i); // et initialisation tableaux signaux
|
||||
end;
|
||||
Tempo_init:=10; // démarre les initialisation des signaux et des aiguillages dans 1 s
|
||||
|
||||
Tempo_init:=10; // démarre les initialisation des signaux et des aiguillages dans 1 s
|
||||
|
||||
// initialisation de la chronologie des évènements détecteurs
|
||||
for i:=0 to Max_Event_det_tick do
|
||||
begin
|
||||
event_det_tick[i].aiguillage:=-1;
|
||||
//for j:=1 to 1100 do
|
||||
//event_det_tick[i].detecteur[j]:=-1; // initialiser les détecteurs à -1
|
||||
event_det_tick[i].detecteur:=-1;
|
||||
@@ -7266,6 +7278,8 @@ begin
|
||||
Affiche('Version 1.11 : compatibilité pour la rétrosignalisation non XpressNet (intellibox)',clLime);
|
||||
Affiche(' verrouillages routes pour trains consécutifs',clLime);
|
||||
Affiche('Version 1.2 : Renforcement de l''algorithme de suivi des trains',clLime);
|
||||
Affiche('Version 1.3 : Décodeur Unisemaf fonctionnel - Lecture/écriture des CV',clLime);
|
||||
Affiche(' Protocoles variables de l''interface',clLime);
|
||||
Affiche(' Configuration statique modifiable dans menu',clLime);
|
||||
Affiche('Version 1.31 : Correction des positions aiguillages triples et TJD',clLime);
|
||||
Affiche('Version 1.4 : Gestion des Fx vers les locomotives par actionneurs',clLime);
|
||||
@@ -7282,14 +7296,15 @@ begin
|
||||
end;
|
||||
|
||||
procedure TFormPrinc.ChronoDetectClick(Sender: TObject);
|
||||
var i,j,etat : integer;
|
||||
var i,j,etat : integer;
|
||||
s : string;
|
||||
begin
|
||||
begin
|
||||
for i:=1 to N_Event_tick do
|
||||
begin
|
||||
|
||||
//for j:=1 to 1100 do
|
||||
begin
|
||||
begin
|
||||
etat:=event_det_tick[i].etat;
|
||||
if etat<>-1 then
|
||||
begin
|
||||
j:=event_det_tick[i].detecteur;
|
||||
@@ -7298,7 +7313,7 @@ begin
|
||||
// s:=s+' Det suiv='+intTostr(event_det_tick[i].suivant);
|
||||
Affiche(s,clyellow);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
etat:=event_det_tick[i].aiguillage;
|
||||
if etat<>-1 then
|
||||
|
||||
Reference in New Issue
Block a user