This commit is contained in:
f1iwq2
2023-11-01 13:53:25 +01:00
parent 95f2e65b80
commit 5de453ddc1
10 changed files with 435 additions and 392 deletions
+31 -31
View File
@@ -1,8 +1,8 @@
Start Length Name Class
0001:00000000 00166354H .text CODE
0002:00000000 00002C10H .data DATA
0002:00002C10 041C8BF9H .bss BSS
0001:00000000 0016718CH .text CODE
0002:00000000 00002BE8H .data DATA
0002:00002BE8 041CBB51H .bss BSS
Detailed map of segments
@@ -88,17 +88,17 @@ Detailed map of segments
0001:000B5290 00002690 C=CODE S=.text G=(none) M=UnitConfigTCO ACBP=A9
0001:000B7920 000009C0 C=CODE S=.text G=(none) M=Unit_Pilote_aig ACBP=A9
0001:000B82E0 00003458 C=CODE S=.text G=(none) M=UnitConfigCellTCO ACBP=A9
0001:000BB738 0002CEBC C=CODE S=.text G=(none) M=UnitTCO ACBP=A9
0001:000E85F4 00002C18 C=CODE S=.text G=(none) M=UnitSR ACBP=A9
0001:000EB20C 00002404 C=CODE S=.text G=(none) M=UnitCDF ACBP=A9
0001:000ED610 000015DB C=CODE S=.text G=(none) M=verif_version ACBP=A9
0001:000EEBEC 0000114C C=CODE S=.text G=(none) M=UnitPareFeu ACBP=A9
0001:000EFD38 00037300 C=CODE S=.text G=(none) M=UnitConfig ACBP=A9
0001:00127038 0000290C C=CODE S=.text G=(none) M=UnitDebug ACBP=A9
0001:00129944 00000C00 C=CODE S=.text G=(none) M=UnitSimule ACBP=A9
0001:0012A544 00002390 C=CODE S=.text G=(none) M=Unitplace ACBP=A9
0001:0012C8D4 000395F0 C=CODE S=.text G=(none) M=UnitPrinc ACBP=A9
0001:00165EC4 0000048D C=CODE S=.text G=(none) M=Signaux_complexes_GL ACBP=A9
0001:000BB738 0002DB7C C=CODE S=.text G=(none) M=UnitTCO ACBP=A9
0001:000E92B4 00002C18 C=CODE S=.text G=(none) M=UnitSR ACBP=A9
0001:000EBECC 00002404 C=CODE S=.text G=(none) M=UnitCDF ACBP=A9
0001:000EE2D0 000015D3 C=CODE S=.text G=(none) M=verif_version ACBP=A9
0001:000EF8A4 0000114C C=CODE S=.text G=(none) M=UnitPareFeu ACBP=A9
0001:000F09F0 00037308 C=CODE S=.text G=(none) M=UnitConfig ACBP=A9
0001:00127CF8 0000290C C=CODE S=.text G=(none) M=UnitDebug ACBP=A9
0001:0012A604 00000C00 C=CODE S=.text G=(none) M=UnitSimule ACBP=A9
0001:0012B204 00002390 C=CODE S=.text G=(none) M=Unitplace ACBP=A9
0001:0012D594 00039768 C=CODE S=.text G=(none) M=UnitPrinc ACBP=A9
0001:00166CFC 0000048D C=CODE S=.text G=(none) M=Signaux_complexes_GL ACBP=A9
0002:00000000 000000CC C=DATA S=.data G=DGROUP M=System ACBP=A9
0002:000000CC 00000020 C=DATA S=.data G=DGROUP M=SysInit ACBP=A9
0002:000000EC 00000254 C=DATA S=.data G=DGROUP M=SysUtils ACBP=A9
@@ -125,12 +125,12 @@ Detailed map of segments
0002:00001234 00000030 C=DATA S=.data G=DGROUP M=ComObj ACBP=A9
0002:00001264 0000002C C=DATA S=.data G=DGROUP M=OleCtrls ACBP=A9
0002:00001290 00000908 C=DATA S=.data G=DGROUP M=jpeg ACBP=A9
0002:00001B98 00000080 C=DATA S=.data G=DGROUP M=MSCommLib_TLB ACBP=A9
0002:00001C18 00000009 C=DATA S=.data G=DGROUP M=MaskUtils ACBP=A9
0002:00001C24 00000004 C=DATA S=.data G=DGROUP M=Mask ACBP=A9
0002:00001C28 00000006 C=DATA S=.data G=DGROUP M=Grids ACBP=A9
0002:00001C30 000000D4 C=DATA S=.data G=DGROUP M=UnitTCO ACBP=A9
0002:00001D04 0000060D C=DATA S=.data G=DGROUP M=UnitPrinc ACBP=A9
0002:00001B98 00000058 C=DATA S=.data G=DGROUP M=MSCommLib_TLB ACBP=A9
0002:00001BF0 00000009 C=DATA S=.data G=DGROUP M=MaskUtils ACBP=A9
0002:00001BFC 00000004 C=DATA S=.data G=DGROUP M=Mask ACBP=A9
0002:00001C00 00000006 C=DATA S=.data G=DGROUP M=Grids ACBP=A9
0002:00001C08 000000D4 C=DATA S=.data G=DGROUP M=UnitTCO ACBP=A9
0002:00001CDC 0000060D C=DATA S=.data G=DGROUP M=UnitPrinc ACBP=A9
0002:00003000 00000664 C=BSS S=.bss G=DGROUP M=System ACBP=A9
0002:00003664 00000010 C=BSS S=.bss G=DGROUP M=SysInit ACBP=A9
0002:00003674 00000004 C=BSS S=.bss G=DGROUP M=Types ACBP=A9
@@ -212,16 +212,16 @@ Detailed map of segments
0002:00007C40 00000014 C=BSS S=.bss G=DGROUP M=UnitConfigTCO ACBP=A9
0002:00007C54 00000014 C=BSS S=.bss G=DGROUP M=Unit_Pilote_aig ACBP=A9
0002:00007C68 00000014 C=BSS S=.bss G=DGROUP M=UnitConfigCellTCO ACBP=A9
0002:00007C7C 00041F90 C=BSS S=.bss G=DGROUP M=UnitTCO ACBP=A9
0002:00049C0C 00000010 C=BSS S=.bss G=DGROUP M=UnitSR ACBP=A9
0002:00049C1C 00000014 C=BSS S=.bss G=DGROUP M=UnitCDF ACBP=A9
0002:00049C30 00000018 C=BSS S=.bss G=DGROUP M=verif_version ACBP=A9
0002:00049C48 00000004 C=BSS S=.bss G=DGROUP M=UnitPareFeu ACBP=A9
0002:00049C4C 000004F8 C=BSS S=.bss G=DGROUP M=UnitConfig ACBP=A9
0002:0004A144 0000002C C=BSS S=.bss G=DGROUP M=UnitDebug ACBP=A9
0002:0004A170 0000000C C=BSS S=.bss G=DGROUP M=UnitSimule ACBP=A9
0002:0004A17C 00000008 C=BSS S=.bss G=DGROUP M=Unitplace ACBP=A9
0002:0004A184 04181A74 C=BSS S=.bss G=DGROUP M=UnitPrinc ACBP=A9
0002:00007C7C 00044EE8 C=BSS S=.bss G=DGROUP M=UnitTCO ACBP=A9
0002:0004CB64 00000010 C=BSS S=.bss G=DGROUP M=UnitSR ACBP=A9
0002:0004CB74 00000014 C=BSS S=.bss G=DGROUP M=UnitCDF ACBP=A9
0002:0004CB88 00000018 C=BSS S=.bss G=DGROUP M=verif_version ACBP=A9
0002:0004CBA0 00000004 C=BSS S=.bss G=DGROUP M=UnitPareFeu ACBP=A9
0002:0004CBA4 000004F8 C=BSS S=.bss G=DGROUP M=UnitConfig ACBP=A9
0002:0004D09C 0000002C C=BSS S=.bss G=DGROUP M=UnitDebug ACBP=A9
0002:0004D0C8 0000000C C=BSS S=.bss G=DGROUP M=UnitSimule ACBP=A9
0002:0004D0D4 00000008 C=BSS S=.bss G=DGROUP M=Unitplace ACBP=A9
0002:0004D0DC 04181A74 C=BSS S=.bss G=DGROUP M=UnitPrinc ACBP=A9
Bound resource files
@@ -247,4 +247,4 @@ Signaux_complexes_GL.res
Signaux_complexes_GL.drf
Program entry point at 0001:001661D4
Program entry point at 0001:0016700C
+2 -2
View File
@@ -668,7 +668,7 @@ object FormConfig: TFormConfig
Top = 8
Width = 633
Height = 497
ActivePage = TabSheetPeriph
ActivePage = TabSheetCDM
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Height = -11
@@ -927,7 +927,7 @@ object FormConfig: TFormConfig
Top = 184
Width = 297
Height = 65
Caption = 'Au d'#233'marrage de CDM Rail : interface LENZ'
Caption = 'Au d'#233'marrage de CDM Rail : interface LENZ / XpressNet'
TabOrder = 3
object RadioButton13: TRadioButton
Left = 8
+20 -22
View File
@@ -1153,7 +1153,7 @@ begin
for j:=1 to NfeuxDir+1 do
begin
s:=s+'(';
for k:=1 to Length(feux[i].AigDirection[j])-1 do // boum
for k:=1 to Length(feux[i].AigDirection[j])-1 do
begin
s:=s+'A'+IntToSTR(feux[i].AigDirection[j][k].adresse) + feux[i].AigDirection[j][k].posaig;
if k<Length(feux[i].AigDirection[j])-1 then s:=s+',';
@@ -2064,7 +2064,6 @@ var s,sa,SOrigine: string;
Tablo_actionneur[i].accessoire:=0;
Tablo_actionneur[i].sortie:=0;
Tablo_actionneur[i].fichierSon:='';
// Tablo_actionneur[i].det:=false;
Tablo_actionneur[i].loco:=false;
Tablo_actionneur[i].act:=false;
Tablo_actionneur[i].son:=false;
@@ -3196,7 +3195,7 @@ var s,sa,SOrigine: string;
delete(s,i,length(sa));
AvecDemandeInterfaceEth:=s='1';
end;
// taille de la fenetre
sa:=uppercase(fenetre_ch)+'=';
i:=pos(sa,s);
@@ -3299,6 +3298,7 @@ var s,sa,SOrigine: string;
inc(nv);
delete(s,i,length(sa)+1);
val(s,AvecVerifIconesTCO,erreur);
AvecVerifIconesTCO:=0; // forcé à 0
s:='';
end;
@@ -4295,12 +4295,10 @@ begin
s:=items[i];
ajoute_champs_combos(i+1);
end;
end;
end;
end;
// met à jour le nom d'un champ d'index i dans les combos
procedure maj_champs_combos(i: integer);
var j,n : integer;
@@ -4815,7 +4813,7 @@ begin
ShapeZ:=TShape.Create(formconfig.GroupBoxPNZ);
with ShapeZ do
begin
Left:=64;Top:=40;Width:=150;Height:=2;
Left:=64;Top:=40;Width:=170;Height:=2;
name:='ShapeZ';
parent:=GroupBoxPNZ;
end;
@@ -5555,7 +5553,7 @@ begin
GroupBoxEtatTJD.Visible:=false;
GroupBox21.Visible:=true;
GroupBox10.Visible:=true;
checkInverse.Visible:=true;
checkInverse.Visible:=true;
// tjd
if tjd or tjs or croi then
@@ -6509,7 +6507,7 @@ begin
if s[1]='(' then
begin
champs_type_pn;
// trouver le numéro de périphérique
// trouver le numéro de périphérique
v:=pos('PN(',s);
delete(s,1,v+2);
val(s,periph,erreur);
@@ -7270,19 +7268,19 @@ begin
Maj_Hint_Signal(i);
case decodeur of
6 : begin
labelUni.Caption:='Spec Unisemaf';LabelUni.Visible:=true;
EditSpecUni.Visible:=true;
end;
9 : begin
s:='Décodeur pour signaux belges SNCB - 4 aspects uniquement: ';
labelInfo.Caption:=s+'vert - rouge - double jaune - rouge blanc';
end;
6 : begin
labelUni.Caption:='Spec Unisemaf';LabelUni.Visible:=true;
EditSpecUni.Visible:=true;
end;
9 : begin
s:='Décodeur pour signaux belges SNCB - 4 aspects uniquement: ';
labelInfo.Caption:=s+'vert - rouge - double jaune - rouge blanc';
end;
10 : begin
s:='Décodeur pour signaux belges SNCB - 6 aspects + chiffre + V ';
labelInfo.Caption:=s;
labelUni.Caption:='Nombre d''adresses';LabelUni.Visible:=true;
EditSpecUni.Visible:=true;
s:='Décodeur pour signaux belges SNCB - 6 aspects + chiffre + V ';
labelInfo.Caption:=s;
labelUni.Caption:='Nombre d''adresses';LabelUni.Visible:=true;
EditSpecUni.Visible:=true;
end
else labelInfo.Caption:='';
end;
@@ -9161,7 +9159,7 @@ begin
begin
affiche('Erreur 9.1 : signal '+intToSTR(adr)+' ('+intToSTR(nc)+' adresses) et aiguillage '+intToSTR(adr2)+' se chevauchent',clred);
ok:=false;
end;
end;
end;
for i:=j+1 to NbreFeux do
+6 -5
View File
@@ -1,8 +1,9 @@
object FormPrinc: TFormPrinc
Left = 47
Top = 346
Left = 91
Top = 235
Width = 1133
Height = 653
Anchors = [akLeft, akTop, akRight]
Caption = 'Signaux complexes'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
@@ -1490,7 +1491,7 @@ object FormPrinc: TFormPrinc
Visible = False
OnClick = Button1Click
end
object Panel2: TPanel
object GrandPanel: TPanel
Left = 0
Top = 32
Width = 1065
@@ -1982,8 +1983,8 @@ object FormPrinc: TFormPrinc
end
end
object GroupBox2: TGroupBox
Left = 449
Top = 72
Left = 457
Top = 144
Width = 265
Height = 105
Anchors = [akTop, akRight]
+157 -115
View File
@@ -163,7 +163,7 @@ type
CO81: TMenuItem;
CO91: TMenuItem;
CO101: TMenuItem;
Panel2: TPanel;
GrandPanel: TPanel;
FenRich: TRichEdit;
SplitterV: TSplitter;
ScrollBox1: TScrollBox;
@@ -1138,10 +1138,8 @@ begin
}
// extinctions
if not((code=jaune_cli) and clignotant) then cercle(ACanvas,xJaune,yJaune,rayon,GrisF);
if not((code=vert_cli) and clignotant) then cercle(ACanvas,xVert,yVert,rayon,GrisF);
if not((code=jaune_cli) and clignotant) then cercle(ACanvas,xJaune,yJaune,rayon,GrisF);
if not((code=vert_cli) and clignotant) then cercle(ACanvas,xVert,yVert,rayon,GrisF);
if not((code=semaphore_cli) and clignotant) then cercle(ACanvas,xSem,ySem,rayon,GrisF);
// allumages
@@ -1541,8 +1539,8 @@ var mrect,nrect : trect;
begin
larg:=ImageSrc.Width;
haut:=ImageSrc.Height;
mRect:= rect(0,0,larg,haut);
nRect:= rect(larg-1,0,-1,haut);
mRect:=rect(0,0,larg,haut);
nRect:=rect(larg-1,0,-1,haut);
ImageDest.canvas.CopyRect(mRect,ImageSrc.canvas,nRect);
end;
@@ -1555,9 +1553,6 @@ var xblanc,xvert,xrouge,Yblanc,xjauneBas,xJauneHaut,yJauneBas,yJauneHaut,YVert,Y
ech : real;
inverse,etatChevron,EtatChiffre,codeClignote : boolean;
r : Trect;
c : tcomponent;
t : hwnd;
s : string;
begin
code:=etatSignal and $3f;
@@ -2032,7 +2027,7 @@ begin
case aspect of
// feux de signalisation
2 : dessine_signal2(CanvasDest,x,y,frx,fry,feux[i].EtatSignal,orientation);
3 : dessine_signal3(CanvasDest,x,y,frx,fry,feux[i].EtatSignal,feux[i].AncienEtat,orientation);
3 : dessine_signal3(CanvasDest,x,y,frx,fry,feux[i].EtatSignal,feux[i].AncienEtat,orientation); // essai
4 : dessine_signal4(CanvasDest,x,y,frx,fry,feux[i].EtatSignal,orientation);
5 : dessine_signal5(CanvasDest,x,y,frx,fry,feux[i].EtatSignal,orientation);
7 : dessine_signal7(CanvasDest,x,y,frx,fry,feux[i].EtatSignal,orientation);
@@ -4383,7 +4378,7 @@ end;
// pilote un signal par un décodeur personnalisé
procedure envoi_decodeur_pers(Adresse : integer);
var s : string;
d,dp,i,j,k,etat,asp,combine,aspect,nAdresses,numcom,v,numacc,cmd : integer;
d,dp,i,j,k,etat,asp,combine,aspect,nAdresses,v,numacc,cmd : integer;
trouve1,trouve2,trouve3,trouve4 : boolean;
begin
i:=Index_Signal(adresse);
@@ -5657,7 +5652,8 @@ begin
if (nivdebug>1) or traceliste then AfficheDebug('135.7- TJD '+intToSTR(adr)+' mal positionnée cas 3.1',clyellow);
if (alg and 2)=2 then
begin
suivant_alg3:=9998;exit;
suivant_alg3:=9998;
exit;
end;
end;
end;
@@ -5671,7 +5667,8 @@ begin
begin
typeGen:=rien;
AdrDevie:=Adr;
suivant_alg3:=9997;exit;
suivant_alg3:=9997;
exit;
end;
end
else
@@ -5679,7 +5676,8 @@ begin
if (nivdebug>1) or traceliste then AfficheDebug('135.8- TJD '+intToSTR(adr)+' mal positionnée cas 3.2',clyellow);
if (alg and 2)=2 then
begin
suivant_alg3:=9998;exit;
suivant_alg3:=9998;
exit;
end;
end;
end;
@@ -8608,8 +8606,9 @@ end;
// le traitement d'un détecteur à 0 est temporisé car il peut électriquement rebondir à cause des mauvais contacts.
// non utilisé ***************
procedure traite_det0(adresse : integer);
var i,j,k,EtatSig,det1,det2,det3,det4,det_suiv,adrSuiv,AdrTrainLoc,n : integer;
var i,j,k,EtatSig,det1,t,det2,det3,det4,det_suiv,adrSuiv,AdrTrainLoc,n : integer;
suivOk,CasAig : boolean;
s,train_ch : string;
begin
@@ -8779,10 +8778,13 @@ begin
end;
if TCOActive then
begin
zone_TCO(1,det2,det3,0); // désactivation
// activation
if ModeCouleurCanton=0 then zone_TCO(1,det3,AdrSuiv,1)
else zone_TCO(1,det3,AdrSuiv,2); // affichage avec la couleur de index_couleur du train
for t:=1 to nbreTCO do
begin
zone_TCO(t,det2,det3,0); // désactivation
// activation
if ModeCouleurCanton=0 then zone_TCO(t,det3,AdrSuiv,1)
else zone_TCO(t,det3,AdrSuiv,2); // affichage avec la couleur de index_couleur du train
end;
end;
// mettre à jour si présence signal sur det3 pour le passer au rouge de suite
@@ -8831,7 +8833,7 @@ end;
// adresse: adresse du detecteur, front: état du détecteur
procedure calcul_zones_V1(adresse: integer;etat : boolean);
var m,AdrFeu,AdrDetFeu,AdrTrainLoc,Nbre,i,i2,j,k,n,det1,det2,det3,det4,AdrSuiv,AdrPrec,Prev,
id_couleur,det_suiv,nc,etatSig : integer ;
id_couleur,det_suiv,nc,etatSig,tco : integer ;
traite,trouve,SuivOk,casaig,rebond : boolean;
couleur : tcolor;
TypeSuiv : tEquipement;
@@ -8979,8 +8981,11 @@ begin
if TCOActive then
begin
// activation
if ModeCouleurCanton=0 then zone_TCO(1,det3,AdrSuiv,1)
else zone_TCO(1,det3,adrSuiv,2); // affichage avec la couleur de index_couleur du train
for tco:=1 to nbreTCO do
begin
if ModeCouleurCanton=0 then zone_TCO(tco,det3,AdrSuiv,1)
else zone_TCO(tco,det3,adrSuiv,2); // affichage avec la couleur de index_couleur du train
end;
end;
exit; // sortir absolument
end
@@ -9040,9 +9045,12 @@ begin
Affiche_Evt(s,clWhite);
if TCOActive then
begin
// activation
if ModeCouleurCanton=0 then zone_TCO(1,det1,det3,1)
else zone_TCO(1,det1,det3,2); // affichage avec la couleur de index_couleur du train
// activation
for tco:=1 to nbreTCO do
begin
if ModeCouleurCanton=0 then zone_TCO(tco,det1,det3,1)
else zone_TCO(tco,det1,det3,2); // affichage avec la couleur de index_couleur du train
end;
end;
end;
end;
@@ -9225,10 +9233,13 @@ begin
end;
if TCOActive then
begin
zone_TCO(1,det2,det3,0); // désactivation
// activation
if ModeCouleurCanton=0 then zone_TCO(1,det3,AdrSuiv,1)
else zone_TCO(1,det3,AdrSuiv,2); // affichage avec la couleur de index_couleur du train
for tco:=1 to nbreTCO do
begin
zone_TCO(tco,det2,det3,0); // désactivation
// activation
if ModeCouleurCanton=0 then zone_TCO(tco,det3,AdrSuiv,1)
else zone_TCO(tco,det3,AdrSuiv,2); // affichage avec la couleur de index_couleur du train
end;
end;
// mettre à jour si présence signal sur det3 pour le passer au rouge de suite
@@ -9343,10 +9354,12 @@ begin
if AffAigDet then AfficheDebug(s,couleur);
if TCOActive then
begin
zone_TCO(1,det1,det2,0); // désactivation
// activation
if ModeCouleurCanton=0 then zone_TCO(1,det2,det3,1)
else zone_TCO(1,det2,det3,2); // affichage avec la couleur de index_couleur du train
for tco:=1 to nbreTCO do
begin
// activation
if ModeCouleurCanton=0 then zone_TCO(tco,det2,det3,1)
else zone_TCO(tco,det2,det3,2); // affichage avec la couleur de index_couleur du train
end;
end;
exit; // sortir absolument
end
@@ -9523,7 +9536,7 @@ end;
// adresse: adresse du detecteur, front: état du détecteur
procedure calcul_zones_V2(adresse: integer;etat : boolean);
var m,AdrFeu,AdrDetFeu,AdrTrainLoc,Nbre,i,j,k,n,det1,det2,det3,det4,AdrSuiv,AdrPrec,Prev,
id_couleur,det_suiv,nc,etatSig : integer ;
id_couleur,det_suiv,nc,etatSig,t : integer ;
traite,trouve,SuivOk,casaig,rebond : boolean;
couleur : tcolor;
TypeSuiv : tEquipement;
@@ -9659,8 +9672,11 @@ begin
if TCOActive then
begin
// activation
if ModeCouleurCanton=0 then zone_TCO(1,det3,AdrSuiv,1)
else zone_TCO(1,det3,adrSuiv,2); // affichage avec la couleur de index_couleur du train
for t:=1 to nbreTCO do
begin
if ModeCouleurCanton=0 then zone_TCO(t,det3,AdrSuiv,1)
else zone_TCO(t,det3,adrSuiv,2); // affichage avec la couleur de index_couleur du train
end;
end;
exit; // sortir absolument
end
@@ -9721,8 +9737,11 @@ begin
if TCOActive then
begin
// activation
if ModeCouleurCanton=0 then zone_TCO(1,det1,det3,1)
else zone_TCO(1,det1,det3,2); // affichage avec la couleur de index_couleur du train
for t:=1 to nbreTCO do
begin
if ModeCouleurCanton=0 then zone_TCO(t,det1,det3,1)
else zone_TCO(t,det1,det3,2); // affichage avec la couleur de index_couleur du train
end;
end;
end;
end;
@@ -9890,10 +9909,13 @@ begin
end;
if TCOActive then
begin
zone_TCO(1,det2,det3,0); // désactivation
// activation
if ModeCouleurCanton=0 then zone_TCO(1,det3,AdrSuiv,1)
else zone_TCO(1,det3,AdrSuiv,2); // affichage avec la couleur de index_couleur du train
for t:=1 to nbreTCO do
begin
//zone_TCO(tco,det2,det3,0); // désactivation
// activation
if ModeCouleurCanton=0 then zone_TCO(t,det3,AdrSuiv,1)
else zone_TCO(t,det3,AdrSuiv,2); // affichage avec la couleur de index_couleur du train
end;
end;
// mettre à jour si présence signal sur det3 pour le passer au rouge de suite
@@ -10021,10 +10043,13 @@ begin
if AffAigDet then AfficheDebug(s,couleur);
if TCOActive then
begin
zone_TCO(1,det1,det2,0); // désactivation
// activation
if ModeCouleurCanton=0 then zone_TCO(1,det2,det3,1)
else zone_TCO(1,det2,det3,2); // affichage avec la couleur de index_couleur du train
for t:=1 to nbreTCO do
begin
//zone_TCO(tco,det1,det2,0); // désactivation
// activation
if ModeCouleurCanton=0 then zone_TCO(t,det2,det3,1)
else zone_TCO(t,det2,det3,2); // affichage avec la couleur de index_couleur du train
end;
end;
exit; // sortir absolument
end
@@ -12767,19 +12792,19 @@ begin
GroupBox2.Left:=i+12;
GroupBox3.Left:=i+12;
ScrollBox1.Left:=i+12;
ScrollBox1.width:=panel2.Width-i-5;
ScrollBox1.width:=GrandPanel.Width-i-5;
Panel1.Left:=GroupBox1.Left+GroupBox1.Width+5;
Panel1.top:=9;
GroupBox1.Top:=5;
Affiche_signaux;
if not(avec_Splitter) then Panel2.Width:=i;
if not(avec_Splitter) then GrandPanel.Width:=i;
end;
end;
// démarrage principal du programme signaux_complexes
procedure TFormPrinc.FormCreate(Sender: TObject);
var i,index,OrgMilieu : integer;
var t,i,index,OrgMilieu : integer;
s : string;
begin
AF:='Client TCP-IP CDM Rail ou USB - système XpressNet DCC++ Version '+Version+sousVersion;
@@ -12967,9 +12992,7 @@ begin
with statusbar1 do
begin
SimplePanel:=false; // pour afficher plusieurs panels dans la Statusbar
Panels[0].Text:='';
Panels[1].Text:='';
Panels[2].Text:='';
Panels[3].Text:='';
@@ -12977,16 +13000,15 @@ begin
//Panels[3].Style:=psOwnerDraw; // pour déclencher l'évenement onDraw
end;
with Panel2 do
begin
left:=5;
//Align:=AlLeft; // si on ne met pas AlignLeft, alors le splitter n'est pas accrochable
top:=formprinc.LabelTitre.top+formprinc.LabelTitre.Height+4;;
width:=formprinc.width-30;
height:=formprinc.Height-StatusBar1.Height-LabelTitre.Height-63;
//height:=400;
Anchors:=[akLeft,akTop,akRight,akBottom];
end;
with GrandPanel do
begin
left:=5;
//Align:=AlLeft; // si on ne met pas AlignLeft, alors le splitter n'est pas accrochable
top:=formprinc.LabelTitre.top+formprinc.LabelTitre.Height+4;;
width:=formprinc.width-30;
height:=formprinc.Height-StatusBar1.Height-LabelTitre.Height-63;
Anchors:=[akLeft,akTop,akRight,akBottom];
end;
if avec_splitter then
@@ -12996,7 +13018,7 @@ begin
left:=5;
Align:=AlLeft; // si on ne met pas AlignLeft, alors le splitter n'est pas accrochable
top:=5; // par rapport au panel
Width:=panel2.Width-Panel1.Width-GroupBox1.Width-25;
Width:=GrandPanel.Width-Panel1.Width-GroupBox1.Width-25;
//height:=formprinc.Height-StatusBar1.Height-StaticText.Height-LabelTitre.Height-90;
Anchors:=[akLeft,akTop,akRight,akBottom];
end;
@@ -13005,17 +13027,17 @@ begin
begin
Left:=FenRich.left+FenRich.Width-25;
MinSize:=200;
Parent:=Panel2;
Parent:=GrandPanel;
align:=fenrich.align; // dessine le splitter à droite de la fenetre Fenrich
Visible:=true;
end;
with ScrollBox1 do
begin
Parent:=Panel2;
Parent:=GrandPanel;
Anchors:=[akTop,akRight,akBottom];
width:=panel2.Width-SplitterV.Width-5;
height:=panel2.Height-groupBox3.height-groupBox3.top-25;
width:=GrandPanel.Width-SplitterV.Width-5;
height:=GrandPanel.Height-groupBox3.height-groupBox3.top-25;
top:=GroupBox3.Top+GroupBox3.Height+5;
end;
@@ -13033,13 +13055,13 @@ begin
left:=5;
top:=0;
width:=panel2.Width-orgMilieu-10;
height:=panel2.Height;
width:=GrandPanel.Width-orgMilieu-10;
height:=GrandPanel.Height;
//Anchors:=[akLeft,akTop,akRight,akBottom];
GroupBox1.Left:=orgMilieu+12;
GroupBox3.Left:=orgMilieu+12;
ScrollBox1.Left:=orgMilieu+12;
ScrollBox1.width:=panel2.Width-orgMilieu-5;
ScrollBox1.width:=GrandPanel.Width-orgMilieu-5;
ScrollBox1.top:=GroupBox3.Top+GroupBox3.Height+5;
ScrollBox1.Anchors:=[akTop,akRight,akBottom];
Panel1.Left:=GroupBox1.Left+GroupBox1.Width+5;
@@ -13055,36 +13077,40 @@ begin
for index:=1 to nbreTCO do
begin
begin
tcoCree:=false;
IndexTCOCreate:=index;
formTCO[index]:=TformTCO.Create(self);
formTCO[index].Name:='FormTCO'+intToSTR(index);
formTCO[index].Caption:='TCO'+intToSTR(index);
repeat
Application.ProcessMessages;
until tcoCree;
end;
Affiche_Fenetre_TCO(index,avecTCO);
end;
tcoCree:=false;
IndexTCOCreate:=index;
formTCO[index]:=TformTCO.Create(self);
formTCO[index].Name:='FormTCO'+intToSTR(index);
formTCO[index].Caption:='TCO'+intToSTR(index);
t:=0;
repeat
Application.ProcessMessages;
inc(t);
until tcoCree or (t>10);
if t>10 then
begin
Affiche('Erreur 850 : TCO non créé',clred);
formTCO[index]:=nil;
end
else
Affiche_Fenetre_TCO(index,avecTCO);
end;
// ouvre com commandes actionneurs, car on a lu les com dans la config
// ouvre périphériques commandes actionneurs, car on a lu les com dans la config
for i:=1 to NbPeriph do
begin
//index:=tablo_acc_comUSB[i].NumAcc; // numéro d'accessoire
index:=com_socket(i); // comusb ou socket ?
if index=1 then
begin
if connecte_port_usb_periph(i) then
Affiche('COM'+intToSTR(Tablo_periph[i].numcom)+' commande périphérique ouvert',clLime)
if connecte_port_usb_periph(i) then Affiche('COM'+intToSTR(Tablo_periph[i].numcom)+' commande périphérique ouvert',clLime)
else Affiche('COM'+intToSTR(Tablo_periph[i].numcom)+' commande périphérique non ouvert',clOrange);
end;
if index=2 then
begin
if connecte_socket_periph(i) then
Affiche('Socket '+Tablo_periph[i].protocole+' demande ouverture ',clLime)
else
Affiche('Socket '+Tablo_periph[i].protocole+' commande périphérique non ouvert',clOrange)
if connecte_socket_periph(i) then Affiche('Socket '+Tablo_periph[i].protocole+' demande ouverture ',clLime)
else Affiche('Socket '+Tablo_periph[i].protocole+' commande périphérique non ouvert',clOrange)
end;
end;
@@ -13157,7 +13183,7 @@ begin
begin
Affiche('Positionnement des signaux',clYellow);
init_aiguillages; // initialisation des aiguillages
envoi_signauxCplx; // initialisation des feux
envoi_signauxCplx; // initialisation des signaux
end;
if not(AvecInitAiguillages) and not(ferme) and (parSocketLenz or portCommOuvert)
and AvecDemandeAiguillages then
@@ -13171,31 +13197,52 @@ begin
//DoubleBuffered:=true;
{
{
aiguillage[index_aig(1)].position:=const_droit;
aiguillage[index_aig(2)].position:=const_droit;
aiguillage[index_aig(3)].position:=const_devie;
aiguillage[index_aig(4)].position:=const_devie;
aiguillage[index_aig(5)].position:=const_droit;
aiguillage[index_aig(6)].position:=const_devie;
aiguillage[index_aig(7)].position:=const_devie;
aiguillage[index_aig(8)].position:=const_devie;
aiguillage[index_aig(7)].position:=const_droit;
aiguillage[index_aig(8)].position:=const_droit;
aiguillage[index_aig(10)].position:=const_devie;
aiguillage[index_aig(11)].position:=const_devie;
aiguillage[index_aig(12)].position:=const_droit;
aiguillage[index_aig(11)].position:=const_droit;
aiguillage[index_aig(12)].position:=const_devie;
aiguillage[index_aig(18)].position:=const_devie;
aiguillage[index_aig(19)].position:=const_devie;
aiguillage[index_aig(20)].position:=const_droit;
aiguillage[index_aig(20)].position:=const_devie;
aiguillage[index_aig(21)].position:=const_droit;
aiguillage[index_aig(26)].position:=const_droit;
aiguillage[index_aig(27)].position:=const_droit;
aiguillage[index_aig(28)].position:=const_devie;
aiguillage[index_aig(29)].position:=const_droit;
aiguillage[index_aig(30)].position:=const_droit;
aiguillage[index_aig(31)].position:=const_devie;
aiguillage[index_aig(25)].position:=const_droit;
aiguillage[index_aig(9)].position:=const_droit;
{zone_tco(1,519,527,1);
zone_tco(1,521,527,2);
Event_Detecteur(524,true,'A');
Event_Detecteur(524,false,'A');
Event_Detecteur(521,true,'A');
Event_Detecteur(521,false,'A');
Event_Detecteur(527,true,'A');
Event_Detecteur(527,false,'A');
Event_Detecteur(524,true,'B');
Event_Detecteur(524,false,'B');
Event_Detecteur(521,true,'B');
Event_Detecteur(521,false,'B');
}
// roulage:=true;
det_contigu(526,515,i,teq);
Affiche(intToSTR(i),clred); }
{ formatY:=2;
y 00001010000101000111010000> format 0
// y 0A0147405801CE..40 format 1 quartets renversés
@@ -13217,15 +13264,6 @@ begin
end
else Affiche_fenetre_CDM.Enabled:=false;
{ With FenRich do
begin
ReadOnly:=false;
clear;
Affiche('',clYellow);
PasteFromClipboard;
SetFocus;
ReadOnly:=true;
end; }
//Affiche(GetMACAddress,clred);
formPrinc.left:=-1000;
ConfCellTCO:=false;
@@ -13430,8 +13468,8 @@ begin
testBit(a,vert_cli) or testbit(a,blanc_cli)
else
begin
combine:=a and $fc00;
faire:=testBit(combine,clignote);
// signal belge
faire:=testBit(a,clignote);
end;
if faire then
begin
@@ -13935,6 +13973,7 @@ begin
model:=aiguillage[i].modele ;
if (model<>rien) then
begin
if model<>crois then
begin
s:='Aiguillage '+IntToSTR(aiguillage[i].Adresse)+' : ';
@@ -13955,6 +13994,7 @@ begin
end;
if (model=Crois) then s:='Croisement '+IntToSTR(aiguillage[i].Adresse);
r:=aiguillage[i].AdrTrain;
if r<>0 then s:=s+': réservé par train @'+intToSTR(r);
if s<>'' then Affiche(s,clWhite);
@@ -15111,7 +15151,7 @@ end;
procedure TFormPrinc.Codificationdesactionneurs1Click(Sender: TObject);
var i,typ,adract,etatAct,fonction,v,acc,sortie : integer;
loc,act,son : boolean;
loc,act,son,periph : boolean;
s,s2 : string;
begin
if (maxTablo_act=0) and (NbrePN=0) then
@@ -15133,6 +15173,7 @@ begin
loc:=Tablo_actionneur[i].loco;
act:=Tablo_actionneur[i].act;
son:=Tablo_actionneur[i].son;
periph:=Tablo_actionneur[i].periph;
typ:=Tablo_actionneur[i].typdeclenche;
if typ=3 then s:='Mem '+intToSTR(adrAct)+' '+inttostr(Tablo_actionneur[i].Adresse2);
@@ -15146,9 +15187,12 @@ begin
s:='Accessoire Déclencheur='+s+' :'+intToSTR(etatAct)+' TrainDécl='+s2+' Adresse='+IntToSTR(acc)+
' sortie='+intToSTR(sortie);
if son then
s:='Son Déclencheur='+s+' :'+intToSTR(etatAct)+' TrainDécl='+s2+
s:='Son Déclencheur='+s+' :'+intToSTR(etatAct)+' TrainDécl='+s2+
' Fichier:'+Tablo_actionneur[i].FichierSon;
if periph then
s:='Périphérique Déclencheur='+s;
Affiche(s,clYellow);
end;
@@ -16824,7 +16868,7 @@ end;
procedure TFormPrinc.Affichagenormal1Click(Sender: TObject);
begin
//FenRich.Width:=panel2.Width div 2;
FenRich.Width:=panel2.Width-Panel1.Width-GroupBox1.Width-25;
FenRich.Width:=GrandPanel.Width-Panel1.Width-GroupBox1.Width-25;
splitterV.Left:=FenRich.left+FenRich.Width-5;
positionne_elements(splitterV.Left);
end;
@@ -16852,9 +16896,7 @@ begin
end;
procedure TFormPrinc.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect);
var
RectForText: TRect;
i : integer;
var RectForText: TRect;
begin
if (Panel = StatusBar.Panels[3]) then
begin
+2 -2
View File
@@ -1,6 +1,6 @@
object FormTCO: TFormTCO
Left = 108
Top = 119
Left = 14
Top = 171
Width = 1212
Height = 580
VertScrollBar.Visible = False
+208 -207
View File
File diff suppressed because it is too large Load Diff
+7 -6
View File
@@ -25,7 +25,7 @@ var
verifVersion,notificationVersion : boolean;
date_creation,nombre_tel : string;
Const Version='8.25'; // sert à la comparaison de la version publiée
Const Version='8.26'; // sert à la comparaison de la version publiée
SousVersion=' '; // A B C ... en cas d'absence de sous version mettre un espace
function GetCurrentProcessEnvVar(const VariableName: string): string;
@@ -228,12 +228,12 @@ begin
//description:=utf8Decode(description);
i:=1 ; j:=1;
// couper en chaînes
while j<>0 do
begin
repeat
j:=pos('\r',description);
if j<>0 then
begin
comm[i]:=copy(description,1,j-1);
inc(i);
delete(description,1,j+1);
end;
@@ -244,10 +244,11 @@ begin
delete(description,j,2);
end;
end;
until j=0;
//
ncomm:=i;
comm[i]:=supprime_anti(description);
ncomm:=i-1;
end;
end;
+2 -2
View File
@@ -199,7 +199,7 @@ version 8.23 : Correction bug si changement aspect du signal.
version 8.24 : Traitement de cas particuliers de l'importation de réseaux CDM rail.
version 8.25 : Intégration d'un outil graphique de sélection dans le TCO.
Intégration d'un menu dans la fenêtre du TCO.
version 8.26 : Amélioration de l'affichage du suivi des trains dans les TCOs.
Restitution du Zoom du TCO lors de sa sauvegarde.