V2.21
This commit is contained in:
@@ -31,5 +31,5 @@
|
|||||||
-M
|
-M
|
||||||
-$M16384,1048576
|
-$M16384,1048576
|
||||||
-K$00400000
|
-K$00400000
|
||||||
-LE"c:\program files\borland\delphi7\Projects\Bpl"
|
-LE"c:\program files (x86)\borland\delphi7\Projects\Bpl"
|
||||||
-LN"c:\program files\borland\delphi7\Projects\Bpl"
|
-LN"c:\program files (x86)\borland\delphi7\Projects\Bpl"
|
||||||
|
|||||||
Binary file not shown.
BIN
UnitConfig.dcu
BIN
UnitConfig.dcu
Binary file not shown.
@@ -1776,7 +1776,7 @@ object FormConfig: TFormConfig
|
|||||||
Top = 8
|
Top = 8
|
||||||
Width = 585
|
Width = 585
|
||||||
Height = 441
|
Height = 441
|
||||||
ActivePage = TabSheetSig
|
ActivePage = TabSheetCDM
|
||||||
Font.Charset = DEFAULT_CHARSET
|
Font.Charset = DEFAULT_CHARSET
|
||||||
Font.Color = clBackground
|
Font.Color = clBackground
|
||||||
Font.Height = -11
|
Font.Height = -11
|
||||||
@@ -2091,6 +2091,29 @@ object FormConfig: TFormConfig
|
|||||||
TabOrder = 4
|
TabOrder = 4
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
object GroupBox15: TGroupBox
|
||||||
|
Left = 296
|
||||||
|
Top = 328
|
||||||
|
Width = 273
|
||||||
|
Height = 73
|
||||||
|
Caption = 'Divers'
|
||||||
|
TabOrder = 5
|
||||||
|
object Label31: TLabel
|
||||||
|
Left = 8
|
||||||
|
Top = 16
|
||||||
|
Width = 204
|
||||||
|
Height = 13
|
||||||
|
Caption = 'Seuil du nombre de d'#233'tecteurs trop distants'
|
||||||
|
end
|
||||||
|
object EditNbDetDist: TEdit
|
||||||
|
Left = 232
|
||||||
|
Top = 12
|
||||||
|
Width = 25
|
||||||
|
Height = 21
|
||||||
|
TabOrder = 0
|
||||||
|
Text = 'EditNbDetDist'
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
object TabSheetAutonome: TTabSheet
|
object TabSheetAutonome: TTabSheet
|
||||||
Caption = 'Mode autonome'
|
Caption = 'Mode autonome'
|
||||||
@@ -2760,7 +2783,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
|
||||||
|
|||||||
@@ -182,6 +182,9 @@ type
|
|||||||
EditEtatActionneur: TEdit;
|
EditEtatActionneur: TEdit;
|
||||||
CheckRAZ: TCheckBox;
|
CheckRAZ: TCheckBox;
|
||||||
CheckFenEt: TCheckBox;
|
CheckFenEt: TCheckBox;
|
||||||
|
GroupBox15: TGroupBox;
|
||||||
|
EditNbDetDist: TEdit;
|
||||||
|
Label31: TLabel;
|
||||||
procedure ButtonAppliquerEtFermerClick(Sender: TObject);
|
procedure ButtonAppliquerEtFermerClick(Sender: TObject);
|
||||||
procedure Button2Click(Sender: TObject);
|
procedure Button2Click(Sender: TObject);
|
||||||
procedure FormActivate(Sender: TObject);
|
procedure FormActivate(Sender: TObject);
|
||||||
@@ -226,6 +229,7 @@ function envoi_CDM(s : string) : boolean;
|
|||||||
procedure connecte_CDM;
|
procedure connecte_CDM;
|
||||||
function place_id(s : string) : string;
|
function place_id(s : string) : string;
|
||||||
procedure decodeAig(s : string;var adr : integer;var B : char);
|
procedure decodeAig(s : string;var adr : integer;var B : char);
|
||||||
|
procedure sauve_config;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
@@ -521,8 +525,12 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
//verrouillage au carré
|
//verrouillage au carré
|
||||||
if aspect<10 then if feux[i].verrouCarre then s:=s+'1' else s:=s+'0';
|
if aspect<10 then
|
||||||
|
begin
|
||||||
|
if feux[i].verrouCarre then s:=s+'1' else s:=s+'0';
|
||||||
|
// si unsemaf, paramètre supplémentaire
|
||||||
|
if feux[i].decodeur=6 then s:=s+','+intToSTR(feux[i].unisemaf);
|
||||||
|
end;
|
||||||
encode_sig:=s;
|
encode_sig:=s;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -597,6 +605,11 @@ begin
|
|||||||
writeln(fichierN,'Fenetre=',fenetre);
|
writeln(fichierN,'Fenetre=',fenetre);
|
||||||
copie_commentaire;
|
copie_commentaire;
|
||||||
|
|
||||||
|
// Nombre maxi de détecteurs considérés distants
|
||||||
|
writeln(fichierN,'Nb_Det_Dist=',Nb_Det_Dist);
|
||||||
|
copie_commentaire;
|
||||||
|
|
||||||
|
|
||||||
// Vérification des versions au démarrage
|
// Vérification des versions au démarrage
|
||||||
if verifVersion then s:='1' else s:='0';
|
if verifVersion then s:='1' else s:='0';
|
||||||
writeln(fichierN,'verif_version=',s);
|
writeln(fichierN,'verif_version=',s);
|
||||||
@@ -736,13 +749,16 @@ begin
|
|||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TFormConfig.ButtonAppliquerEtFermerClick(Sender: TObject);
|
|
||||||
|
procedure Sauve_config;
|
||||||
var i,erreur : integer;
|
var i,erreur : integer;
|
||||||
s : string;
|
s : string;
|
||||||
ChangeCDM,changeInterface,changeUSB,change_srv : boolean;
|
ChangeCDM,changeInterface,changeUSB,change_srv : boolean;
|
||||||
begin
|
begin
|
||||||
// Vérification de la configuration-------------------------------------------
|
// Vérification de la configuration-------------------------------------------
|
||||||
// contrôle adresse IP CDM
|
// contrôle adresse IP CDM
|
||||||
|
with FormConfig do
|
||||||
|
begin
|
||||||
s:=EditAdrIPCDM.text;
|
s:=EditAdrIPCDM.text;
|
||||||
if not(IpOk(s)) then begin labelInfo.Caption:='Adresse IP CDM rail incorrecte';exit;end;
|
if not(IpOk(s)) then begin labelInfo.Caption:='Adresse IP CDM rail incorrecte';exit;end;
|
||||||
ChangeCDM:=s<>AdresseIPCDM;
|
ChangeCDM:=s<>AdresseIPCDM;
|
||||||
@@ -780,6 +796,11 @@ begin
|
|||||||
if erreur<>0 then begin labelInfo.Caption:='Valeur temporisation de réponse interface';exit;end;
|
if erreur<>0 then begin labelInfo.Caption:='Valeur temporisation de réponse interface';exit;end;
|
||||||
TimoutMaxInterface:=i;
|
TimoutMaxInterface:=i;
|
||||||
|
|
||||||
|
val(EditNbDetDist.text,i,erreur);
|
||||||
|
if (erreur<>0) or (i<3) then begin labelInfo.Caption:='Valeur nombre de détecteurs trop distants incorrecte';exit;end;
|
||||||
|
Nb_Det_Dist:=i;
|
||||||
|
|
||||||
|
|
||||||
if RadioButton1.checked then Valeur_entete:=0;
|
if RadioButton1.checked then Valeur_entete:=0;
|
||||||
if RadioButton2.checked then Valeur_entete:=1;
|
if RadioButton2.checked then Valeur_entete:=1;
|
||||||
if RadioButton3.checked then Valeur_entete:=2;
|
if RadioButton3.checked then Valeur_entete:=2;
|
||||||
@@ -848,11 +869,18 @@ begin
|
|||||||
Srvc_PosTrain:=CheckServPosTrains.checked;
|
Srvc_PosTrain:=CheckServPosTrains.checked;
|
||||||
Srvc_Sig:=CheckBoxSrvSig.checked;
|
Srvc_Sig:=CheckBoxSrvSig.checked;
|
||||||
Raz_Acc_signaux:=CheckBoxRazSignaux.checked;
|
Raz_Acc_signaux:=CheckBoxRazSignaux.checked;
|
||||||
|
end;
|
||||||
|
|
||||||
if change_srv then services_CDM;
|
if change_srv then services_CDM;
|
||||||
|
|
||||||
// générer le fichiers config.cfg et clieng-GL.cfg
|
// générer le fichiers config.cfg et clieng-GL.cfg
|
||||||
genere_config2;
|
genere_config2;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TFormConfig.ButtonAppliquerEtFermerClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
Sauve_config;
|
||||||
formConfig.close;
|
formConfig.close;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -890,6 +918,7 @@ begin
|
|||||||
Edit_HG.ReadOnly:=false;
|
Edit_HG.ReadOnly:=false;
|
||||||
|
|
||||||
|
|
||||||
|
EditNbDetDist.text:=IntToSTR(Nb_Det_dist);
|
||||||
EditAdrIPCDM.text:=adresseIPCDM;
|
EditAdrIPCDM.text:=adresseIPCDM;
|
||||||
EditPortCDM.Text:=IntToSTR(portCDM);
|
EditPortCDM.Text:=IntToSTR(portCDM);
|
||||||
EditIPLenz.text:=AdresseIP;
|
EditIPLenz.text:=AdresseIP;
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ object FormDebug: TFormDebug
|
|||||||
Anchors = [akLeft, akTop, akRight, akBottom]
|
Anchors = [akLeft, akTop, akRight, akBottom]
|
||||||
Lines.Strings = (
|
Lines.Strings = (
|
||||||
'MemoDebug')
|
'MemoDebug')
|
||||||
ScrollBars = ssVertical
|
ScrollBars = ssBoth
|
||||||
TabOrder = 3
|
TabOrder = 3
|
||||||
WordWrap = False
|
WordWrap = False
|
||||||
end
|
end
|
||||||
|
|||||||
BIN
UnitPrinc.dcu
BIN
UnitPrinc.dcu
Binary file not shown.
149
UnitPrinc.pas
149
UnitPrinc.pas
@@ -163,7 +163,7 @@ const_devieG_CDM=3; // positions aiguillages transmises par cdm
|
|||||||
const_devieD_CDM=2; // positions aiguillages transmises par cdm
|
const_devieD_CDM=2; // positions aiguillages transmises par cdm
|
||||||
const_droit_CDM=0; // positions aiguillages transmises par cdm
|
const_droit_CDM=0; // positions aiguillages transmises par cdm
|
||||||
ClBleuClair=$FF7070 ;
|
ClBleuClair=$FF7070 ;
|
||||||
Cyan=$FFA0A0;
|
Cyan=$FF6060;
|
||||||
clviolet=$FF00FF;
|
clviolet=$FF00FF;
|
||||||
GrisF=$414141;
|
GrisF=$414141;
|
||||||
clOrange=$0077FF;
|
clOrange=$0077FF;
|
||||||
@@ -225,7 +225,7 @@ var ancien_tablo_signalCplx,EtatsignalCplx : array[0..MaxAcc] of word;
|
|||||||
AvecInitAiguillages,tempsCli,NbreFeux,pasreponse,AdrDevie,fenetre,
|
AvecInitAiguillages,tempsCli,NbreFeux,pasreponse,AdrDevie,fenetre,
|
||||||
NombreImages,signalCpx,branche_trouve,Indexbranche_trouve,Actuel,Signal_suivant,
|
NombreImages,signalCpx,branche_trouve,Indexbranche_trouve,Actuel,Signal_suivant,
|
||||||
Nbre_recu_cdm,Tempo_chgt_feux,Adj1,Adj2,NbrePN,ServeurInterfaceCDM,
|
Nbre_recu_cdm,Tempo_chgt_feux,Adj1,Adj2,NbrePN,ServeurInterfaceCDM,
|
||||||
ServeurRetroCDM,TailleFonte : integer;
|
ServeurRetroCDM,TailleFonte,Nb_Det_Dist : integer;
|
||||||
|
|
||||||
Hors_tension2,traceSign,TraceZone,Ferme,parSocket,ackCdm,PremierFD,
|
Hors_tension2,traceSign,TraceZone,Ferme,parSocket,ackCdm,PremierFD,
|
||||||
NackCDM,MsgSim,succes,recu_cv,AffActionneur,AffAigDet,Option_demarrage,
|
NackCDM,MsgSim,succes,recu_cv,AffActionneur,AffAigDet,Option_demarrage,
|
||||||
@@ -404,23 +404,6 @@ begin
|
|||||||
combine:=BitNum(CodeBin and $fc00);
|
combine:=BitNum(CodeBin and $fc00);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure Xcode_to_aspect(codebin : word;var premierbit,combine : word) ;
|
|
||||||
var i,mot : word;
|
|
||||||
begin
|
|
||||||
mot:=codebin;
|
|
||||||
i:=0;premierbit:=0;Combine:=0;
|
|
||||||
|
|
||||||
while (i<15) do
|
|
||||||
begin
|
|
||||||
if (mot and 1)=1 then // si bit 0 du mot est à 1
|
|
||||||
begin
|
|
||||||
if (premierbit=0) then premierbit:=i+1 else Combine:=i+1;
|
|
||||||
end;
|
|
||||||
mot:=mot shr 1; //décaler à droite
|
|
||||||
inc(i);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
// dessine un cercle plein dans le feu
|
// dessine un cercle plein dans le feu
|
||||||
procedure cercle(ACanvas : Tcanvas;x,y,rayon : integer;couleur : Tcolor);
|
procedure cercle(ACanvas : Tcanvas;x,y,rayon : integer;couleur : Tcolor);
|
||||||
begin
|
begin
|
||||||
@@ -433,7 +416,7 @@ begin
|
|||||||
//Affiche(IntToSTR(y),clyellow);
|
//Affiche(IntToSTR(y),clyellow);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// dessine les feux sur une cible à 2 feux
|
// dessine les feux sur une cible à 2 feux dans le canvas spécifié
|
||||||
// x,y : offset en pixels du coin supérieur gauche du feu
|
// x,y : offset en pixels du coin supérieur gauche du feu
|
||||||
// frX, frY : facteurs de réduction
|
// frX, frY : facteurs de réduction
|
||||||
procedure dessine_feu2(Acanvas : Tcanvas;x,y : integer;frX,frY : real;EtatSignal : word;orientation : integer);
|
procedure dessine_feu2(Acanvas : Tcanvas;x,y : integer;frX,frY : real;EtatSignal : word;orientation : integer);
|
||||||
@@ -442,7 +425,7 @@ var Temp,rayon,xViolet,YViolet,xBlanc,yBlanc,
|
|||||||
ech : real;
|
ech : real;
|
||||||
code,combine : word;
|
code,combine : word;
|
||||||
begin
|
begin
|
||||||
code_to_aspect(Etatsignal,code,combine); // et aspect
|
code_to_aspect(Etatsignal,code,combine);
|
||||||
rayon:=round(6*frX);
|
rayon:=round(6*frX);
|
||||||
|
|
||||||
// récupérer les dimensions de l'image d'origine du feu
|
// récupérer les dimensions de l'image d'origine du feu
|
||||||
@@ -3476,7 +3459,7 @@ end;
|
|||||||
branche_trouve:=NBranche;
|
branche_trouve:=NBranche;
|
||||||
IndexBranche_trouve:=i;
|
IndexBranche_trouve:=i;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
procedure lit_config;
|
procedure lit_config;
|
||||||
@@ -3524,6 +3507,8 @@ var s,sa,chaine,SOrigine: string;
|
|||||||
aiguillage[adresse].inversion:=invers;
|
aiguillage[adresse].inversion:=invers;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
end;
|
||||||
|
until (adresse=0);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
@@ -3751,12 +3736,28 @@ begin
|
|||||||
if i<>0 then
|
if i<>0 then
|
||||||
begin
|
begin
|
||||||
inc(nv);
|
inc(nv);
|
||||||
|
delete(s,i,length(sa));
|
||||||
|
i:=0;
|
||||||
|
val(s,i,erreur);
|
||||||
|
ServeurRetroCDM:=i;
|
||||||
|
end;
|
||||||
|
|
||||||
|
sa:='NB_DET_DIST=';
|
||||||
|
i:=pos(sa,s);
|
||||||
|
if i<>0 then
|
||||||
|
begin
|
||||||
|
inc(nv);
|
||||||
|
trouve_NbDetDist:=true;
|
||||||
delete(s,i,length(sa));
|
delete(s,i,length(sa));
|
||||||
i:=0;
|
i:=0;
|
||||||
val(s,i,erreur);
|
val(s,i,erreur);
|
||||||
ServeurRetroCDM:=i;
|
if i<2 then i:=2;
|
||||||
end;
|
Nb_Det_Dist:=i;
|
||||||
|
end;
|
||||||
|
inc(it);
|
||||||
|
|
||||||
|
until (Nv>=18) or (it>30);
|
||||||
|
//affiche(IntToSTR(Nv)+' variables',cyan);
|
||||||
if (it>30) then
|
if (it>30) then
|
||||||
begin
|
begin
|
||||||
s:='ERREUR: manque variables dans config-gl.cfg';
|
s:='ERREUR: manque variables dans config-gl.cfg';
|
||||||
@@ -5242,7 +5243,7 @@ begin
|
|||||||
((aiguillage[actuel].modele=2) or (aiguillage[Actuel].modele=3)) then
|
((aiguillage[actuel].modele=2) or (aiguillage[Actuel].modele=3)) then
|
||||||
begin
|
begin
|
||||||
if nivDebug=3 then AfficheDebug('501 - Détection Précédent=TJD/S Suivant=TJD/S',clyellow);
|
if nivDebug=3 then AfficheDebug('501 - Détection Précédent=TJD/S Suivant=TJD/S',clyellow);
|
||||||
// subsituer la pointe
|
// subsituer la pointe
|
||||||
actuel:=aiguillage[Actuel].APointe;
|
actuel:=aiguillage[Actuel].APointe;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@@ -5386,10 +5387,10 @@ begin
|
|||||||
2 : s:=s+' aiguillage';
|
2 : s:=s+' aiguillage';
|
||||||
3 : s:=s+' aiguillage bis';
|
3 : s:=s+' aiguillage bis';
|
||||||
end;
|
end;
|
||||||
AfficheDebug(s,clorange);
|
AfficheDebug(s,clorange);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
AdrPrec:=AdrFonc;TypePrec:=TypeFonc;
|
AdrPrec:=AdrFonc;TypePrec:=TypeFonc;
|
||||||
AdrFonc:=Adr;TypeFonc:=typeGen;
|
AdrFonc:=Adr;TypeFonc:=typeGen;
|
||||||
inc(i);
|
inc(i);
|
||||||
sortie:=((typeDet2=TypeGen) and (Adr=el2)) or (Adr=0) or (Adr>=9996) or (i=15) or (N_Det=Nb_det_dist);
|
sortie:=((typeDet2=TypeGen) and (Adr=el2)) or (Adr=0) or (Adr>=9996) or (i=15) or (N_Det=Nb_det_dist);
|
||||||
@@ -5422,6 +5423,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
AfficheDebug(s,clorange);
|
AfficheDebug(s,clorange);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
AdrPrec:=AdrFonc;TypePrec:=TypeFonc;
|
AdrPrec:=AdrFonc;TypePrec:=TypeFonc;
|
||||||
AdrFonc:=Adr;TypeFonc:=typeGen;
|
AdrFonc:=Adr;TypeFonc:=typeGen;
|
||||||
inc(i);
|
inc(i);
|
||||||
@@ -5437,6 +5439,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
detecteur_suivant_el:=Adr;
|
detecteur_suivant_el:=Adr;
|
||||||
exit;
|
exit;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
if (i=10) then if NivDebug=3 then AfficheDebug('201 : Itération trop longue',clred);
|
if (i=10) then if NivDebug=3 then AfficheDebug('201 : Itération trop longue',clred);
|
||||||
inc(j);
|
inc(j);
|
||||||
@@ -6045,12 +6048,20 @@ function PresTrainPrec(AdrFeu : integer) : boolean;
|
|||||||
end;
|
end;
|
||||||
test_route_valide:=10 ;
|
test_route_valide:=10 ;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
// présence train 3 détecteurs avant le feu
|
||||||
|
function PresTrainPrec(AdrFeu : integer) : boolean;
|
||||||
|
var PresTrain : boolean;
|
||||||
|
j,i,Det_initial,Adr_El_Suiv,Btype_el_suivant,DetPrec1,DetPrec2,DetPrec3,DetPrec4 : integer;
|
||||||
|
begin
|
||||||
|
i:=index_feu(Adrfeu);
|
||||||
|
if i=0 then
|
||||||
|
begin
|
||||||
Affiche('Erreur 602 - feu '+IntToSTR(adrFeu)+' non trouvé',clred);
|
Affiche('Erreur 602 - feu '+IntToSTR(adrFeu)+' non trouvé',clred);
|
||||||
if NivDebug=3 then AfficheDebug('Erreur 602 - feu '+IntToSTR(adrFeu)+' non trouvé',clred);
|
if NivDebug=3 then AfficheDebug('Erreur 602 - feu '+IntToSTR(adrFeu)+' non trouvé',clred);
|
||||||
PresTrainPrec:=false;
|
PresTrainPrec:=false;
|
||||||
exit;
|
exit;
|
||||||
begin
|
end;
|
||||||
|
|
||||||
// **** un feu peut être associé à 4 détecteurs (pour 4 voies convergentes) *****
|
// **** un feu peut être associé à 4 détecteurs (pour 4 voies convergentes) *****
|
||||||
// il faut donc explorer les 4 détecteurs probables
|
// il faut donc explorer les 4 détecteurs probables
|
||||||
@@ -6084,25 +6095,28 @@ begin
|
|||||||
begin
|
begin
|
||||||
det_initial:=feux[i].Adr_det4;Adr_El_Suiv:=feux[i].Adr_el_suiv4;
|
det_initial:=feux[i].Adr_det4;Adr_El_Suiv:=feux[i].Adr_el_suiv4;
|
||||||
if feux[i].Btype_suiv1=1 then Btype_el_suivant:=1;
|
if feux[i].Btype_suiv1=1 then Btype_el_suivant:=1;
|
||||||
if feux[i].Btype_suiv1=2 then Btype_el_suivant:=2;
|
if feux[i].Btype_suiv1=2 then Btype_el_suivant:=2;
|
||||||
if feux[i].Btype_suiv1=4 then Btype_el_suivant:=2;
|
if feux[i].Btype_suiv1=4 then Btype_el_suivant:=2;
|
||||||
end;
|
end;
|
||||||
if (det_initial<>0) then
|
if (det_initial<>0) then
|
||||||
begin
|
begin
|
||||||
DetPrec1:=detecteur_suivant(Adr_El_Suiv,Btype_el_suivant,det_initial,1);
|
DetPrec1:=detecteur_suivant(Adr_El_Suiv,Btype_el_suivant,det_initial,1);
|
||||||
if DetPrec1<9996 then // route bloquée par aiguillage mal positionné
|
if DetPrec1<1024 then // route bloquée par aiguillage mal positionné
|
||||||
begin
|
begin
|
||||||
DetPrec2:=detecteur_suivant_El(det_initial,1,DetPrec1,1);
|
DetPrec2:=detecteur_suivant_El(det_initial,1,DetPrec1,1);
|
||||||
if DetPrec2<9996 then
|
if DetPrec2<1024 then
|
||||||
begin
|
|
||||||
DetPrec3:=detecteur_suivant_El(DetPrec1,1,DetPrec2,1);
|
|
||||||
if DetPrec3<9996 then
|
|
||||||
begin
|
begin
|
||||||
DetPrec4:=detecteur_suivant_El(DetPrec2,1,DetPrec3,1);
|
DetPrec3:=detecteur_suivant_El(DetPrec1,1,DetPrec2,1);
|
||||||
if AffSignal or (NivDebug=3) then AfficheDebug('les détecteurs précédents au feu '+IntToSTR(Adrfeu)+' sont:'+intToSTR(Det_initial)+' '+intToSTR(DetPrec1)+' '+intToSTR(DetPrec2)+' '+intToSTR(DetPrec3)+' '+intToSTR(DetPrec4),clyellow);
|
if DetPrec3<1024 then
|
||||||
PresTrain:=MemZone[DetPrec4,detPrec3] or
|
begin
|
||||||
MemZone[DetPrec3,detPrec2] or MemZone[DetPrec2,detPrec1] or MemZone[DetPrec1,Det_initial] or presTrain ;
|
DetPrec4:=detecteur_suivant_El(DetPrec2,1,DetPrec3,1);
|
||||||
if AffSignal or (NivDebug=3) then
|
if DetPrec4<1024 then
|
||||||
|
begin
|
||||||
|
if AffSignal or (NivDebug=3) then AfficheDebug('les détecteurs précédents au feu '+IntToSTR(Adrfeu)+' sont:'+intToSTR(Det_initial)+' '+intToSTR(DetPrec1)+' '+intToSTR(DetPrec2)+' '+intToSTR(DetPrec3)+' '+intToSTR(DetPrec4),clyellow);
|
||||||
|
PresTrain:=MemZone[DetPrec4,detPrec3] or
|
||||||
|
MemZone[DetPrec3,detPrec2] or MemZone[DetPrec2,detPrec1] or MemZone[DetPrec1,Det_initial] or presTrain ;
|
||||||
|
if AffSignal or (NivDebug=3) then
|
||||||
|
begin
|
||||||
if MemZone[DetPrec4,detPrec3] then AfficheDebug('0.présence train '+IntToSTR(DetPrec4)+' '+IntToSTR(detPrec3),clyellow);
|
if MemZone[DetPrec4,detPrec3] then AfficheDebug('0.présence train '+IntToSTR(DetPrec4)+' '+IntToSTR(detPrec3),clyellow);
|
||||||
if MemZone[DetPrec3,detPrec2] then AfficheDebug('1.présence train '+IntToSTR(DetPrec3)+' '+IntToSTR(detPrec2),clyellow);
|
if MemZone[DetPrec3,detPrec2] then AfficheDebug('1.présence train '+IntToSTR(DetPrec3)+' '+IntToSTR(detPrec2),clyellow);
|
||||||
if MemZone[DetPrec2,detPrec1] then AfficheDebug('2.présence train '+IntToSTR(DetPrec2)+' '+IntToSTR(detPrec1),clyellow);
|
if MemZone[DetPrec2,detPrec1] then AfficheDebug('2.présence train '+IntToSTR(DetPrec2)+' '+IntToSTR(detPrec1),clyellow);
|
||||||
@@ -6676,10 +6690,6 @@ begin
|
|||||||
if (AdrDetFeu=Adresse) and (feux[i].aspect<10) then
|
if (AdrDetFeu=Adresse) and (feux[i].aspect<10) then
|
||||||
begin
|
begin
|
||||||
AdrSuiv:=Feux[i].Adr_el_suiv1;TypeSuiv:=Feux[i].Btype_suiv1;
|
AdrSuiv:=Feux[i].Adr_el_suiv1;TypeSuiv:=Feux[i].Btype_suiv1;
|
||||||
if AffSignal then AfficheDebug('Pour Feu '+intToSTR(AdrFeu)+' detecteursuivant('+intToSTR(AdrSuiv)+','+IntToSTR(typeSuiv)+','+intToSTR(AdrDetFeu)+',1)',clyellow);
|
|
||||||
AdrPrec:=detecteur_suivant(AdrSuiv,typeSuiv,AdrDetFeu,1) ; // détecteur précédent le feu
|
|
||||||
if AdrPrec=0 then
|
|
||||||
begin
|
|
||||||
if AffSignal then AfficheDebug('Pour Feu '+intToSTR(AdrFeu)+' detecteursuivant('+intToSTR(AdrSuiv)+','+IntToSTR(typeSuiv)+','+intToSTR(AdrDetFeu)+',1)',clyellow);
|
if AffSignal then AfficheDebug('Pour Feu '+intToSTR(AdrFeu)+' detecteursuivant('+intToSTR(AdrSuiv)+','+IntToSTR(typeSuiv)+','+intToSTR(AdrDetFeu)+',1)',clyellow);
|
||||||
AdrPrec:=detecteur_suivant(AdrSuiv,typeSuiv,AdrDetFeu,1) ; // détecteur précédent le feu
|
AdrPrec:=detecteur_suivant(AdrSuiv,typeSuiv,AdrDetFeu,1) ; // détecteur précédent le feu
|
||||||
if AdrPrec=0 then
|
if AdrPrec=0 then
|
||||||
@@ -7204,29 +7214,27 @@ var
|
|||||||
|
|
||||||
// renvoie si un process EXE tourne. Renvoie le Handle du process dans CDMHd et l'Id du process dans ProcessID
|
// renvoie si un process EXE tourne. Renvoie le Handle du process dans CDMHd et l'Id du process dans ProcessID
|
||||||
// sExeName : Nom de l'EXE sans le chemin, et sans EXE }
|
// sExeName : Nom de l'EXE sans le chemin, et sans EXE }
|
||||||
function ProcessRunning(sExeName: String) : Boolean;
|
function ProcessRunning(sExeName: String) : Boolean;
|
||||||
|
var
|
||||||
|
hSnapShot : THandle;
|
||||||
ProcessEntry32 : TProcessEntry32; // pointeur sur la structure ProcessEntry32
|
ProcessEntry32 : TProcessEntry32; // pointeur sur la structure ProcessEntry32
|
||||||
hSnapShot : THandle;
|
processID : DWord;
|
||||||
ProcessEntry32 : TProcessEntry32; // pointeur sur la structure ProcessEntry32
|
begin
|
||||||
|
Result:=false;
|
||||||
hSnapShot:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
|
hSnapShot:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
|
||||||
begin
|
Win32Check(hSnapShot <> INVALID_HANDLE_VALUE);
|
||||||
Result:=false;
|
|
||||||
|
sExeName:=LowerCase (sExeName);
|
||||||
hSnapShot:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
|
FillChar(ProcessEntry32,SizeOf(TProcessEntry32),#0);
|
||||||
Win32Check(hSnapShot <> INVALID_HANDLE_VALUE);
|
ProcessEntry32.dwSize:=SizeOf(TProcessEntry32); // contient la structure de tous les process
|
||||||
|
|
||||||
sExeName:=LowerCase (sExeName);
|
if (Process32First(hSnapShot,ProcessEntry32)) then
|
||||||
|
repeat
|
||||||
FillChar(ProcessEntry32,SizeOf(TProcessEntry32),#0);
|
//Affiche(ProcessEntry32.szExeFile,ClYellow);
|
||||||
ProcessEntry32.dwSize:=SizeOf(TProcessEntry32); // contient la structure de tous les process
|
if (Pos(sExeName,LowerCase(ProcessEntry32.szExeFile))=1) then
|
||||||
|
begin
|
||||||
if (Process32First(hSnapShot,ProcessEntry32)) then
|
processID:=ProcessEntry32.th32ProcessID;
|
||||||
repeat
|
CDMhd:=GetWindowFromID(processID);
|
||||||
//Affiche(ProcessEntry32.szExeFile,ClYellow);
|
|
||||||
if (Pos(sExeName,LowerCase(ProcessEntry32.szExeFile))=1) then
|
|
||||||
begin
|
|
||||||
processID:=ProcessEntry32.th32ProcessID;
|
|
||||||
CDMhd:=GetWindowFromID(processID);
|
|
||||||
Affiche('CDM rail processID='+IntToSTR(ProcessID)+' handle='+IntToSTR(CDMhd),clOrange);
|
Affiche('CDM rail processID='+IntToSTR(ProcessID)+' handle='+IntToSTR(CDMhd),clOrange);
|
||||||
Result:=true;
|
Result:=true;
|
||||||
Break;
|
Break;
|
||||||
@@ -7460,10 +7468,9 @@ var
|
|||||||
|
|
||||||
procedure TFormPrinc.FormCreate(Sender: TObject);
|
procedure TFormPrinc.FormCreate(Sender: TObject);
|
||||||
var
|
var
|
||||||
i,j : integer;
|
|
||||||
i,j : integer;
|
i,j : integer;
|
||||||
s,s2,Url,LocalFile : string;
|
s,s2,Url,LocalFile : string;
|
||||||
V_utile : real;
|
trouve,AvecMaj : Boolean;
|
||||||
V_utile : real;
|
V_utile : real;
|
||||||
CibleHandle : Thandle;
|
CibleHandle : Thandle;
|
||||||
begin
|
begin
|
||||||
@@ -7573,8 +7580,6 @@ begin
|
|||||||
begin
|
begin
|
||||||
cree_image(i); // et initialisation tableaux signaux
|
cree_image(i); // et initialisation tableaux signaux
|
||||||
end;
|
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
|
Tempo_init:=10; // démarre les initialisation des signaux et des aiguillages dans 1 s
|
||||||
|
|
||||||
// initialisation de la chronologie des évènements détecteurs
|
// initialisation de la chronologie des évènements détecteurs
|
||||||
|
|||||||
BIN
UnitTCO.dcu
BIN
UnitTCO.dcu
Binary file not shown.
113
client-GL.cfg
113
client-GL.cfg
@@ -1,6 +1,6 @@
|
|||||||
/******************************************
|
/******************************************
|
||||||
/ fichier de configuration de client-GL.log
|
/ fichier de configuration de client-GL.log
|
||||||
/ JFP - 2020
|
/ gily - f1iwq - 2018
|
||||||
/******************************************
|
/******************************************
|
||||||
/ ce programme permet de commander les signaux complexes avec ou sans
|
/ ce programme permet de commander les signaux complexes avec ou sans
|
||||||
/ CDM rail. Il a trois modes de fonctionnement:
|
/ CDM rail. Il a trois modes de fonctionnement:
|
||||||
@@ -28,7 +28,7 @@ IpV4_PC=127.0.0.1:9999
|
|||||||
/ Adresse IP V4 de l'interface LI-USB Ethernet : port
|
/ Adresse IP V4 de l'interface LI-USB Ethernet : port
|
||||||
/ par défaut le port est 5550
|
/ par défaut le port est 5550
|
||||||
/ ne pas connecter le port ou mettre 0 si on travaille avec l'interface USB
|
/ ne pas connecter le port ou mettre 0 si on travaille avec l'interface USB
|
||||||
IPV4_Interface=192.168.1.55:5550
|
IPV4_Interface=192.168.1.23:5550
|
||||||
/
|
/
|
||||||
/ port COM de l'adresse USB de l'interface LU-USB - LI100 - LI100F - LI101F - GENLI
|
/ port COM de l'adresse USB de l'interface LU-USB - LI100 - LI100F - LI101F - GENLI
|
||||||
/ attention de COM1 à 9 - Si le port de l'interface USB >9, il faut le changer
|
/ attention de COM1 à 9 - Si le port de l'interface USB >9, il faut le changer
|
||||||
@@ -38,10 +38,11 @@ IPV4_Interface=192.168.1.55:5550
|
|||||||
/ Com:vitesse,parité,nombre de bits,bits de stop,protocole: 0=aucun 1=Xon-Xoff 2=RTS-CTS 3=RTS-Xon-Xoff 4=CTS
|
/ Com:vitesse,parité,nombre de bits,bits de stop,protocole: 0=aucun 1=Xon-Xoff 2=RTS-CTS 3=RTS-Xon-Xoff 4=CTS
|
||||||
/ voir notice page 29
|
/ voir notice page 29
|
||||||
/
|
/
|
||||||
Protocole_serie=COM5:9600,N,8,1,0
|
Protocole_serie=COM3:57600,N,8,1,2
|
||||||
|
/COM8:9600,N,8,1,0
|
||||||
/
|
/
|
||||||
/ Temporisation en ms d'envoi entre deux octets de la trame
|
/ Temporisation en ms d'envoi entre deux octets de la trame
|
||||||
Inter_Car=30
|
Inter_Car=50
|
||||||
/ Temporisation maximale de contrôle après non réponse de l'interface, en tranches de 100ms
|
/ Temporisation maximale de contrôle après non réponse de l'interface, en tranches de 100ms
|
||||||
/ à adapter en fonction de l'interface. Ex 7=700ms d'attente maxi
|
/ à adapter en fonction de l'interface. Ex 7=700ms d'attente maxi
|
||||||
Tempo_maxi=7
|
Tempo_maxi=7
|
||||||
@@ -50,7 +51,7 @@ Tempo_maxi=7
|
|||||||
/ Entete=0 - n'ajoute rien aux trames - pour une interface RS232 ou GENLI
|
/ Entete=0 - n'ajoute rien aux trames - pour une interface RS232 ou GENLI
|
||||||
/ Entete=1 - Ajoute FF FE au début de chaque trame envoyée à l'interface : pour une interface USB, entete=1
|
/ Entete=1 - Ajoute FF FE au début de chaque trame envoyée à l'interface : pour une interface USB, entete=1
|
||||||
/ Entete=2 - Ajoute E4 au début de chaque trame et 0D 0D 0A en fin de chaque trame : pour compatibilité arduino
|
/ Entete=2 - Ajoute E4 au début de chaque trame et 0D 0D 0A en fin de chaque trame : pour compatibilité arduino
|
||||||
Entete=0
|
Entete=1
|
||||||
/ ===============================================================================
|
/ ===============================================================================
|
||||||
/
|
/
|
||||||
/ Avec (1) ou sans (0) initialisation des aiguillages au démarrage selon le tableau ci après
|
/ Avec (1) ou sans (0) initialisation des aiguillages au démarrage selon le tableau ci après
|
||||||
@@ -59,6 +60,9 @@ Init_Aig=0
|
|||||||
/ Fenêtre d'exécution en plein écran (1) ou réduite (0)
|
/ Fenêtre d'exécution en plein écran (1) ou réduite (0)
|
||||||
Fenetre=0
|
Fenetre=0
|
||||||
/
|
/
|
||||||
|
/ Nombre de détecteurs considérés comme trop distants dans la recherche d'un détecteur "suivant"
|
||||||
|
Nb_Det_Dist=3
|
||||||
|
/
|
||||||
/ Vérification des versions au démarrage
|
/ Vérification des versions au démarrage
|
||||||
verif_version=1
|
verif_version=1
|
||||||
/ Notification de nouvelle version
|
/ Notification de nouvelle version
|
||||||
@@ -69,7 +73,7 @@ TCO=0
|
|||||||
CDM=0
|
CDM=0
|
||||||
/ Nom du fichier LAY à ouvrir depuis CDM sans caractères spéciaux ( : / )
|
/ Nom du fichier LAY à ouvrir depuis CDM sans caractères spéciaux ( : / )
|
||||||
/reseau_gily_signal_ajoute.lay
|
/reseau_gily_signal_ajoute.lay
|
||||||
lay=DJEFF252RETROSIGNALISATION23.LAY
|
LAY=RESEAU_GILY_SIGNAL_AJOUTE.LAY
|
||||||
/
|
/
|
||||||
/ Démarrage du serveur d'interface automatique
|
/ Démarrage du serveur d'interface automatique
|
||||||
/ 0=ne pas démarrer automatiquement le serveur d'interfaces
|
/ 0=ne pas démarrer automatiquement le serveur d'interfaces
|
||||||
@@ -81,7 +85,7 @@ lay=DJEFF252RETROSIGNALISATION23.LAY
|
|||||||
/ 6=FIS88 FeedBack (S88/S88N)
|
/ 6=FIS88 FeedBack (S88/S88N)
|
||||||
/ 7=RS2PC (Rs FeedBack interface)
|
/ 7=RS2PC (Rs FeedBack interface)
|
||||||
/ 8=DCC++
|
/ 8=DCC++
|
||||||
Serveur_interface=1
|
Serveur_interface=0
|
||||||
/
|
/
|
||||||
/ Interface de rétrosignalisation pour LENZ/DCC++
|
/ Interface de rétrosignalisation pour LENZ/DCC++
|
||||||
/ 1=auto
|
/ 1=auto
|
||||||
@@ -90,8 +94,7 @@ Serveur_interface=1
|
|||||||
/ 4=LI-100F
|
/ 4=LI-100F
|
||||||
/ 5=LI-100
|
/ 5=LI-100
|
||||||
/ 6=GENLI
|
/ 6=GENLI
|
||||||
retro=6
|
retro=1
|
||||||
/
|
|
||||||
/
|
/
|
||||||
/
|
/
|
||||||
/ Valeurs des initialisations des aiguillages au démarrage -----------------------------------------------
|
/ Valeurs des initialisations des aiguillages au démarrage -----------------------------------------------
|
||||||
@@ -100,64 +103,38 @@ retro=6
|
|||||||
/ une position différente de 1 ou 2 sera à 1. Une temporisation de 0 sera à 5.
|
/ une position différente de 1 ou 2 sera à 1. Une temporisation de 0 sera à 5.
|
||||||
/ la liste doit être terminée par 0,0,0
|
/ la liste doit être terminée par 0,0,0
|
||||||
[section_init]
|
[section_init]
|
||||||
77,2,3,0
|
1,2,3,0
|
||||||
78,2,3,0
|
2,2,3,0
|
||||||
79,2,3,0
|
3,2,3,0
|
||||||
81,2,3,0
|
4,2,3,0
|
||||||
82,2,3,0
|
5,1,3,0
|
||||||
83,2,3,0
|
6,2,3,0
|
||||||
84,2,3,0
|
7,1,3,0
|
||||||
85,2,3,0
|
8,2,3,0
|
||||||
86,2,3,0
|
9,2,3,0
|
||||||
87,2,3,0
|
10,2,3,0
|
||||||
88,2,3,0
|
11,2,3,0
|
||||||
89,2,3,0
|
12,1,3,0
|
||||||
90,2,3,0
|
13,1,3,0
|
||||||
91,2,3,0
|
14,1,3,0
|
||||||
92,2,3,0
|
15,1,3,0
|
||||||
93,2,3,0
|
16,1,4,0
|
||||||
94,2,3,0
|
17,1,3,0
|
||||||
95,2,3,0
|
18,2,4,0
|
||||||
96,2,3,0
|
19,1,4,0
|
||||||
97,2,3,0
|
20,2,4,0
|
||||||
98,2,3,0
|
21,2,3,0
|
||||||
99,2,3,0
|
22,1,3,0
|
||||||
100,2,3,0
|
23,1,3,0
|
||||||
101,2,3,0
|
24,1,3,0
|
||||||
102,2,3,0
|
25,1,3,0
|
||||||
103,2,3,0
|
26,2,3,0
|
||||||
104,2,3,0
|
27,2,3,0
|
||||||
105,2,3,0
|
28,2,3,0
|
||||||
106,2,3,0
|
29,2,3,0
|
||||||
107,2,3,0
|
30,2,3,0
|
||||||
108,2,3,0
|
31,1,3,0
|
||||||
109,2,3,0
|
32,1,3,0
|
||||||
110,2,3,0
|
|
||||||
111,2,3,0
|
|
||||||
112,2,3,0
|
|
||||||
113,2,3,0
|
|
||||||
114,2,3,0
|
|
||||||
115,2,3,0
|
|
||||||
116,2,3,0
|
|
||||||
117,2,3,0
|
|
||||||
118,2,3,0
|
|
||||||
119,2,3,0
|
|
||||||
120,2,3,0
|
|
||||||
121,2,3,0
|
|
||||||
122,2,3,0
|
|
||||||
123,2,3,0
|
|
||||||
124,2,3,0
|
|
||||||
125,2,3,0
|
|
||||||
126,2,3,0
|
|
||||||
127,2,3,0
|
|
||||||
128,2,3,0
|
|
||||||
128,2,3,0
|
|
||||||
130,2,3,0
|
|
||||||
131,2,3,0
|
|
||||||
132,2,3,0
|
|
||||||
133,2,3,0
|
|
||||||
134,2,3,0
|
|
||||||
135,2,3,0
|
|
||||||
136,2,3,0
|
|
||||||
0,0,0,0
|
0,0,0,0
|
||||||
/
|
/
|
||||||
|
|
||||||
|
|||||||
238
config.cfg
238
config.cfg
@@ -1,158 +1,138 @@
|
|||||||
/******************************************
|
/******************************************
|
||||||
/ fichier de configuration de signaux_complexes
|
/ fichier de configuration de signaux_complexes
|
||||||
/ JFP - 2020 - nouvelles tjd
|
/ gily - f1iwq - 2019
|
||||||
/******************************************
|
/******************************************
|
||||||
/ Sans Log=0 / Avec Log=1 : génère un fichier log
|
/ Sans Log=0 / Avec Log=1 : génère un fichier log
|
||||||
Log=0
|
Log=0
|
||||||
/ Affichage du débug du calcul des routes, et enregistrement dans le log si la variable précédente est à 1
|
/ Affichage du débug du calcul des routes, et enregistrement dans le log si la variable précédente est à 1
|
||||||
TraceDet=0
|
TraceDet=0
|
||||||
/ Envoie un 0 après le pilotage des décodeurs LEB
|
/ Envoie un 0 après le pilotage des décodeurs
|
||||||
RazSignaux=0
|
/ Mettre 1 si utilisation de décodeurs LEB
|
||||||
|
RazSignaux=1
|
||||||
/
|
/
|
||||||
/ modélisation des aiguillages : détermine les éléments connectés aux 3 branches des aiguilles (Pointe, Droit, Dévié (S)
|
/ modélisation des aiguillages : détermine les éléments connectés aux 3 branches des aiguilles (Pointe, Droit, Dévié (S)
|
||||||
/ adresse d'aiguillage [TJS,TJD,TRI],P=élément vers pointe D=élément vers Droit, S=élément vers dévié, INV si aiguillage inversé
|
/ adresse d'aiguillage,P=élément vers pointe D=élément vers Droit, S=élément vers dévié.
|
||||||
|
/ [60 ou 30 dans le cas d'un aiguillage en position déviée qui doit être fanchie à 30 ou 60]
|
||||||
/ Elément = détecteur (valeur uniquement numérique) ou aiguillage (adresse+branche de connexion (P S ou D)
|
/ Elément = détecteur (valeur uniquement numérique) ou aiguillage (adresse+branche de connexion (P S ou D)
|
||||||
/ Exemple : 1,P518,D523,S3P signifie : définition de l'aiguillage @1 : sur pointe relié au détecteur 518
|
/ Exemple : 1,P518,D523,S3P signifie : définition de l'aiguillage @1 : sur pointe relié au détecteur 518
|
||||||
/ sur Droit relié au détecteur 518
|
/ sur Droit relié au détecteur 518
|
||||||
/ sur Dévié, relié à l'aiguillage 3 en pointe
|
/ sur Dévié, relié à l'aiguillage 3 en pointe
|
||||||
/ Pour une TJD : 26TJD,D(connectD,DirectionD),S(connectS,DirectionS)
|
/ Pour une TJD : 26TJD,D530,S529,P28
|
||||||
|
/ P désigne l'autre adresse de la TJD
|
||||||
|
/ Aiguillage triple
|
||||||
/
|
/
|
||||||
/ S'il n'y a pas de détecteur connecté à une branche d'aiguillage, mettre 0.
|
/ S'il n'y a pas de détecteur connecté à une branche d'aiguillage, mettre 0.
|
||||||
/77TJD,P78,D599,S600
|
1,P518,D523,S3P,30
|
||||||
/78TJD,P77,D598,S79D
|
2,P12S,D519,S5S
|
||||||
77TJD,D(599,78D),S(600,78S),I1
|
3,P1S,D4P,S5D
|
||||||
78TJD,D(598,S77D),S(79D,77S),I1
|
4,P3D,D6S,S514
|
||||||
79,P601,D78S,S597
|
5,P515,D3S,S2S
|
||||||
81,P515,D513,S82S
|
6,P516,D0,S4D
|
||||||
82,P83P,D516,S81S
|
7,P527,D519,S520
|
||||||
83,P82P,D514,S517
|
8,P527,D521,S522
|
||||||
85,P524,D89D,S86D
|
9,P526,D513,S515,60
|
||||||
86,P87P,D85S,S525
|
10,P19P,D29P,S528,30
|
||||||
87,P86P,D88P,S89S
|
11,P18P,D30D,S525
|
||||||
88,P87D,D548,S94D
|
12,P517,D20S,S2P
|
||||||
89TJD,D(85D,90D),S(87S,90S),I1
|
17,P525,D535,S528
|
||||||
90TJD,D(547,89D),S(91S,89S),I1
|
18,P11P,D23P,S517
|
||||||
/89TJD,P90,D85D,S87S
|
19,P10P,D22P,S531
|
||||||
/90TJD,P89,D547,S91S
|
20,P520,D21P,S12D
|
||||||
/91TJD,P92,D540,S90S
|
21,P20D,D28D,S28D
|
||||||
/92TJD,P91,D546,S96S
|
22,P19D,D537,S538
|
||||||
91TJD,D(540,92D),S(90S,92S),I1
|
23,P18D,D538,S534
|
||||||
92TJD,D(546,91D),S(96S,91S),I1
|
24,P538,D32S,S533
|
||||||
/93TJD,P94,D95S,S549
|
25,P31S,D529,S27P
|
||||||
/94TJD,P93,D88S,S542
|
26TJD,D(530,28D),S(529,28S),I0
|
||||||
93TJD,D(88S,94D),S(542,94S)
|
27,P25S,D530,S537
|
||||||
94TJD,D(549,93D),S(95S,93S)
|
28TJD,D(21D,26D),S(21S,26S),I0
|
||||||
95,P97S,D543,S93D
|
29,P10D,D513,S30S,60
|
||||||
96,P545,D538,S92S
|
30,P524,D11D,S29D
|
||||||
97,P102S,D544,S95P
|
31,P534,D0,S25P
|
||||||
98,P550,D555,S101S
|
32,P22S,D0,S24D
|
||||||
99,P101D,D551,S100D
|
|
||||||
100,P552,D99S,S553
|
|
||||||
101,P556,D99P,S98S
|
|
||||||
102,P103D,D557,S97P
|
|
||||||
/103TJD,P104,D102P,S563
|
|
||||||
/104TJD,P103,D564,S109D
|
|
||||||
103TJD,D(102P,104D),S(563,104S),I1
|
|
||||||
104TJD,D(564,103D),S(109D,103S),I1
|
|
||||||
105,P558,D106P,S107D
|
|
||||||
106,P105D,D566,S568
|
|
||||||
/107TJD,P108,D105S,S559
|
|
||||||
/108TJD,P107,D110S,S581
|
|
||||||
107TJD,D(105S,108D),S(559,108S),I1
|
|
||||||
108TJD,D(110S,107D),S(581,107S),I1
|
|
||||||
109,P112S,D104S,S562
|
|
||||||
110,P111P,S108D,D560
|
|
||||||
111,P110P,D589,S113S
|
|
||||||
112,P113D,D561,S109P
|
|
||||||
113,P590,D112P,S111S
|
|
||||||
114,P603,D115P,S604
|
|
||||||
115,P114D,D116S,S606
|
|
||||||
116,P607,D605,S115D
|
|
||||||
117,P602,D591,S118P
|
|
||||||
118,P117S,D119P,S592
|
|
||||||
119,P118D,D120P,S593
|
|
||||||
120,P119D,D595,S594
|
|
||||||
121,P122D,D588,S587
|
|
||||||
122,P123D,D121P,S586
|
|
||||||
123,P124S,D122P,S585
|
|
||||||
124,P583,D584,S123P
|
|
||||||
125,P579,D577,S578
|
|
||||||
126,P580,D569,S127P
|
|
||||||
127,P126S,D128P,S570
|
|
||||||
128,P127D,D129P,S571
|
|
||||||
129,P128D,D130P,S572
|
|
||||||
130,P129D,D574,S573
|
|
||||||
131,P132D,D529,S530
|
|
||||||
132,P133D,D131P,S531
|
|
||||||
133,P134D,D132P,S532
|
|
||||||
134,P135D,D133P,S533
|
|
||||||
135,P523,D134p,S534
|
|
||||||
136,P522,D535,S536
|
|
||||||
0
|
0
|
||||||
/
|
//
|
||||||
/ modélisation du réseau par branche
|
/ modélisation du réseau par branche
|
||||||
/ 1 ligne par branche - le sens de parcours de la branche est arbitraire.
|
/ 1 ligne par branche - le sens de parcours de la branche est arbitraire.
|
||||||
/ Chaque ligne (branche) doit commmencer et finir par un aiguilage ou un buttoir (0)
|
/ Chaque ligne (branche) doit commmencer et finir par un aiguillage
|
||||||
|
/ Une ligne qui finit par un 0 signifie un heurtoir
|
||||||
/ @ détecteur A=@aiguillage
|
/ @ détecteur A=@aiguillage
|
||||||
/ Terminer par 0
|
/ Terminer par 0
|
||||||
/ Exemple : 519 est un détecteur - A2 est l'aiguillage 2
|
/ Exemple : 519 est un détecteur - A2 est l'aiguillage 2
|
||||||
/
|
/
|
||||||
A83,514,518,520,524,A85,A89,A90,547,560,A110,A111,589,597,A79
|
A2,A12,517,A18,A11,A30,524,521,A8,527,A7,519,A2
|
||||||
A77,599,590,A113,A112,561,548,A88,A87,A86,525,521,519,513,A81
|
A7,520,A20,A12
|
||||||
A106,A105,558,545,A96,538,537,0
|
A1,A3,A4,514,522,A8
|
||||||
A108,581,582,0
|
A1,523,526,A9,513,A29,A10,A19,531,518,A1
|
||||||
A107,559,546,A92,A91,537,540,0
|
A9,515,A5
|
||||||
A112,A109,562,549,A93,A94,542,541,0
|
A11,525,A17,528,A10
|
||||||
A104,564,565,0
|
A17,535,533,A24,538,A23
|
||||||
A103,A102,A97,A95,543,528,0
|
A7,520,A20,A21,A28,A26,530,A27,A25,A31,534,A23,A18
|
||||||
A97,544,0
|
A26,529,A25
|
||||||
A102,557,555,A98,550,0
|
A22,537,A27
|
||||||
A103,563,556,A101,A99,551,0
|
A22,A32,A24
|
||||||
A99,A100,552,0
|
A6,516,0
|
||||||
A100,553,554,0
|
A31,0
|
||||||
A106,566,567,0
|
|
||||||
A106,568,603,A114,604,0
|
|
||||||
A114,A115,606,608,0
|
|
||||||
A115,A116,607,0
|
|
||||||
A116,605,0
|
|
||||||
A135,534,574,A130
|
|
||||||
A134,533,573,A130
|
|
||||||
A133,532,572,A129
|
|
||||||
A132,531,571,A128
|
|
||||||
A131,530,570,A127
|
|
||||||
A82,516,527,576,580,A126,569,529,A131,A132,A133,A134,A135,523,515,A81
|
|
||||||
A136,536,578,A125
|
|
||||||
A77,600,579,A125,577,535,A136,522,517,A83
|
|
||||||
A79,601,596,583,A124,584,595,A120,A119,A118,A117,602,598,A78
|
|
||||||
A117,591,588,A121
|
|
||||||
A118,592,587,A121
|
|
||||||
A119,593,586,A122
|
|
||||||
A120,594,585,A123
|
|
||||||
0
|
0
|
||||||
/
|
/ liste des adresses des signaux et leur forme, pour affichage de l'image correspondante ,
|
||||||
/ liste signaux
|
/ avec ou sans bouton de commande pour le feu blanc, type de décodeur [, type de cible (pour les décodeurs Unisemaf uniquement)]
|
||||||
/ la liste doit être terminée par une adresse à 0
|
/ la liste doit être terminée par une adresse à 0
|
||||||
/ forme : 2=2 feux(carré violet/blanc) / 3=3 feux / 4=4 feux (carré) / 5=5 feux (carré + blanc)
|
/ forme : 2=2 feux(carré violet/blanc) / 3=3 feux / 4=4 feux / 5=5 feux (carré + blanc ou violet)
|
||||||
/ 7=7 feux (carré+blanc + ralentissement / 9=9 feux (blanc ou violet + rappel ralentissement)
|
/ 7=7 feux (blanc ou violet + ralentissement / 9=9 feux (blanc ou violet + rappel ralentissement)
|
||||||
/ type de décodeur : 0=virtuel 1=digital Bahn 2=CDF 3=LDT 4=LEB 5=NMRA 6=Unisemaf Paco
|
/ Dx : signal directionnel à x feux
|
||||||
/ l'énumération des détecteurs ne nécessite pas de parenthèses si il est seul, mais il faut des parenthèses si
|
/ type de décodeur : 1=digital Bahn 2=CDF 3=LDT 4=LEB 5=NMRA 6=Unisemaf
|
||||||
/ le signal concerne plusieurs voies (donc détecteurs)
|
|
||||||
/ Notation de chaque ligne:
|
/ Notation de chaque ligne:
|
||||||
/ adresse de base du signal, forme, réserve, type de décodeur [, (détecteur,..detecteur , élément suivant ..) ,
|
/ adresse de base du signal, forme, avec ou sans bouton de commande du feu blanc, type de décodeur [, détecteur (det2, det3, ...) , élément suivant ,
|
||||||
/ avec ou sans demande de verrouillage du feu au carré (0 ou 1)]
|
/ avec ou sans demande de verrouillage du feu au carré]
|
||||||
197,3,0,6,(598,A78),1,3
|
/
|
||||||
201,4,0,6,(597,A79),1,4
|
/ signaux de test
|
||||||
205,9,0,6,(590,A113),1,93
|
/610,4,0,0,(521,a8),1
|
||||||
209,9,0,6,(560,A110),1,92
|
/615,5,0,0,(521,a8),1
|
||||||
213,9,0,6,(548,A88),1,92
|
/616,5,0,2,(521,a8),1
|
||||||
217,9,0,6,(524,A85),1,93
|
/617,5,0,3,(521,a8),1
|
||||||
221,7,0,6,(518,520),1,73
|
/618,5,0,5,(521,a8),1
|
||||||
225,3,0,6,(521,519),1,3
|
/619,5,0,6,(521,a8),1,52
|
||||||
229,9,0,6,(516,A82),1,92
|
176,7,0,1,(520,A20),1
|
||||||
233,4,0,6,(513,A81),1,92
|
190,7,0,1,(523,526),0
|
||||||
|
204,9,0,1,(527,A7),1
|
||||||
|
218,7,0,1,(525,A17),1
|
||||||
|
232,2,1,1,(516,A6),0
|
||||||
|
260,9,1,1,(518,A1),1
|
||||||
|
274,3,0,1,(524,521),0
|
||||||
|
288,7,0,1,(522,A8),1
|
||||||
|
302,9,0,1,(526,A9),1
|
||||||
|
316,7,1,1,(515,A5),1
|
||||||
|
330,7,0,1,(519,A2),1
|
||||||
|
344,9,0,1,(528,A10),1
|
||||||
|
358,9,0,1,(517,A18),1
|
||||||
|
372,D3,1,(A10D)(A19S)(A19D,A22D)(A19D,A22S)
|
||||||
|
382,D3,1,(A29S,A10S)(A19S)(A19D,A22D)(A19D,A22S)
|
||||||
|
392,3,0,1,(535,533),1
|
||||||
|
420,7,0,1,(529,A25,530,A27,537,A27),1
|
||||||
|
448,7,0,1,(533,A24),1
|
||||||
|
462,9,0,1,(513,A29),1
|
||||||
|
476,9,0,1,(538,A23),1
|
||||||
|
497,9,0,4,(531,A19),1
|
||||||
|
600,7,0,0,(521,A8),1
|
||||||
|
1000,9,0,0,(530,A26),1
|
||||||
|
1001,9,0,0,(529,A26),1
|
||||||
0
|
0
|
||||||
/
|
/
|
||||||
|
/ Section actionneurs. Ne fonctionne qu'en mode connecté à CDM en run
|
||||||
/ Fonctions Fx à envoyer aux locomotives sur passage d'un actionneur
|
/ Fonctions Fx à envoyer aux locomotives sur passage d'un actionneur
|
||||||
/ Uniquement en mode connecté à CDM
|
/ actionneur,état,Nom du train,fonction,temporisation en ms avant remise à 0
|
||||||
/ actionneur,état,Nom de la loco,fonction,temporisation en ms avant remise à 0
|
/
|
||||||
|
/ Passages à niveau (PN)
|
||||||
|
/ (act_ferme_voie1,act_ouvre_voie1),(act_ferme_voie2,act_ouvre_voie2),...,PN(adresse_ferme,adresse_ouvre)
|
||||||
|
/
|
||||||
|
/ Klaxon (F2)
|
||||||
|
/815,1,CC406526,F2,400
|
||||||
|
/
|
||||||
|
/ passage à niveau à 2 voies
|
||||||
|
/(815,830),(820,840),PN(121+,121-)
|
||||||
|
/
|
||||||
|
/ passage à niveau à 1 voie
|
||||||
|
/(815,809),PN(131+,131-)
|
||||||
|
/
|
||||||
|
813,1,CC406526,A613,2,Z
|
||||||
0
|
0
|
||||||
|
|||||||
Binary file not shown.
@@ -23,7 +23,7 @@ var
|
|||||||
Lance_verif : integer;
|
Lance_verif : integer;
|
||||||
verifVersion,notificationVersion : boolean;
|
verifVersion,notificationVersion : boolean;
|
||||||
|
|
||||||
Const Version='2.2'; // sert à la comparaison de la version publiée
|
Const Version='2.21'; // sert à la comparaison de la version publiée
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
Version 1.0 : première version
|
Version 1.0 : première version
|
||||||
Version 1.01 : gestion des trajectoires vers les buttoirs
|
Version 1.01 : gestion des routes vers les buttoirs
|
||||||
Version 1.02 : vérification automatique des versions
|
Version 1.02 : vérification automatique des versions
|
||||||
Version 1.1 : gestion des tableaux indicateurs de direction
|
Version 1.1 : gestion des tableaux indicateurs de direction
|
||||||
gestion du décodeur de signaux Unisemaf Paco (expérimental)
|
gestion du décodeur de signaux Unisemaf Paco (expérimental)
|
||||||
@@ -40,6 +40,9 @@ version 2.11 : Suppression du message d'erreur "Element 9999 non trouv
|
|||||||
Ajout de l'option fenêtre étendue dans le panneau de configuration
|
Ajout de l'option fenêtre étendue dans le panneau de configuration
|
||||||
Version 2.2 : Correction d'un bug sur le verrouillage des signaux au carré sur les trains en approche.
|
Version 2.2 : Correction d'un bug sur le verrouillage des signaux au carré sur les trains en approche.
|
||||||
Mise à jour du fichier de config.cfg si modification des signaux dans la configuration.
|
Mise à jour du fichier de config.cfg si modification des signaux dans la configuration.
|
||||||
|
version 2.21 : Paramétrage du nombre de détecteurs considérés comme trop distants
|
||||||
|
Correction d'un bug de la 2.2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user