This commit is contained in:
f1iwq2
2023-11-06 18:15:10 +01:00
parent 5de453ddc1
commit e0b9857f1d
12 changed files with 1139 additions and 222 deletions
+27 -27
View File
@@ -1,8 +1,8 @@
Start Length Name Class Start Length Name Class
0001:00000000 0016718CH .text CODE 0001:00000000 001688D8H .text CODE
0002:00000000 00002BE8H .data DATA 0002:00000000 00002BE8H .data DATA
0002:00002BE8 041CBB51H .bss BSS 0002:00002BE8 041CEA31H .bss BSS
Detailed map of segments Detailed map of segments
@@ -85,20 +85,20 @@ Detailed map of segments
0001:000A358C 000015B4 C=CODE S=.text G=(none) M=UnitPilote ACBP=A9 0001:000A358C 000015B4 C=CODE S=.text G=(none) M=UnitPilote ACBP=A9
0001:000A4B40 000004D0 C=CODE S=.text G=(none) M=Importation ACBP=A9 0001:000A4B40 000004D0 C=CODE S=.text G=(none) M=Importation ACBP=A9
0001:000A5010 00010280 C=CODE S=.text G=(none) M=UnitAnalyseSegCDM ACBP=A9 0001:000A5010 00010280 C=CODE S=.text G=(none) M=UnitAnalyseSegCDM ACBP=A9
0001:000B5290 00002690 C=CODE S=.text G=(none) M=UnitConfigTCO ACBP=A9 0001:000B5290 00002698 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:000B7928 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:000B82E8 00003988 C=CODE S=.text G=(none) M=UnitConfigCellTCO ACBP=A9
0001:000BB738 0002DB7C C=CODE S=.text G=(none) M=UnitTCO ACBP=A9 0001:000BBC70 0002ED60 C=CODE S=.text G=(none) M=UnitTCO ACBP=A9
0001:000E92B4 00002C18 C=CODE S=.text G=(none) M=UnitSR ACBP=A9 0001:000EA9D0 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:000ED5E8 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:000EF9EC 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:000F0FC0 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:000F210C 0003732C C=CODE S=.text G=(none) M=UnitConfig ACBP=A9
0001:00127CF8 0000290C C=CODE S=.text G=(none) M=UnitDebug ACBP=A9 0001:00129438 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:0012BD44 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:0012C944 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:0012ECD4 00039774 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 0001:00168448 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: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: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 0002:000000EC 00000254 C=DATA S=.data G=DGROUP M=SysUtils ACBP=A9
@@ -212,16 +212,16 @@ Detailed map of segments
0002:00007C40 00000014 C=BSS S=.bss G=DGROUP M=UnitConfigTCO ACBP=A9 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: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:00007C68 00000014 C=BSS S=.bss G=DGROUP M=UnitConfigCellTCO ACBP=A9
0002:00007C7C 00044EE8 C=BSS S=.bss G=DGROUP M=UnitTCO ACBP=A9 0002:00007C7C 00047DC8 C=BSS S=.bss G=DGROUP M=UnitTCO ACBP=A9
0002:0004CB64 00000010 C=BSS S=.bss G=DGROUP M=UnitSR ACBP=A9 0002:0004FA44 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:0004FA54 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:0004FA68 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:0004FA80 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:0004FA84 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:0004FF7C 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:0004FFA8 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:0004FFB4 00000008 C=BSS S=.bss G=DGROUP M=Unitplace ACBP=A9
0002:0004D0DC 04181A74 C=BSS S=.bss G=DGROUP M=UnitPrinc ACBP=A9 0002:0004FFBC 04181A74 C=BSS S=.bss G=DGROUP M=UnitPrinc ACBP=A9
Bound resource files Bound resource files
@@ -247,4 +247,4 @@ Signaux_complexes_GL.res
Signaux_complexes_GL.drf Signaux_complexes_GL.drf
Program entry point at 0001:0016700C Program entry point at 0001:00168758
+1 -1
View File
@@ -897,7 +897,7 @@ begin
with FormAnalyseCdm.ImageCDM.canvas do with FormAnalyseCdm.ImageCDM.canvas do
begin begin
pen.Width:=1; pen.Width:=1;
pen.color:=Cyan; pen.color:=clCyan;
TextOut(x,y,s); TextOut(x,y,s);
Moveto(0,0); Moveto(0,0);
LineTo(x,y); LineTo(x,y);
+9 -9
View File
@@ -668,7 +668,7 @@ object FormConfig: TFormConfig
Top = 8 Top = 8
Width = 633 Width = 633
Height = 497 Height = 497
ActivePage = TabSheetCDM ActivePage = TabSheetAutonome
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack Font.Color = clBlack
Font.Height = -11 Font.Height = -11
@@ -1465,7 +1465,7 @@ object FormConfig: TFormConfig
Top = 16 Top = 16
Width = 25 Width = 25
Height = 21 Height = 21
Hint = 'Temps de filtrage d'#39'un d'#233'tecteur qui passe '#224' 0' Hint = 'Temps de filtrage des d'#233'tecteurs qui passent '#224' 0'
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
TabOrder = 0 TabOrder = 0
@@ -2318,7 +2318,7 @@ object FormConfig: TFormConfig
Width = 137 Width = 137
Height = 21 Height = 21
Style = csDropDownList Style = csDropDownList
ItemHeight = 0 ItemHeight = 13
TabOrder = 1 TabOrder = 1
OnChange = ComboBoxDecChange OnChange = ComboBoxDecChange
end end
@@ -2425,7 +2425,7 @@ object FormConfig: TFormConfig
Width = 137 Width = 137
Height = 21 Height = 21
Style = csDropDownList Style = csDropDownList
ItemHeight = 0 ItemHeight = 13
TabOrder = 2 TabOrder = 2
OnChange = ComboBoxAspChange OnChange = ComboBoxAspChange
end end
@@ -2719,7 +2719,7 @@ object FormConfig: TFormConfig
Width = 193 Width = 193
Height = 21 Height = 21
AutoComplete = False AutoComplete = False
ItemHeight = 0 ItemHeight = 13
TabOrder = 0 TabOrder = 0
OnChange = ComboBoxDecodeurPersoChange OnChange = ComboBoxDecodeurPersoChange
end end
@@ -2738,7 +2738,7 @@ object FormConfig: TFormConfig
Width = 145 Width = 145
Height = 21 Height = 21
Style = csDropDownList Style = csDropDownList
ItemHeight = 0 ItemHeight = 13
TabOrder = 2 TabOrder = 2
OnChange = ComboBoxNationChange OnChange = ComboBoxNationChange
end end
@@ -2784,7 +2784,7 @@ object FormConfig: TFormConfig
Width = 193 Width = 193
Height = 21 Height = 21
Style = csDropDownList Style = csDropDownList
ItemHeight = 0 ItemHeight = 13
TabOrder = 6 TabOrder = 6
OnChange = ComboBoxDecCdeChange OnChange = ComboBoxDecCdeChange
end end
@@ -3163,7 +3163,7 @@ object FormConfig: TFormConfig
Height = 21 Height = 21
Hint = 'Nom de l'#39'accessoire d'#233'fini dans l'#39'onglet "p'#233'riph'#233'riques COM/USB"' Hint = 'Nom de l'#39'accessoire d'#233'fini dans l'#39'onglet "p'#233'riph'#233'riques COM/USB"'
Style = csDropDownList Style = csDropDownList
ItemHeight = 0 ItemHeight = 13
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
TabOrder = 6 TabOrder = 6
@@ -3344,7 +3344,7 @@ object FormConfig: TFormConfig
Height = 21 Height = 21
Hint = 'Nom de l'#39'accessoire d'#233'fini dans l'#39'onglet "p'#233'riph'#233'riques COM/USB"' Hint = 'Nom de l'#39'accessoire d'#233'fini dans l'#39'onglet "p'#233'riph'#233'riques COM/USB"'
Style = csDropDownList Style = csDropDownList
ItemHeight = 0 ItemHeight = 13
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
TabOrder = 10 TabOrder = 10
+1 -1
View File
@@ -805,7 +805,7 @@ begin
end end
else else
begin begin
if adresseIPCDM='0' then Affiche('La connexion à CDM n''est pas demandée car l''adresse IP est nulle dans '+NomConfig,cyan); if adresseIPCDM='0' then Affiche('La connexion à CDM n''est pas demandée car l''adresse IP est nulle dans '+NomConfig,clcyan);
end; end;
end; end;
+46 -4
View File
@@ -4,7 +4,7 @@ object FormConfCellTCO: TFormConfCellTCO
BorderStyle = bsDialog BorderStyle = bsDialog
Caption = 'FormConfCellTCO' Caption = 'FormConfCellTCO'
ClientHeight = 430 ClientHeight = 430
ClientWidth = 282 ClientWidth = 284
Color = clBtnFace Color = clBtnFace
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText Font.Color = clWindowText
@@ -291,10 +291,10 @@ object FormConfCellTCO: TFormConfCellTCO
TabOrder = 5 TabOrder = 5
end end
object GroupBoxAction: TGroupBox object GroupBoxAction: TGroupBox
Left = 24 Left = 8
Top = 184 Top = 80
Width = 249 Width = 249
Height = 105 Height = 129
Caption = 'Action' Caption = 'Action'
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText Font.Color = clWindowText
@@ -303,6 +303,20 @@ object FormConfCellTCO: TFormConfCellTCO
Font.Style = [] Font.Style = []
ParentFont = False ParentFont = False
TabOrder = 6 TabOrder = 6
object Label3: TLabel
Left = 104
Top = 74
Width = 38
Height = 13
Caption = 'Adresse'
end
object Labela: TLabel
Left = 184
Top = 74
Width = 6
Height = 13
Caption = #224
end
object RadioButtonAffTCO: TRadioButton object RadioButtonAffTCO: TRadioButton
Left = 8 Left = 8
Top = 24 Top = 24
@@ -338,6 +352,34 @@ object FormConfCellTCO: TFormConfCellTCO
TabOrder = 3 TabOrder = 3
OnClick = RadioButtonCDMClick OnClick = RadioButtonCDMClick
end end
object RadioButtonAction: TRadioButton
Left = 8
Top = 72
Width = 89
Height = 17
Caption = 'Activer sortie'
TabOrder = 4
OnClick = RadioButtonActionClick
end
object EditAdrSortie: TEdit
Left = 144
Top = 68
Width = 33
Height = 21
TabOrder = 5
OnChange = EditAdrSortieChange
end
object EditEtat: TEdit
Left = 200
Top = 68
Width = 25
Height = 21
Hint = '1 ou 2'
ParentShowHint = False
ShowHint = True
TabOrder = 6
OnChange = EditEtatChange
end
end end
end end
object CheckPinv: TCheckBox object CheckPinv: TCheckBox
+58 -1
View File
@@ -36,6 +36,11 @@ type
EditNumTCO: TEdit; EditNumTCO: TEdit;
RadioButtonSC: TRadioButton; RadioButtonSC: TRadioButton;
RadioButtonCDM: TRadioButton; RadioButtonCDM: TRadioButton;
RadioButtonAction: TRadioButton;
Label3: TLabel;
EditAdrSortie: TEdit;
EditEtat: TEdit;
Labela: TLabel;
procedure EditAdrElementChange(Sender: TObject); procedure EditAdrElementChange(Sender: TObject);
procedure EditTexteCCTCOChange(Sender: TObject); procedure EditTexteCCTCOChange(Sender: TObject);
procedure ButtonFonteClick(Sender: TObject); procedure ButtonFonteClick(Sender: TObject);
@@ -59,6 +64,9 @@ type
procedure FormHide(Sender: TObject); procedure FormHide(Sender: TObject);
procedure RadioButtonSCClick(Sender: TObject); procedure RadioButtonSCClick(Sender: TObject);
procedure RadioButtonCDMClick(Sender: TObject); procedure RadioButtonCDMClick(Sender: TObject);
procedure EditAdrSortieChange(Sender: TObject);
procedure EditEtatChange(Sender: TObject);
procedure RadioButtonActionClick(Sender: TObject);
private private
{ Déclarations privées } { Déclarations privées }
public public
@@ -69,7 +77,7 @@ var
FormConfCellTCO: TFormConfCellTCO; FormConfCellTCO: TFormConfCellTCO;
actualize,ConfCellTCO : boolean; actualize,ConfCellTCO : boolean;
IconeX,IconeY : integer; IconeX,IconeY : integer;
procedure actualise(indexTCO : integer); procedure actualise(indexTCO : integer);
implementation implementation
@@ -131,7 +139,18 @@ begin
RadioButtonAffTCO.Checked:=tco[indexTCO,Xclic,Yclic].PiedFeu=1; RadioButtonAffTCO.Checked:=tco[indexTCO,Xclic,Yclic].PiedFeu=1;
RadioButtonSC.Checked:=tco[indexTCO,Xclic,Yclic].PiedFeu=2; RadioButtonSC.Checked:=tco[indexTCO,Xclic,Yclic].PiedFeu=2;
RadioButtonCDM.Checked:=tco[indexTCO,Xclic,Yclic].PiedFeu=3; RadioButtonCDM.Checked:=tco[indexTCO,Xclic,Yclic].PiedFeu=3;
RadioButtonAction.Checked:=tco[indexTCO,Xclic,Yclic].PiedFeu=4;
editNumTCO.Text:=intToSTR(tco[indexTCO,Xclic,Yclic].FeuOriente); editNumTCO.Text:=intToSTR(tco[indexTCO,Xclic,Yclic].FeuOriente);
if RadioButtonAction.Checked then
begin
EditAdrSortie.Text:=intToSTR(tco[indexTCO,Xclic,Yclic].Adresse);
EditEtat.Text:=intToSTR(tco[indexTCO,Xclic,Yclic].sortie);
end
else
begin
EditAdrSortie.Text:='';
EditEtat.Text:='';
end;
end; end;
end; end;
end end
@@ -823,6 +842,44 @@ begin
end; end;
end; end;
procedure TFormConfCellTCO.EditAdrSortieChange(Sender: TObject);
var i,erreur : integer;
begin
if clicTCO then exit;
val(EditAdrSortie.Text,i,erreur);
if erreur<>0 then exit;
tco[IndexTCOCourant,XclicCell[indexTCOCourant],YclicCell[indexTCOCourant]].adresse:=i;
end;
procedure TFormConfCellTCO.EditEtatChange(Sender: TObject);
var i,erreur : integer;
begin
if clicTCO then exit;
val(EditEtat.Text,i,erreur);
if erreur<>0 then exit;
tco[IndexTCOCourant,XclicCell[indexTCOCourant],YclicCell[indexTCOCourant]].sortie:=i;
end;
procedure TFormConfCellTCO.RadioButtonActionClick(Sender: TObject);
var x,y : integer;
begin
if clicTCO or actualize then exit;
if RadioButtonAction.Checked then
begin
x:=XClicCell[IndexTCOCourant];
y:=yClicCell[IndexTCOCourant];
tco[IndexTCOCourant,x,y].PiedFeu:=4;
efface_cellule(indexTCOCourant,PCanvasTCO[indexTCOcourant],x,y,pmcopy);
affiche_cellule(IndexTCOCourant,x,y);
actualise(indexTCOCourant);
end;
end;
begin begin
end. end.
-1
View File
@@ -446,7 +446,6 @@ var ok : boolean;
s : string; s : string;
begin begin
ok:=true; ok:=true;
if verif_config_TCO(indexTCOCourant) then if verif_config_TCO(indexTCOCourant) then
begin begin
with FormTCO[indexTCOCourant].ImageTCO do with FormTCO[indexTCOCourant].ImageTCO do
+55 -46
View File
@@ -390,13 +390,12 @@ const_droit_CDM=0; // positions aiguillages transmises par cdm
const_inconnu=9; // position inconnue const_inconnu=9; // position inconnue
NbCouleurTrain=8; NbCouleurTrain=8;
MaxCdeDccpp=20; MaxCdeDccpp=20;
ClBleuClair=$FF7070 ;
clRose=$AAAAFF; clRose=$AAAAFF;
Cyan=$FF6060; clCyan=$FFA0A0;
clviolet=$FF00FF; clviolet=$FF00FF;
GrisF=$333333; GrisF=$333333;
clOrange=$0077FF; clOrange=$0077FF;
couleurTrain : array[0..NbCouleurTrain] of Tcolor = (clRose,clYellow,clLime,clOrange,clAqua,clFuchsia,clLtGray,clred,clWhite); couleurTrain : array[0..NbCouleurTrain] of Tcolor = (clRose,clYellow,clLime,ClCyan,clAqua,clFuchsia,clLtGray,clred,clWhite);
Max_Simule=10000; Max_Simule=10000;
Max_Event_det_tick=30000; Max_Event_det_tick=30000;
EtatSign : array[0..13] of string[20] =('carré','sémaphore','sémaphore cli','vert','vert cli','violet', EtatSign : array[0..13] of string[20] =('carré','sémaphore','sémaphore cli','vert','vert cli','violet',
@@ -841,7 +840,7 @@ procedure ferme_pn_usb(i : integer);
procedure ouvre_pn_socket(i : integer); procedure ouvre_pn_socket(i : integer);
procedure ferme_pn_socket(i : integer); procedure ferme_pn_socket(i : integer);
function com_socket(i : integer) : integer; function com_socket(i : integer) : integer;
function liste_portcom : tStrings; procedure liste_portcom;
procedure mosaiqueH; procedure mosaiqueH;
procedure mosaiqueV; procedure mosaiqueV;
function InfoSignal(adresse : integer) : string; function InfoSignal(adresse : integer) : string;
@@ -4837,10 +4836,11 @@ begin
end; end;
// trouve l'index d'un détecteur dans une branche // trouve l'index d'un détecteur dans une branche
// si pas trouvé, renvoie 0 // si pas trouvé, renvoie 0 sinon renvoie l'index du détecteur dans la branche
function index_detecteur(detecteur,Num_branche : integer) : integer; function index_detecteur(detecteur,Num_branche : integer) : integer;
var i,adr : integer; var i,adr : integer;
trouve : boolean; trouve : boolean;
// trouve si detecteur est dans la branche num_branche à partir de l'index i
procedure recherche; procedure recherche;
begin begin
repeat repeat
@@ -4853,11 +4853,13 @@ var i,adr : integer;
end; end;
begin begin
if debug=3 then formprinc.Caption:='index_detecteur '+IntToSTR(detecteur); if debug=3 then formprinc.Caption:='index_detecteur '+IntToSTR(detecteur);
{
i:=1;index2_det:=0; i:=1;index2_det:=0;
recherche; recherche;
if trouve then result:=i else result:=0; if trouve then result:=i else result:=0;
//affiche(inttostr(ai+1),clOrange); //affiche(inttostr(ai+1),clOrange);
i:=2; // à voir }
i:=1;
//affiche('------------------------',clWhite); //affiche('------------------------',clWhite);
recherche; recherche;
//affiche('------------------------',clGreen); //affiche('------------------------',clGreen);
@@ -6282,7 +6284,7 @@ begin
dernier:=0; dernier:=0;
// faire en incrément // faire en incrément
if afdeb then afficheDebug('incrément',cyan); if afdeb then afficheDebug('incrément',clcyan);
suiv1:=BrancheN[Branche_Det,indexBranche_det+1].adresse; suiv1:=BrancheN[Branche_Det,indexBranche_det+1].adresse;
type1:=BrancheN[Branche_Det,indexBranche_det+1].Btype; // det aig buttoir type1:=BrancheN[Branche_Det,indexBranche_det+1].Btype; // det aig buttoir
@@ -6309,7 +6311,7 @@ begin
end; end;
// faire en décrément // faire en décrément
if afdeb then afficheDebug('décrément',cyan); if afdeb then afficheDebug('décrément',clcyan);
if not(trouve) then if not(trouve) then
begin begin
suiv1:=BrancheN[Branche_Det,indexBranche_det-1].adresse; suiv1:=BrancheN[Branche_Det,indexBranche_det-1].adresse;
@@ -9294,8 +9296,8 @@ begin
if (det1<NbMemZone) and (det2<NbMemZone) and (det3<NbMemZone) then if (det1<NbMemZone) and (det2<NbMemZone) and (det3<NbMemZone) then
begin begin
//*** route validée *** //*** route validée ***
MemZone[det1,det2].etat:=false; //MemZone[det1,det2].etat:=false;
MemZone[det2,det1].etat:=False; // on dévalide la zone inverse // MemZone[det2,det1].etat:=False; // on dévalide la zone inverse non car sinon ne marche pas quand 2 trains se suivent
MemZone[det2,det3].etat:=TRUE; // valide la nouvelle zone MemZone[det2,det3].etat:=TRUE; // valide la nouvelle zone
MemZone[det3,det2].etat:=False; // on dévalide la zone inverse MemZone[det3,det2].etat:=False; // on dévalide la zone inverse
//Train_Ch:=event_det_train[i].nom_train; //Train_Ch:=event_det_train[i].nom_train;
@@ -11064,17 +11066,20 @@ begin
if (acc=aigP) then if (acc=aigP) then
begin begin
indexAig:=index_aig(adresse); indexAig:=index_aig(adresse);
AdrTrain:=aiguillage[indexAig].AdrTrain; if indexAig<>0 then
if AdrTrain<>0 then
begin begin
Affiche('Pilotage impossible, l''aiguillage '+intToSTR(adresse)+' est réservé par le train @'+intToSTR(AdrTrain),clred); AdrTrain:=aiguillage[indexAig].AdrTrain;
Result:=false; if AdrTrain<>0 then
exit; begin
end; Affiche('Pilotage impossible, l''aiguillage '+intToSTR(adresse)+' est réservé par le train @'+intToSTR(AdrTrain),clred);
if (aiguillage[indexAig].inversionCDM=1) then Result:=false;
begin exit;
if octet=1 then pilotage:=2 else pilotage:=1; end;
end; if (aiguillage[indexAig].inversionCDM=1) then
begin
if octet=1 then pilotage:=2 else pilotage:=1;
end;
end;
end; end;
// pilotage par CDM rail ----------------- // pilotage par CDM rail -----------------
@@ -11846,8 +11851,8 @@ begin
editadrtrain.Text:=inttostr(trains[1].adresse); editadrtrain.Text:=inttostr(trains[1].adresse);
end; end;
end; end;
Affiche('CDM rail déconnecté',Cyan); Affiche('CDM rail déconnecté',clCyan);
AfficheDebug('CDM rail déconnecté',Cyan); AfficheDebug('CDM rail déconnecté',clCyan);
Formprinc.StatusBar1.Panels[2].text:='CDM déconnecté'; Formprinc.StatusBar1.Panels[2].text:='CDM déconnecté';
filtrageDet0:=SauvefiltrageDet0; filtrageDet0:=SauvefiltrageDet0;
end; end;
@@ -11964,6 +11969,7 @@ begin
if (numport<1) or (numport>255) then if (numport<1) or (numport>255) then
begin begin
affiche('Erreur portCom cde acc <0 ou >255',clred); affiche('Erreur portCom cde acc <0 ou >255',clred);
result:=false;
exit; exit;
end; end;
trouve:=false; trouve:=false;
@@ -12048,6 +12054,7 @@ begin
if (index<0) or (index>10) then if (index<0) or (index>10) then
begin begin
affiche('Le nombre maxi de périphériques est atteint - Le socket '+Tablo_periph[index].protocole+' ne sera pas ouvert',clred); affiche('Le nombre maxi de périphériques est atteint - Le socket '+Tablo_periph[index].protocole+' ne sera pas ouvert',clred);
result:=false;
exit; exit;
end; end;
@@ -12642,7 +12649,7 @@ begin
else else
s:=s+' non positionné'; s:=s+' non positionné';
end; end;
Affiche(s,cyan); Affiche(s,clcyan);
aiguillage[index].position:=pos; aiguillage[index].position:=pos;
end; end;
end; end;
@@ -13197,7 +13204,7 @@ begin
//DoubleBuffered:=true; //DoubleBuffered:=true;
{ {
aiguillage[index_aig(1)].position:=const_droit; aiguillage[index_aig(1)].position:=const_droit;
aiguillage[index_aig(2)].position:=const_droit; aiguillage[index_aig(2)].position:=const_droit;
aiguillage[index_aig(3)].position:=const_devie; aiguillage[index_aig(3)].position:=const_devie;
@@ -13209,6 +13216,7 @@ begin
aiguillage[index_aig(10)].position:=const_devie; aiguillage[index_aig(10)].position:=const_devie;
aiguillage[index_aig(11)].position:=const_droit; aiguillage[index_aig(11)].position:=const_droit;
aiguillage[index_aig(12)].position:=const_devie; aiguillage[index_aig(12)].position:=const_devie;
aiguillage[index_aig(17)].position:=const_devie;
aiguillage[index_aig(18)].position:=const_devie; aiguillage[index_aig(18)].position:=const_devie;
aiguillage[index_aig(19)].position:=const_devie; aiguillage[index_aig(19)].position:=const_devie;
aiguillage[index_aig(20)].position:=const_devie; aiguillage[index_aig(20)].position:=const_devie;
@@ -13221,9 +13229,9 @@ begin
aiguillage[index_aig(31)].position:=const_devie; aiguillage[index_aig(31)].position:=const_devie;
aiguillage[index_aig(25)].position:=const_droit; aiguillage[index_aig(25)].position:=const_droit;
aiguillage[index_aig(9)].position:=const_droit; aiguillage[index_aig(9)].position:=const_droit;
{zone_tco(1,519,527,1); // zone_tco(1,519,527,1);
zone_tco(1,521,527,2); // zone_tco(1,521,527,2);
{
Event_Detecteur(524,true,'A'); Event_Detecteur(524,true,'A');
Event_Detecteur(524,false,'A'); Event_Detecteur(524,false,'A');
@@ -13232,16 +13240,17 @@ begin
Event_Detecteur(527,true,'A'); Event_Detecteur(527,true,'A');
Event_Detecteur(527,false,'A'); Event_Detecteur(527,false,'A');
aiguillage[index_aig(7)].position:=const_devie;
}
//zone_TCO(1,560,562,1);
Event_Detecteur(524,true,'B'); //zone_TCO_V2(1,527,519,1);
Event_Detecteur(524,false,'B');
Event_Detecteur(521,true,'B');
Event_Detecteur(521,false,'B');
}
// Event_Detecteur(524,true,'B');
//(524,false,'B');
// Event_Detecteur(521,true,'B');
// Event_Detecteur(521,false,'B');
// roulage:=true; // roulage:=true;
{ formatY:=2; { formatY:=2;
y 00001010000101000111010000> format 0 y 00001010000101000111010000> format 0
@@ -13361,7 +13370,7 @@ end;
// timer à 100 ms // timer à 100 ms
procedure TFormPrinc.Timer1Timer(Sender: TObject); procedure TFormPrinc.Timer1Timer(Sender: TObject);
var i,a,combine,adresse,TailleX,TailleY,orientation,indexTCO,x,y,Bimage,aspect : integer; var i,a,adresse,TailleX,TailleY,orientation,indexTCO,x,y,Bimage,aspect : integer;
imageFeu : Timage; imageFeu : Timage;
frx,fry : real; frx,fry : real;
faire : boolean; faire : boolean;
@@ -13593,7 +13602,7 @@ begin
begin begin
if not(MsgSim) then if not(MsgSim) then
begin begin
Affiche('Simulation en cours ',Cyan);MsgSim:=true; Affiche('Simulation en cours ',clCyan);MsgSim:=true;
end; end;
if intervalle_courant>=Intervalle then if intervalle_courant>=Intervalle then
@@ -13627,7 +13636,7 @@ begin
I_Simule:=0; I_Simule:=0;
MsgSim:=false; MsgSim:=false;
filtrageDet0:=SauvefiltrageDet0; filtrageDet0:=SauvefiltrageDet0;
Affiche('Fin de simulation',Cyan); Affiche('Fin de simulation',clCyan);
StatusBar1.Panels[1].text:=''; StatusBar1.Panels[1].text:='';
end; end;
end; end;
@@ -14006,8 +14015,8 @@ procedure TFormPrinc.Codificationdesaiguillages1Click(Sender: TObject);
var i,adr : integer ; var i,adr : integer ;
s : string; s : string;
begin begin
Affiche('Codification interne des aiguillages',Cyan); Affiche('Codification interne des aiguillages',clCyan);
Affiche('D=position droite S=position déviée P=pointe Z=détecteur',Cyan); Affiche('D=position droite S=position déviée P=pointe Z=détecteur',clCyan);
for i:=1 to MaxAiguillage do for i:=1 to MaxAiguillage do
begin begin
adr:=aiguillage[i].adresse; adr:=aiguillage[i].adresse;
@@ -15156,11 +15165,11 @@ var i,typ,adract,etatAct,fonction,v,acc,sortie : integer;
begin begin
if (maxTablo_act=0) and (NbrePN=0) then if (maxTablo_act=0) and (NbrePN=0) then
begin begin
Affiche('Aucun actionneur déclaré',Cyan); Affiche('Aucun actionneur déclaré',clCyan);
exit; exit;
end; end;
Affiche('Codification interne des actionneurs',Cyan); Affiche('Codification interne des actionneurs',clCyan);
for i:=1 to maxTablo_act do for i:=1 to maxTablo_act do
begin begin
s:=Tablo_actionneur[i].trainDecl; s:=Tablo_actionneur[i].trainDecl;
@@ -15237,7 +15246,7 @@ begin
MsgSim:=false; MsgSim:=false;
filtrageDet0:=SauvefiltrageDet0; filtrageDet0:=SauvefiltrageDet0;
StopSimu:=true; StopSimu:=true;
Affiche('Fin de simulation',Cyan); Affiche('Fin de simulation',clCyan);
end; end;
procedure TFormPrinc.OuvrirunfichiertramesCDM1Click(Sender: TObject); procedure TFormPrinc.OuvrirunfichiertramesCDM1Click(Sender: TObject);
@@ -15382,7 +15391,7 @@ begin
aff:=MemZone[i,j].etat; aff:=MemZone[i,j].etat;
if aff then if aff then
begin begin
Affiche('MemZone['+intToSTR(i)+','+intToSTR(j)+'] '+MemZone[i,j].train+' @='+intToSTR(MemZone[i,j].AdrTrain)+' Train n°'+intToSTR(MemZone[i,j].Numtrain),clYellow); Affiche('MemZone['+intToSTR(i)+','+intToSTR(j)+'] '+MemZone[i,j].train+' @='+intToSTR(MemZone[i,j].AdrTrain)+' Train n°'+intToSTR(MemZone[i,j].Numtrain),couleurTrain[MemZone[i,j].Numtrain]);
rien:=false; rien:=false;
end; end;
inc(j); inc(j);
@@ -15403,14 +15412,14 @@ begin
if n<>0 then s:=s+' @'+intToSTR(n); if n<>0 then s:=s+' @'+intToSTR(n);
ss:=event_det_train[i].nom_train; ss:=event_det_train[i].nom_train;
if ss<>'' then s:=s+' '+ss; if ss<>'' then s:=s+' '+ss;
Affiche(s,clOrange); Affiche(s,couleurTrain[i]);
n:=event_det_train[i].signal_rouge; n:=event_det_train[i].signal_rouge;
if n<>0 then Affiche('Arreté devant signal '+intToSTR(n),clyellow); if n<>0 then Affiche('Arreté devant signal '+intToSTR(n),clyellow);
for j:=1 to event_det_train[i].NbEl do for j:=1 to event_det_train[i].NbEl do
begin begin
s:=intToSTR(event_det_train[i].Det[j].adresse); s:=intToSTR(event_det_train[i].Det[j].adresse);
Affiche(s,clyellow); Affiche(s,couleurTrain[i]);
end; end;
end; end;
@@ -15880,7 +15889,7 @@ begin
if i=0 then Affiche('Aucun port com',clyellow); if i=0 then Affiche('Aucun port com',clyellow);
end; end;
function liste_portcom : tStrings; procedure liste_portcom ;
begin begin
try try
CoInitialize(nil); CoInitialize(nil);
+937 -131
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -25,7 +25,7 @@ var
verifVersion,notificationVersion : boolean; verifVersion,notificationVersion : boolean;
date_creation,nombre_tel : string; date_creation,nombre_tel : string;
Const Version='8.26'; // sert à la comparaison de la version publiée Const Version='8.27'; // sert à la comparaison de la version publiée
SousVersion=' '; // A B C ... en cas d'absence de sous version mettre un espace SousVersion=' '; // A B C ... en cas d'absence de sous version mettre un espace
function GetCurrentProcessEnvVar(const VariableName: string): string; function GetCurrentProcessEnvVar(const VariableName: string): string;
+4
View File
@@ -201,5 +201,9 @@ version 8.25 : Int
Intégration d'un menu dans la fenêtre du 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. version 8.26 : Amélioration de l'affichage du suivi des trains dans les TCOs.
Restitution du Zoom du TCO lors de sa sauvegarde. Restitution du Zoom du TCO lors de sa sauvegarde.
version 8.27 : Nouvel algorithme de suivi des trains dans les TCO.
Correction suivi de deux trains consécutifs.
Création d'une action TCO "pilotage d'accessoire"