V8.27
This commit is contained in:
BIN
Binary file not shown.
+27
-27
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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.
|
||||||
|
|
||||||
|
|||||||
@@ -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
@@ -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
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -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;
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user