V8.42
This commit is contained in:
BIN
Binary file not shown.
@@ -14,8 +14,8 @@
|
|||||||
-$N+
|
-$N+
|
||||||
-$O-
|
-$O-
|
||||||
-$P+
|
-$P+
|
||||||
-$Q-
|
-$Q+
|
||||||
-$R-
|
-$R+
|
||||||
-$S-
|
-$S-
|
||||||
-$T-
|
-$T-
|
||||||
-$U-
|
-$U-
|
||||||
|
|||||||
@@ -17,8 +17,8 @@ M=0
|
|||||||
N=1
|
N=1
|
||||||
O=0
|
O=0
|
||||||
P=1
|
P=1
|
||||||
Q=0
|
Q=1
|
||||||
R=0
|
R=1
|
||||||
S=0
|
S=0
|
||||||
T=0
|
T=0
|
||||||
U=0
|
U=0
|
||||||
|
|||||||
+127
-126
@@ -1,104 +1,104 @@
|
|||||||
|
|
||||||
Start Length Name Class
|
Start Length Name Class
|
||||||
0001:00000000 00193814H .text CODE
|
0001:00000000 001AF198H .text CODE
|
||||||
0002:00000000 00002C58H .data DATA
|
0002:00000000 00002CB0H .data DATA
|
||||||
0002:00002C58 045E3399H .bss BSS
|
0002:00002CB0 045E33F1H .bss BSS
|
||||||
|
|
||||||
|
|
||||||
Detailed map of segments
|
Detailed map of segments
|
||||||
|
|
||||||
0001:00000000 00005EC7 C=CODE S=.text G=(none) M=System ACBP=A9
|
0001:00000000 00005F07 C=CODE S=.text G=(none) M=System ACBP=A9
|
||||||
0001:00005EC8 00000140 C=CODE S=.text G=(none) M=SysInit ACBP=A9
|
0001:00005F08 00000140 C=CODE S=.text G=(none) M=SysInit ACBP=A9
|
||||||
0001:00006008 00000108 C=CODE S=.text G=(none) M=Types ACBP=A9
|
0001:00006048 00000108 C=CODE S=.text G=(none) M=Types ACBP=A9
|
||||||
0001:00006110 00000F10 C=CODE S=.text G=(none) M=Windows ACBP=A9
|
0001:00006150 00000F38 C=CODE S=.text G=(none) M=Windows ACBP=A9
|
||||||
0001:00007020 00000038 C=CODE S=.text G=(none) M=Messages ACBP=A9
|
0001:00007088 00000038 C=CODE S=.text G=(none) M=Messages ACBP=A9
|
||||||
0001:00007058 00000338 C=CODE S=.text G=(none) M=SysConst ACBP=A9
|
0001:000070C0 00000338 C=CODE S=.text G=(none) M=SysConst ACBP=A9
|
||||||
0001:00007390 00006E28 C=CODE S=.text G=(none) M=SysUtils ACBP=A9
|
0001:000073F8 00006FF8 C=CODE S=.text G=(none) M=SysUtils ACBP=A9
|
||||||
0001:0000E1B8 0000081B C=CODE S=.text G=(none) M=VarUtils ACBP=A9
|
0001:0000E3F0 0000081B C=CODE S=.text G=(none) M=VarUtils ACBP=A9
|
||||||
0001:0000E9D4 0000809A C=CODE S=.text G=(none) M=Variants ACBP=A9
|
0001:0000EC0C 0000809E C=CODE S=.text G=(none) M=Variants ACBP=A9
|
||||||
0001:00016A70 000001A0 C=CODE S=.text G=(none) M=RTLConsts ACBP=A9
|
0001:00016CAC 000001A0 C=CODE S=.text G=(none) M=RTLConsts ACBP=A9
|
||||||
0001:00016C10 0000083C C=CODE S=.text G=(none) M=TypInfo ACBP=A9
|
0001:00016E4C 0000083C C=CODE S=.text G=(none) M=TypInfo ACBP=A9
|
||||||
0001:0001744C 00000358 C=CODE S=.text G=(none) M=ActiveX ACBP=A9
|
0001:00017688 00000358 C=CODE S=.text G=(none) M=ActiveX ACBP=A9
|
||||||
0001:000177A4 0000A7EA C=CODE S=.text G=(none) M=Classes ACBP=A9
|
0001:000179E0 0000A7EA C=CODE S=.text G=(none) M=Classes ACBP=A9
|
||||||
0001:00021F90 00000370 C=CODE S=.text G=(none) M=Consts ACBP=A9
|
0001:000221CC 00000370 C=CODE S=.text G=(none) M=Consts ACBP=A9
|
||||||
0001:00022300 00009BFB C=CODE S=.text G=(none) M=Graphics ACBP=A9
|
0001:0002253C 00009BFB C=CODE S=.text G=(none) M=Graphics ACBP=A9
|
||||||
0001:0002BEFC 00000124 C=CODE S=.text G=(none) M=Math ACBP=A9
|
0001:0002C138 00000124 C=CODE S=.text G=(none) M=Math ACBP=A9
|
||||||
0001:0002C020 000002B8 C=CODE S=.text G=(none) M=Contnrs ACBP=A9
|
0001:0002C25C 000002B8 C=CODE S=.text G=(none) M=Contnrs ACBP=A9
|
||||||
0001:0002C2D8 00000198 C=CODE S=.text G=(none) M=CommCtrl ACBP=A9
|
0001:0002C514 00000198 C=CODE S=.text G=(none) M=CommCtrl ACBP=A9
|
||||||
0001:0002C470 00000787 C=CODE S=.text G=(none) M=MultiMon ACBP=A9
|
0001:0002C6AC 00000787 C=CODE S=.text G=(none) M=MultiMon ACBP=A9
|
||||||
0001:0002CBF8 00000038 C=CODE S=.text G=(none) M=Imm ACBP=A9
|
0001:0002CE34 00000038 C=CODE S=.text G=(none) M=Imm ACBP=A9
|
||||||
0001:0002CC30 00000FF8 C=CODE S=.text G=(none) M=HelpIntfs ACBP=A9
|
0001:0002CE6C 00000FF8 C=CODE S=.text G=(none) M=HelpIntfs ACBP=A9
|
||||||
0001:0002DC28 00000058 C=CODE S=.text G=(none) M=WinSpool ACBP=A9
|
0001:0002DE64 00000058 C=CODE S=.text G=(none) M=WinSpool ACBP=A9
|
||||||
0001:0002DC80 000010C8 C=CODE S=.text G=(none) M=Printers ACBP=A9
|
0001:0002DEBC 000010C8 C=CODE S=.text G=(none) M=Printers ACBP=A9
|
||||||
0001:0002ED48 0000031F C=CODE S=.text G=(none) M=FlatSB ACBP=A9
|
0001:0002EF84 0000031F C=CODE S=.text G=(none) M=FlatSB ACBP=A9
|
||||||
0001:0002F068 000003F0 C=CODE S=.text G=(none) M=SyncObjs ACBP=A9
|
0001:0002F2A4 000003F0 C=CODE S=.text G=(none) M=SyncObjs ACBP=A9
|
||||||
0001:0002F458 000009BB C=CODE S=.text G=(none) M=UxTheme ACBP=A9
|
0001:0002F694 000009BB C=CODE S=.text G=(none) M=UxTheme ACBP=A9
|
||||||
0001:0002FE14 00000038 C=CODE S=.text G=(none) M=RichEdit ACBP=A9
|
0001:00030050 00000038 C=CODE S=.text G=(none) M=RichEdit ACBP=A9
|
||||||
0001:0002FE4C 00000038 C=CODE S=.text G=(none) M=ToolWin ACBP=A9
|
0001:00030088 00000038 C=CODE S=.text G=(none) M=ToolWin ACBP=A9
|
||||||
0001:0002FE84 00000040 C=CODE S=.text G=(none) M=ShellAPI ACBP=A9
|
0001:000300C0 00000048 C=CODE S=.text G=(none) M=ShellAPI ACBP=A9
|
||||||
0001:0002FEC4 00000038 C=CODE S=.text G=(none) M=RegStr ACBP=A9
|
0001:00030108 00000038 C=CODE S=.text G=(none) M=RegStr ACBP=A9
|
||||||
0001:0002FEFC 00000058 C=CODE S=.text G=(none) M=WinInet ACBP=A9
|
0001:00030140 00000058 C=CODE S=.text G=(none) M=WinInet ACBP=A9
|
||||||
0001:0002FF54 00000038 C=CODE S=.text G=(none) M=UrlMon ACBP=A9
|
0001:00030198 00000038 C=CODE S=.text G=(none) M=UrlMon ACBP=A9
|
||||||
0001:0002FF8C 0000006C C=CODE S=.text G=(none) M=ShlObj ACBP=A9
|
0001:000301D0 0000007C C=CODE S=.text G=(none) M=ShlObj ACBP=A9
|
||||||
0001:0002FFF8 00000060 C=CODE S=.text G=(none) M=CommDlg ACBP=A9
|
0001:0003024C 00000060 C=CODE S=.text G=(none) M=CommDlg ACBP=A9
|
||||||
0001:00030058 00000038 C=CODE S=.text G=(none) M=Dlgs ACBP=A9
|
0001:000302AC 00000038 C=CODE S=.text G=(none) M=Dlgs ACBP=A9
|
||||||
0001:00030090 000036D1 C=CODE S=.text G=(none) M=Dialogs ACBP=A9
|
0001:000302E4 000036D1 C=CODE S=.text G=(none) M=Dialogs ACBP=A9
|
||||||
0001:00033764 00004ADA C=CODE S=.text G=(none) M=ExtCtrls ACBP=A9
|
0001:000339B8 00004ADA C=CODE S=.text G=(none) M=ExtCtrls ACBP=A9
|
||||||
0001:00038240 00000090 C=CODE S=.text G=(none) M=ComStrs ACBP=A9
|
0001:00038494 00000090 C=CODE S=.text G=(none) M=ComStrs ACBP=A9
|
||||||
0001:000382D0 000007A0 C=CODE S=.text G=(none) M=Clipbrd ACBP=A9
|
0001:00038524 000007A0 C=CODE S=.text G=(none) M=Clipbrd ACBP=A9
|
||||||
0001:00038A70 00000128 C=CODE S=.text G=(none) M=StrUtils ACBP=A9
|
0001:00038CC4 00000128 C=CODE S=.text G=(none) M=StrUtils ACBP=A9
|
||||||
0001:00038B98 00003821 C=CODE S=.text G=(none) M=Buttons ACBP=A9
|
0001:00038DEC 00003821 C=CODE S=.text G=(none) M=Buttons ACBP=A9
|
||||||
0001:0003C3BC 00000038 C=CODE S=.text G=(none) M=ExtDlgs ACBP=A9
|
0001:0003C610 00000038 C=CODE S=.text G=(none) M=ExtDlgs ACBP=A9
|
||||||
0001:0003C3F4 00000068 C=CODE S=.text G=(none) M=IniFiles ACBP=A9
|
0001:0003C648 00000068 C=CODE S=.text G=(none) M=IniFiles ACBP=A9
|
||||||
0001:0003C45C 00000068 C=CODE S=.text G=(none) M=Registry ACBP=A9
|
0001:0003C6B0 00000068 C=CODE S=.text G=(none) M=Registry ACBP=A9
|
||||||
0001:0003C4C4 0000006C C=CODE S=.text G=(none) M=Mapi ACBP=A9
|
0001:0003C718 0000006C C=CODE S=.text G=(none) M=Mapi ACBP=A9
|
||||||
0001:0003C530 00000058 C=CODE S=.text G=(none) M=ExtActns ACBP=A9
|
0001:0003C784 00000058 C=CODE S=.text G=(none) M=ExtActns ACBP=A9
|
||||||
0001:0003C588 00000038 C=CODE S=.text G=(none) M=ListActns ACBP=A9
|
0001:0003C7DC 00000038 C=CODE S=.text G=(none) M=ListActns ACBP=A9
|
||||||
0001:0003C5C0 00009948 C=CODE S=.text G=(none) M=ComCtrls ACBP=A9
|
0001:0003C814 00009948 C=CODE S=.text G=(none) M=ComCtrls ACBP=A9
|
||||||
0001:00045F08 00000EA0 C=CODE S=.text G=(none) M=Themes ACBP=A9
|
0001:0004615C 00000EA0 C=CODE S=.text G=(none) M=Themes ACBP=A9
|
||||||
0001:00046DA8 0000C698 C=CODE S=.text G=(none) M=StdCtrls ACBP=A9
|
0001:00046FFC 0000C698 C=CODE S=.text G=(none) M=StdCtrls ACBP=A9
|
||||||
0001:00053440 00000168 C=CODE S=.text G=(none) M=StdActns ACBP=A9
|
0001:00053694 00000168 C=CODE S=.text G=(none) M=StdActns ACBP=A9
|
||||||
0001:000535A8 00000D1F C=CODE S=.text G=(none) M=WinHelpViewer ACBP=A9
|
0001:000537FC 00000D1F C=CODE S=.text G=(none) M=WinHelpViewer ACBP=A9
|
||||||
0001:000542C8 00011403 C=CODE S=.text G=(none) M=Controls ACBP=A9
|
0001:0005451C 00011403 C=CODE S=.text G=(none) M=Controls ACBP=A9
|
||||||
0001:000656CC 00001292 C=CODE S=.text G=(none) M=ActnList ACBP=A9
|
0001:00065920 00001292 C=CODE S=.text G=(none) M=ActnList ACBP=A9
|
||||||
0001:00066960 00001B9C C=CODE S=.text G=(none) M=ImgList ACBP=A9
|
0001:00066BB4 00001B9C C=CODE S=.text G=(none) M=ImgList ACBP=A9
|
||||||
0001:000684FC 000066E1 C=CODE S=.text G=(none) M=Menus ACBP=A9
|
0001:00068750 000066E1 C=CODE S=.text G=(none) M=Menus ACBP=A9
|
||||||
0001:0006EBE0 0000CF8C C=CODE S=.text G=(none) M=Forms ACBP=A9
|
0001:0006EE34 0000CF8C C=CODE S=.text G=(none) M=Forms ACBP=A9
|
||||||
0001:0007BB6C 00000060 C=CODE S=.text G=(none) M=ComConst ACBP=A9
|
0001:0007BDC0 00000060 C=CODE S=.text G=(none) M=ComConst ACBP=A9
|
||||||
0001:0007BBCC 00001259 C=CODE S=.text G=(none) M=ComObj ACBP=A9
|
0001:0007BE20 00001259 C=CODE S=.text G=(none) M=ComObj ACBP=A9
|
||||||
0001:0007CE28 00000038 C=CODE S=.text G=(none) M=StdVCL ACBP=A9
|
0001:0007D07C 00000038 C=CODE S=.text G=(none) M=StdVCL ACBP=A9
|
||||||
0001:0007CE60 00001793 C=CODE S=.text G=(none) M=AxCtrls ACBP=A9
|
0001:0007D0B4 00001793 C=CODE S=.text G=(none) M=AxCtrls ACBP=A9
|
||||||
0001:0007E5F4 00000060 C=CODE S=.text G=(none) M=OleConst ACBP=A9
|
0001:0007E848 00000060 C=CODE S=.text G=(none) M=OleConst ACBP=A9
|
||||||
0001:0007E654 00003519 C=CODE S=.text G=(none) M=OleCtrls ACBP=A9
|
0001:0007E8A8 00003519 C=CODE S=.text G=(none) M=OleCtrls ACBP=A9
|
||||||
0001:00081B70 00000050 C=CODE S=.text G=(none) M=JConsts ACBP=A9
|
0001:00081DC4 00000050 C=CODE S=.text G=(none) M=JConsts ACBP=A9
|
||||||
0001:00081BC0 000133EC C=CODE S=.text G=(none) M=jpeg ACBP=A9
|
0001:00081E14 000133EC C=CODE S=.text G=(none) M=jpeg ACBP=A9
|
||||||
0001:00094FAC 00000314 C=CODE S=.text G=(none) M=TlHelp32 ACBP=A9
|
0001:00095200 00000314 C=CODE S=.text G=(none) M=TlHelp32 ACBP=A9
|
||||||
0001:000952C0 00000128 C=CODE S=.text G=(none) M=WinSock ACBP=A9
|
0001:00095514 00000128 C=CODE S=.text G=(none) M=WinSock ACBP=A9
|
||||||
0001:000953E8 00003A78 C=CODE S=.text G=(none) M=ScktComp ACBP=A9
|
0001:0009563C 00003A78 C=CODE S=.text G=(none) M=ScktComp ACBP=A9
|
||||||
0001:00098E60 000008EA C=CODE S=.text G=(none) M=OleServer ACBP=A9
|
0001:000990B4 000008EA C=CODE S=.text G=(none) M=OleServer ACBP=A9
|
||||||
0001:0009974C 00000598 C=CODE S=.text G=(none) M=MSCommLib_TLB ACBP=A9
|
0001:000999A0 00000598 C=CODE S=.text G=(none) M=MSCommLib_TLB ACBP=A9
|
||||||
0001:00099CE4 00000040 C=CODE S=.text G=(none) M=MMSystem ACBP=A9
|
0001:00099F38 00000040 C=CODE S=.text G=(none) M=MMSystem ACBP=A9
|
||||||
0001:00099D24 00000038 C=CODE S=.text G=(none) M=Nb30 ACBP=A9
|
0001:00099F78 00000038 C=CODE S=.text G=(none) M=Nb30 ACBP=A9
|
||||||
0001:00099D5C 00000A18 C=CODE S=.text G=(none) M=MaskUtils ACBP=A9
|
0001:00099FB0 00000A18 C=CODE S=.text G=(none) M=MaskUtils ACBP=A9
|
||||||
0001:0009A774 00002108 C=CODE S=.text G=(none) M=Mask ACBP=A9
|
0001:0009A9C8 00002108 C=CODE S=.text G=(none) M=Mask ACBP=A9
|
||||||
0001:0009C87C 0000924C C=CODE S=.text G=(none) M=Grids ACBP=A9
|
0001:0009CAD0 0000924C C=CODE S=.text G=(none) M=Grids ACBP=A9
|
||||||
0001:000A5AC8 0000191C C=CODE S=.text G=(none) M=UnitPilote ACBP=A9
|
0001:000A5D1C 0000191C C=CODE S=.text G=(none) M=UnitPilote ACBP=A9
|
||||||
0001:000A73E4 00000574 C=CODE S=.text G=(none) M=Importation ACBP=A9
|
0001:000A7638 00000574 C=CODE S=.text G=(none) M=Importation ACBP=A9
|
||||||
0001:000A7958 000192C0 C=CODE S=.text G=(none) M=UnitAnalyseSegCDM ACBP=A9
|
0001:000A7BAC 000192C0 C=CODE S=.text G=(none) M=UnitAnalyseSegCDM ACBP=A9
|
||||||
0001:000C0C18 00002D2C C=CODE S=.text G=(none) M=UnitConfigTCO ACBP=A9
|
0001:000C0E6C 00002D2C C=CODE S=.text G=(none) M=UnitConfigTCO ACBP=A9
|
||||||
0001:000C3944 00000D10 C=CODE S=.text G=(none) M=Unit_Pilote_aig ACBP=A9
|
0001:000C3B98 00000D78 C=CODE S=.text G=(none) M=Unit_Pilote_aig ACBP=A9
|
||||||
0001:000C4654 00004F10 C=CODE S=.text G=(none) M=UnitConfigCellTCO ACBP=A9
|
0001:000C4910 00004FA0 C=CODE S=.text G=(none) M=UnitConfigCellTCO ACBP=A9
|
||||||
0001:000C9564 00045880 C=CODE S=.text G=(none) M=UnitTCO ACBP=A9
|
0001:000C98B0 00045960 C=CODE S=.text G=(none) M=UnitTCO ACBP=A9
|
||||||
0001:0010EDE4 000031F0 C=CODE S=.text G=(none) M=UnitSR ACBP=A9
|
0001:0010F210 000031F0 C=CODE S=.text G=(none) M=UnitSR ACBP=A9
|
||||||
0001:00111FD4 00002950 C=CODE S=.text G=(none) M=UnitCDF ACBP=A9
|
0001:00112400 00002950 C=CODE S=.text G=(none) M=UnitCDF ACBP=A9
|
||||||
0001:00114924 0003ADE0 C=CODE S=.text G=(none) M=UnitConfig ACBP=A9
|
0001:00114D50 000029E7 C=CODE S=.text G=(none) M=verif_version ACBP=A9
|
||||||
0001:0014F704 00001863 C=CODE S=.text G=(none) M=verif_version ACBP=A9
|
0001:00117738 000011D0 C=CODE S=.text G=(none) M=UnitPareFeu ACBP=A9
|
||||||
0001:00150F68 000011D0 C=CODE S=.text G=(none) M=UnitPareFeu ACBP=A9
|
0001:00118908 00046C78 C=CODE S=.text G=(none) M=UnitConfig ACBP=A9
|
||||||
0001:00152138 00002B74 C=CODE S=.text G=(none) M=UnitDebug ACBP=A9
|
0001:0015F580 00002B74 C=CODE S=.text G=(none) M=UnitDebug ACBP=A9
|
||||||
0001:00154CAC 00000D2C C=CODE S=.text G=(none) M=UnitSimule ACBP=A9
|
0001:001620F4 00000D2C C=CODE S=.text G=(none) M=UnitSimule ACBP=A9
|
||||||
0001:001559D8 0000269C C=CODE S=.text G=(none) M=Unitplace ACBP=A9
|
0001:00162E20 000029DC C=CODE S=.text G=(none) M=Unitplace ACBP=A9
|
||||||
0001:00158074 0003B2DF C=CODE S=.text G=(none) M=UnitPrinc ACBP=A9
|
0001:001657FC 000494DB C=CODE S=.text G=(none) M=UnitPrinc ACBP=A9
|
||||||
0001:00193354 000004C0 C=CODE S=.text G=(none) M=Signaux_complexes_GL ACBP=A9
|
0001:001AECD8 000004C0 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
|
||||||
@@ -109,28 +109,29 @@ Detailed map of segments
|
|||||||
0002:00000518 00000080 C=DATA S=.data G=DGROUP M=Classes ACBP=A9
|
0002:00000518 00000080 C=DATA S=.data G=DGROUP M=Classes ACBP=A9
|
||||||
0002:00000598 0000030C C=DATA S=.data G=DGROUP M=Graphics ACBP=A9
|
0002:00000598 0000030C C=DATA S=.data G=DGROUP M=Graphics ACBP=A9
|
||||||
0002:000008A4 00000004 C=DATA S=.data G=DGROUP M=Printers ACBP=A9
|
0002:000008A4 00000004 C=DATA S=.data G=DGROUP M=Printers ACBP=A9
|
||||||
0002:000008A8 00000180 C=DATA S=.data G=DGROUP M=Dialogs ACBP=A9
|
0002:000008A8 00000010 C=DATA S=.data G=DGROUP M=ShlObj ACBP=A9
|
||||||
0002:00000A28 0000018C C=DATA S=.data G=DGROUP M=ExtCtrls ACBP=A9
|
0002:000008B8 00000180 C=DATA S=.data G=DGROUP M=Dialogs ACBP=A9
|
||||||
0002:00000BB4 0000009E C=DATA S=.data G=DGROUP M=Buttons ACBP=A9
|
0002:00000A38 0000018C C=DATA S=.data G=DGROUP M=ExtCtrls ACBP=A9
|
||||||
0002:00000C54 00000008 C=DATA S=.data G=DGROUP M=IniFiles ACBP=A9
|
0002:00000BC4 0000009E C=DATA S=.data G=DGROUP M=Buttons ACBP=A9
|
||||||
0002:00000C5C 00000008 C=DATA S=.data G=DGROUP M=Registry ACBP=A9
|
0002:00000C64 00000008 C=DATA S=.data G=DGROUP M=IniFiles ACBP=A9
|
||||||
0002:00000C64 00000008 C=DATA S=.data G=DGROUP M=Mapi ACBP=A9
|
0002:00000C6C 00000008 C=DATA S=.data G=DGROUP M=Registry ACBP=A9
|
||||||
0002:00000C6C 000000B9 C=DATA S=.data G=DGROUP M=ComCtrls ACBP=A9
|
0002:00000C74 00000008 C=DATA S=.data G=DGROUP M=Mapi ACBP=A9
|
||||||
0002:00000D28 00000068 C=DATA S=.data G=DGROUP M=Themes ACBP=A9
|
0002:00000C7C 000000B9 C=DATA S=.data G=DGROUP M=ComCtrls ACBP=A9
|
||||||
0002:00000D90 00000154 C=DATA S=.data G=DGROUP M=StdCtrls ACBP=A9
|
0002:00000D38 00000068 C=DATA S=.data G=DGROUP M=Themes ACBP=A9
|
||||||
0002:00000EE4 0000013C C=DATA S=.data G=DGROUP M=Controls ACBP=A9
|
0002:00000DA0 00000154 C=DATA S=.data G=DGROUP M=StdCtrls ACBP=A9
|
||||||
0002:00001020 00000020 C=DATA S=.data G=DGROUP M=ImgList ACBP=A9
|
0002:00000EF4 0000013C C=DATA S=.data G=DGROUP M=Controls ACBP=A9
|
||||||
0002:00001040 000000EC C=DATA S=.data G=DGROUP M=Menus ACBP=A9
|
0002:00001030 00000020 C=DATA S=.data G=DGROUP M=ImgList ACBP=A9
|
||||||
0002:0000112C 00000124 C=DATA S=.data G=DGROUP M=Forms ACBP=A9
|
0002:00001050 000000EC C=DATA S=.data G=DGROUP M=Menus ACBP=A9
|
||||||
0002:00001250 00000030 C=DATA S=.data G=DGROUP M=ComObj ACBP=A9
|
0002:0000113C 00000124 C=DATA S=.data G=DGROUP M=Forms ACBP=A9
|
||||||
0002:00001280 0000002C C=DATA S=.data G=DGROUP M=OleCtrls ACBP=A9
|
0002:00001260 00000030 C=DATA S=.data G=DGROUP M=ComObj ACBP=A9
|
||||||
0002:000012AC 00000908 C=DATA S=.data G=DGROUP M=jpeg ACBP=A9
|
0002:00001290 0000002C C=DATA S=.data G=DGROUP M=OleCtrls ACBP=A9
|
||||||
0002:00001BB4 00000058 C=DATA S=.data G=DGROUP M=MSCommLib_TLB ACBP=A9
|
0002:000012BC 00000908 C=DATA S=.data G=DGROUP M=jpeg ACBP=A9
|
||||||
0002:00001C0C 00000009 C=DATA S=.data G=DGROUP M=MaskUtils ACBP=A9
|
0002:00001BC4 00000080 C=DATA S=.data G=DGROUP M=MSCommLib_TLB ACBP=A9
|
||||||
0002:00001C18 00000004 C=DATA S=.data G=DGROUP M=Mask ACBP=A9
|
0002:00001C44 00000009 C=DATA S=.data G=DGROUP M=MaskUtils ACBP=A9
|
||||||
0002:00001C1C 00000006 C=DATA S=.data G=DGROUP M=Grids ACBP=A9
|
0002:00001C50 00000004 C=DATA S=.data G=DGROUP M=Mask ACBP=A9
|
||||||
0002:00001C24 000000D4 C=DATA S=.data G=DGROUP M=UnitTCO ACBP=A9
|
0002:00001C54 00000006 C=DATA S=.data G=DGROUP M=Grids ACBP=A9
|
||||||
0002:00001CF8 0000060D C=DATA S=.data G=DGROUP M=UnitPrinc ACBP=A9
|
0002:00001C5C 000000D4 C=DATA S=.data G=DGROUP M=UnitTCO ACBP=A9
|
||||||
|
0002:00001D30 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: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: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
|
0002:00003674 00000004 C=BSS S=.bss G=DGROUP M=Types ACBP=A9
|
||||||
@@ -215,13 +216,13 @@ Detailed map of segments
|
|||||||
0002:00018770 00418700 C=BSS S=.bss G=DGROUP M=UnitTCO ACBP=A9
|
0002:00018770 00418700 C=BSS S=.bss G=DGROUP M=UnitTCO ACBP=A9
|
||||||
0002:00430E70 00000010 C=BSS S=.bss G=DGROUP M=UnitSR ACBP=A9
|
0002:00430E70 00000010 C=BSS S=.bss G=DGROUP M=UnitSR ACBP=A9
|
||||||
0002:00430E80 00000014 C=BSS S=.bss G=DGROUP M=UnitCDF ACBP=A9
|
0002:00430E80 00000014 C=BSS S=.bss G=DGROUP M=UnitCDF ACBP=A9
|
||||||
0002:00430E94 0000050C C=BSS S=.bss G=DGROUP M=UnitConfig ACBP=A9
|
0002:00430E94 00000020 C=BSS S=.bss G=DGROUP M=verif_version ACBP=A9
|
||||||
0002:004313A0 00000018 C=BSS S=.bss G=DGROUP M=verif_version ACBP=A9
|
0002:00430EB4 00000004 C=BSS S=.bss G=DGROUP M=UnitPareFeu ACBP=A9
|
||||||
0002:004313B8 00000004 C=BSS S=.bss G=DGROUP M=UnitPareFeu ACBP=A9
|
0002:00430EB8 00000558 C=BSS S=.bss G=DGROUP M=UnitConfig ACBP=A9
|
||||||
0002:004313BC 0000002C C=BSS S=.bss G=DGROUP M=UnitDebug ACBP=A9
|
0002:00431410 0000002C C=BSS S=.bss G=DGROUP M=UnitDebug ACBP=A9
|
||||||
0002:004313E8 0000000C C=BSS S=.bss G=DGROUP M=UnitSimule ACBP=A9
|
0002:0043143C 0000000C C=BSS S=.bss G=DGROUP M=UnitSimule ACBP=A9
|
||||||
0002:004313F4 00000008 C=BSS S=.bss G=DGROUP M=Unitplace ACBP=A9
|
0002:00431448 00000008 C=BSS S=.bss G=DGROUP M=Unitplace ACBP=A9
|
||||||
0002:004313FC 041B4F9C C=BSS S=.bss G=DGROUP M=UnitPrinc ACBP=A9
|
0002:00431450 041B4FA0 C=BSS S=.bss G=DGROUP M=UnitPrinc ACBP=A9
|
||||||
|
|
||||||
Bound resource files
|
Bound resource files
|
||||||
|
|
||||||
@@ -237,8 +238,8 @@ UnitConfigCellTCO.dfm
|
|||||||
UnitTCO.dfm
|
UnitTCO.dfm
|
||||||
UnitSR.dfm
|
UnitSR.dfm
|
||||||
UnitCDF.dfm
|
UnitCDF.dfm
|
||||||
UnitConfig.dfm
|
|
||||||
verif_version.dfm
|
verif_version.dfm
|
||||||
|
UnitConfig.dfm
|
||||||
UnitDebug.dfm
|
UnitDebug.dfm
|
||||||
UnitSimule.dfm
|
UnitSimule.dfm
|
||||||
Unitplace.dfm
|
Unitplace.dfm
|
||||||
@@ -247,4 +248,4 @@ Signaux_complexes_GL.res
|
|||||||
Signaux_complexes_GL.drf
|
Signaux_complexes_GL.drf
|
||||||
|
|
||||||
|
|
||||||
Program entry point at 0001:00193664
|
Program entry point at 0001:001AEFE8
|
||||||
|
|||||||
+98
-142
@@ -1,6 +1,6 @@
|
|||||||
object FormConfig: TFormConfig
|
object FormConfig: TFormConfig
|
||||||
Left = 230
|
Left = 347
|
||||||
Top = 120
|
Top = 101
|
||||||
Hint = 'Modifie la configuration selon les s'#233'lections choisies'
|
Hint = 'Modifie la configuration selon les s'#233'lections choisies'
|
||||||
BorderStyle = bsDialog
|
BorderStyle = bsDialog
|
||||||
Caption = 'Configuration g'#233'n'#233'rale'
|
Caption = 'Configuration g'#233'n'#233'rale'
|
||||||
@@ -681,7 +681,7 @@ object FormConfig: TFormConfig
|
|||||||
Top = 8
|
Top = 8
|
||||||
Width = 633
|
Width = 633
|
||||||
Height = 505
|
Height = 505
|
||||||
ActivePage = TabSheetCDM
|
ActivePage = TabSheetAct
|
||||||
Font.Charset = DEFAULT_CHARSET
|
Font.Charset = DEFAULT_CHARSET
|
||||||
Font.Color = clBlack
|
Font.Color = clBlack
|
||||||
Font.Height = -11
|
Font.Height = -11
|
||||||
@@ -706,7 +706,7 @@ object FormConfig: TFormConfig
|
|||||||
Left = 16
|
Left = 16
|
||||||
Top = 8
|
Top = 8
|
||||||
Width = 273
|
Width = 273
|
||||||
Height = 81
|
Height = 105
|
||||||
Caption = 'Socket de comm. CDM Rail <--> Signaux complexes'
|
Caption = 'Socket de comm. CDM Rail <--> Signaux complexes'
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
object Label1: TLabel
|
object Label1: TLabel
|
||||||
@@ -739,10 +739,24 @@ object FormConfig: TFormConfig
|
|||||||
TabStop = False
|
TabStop = False
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
end
|
end
|
||||||
|
object ButtonPFCDM: TButton
|
||||||
|
Left = 16
|
||||||
|
Top = 72
|
||||||
|
Width = 241
|
||||||
|
Height = 25
|
||||||
|
Hint =
|
||||||
|
'Ajoute une r'#232'gle d'#39'autorisation de communication du socket vers ' +
|
||||||
|
'CDM rail dans le pare-feu'
|
||||||
|
Caption = 'Ajouter les autorisations au pare-feu windows'
|
||||||
|
ParentShowHint = False
|
||||||
|
ShowHint = True
|
||||||
|
TabOrder = 2
|
||||||
|
OnClick = ButtonPFCDMClick
|
||||||
|
end
|
||||||
end
|
end
|
||||||
object GroupBox5: TGroupBox
|
object GroupBox5: TGroupBox
|
||||||
Left = 16
|
Left = 16
|
||||||
Top = 96
|
Top = 120
|
||||||
Width = 273
|
Width = 273
|
||||||
Height = 225
|
Height = 225
|
||||||
Caption = 'Au d'#233'marrage de Signaux_Complexes '
|
Caption = 'Au d'#233'marrage de Signaux_Complexes '
|
||||||
@@ -985,7 +999,7 @@ object FormConfig: TFormConfig
|
|||||||
end
|
end
|
||||||
object GroupBox8: TGroupBox
|
object GroupBox8: TGroupBox
|
||||||
Left = 16
|
Left = 16
|
||||||
Top = 328
|
Top = 352
|
||||||
Width = 273
|
Width = 273
|
||||||
Height = 97
|
Height = 97
|
||||||
Caption = 'Services CommIP CDM Rail'
|
Caption = 'Services CommIP CDM Rail'
|
||||||
@@ -1047,77 +1061,42 @@ object FormConfig: TFormConfig
|
|||||||
Left = 312
|
Left = 312
|
||||||
Top = 224
|
Top = 224
|
||||||
Width = 297
|
Width = 297
|
||||||
Height = 201
|
Height = 161
|
||||||
Caption = 'Divers'
|
Caption = 'Divers'
|
||||||
TabOrder = 5
|
TabOrder = 5
|
||||||
object Label31: TLabel
|
|
||||||
Left = 8
|
|
||||||
Top = 22
|
|
||||||
Width = 204
|
|
||||||
Height = 13
|
|
||||||
Caption = 'Seuil du nombre de d'#233'tecteurs trop distants'
|
|
||||||
end
|
|
||||||
object Label41: TLabel
|
object Label41: TLabel
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 64
|
Top = 24
|
||||||
Width = 188
|
Width = 188
|
||||||
Height = 13
|
Height = 13
|
||||||
Caption = 'Taille de la fonte de la fen'#234'tre principale'
|
Caption = 'Taille de la fonte de la fen'#234'tre principale'
|
||||||
end
|
end
|
||||||
object Label44: TLabel
|
|
||||||
Left = 8
|
|
||||||
Top = 43
|
|
||||||
Width = 223
|
|
||||||
Height = 13
|
|
||||||
Caption = 'Nombre de cantons pr'#233'sence train avant signal'
|
|
||||||
end
|
|
||||||
object Label55: TLabel
|
object Label55: TLabel
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 86
|
Top = 46
|
||||||
Width = 32
|
Width = 32
|
||||||
Height = 13
|
Height = 13
|
||||||
Caption = 'Debug'
|
Caption = 'Debug'
|
||||||
end
|
end
|
||||||
object Label28: TLabel
|
object Label28: TLabel
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 110
|
Top = 78
|
||||||
Width = 182
|
Width = 182
|
||||||
Height = 13
|
Height = 13
|
||||||
Caption = 'Port du serveur de Signaux Complexes'
|
Caption = 'Port du serveur de Signaux Complexes'
|
||||||
end
|
end
|
||||||
object EditNbDetDist: TEdit
|
object EditFonte: TEdit
|
||||||
Left = 240
|
Left = 240
|
||||||
Top = 18
|
Top = 22
|
||||||
Width = 25
|
Width = 25
|
||||||
Height = 21
|
Height = 21
|
||||||
ParentShowHint = False
|
ParentShowHint = False
|
||||||
ShowHint = False
|
ShowHint = False
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
end
|
end
|
||||||
object EditFonte: TEdit
|
|
||||||
Left = 240
|
|
||||||
Top = 62
|
|
||||||
Width = 25
|
|
||||||
Height = 21
|
|
||||||
ParentShowHint = False
|
|
||||||
ShowHint = False
|
|
||||||
TabOrder = 1
|
|
||||||
end
|
|
||||||
object EditNbCantons: TEdit
|
|
||||||
Left = 240
|
|
||||||
Top = 39
|
|
||||||
Width = 25
|
|
||||||
Height = 21
|
|
||||||
Hint =
|
|
||||||
'Nombre de cantons pr'#233'sence train avant un signal pour le d'#233'clar' +
|
|
||||||
'er verrouill'#233
|
|
||||||
ParentShowHint = False
|
|
||||||
ShowHint = True
|
|
||||||
TabOrder = 2
|
|
||||||
end
|
|
||||||
object EditDebug: TEdit
|
object EditDebug: TEdit
|
||||||
Left = 240
|
Left = 240
|
||||||
Top = 86
|
Top = 46
|
||||||
Width = 25
|
Width = 25
|
||||||
Height = 21
|
Height = 21
|
||||||
Hint =
|
Hint =
|
||||||
@@ -1125,11 +1104,11 @@ object FormConfig: TFormConfig
|
|||||||
'par '#233'tape ; 3=Dynamique)'
|
'par '#233'tape ; 3=Dynamique)'
|
||||||
ParentShowHint = False
|
ParentShowHint = False
|
||||||
ShowHint = True
|
ShowHint = True
|
||||||
TabOrder = 3
|
TabOrder = 1
|
||||||
end
|
end
|
||||||
object CheckBoxVerifXpressNet: TCheckBox
|
object CheckBoxVerifXpressNet: TCheckBox
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 150
|
Top = 102
|
||||||
Width = 233
|
Width = 233
|
||||||
Height = 17
|
Height = 17
|
||||||
Hint =
|
Hint =
|
||||||
@@ -1138,24 +1117,24 @@ object FormConfig: TFormConfig
|
|||||||
Caption = 'V'#233'rification des adresses XpressNet'
|
Caption = 'V'#233'rification des adresses XpressNet'
|
||||||
ParentShowHint = False
|
ParentShowHint = False
|
||||||
ShowHint = True
|
ShowHint = True
|
||||||
TabOrder = 4
|
TabOrder = 2
|
||||||
OnClick = CheckBoxVerifXpressNetClick
|
OnClick = CheckBoxVerifXpressNetClick
|
||||||
end
|
end
|
||||||
object EditPortServeur: TEdit
|
object EditPortServeur: TEdit
|
||||||
Left = 216
|
Left = 216
|
||||||
Top = 110
|
Top = 72
|
||||||
Width = 49
|
Width = 49
|
||||||
Height = 21
|
Height = 21
|
||||||
Hint = 'Port de 1 '#224' 65535'
|
Hint = 'Port de 1 '#224' 65535'
|
||||||
ParentShowHint = False
|
ParentShowHint = False
|
||||||
ShowHint = True
|
ShowHint = True
|
||||||
TabOrder = 5
|
TabOrder = 3
|
||||||
OnChange = EditPortServeurChange
|
OnChange = EditPortServeurChange
|
||||||
OnExit = EditPortServeurExit
|
OnExit = EditPortServeurExit
|
||||||
end
|
end
|
||||||
object CheckBoxSombre: TCheckBox
|
object CheckBoxSombre: TCheckBox
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 132
|
Top = 124
|
||||||
Width = 137
|
Width = 137
|
||||||
Height = 17
|
Height = 17
|
||||||
Hint =
|
Hint =
|
||||||
@@ -1164,34 +1143,20 @@ object FormConfig: TFormConfig
|
|||||||
Caption = 'Affichage mode sombre'
|
Caption = 'Affichage mode sombre'
|
||||||
ParentShowHint = False
|
ParentShowHint = False
|
||||||
ShowHint = True
|
ShowHint = True
|
||||||
TabOrder = 6
|
TabOrder = 4
|
||||||
end
|
end
|
||||||
object ButtonCouleur: TButton
|
object ButtonCouleur: TButton
|
||||||
Left = 144
|
Left = 144
|
||||||
Top = 130
|
Top = 122
|
||||||
Width = 25
|
Width = 25
|
||||||
Height = 17
|
Height = 17
|
||||||
Caption = '...'
|
Caption = '...'
|
||||||
ParentShowHint = False
|
ParentShowHint = False
|
||||||
ShowHint = True
|
ShowHint = True
|
||||||
TabOrder = 7
|
TabOrder = 5
|
||||||
OnClick = ButtonCouleurClick
|
OnClick = ButtonCouleurClick
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object ButtonPFCDM: TButton
|
|
||||||
Left = 336
|
|
||||||
Top = 430
|
|
||||||
Width = 241
|
|
||||||
Height = 25
|
|
||||||
Hint =
|
|
||||||
'Ajoute une r'#232'gle d'#39'autorisation de communication du socket vers ' +
|
|
||||||
'CDM rail dans le pare-feu'
|
|
||||||
Caption = 'Ajouter les autorisations au pare-feu windows'
|
|
||||||
ParentShowHint = False
|
|
||||||
ShowHint = True
|
|
||||||
TabOrder = 6
|
|
||||||
OnClick = ButtonPFCDMClick
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
object TabSheetAutonome: TTabSheet
|
object TabSheetAutonome: TTabSheet
|
||||||
Caption = 'Mode autonome'
|
Caption = 'Mode autonome'
|
||||||
@@ -1464,7 +1429,7 @@ object FormConfig: TFormConfig
|
|||||||
end
|
end
|
||||||
object GroupBox22: TGroupBox
|
object GroupBox22: TGroupBox
|
||||||
Left = 312
|
Left = 312
|
||||||
Top = 320
|
Top = 256
|
||||||
Width = 297
|
Width = 297
|
||||||
Height = 65
|
Height = 65
|
||||||
Caption = 'Protocole de connexion '#224' la centrale ou '#224' l'#39'interface'
|
Caption = 'Protocole de connexion '#224' la centrale ou '#224' l'#39'interface'
|
||||||
@@ -1492,31 +1457,6 @@ object FormConfig: TFormConfig
|
|||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object GroupBox25: TGroupBox
|
|
||||||
Left = 312
|
|
||||||
Top = 248
|
|
||||||
Width = 297
|
|
||||||
Height = 65
|
|
||||||
Caption = 'Divers'
|
|
||||||
TabOrder = 8
|
|
||||||
object Label58: TLabel
|
|
||||||
Left = 16
|
|
||||||
Top = 24
|
|
||||||
Width = 155
|
|
||||||
Height = 13
|
|
||||||
Caption = 'Filtrage des d'#233'tecteurs (x100 ms)'
|
|
||||||
end
|
|
||||||
object EditFiltrDet: TEdit
|
|
||||||
Left = 224
|
|
||||||
Top = 20
|
|
||||||
Width = 25
|
|
||||||
Height = 21
|
|
||||||
Hint = 'Temps de filtrage des d'#233'tecteurs qui passent '#224' 0'
|
|
||||||
ParentShowHint = False
|
|
||||||
ShowHint = True
|
|
||||||
TabOrder = 0
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
object TabSheetAig: TTabSheet
|
object TabSheetAig: TTabSheet
|
||||||
Caption = 'Aiguillages'
|
Caption = 'Aiguillages'
|
||||||
@@ -2047,7 +1987,7 @@ object FormConfig: TFormConfig
|
|||||||
Left = 0
|
Left = 0
|
||||||
Top = 56
|
Top = 56
|
||||||
Width = 305
|
Width = 305
|
||||||
Height = 353
|
Height = 409
|
||||||
Color = clBlack
|
Color = clBlack
|
||||||
Font.Charset = DEFAULT_CHARSET
|
Font.Charset = DEFAULT_CHARSET
|
||||||
Font.Color = clAqua
|
Font.Color = clAqua
|
||||||
@@ -2155,7 +2095,7 @@ object FormConfig: TFormConfig
|
|||||||
Top = 104
|
Top = 104
|
||||||
Width = 75
|
Width = 75
|
||||||
Height = 20
|
Height = 20
|
||||||
Hint = 'Cherche une chaine'
|
Hint = 'Cherche une chaine ; recliquer pour le suivant.'
|
||||||
Caption = 'Cherche'
|
Caption = 'Cherche'
|
||||||
ParentShowHint = False
|
ParentShowHint = False
|
||||||
ShowHint = True
|
ShowHint = True
|
||||||
@@ -2955,7 +2895,7 @@ object FormConfig: TFormConfig
|
|||||||
end
|
end
|
||||||
object GroupBoxAct: TGroupBox
|
object GroupBoxAct: TGroupBox
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 120
|
Top = 112
|
||||||
Width = 249
|
Width = 249
|
||||||
Height = 321
|
Height = 321
|
||||||
Caption = 'Action fonction de locomotive '
|
Caption = 'Action fonction de locomotive '
|
||||||
@@ -3024,7 +2964,7 @@ object FormConfig: TFormConfig
|
|||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
OnChange = EditTrainDeclChange
|
OnChange = EditTrainDeclChange
|
||||||
end
|
end
|
||||||
object RadioGroup1: TRadioGroup
|
object RadioGroupDecl: TRadioGroup
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 16
|
Top = 16
|
||||||
Width = 217
|
Width = 217
|
||||||
@@ -3069,8 +3009,8 @@ object FormConfig: TFormConfig
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
object GroupBox19: TGroupBox
|
object GroupBox19: TGroupBox
|
||||||
Left = 32
|
Left = 48
|
||||||
Top = 168
|
Top = 144
|
||||||
Width = 233
|
Width = 233
|
||||||
Height = 137
|
Height = 137
|
||||||
Caption = 'Destinataire de l'#39'action '
|
Caption = 'Destinataire de l'#39'action '
|
||||||
@@ -3263,7 +3203,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
|
||||||
@@ -3284,8 +3224,8 @@ object FormConfig: TFormConfig
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
object GroupBoxPNA: TGroupBox
|
object GroupBoxPNA: TGroupBox
|
||||||
Left = 64
|
Left = 152
|
||||||
Top = 96
|
Top = 240
|
||||||
Width = 169
|
Width = 169
|
||||||
Height = 121
|
Height = 121
|
||||||
Caption = 'Actionneurs PN simples'
|
Caption = 'Actionneurs PN simples'
|
||||||
@@ -3300,7 +3240,7 @@ object FormConfig: TFormConfig
|
|||||||
TabOrder = 3
|
TabOrder = 3
|
||||||
end
|
end
|
||||||
object GroupBoxPN: TGroupBox
|
object GroupBoxPN: TGroupBox
|
||||||
Left = 8
|
Left = 152
|
||||||
Top = 24
|
Top = 24
|
||||||
Width = 249
|
Width = 249
|
||||||
Height = 193
|
Height = 193
|
||||||
@@ -3444,7 +3384,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
|
||||||
@@ -3556,7 +3496,7 @@ object FormConfig: TFormConfig
|
|||||||
ShowHint = False
|
ShowHint = False
|
||||||
object Label10: TLabel
|
object Label10: TLabel
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 41
|
Top = 57
|
||||||
Width = 317
|
Width = 317
|
||||||
Height = 13
|
Height = 13
|
||||||
Caption = 'Liste des commandes envoy'#233'es '#224' l'#39'interface DCC++ '#224' la connexion'
|
Caption = 'Liste des commandes envoy'#233'es '#224' l'#39'interface DCC++ '#224' la connexion'
|
||||||
@@ -3695,24 +3635,31 @@ object FormConfig: TFormConfig
|
|||||||
object Label19: TLabel
|
object Label19: TLabel
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 8
|
Top = 8
|
||||||
Width = 531
|
Width = 404
|
||||||
Height = 26
|
Height = 16
|
||||||
Caption =
|
Caption = 'Configuration de l'#39'interface DCC++ pour le mode autonome'
|
||||||
'Configuration de l'#39'interface DCC++ pour le mode autonome (n'#233'cess' +
|
|
||||||
'ite de cocher le protocole DCC++ dans l'#39'onglet "Mode autonome")'
|
|
||||||
Font.Charset = DEFAULT_CHARSET
|
Font.Charset = DEFAULT_CHARSET
|
||||||
Font.Color = clBlack
|
Font.Color = clBlack
|
||||||
Font.Height = -11
|
Font.Height = -13
|
||||||
Font.Name = 'MS Sans Serif'
|
Font.Name = 'MS Sans Serif'
|
||||||
Font.Style = [fsBold]
|
Font.Style = [fsBold]
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
WordWrap = True
|
WordWrap = True
|
||||||
end
|
end
|
||||||
|
object Label39: TLabel
|
||||||
|
Left = 8
|
||||||
|
Top = 32
|
||||||
|
Width = 351
|
||||||
|
Height = 13
|
||||||
|
Caption =
|
||||||
|
'(N'#233'cessite de cocher le protocole DCC++ dans l'#39'onglet "Mode auto' +
|
||||||
|
'nome")'
|
||||||
|
end
|
||||||
object RichCdeDccpp: TRichEdit
|
object RichCdeDccpp: TRichEdit
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 64
|
Top = 80
|
||||||
Width = 577
|
Width = 577
|
||||||
Height = 217
|
Height = 201
|
||||||
Color = clBlack
|
Color = clBlack
|
||||||
Font.Charset = DEFAULT_CHARSET
|
Font.Charset = DEFAULT_CHARSET
|
||||||
Font.Color = clAqua
|
Font.Color = clAqua
|
||||||
@@ -3782,21 +3729,19 @@ object FormConfig: TFormConfig
|
|||||||
object Label54: TLabel
|
object Label54: TLabel
|
||||||
Left = 16
|
Left = 16
|
||||||
Top = 8
|
Top = 8
|
||||||
Width = 475
|
Width = 244
|
||||||
Height = 13
|
Height = 16
|
||||||
Caption =
|
Caption = 'Liste des trains d'#233'clar'#233's du r'#233'seau'
|
||||||
'Liste des trains d'#233'clar'#233's du r'#233'seau - Pour utilisation en mode a' +
|
|
||||||
'utonome uniquement'
|
|
||||||
Font.Charset = DEFAULT_CHARSET
|
Font.Charset = DEFAULT_CHARSET
|
||||||
Font.Color = clBlack
|
Font.Color = clBlack
|
||||||
Font.Height = -11
|
Font.Height = -13
|
||||||
Font.Name = 'MS Sans Serif'
|
Font.Name = 'MS Sans Serif'
|
||||||
Font.Style = [fsBold]
|
Font.Style = [fsBold]
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
end
|
end
|
||||||
object LabelInfVitesse: TLabel
|
object LabelInfVitesse: TLabel
|
||||||
Left = 320
|
Left = 320
|
||||||
Top = 240
|
Top = 248
|
||||||
Width = 256
|
Width = 256
|
||||||
Height = 26
|
Height = 26
|
||||||
Caption =
|
Caption =
|
||||||
@@ -3923,9 +3868,16 @@ object FormConfig: TFormConfig
|
|||||||
FFFFFFFFFFFFFFFFFF0000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00}
|
FFFFFFFFFFFFFFFFFF0000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00}
|
||||||
Transparent = True
|
Transparent = True
|
||||||
end
|
end
|
||||||
|
object Label31: TLabel
|
||||||
|
Left = 288
|
||||||
|
Top = 10
|
||||||
|
Width = 223
|
||||||
|
Height = 13
|
||||||
|
Caption = ' Pour utilisation en mode autonome uniquement'
|
||||||
|
end
|
||||||
object GroupBox24: TGroupBox
|
object GroupBox24: TGroupBox
|
||||||
Left = 312
|
Left = 312
|
||||||
Top = 64
|
Top = 72
|
||||||
Width = 297
|
Width = 297
|
||||||
Height = 161
|
Height = 161
|
||||||
Caption = 'Trains'
|
Caption = 'Trains'
|
||||||
@@ -4022,8 +3974,8 @@ object FormConfig: TFormConfig
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
object ButtonNT: TButton
|
object ButtonNT: TButton
|
||||||
Left = 0
|
Left = 8
|
||||||
Top = 32
|
Top = 48
|
||||||
Width = 73
|
Width = 73
|
||||||
Height = 17
|
Height = 17
|
||||||
Caption = 'Nouveau'
|
Caption = 'Nouveau'
|
||||||
@@ -4032,7 +3984,7 @@ object FormConfig: TFormConfig
|
|||||||
end
|
end
|
||||||
object ButtonSupprime: TButton
|
object ButtonSupprime: TButton
|
||||||
Left = 88
|
Left = 88
|
||||||
Top = 32
|
Top = 48
|
||||||
Width = 75
|
Width = 75
|
||||||
Height = 17
|
Height = 17
|
||||||
Caption = 'Supprime'
|
Caption = 'Supprime'
|
||||||
@@ -4041,9 +3993,9 @@ object FormConfig: TFormConfig
|
|||||||
end
|
end
|
||||||
object ListBoxTrains: TListBox
|
object ListBoxTrains: TListBox
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 64
|
Top = 72
|
||||||
Width = 281
|
Width = 281
|
||||||
Height = 345
|
Height = 337
|
||||||
Color = clBlack
|
Color = clBlack
|
||||||
Font.Charset = DEFAULT_CHARSET
|
Font.Charset = DEFAULT_CHARSET
|
||||||
Font.Color = clAqua
|
Font.Color = clAqua
|
||||||
@@ -4065,12 +4017,12 @@ object FormConfig: TFormConfig
|
|||||||
object Label73: TLabel
|
object Label73: TLabel
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 8
|
Top = 8
|
||||||
Width = 208
|
Width = 252
|
||||||
Height = 13
|
Height = 16
|
||||||
Caption = 'P'#233'riph'#233'riques COM/USB ou Sockets'
|
Caption = 'P'#233'riph'#233'riques COM/USB ou Sockets'
|
||||||
Font.Charset = DEFAULT_CHARSET
|
Font.Charset = DEFAULT_CHARSET
|
||||||
Font.Color = clBlack
|
Font.Color = clBlack
|
||||||
Font.Height = -11
|
Font.Height = -13
|
||||||
Font.Name = 'MS Sans Serif'
|
Font.Name = 'MS Sans Serif'
|
||||||
Font.Style = [fsBold]
|
Font.Style = [fsBold]
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
@@ -4084,7 +4036,7 @@ object FormConfig: TFormConfig
|
|||||||
end
|
end
|
||||||
object SBMonte: TSpeedButton
|
object SBMonte: TSpeedButton
|
||||||
Left = 240
|
Left = 240
|
||||||
Top = 176
|
Top = 184
|
||||||
Width = 25
|
Width = 25
|
||||||
Height = 33
|
Height = 33
|
||||||
Hint =
|
Hint =
|
||||||
@@ -4108,7 +4060,7 @@ object FormConfig: TFormConfig
|
|||||||
end
|
end
|
||||||
object SBDesc: TSpeedButton
|
object SBDesc: TSpeedButton
|
||||||
Left = 240
|
Left = 240
|
||||||
Top = 216
|
Top = 224
|
||||||
Width = 25
|
Width = 25
|
||||||
Height = 33
|
Height = 33
|
||||||
Hint =
|
Hint =
|
||||||
@@ -4132,7 +4084,7 @@ object FormConfig: TFormConfig
|
|||||||
end
|
end
|
||||||
object Label23: TLabel
|
object Label23: TLabel
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 28
|
Top = 36
|
||||||
Width = 606
|
Width = 606
|
||||||
Height = 26
|
Height = 26
|
||||||
Caption =
|
Caption =
|
||||||
@@ -4144,7 +4096,7 @@ object FormConfig: TFormConfig
|
|||||||
end
|
end
|
||||||
object ListBoxPeriph: TListBox
|
object ListBoxPeriph: TListBox
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 88
|
Top = 96
|
||||||
Width = 233
|
Width = 233
|
||||||
Height = 273
|
Height = 273
|
||||||
Color = clBlack
|
Color = clBlack
|
||||||
@@ -4165,17 +4117,17 @@ object FormConfig: TFormConfig
|
|||||||
end
|
end
|
||||||
object ButtonAjAccCom: TButton
|
object ButtonAjAccCom: TButton
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 64
|
Top = 72
|
||||||
Width = 65
|
Width = 73
|
||||||
Height = 17
|
Height = 17
|
||||||
Caption = 'Nouveau'
|
Caption = 'Nouveau'
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
OnClick = ButtonAjAccComClick
|
OnClick = ButtonAjAccComClick
|
||||||
end
|
end
|
||||||
object ButtonSupAccCom: TButton
|
object ButtonSupAccCom: TButton
|
||||||
Left = 80
|
Left = 88
|
||||||
Top = 64
|
Top = 72
|
||||||
Width = 65
|
Width = 73
|
||||||
Height = 17
|
Height = 17
|
||||||
Caption = 'Supprime'
|
Caption = 'Supprime'
|
||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
@@ -4220,6 +4172,10 @@ object FormConfig: TFormConfig
|
|||||||
OnClick = ButtonOuvreComClick
|
OnClick = ButtonOuvreComClick
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
object TabAvance: TTabSheet
|
||||||
|
Caption = 'Avanc'#233
|
||||||
|
ImageIndex = 10
|
||||||
|
end
|
||||||
end
|
end
|
||||||
object ButtonEnregistre: TButton
|
object ButtonEnregistre: TButton
|
||||||
Left = 472
|
Left = 472
|
||||||
|
|||||||
+283
-40
@@ -123,8 +123,6 @@ type
|
|||||||
RadioButtonAccess: TRadioButton;
|
RadioButtonAccess: TRadioButton;
|
||||||
CheckFenEt: TCheckBox;
|
CheckFenEt: TCheckBox;
|
||||||
GroupBoxDivers: TGroupBox;
|
GroupBoxDivers: TGroupBox;
|
||||||
EditNbDetDist: TEdit;
|
|
||||||
Label31: TLabel;
|
|
||||||
CheckBoxInitAig: TCheckBox;
|
CheckBoxInitAig: TCheckBox;
|
||||||
EditAdrSig: TEdit;
|
EditAdrSig: TEdit;
|
||||||
Label32: TLabel;
|
Label32: TLabel;
|
||||||
@@ -213,7 +211,7 @@ type
|
|||||||
Label35: TLabel;
|
Label35: TLabel;
|
||||||
Label36: TLabel;
|
Label36: TLabel;
|
||||||
ButtonTestAct: TButton;
|
ButtonTestAct: TButton;
|
||||||
RadioGroup1: TRadioGroup;
|
RadioGroupDecl: TRadioGroup;
|
||||||
RadioButtonActDet: TRadioButton;
|
RadioButtonActDet: TRadioButton;
|
||||||
RadioButtonZones: TRadioButton;
|
RadioButtonZones: TRadioButton;
|
||||||
EditAct2: TEdit;
|
EditAct2: TEdit;
|
||||||
@@ -224,8 +222,6 @@ type
|
|||||||
Label42: TLabel;
|
Label42: TLabel;
|
||||||
Label43: TLabel;
|
Label43: TLabel;
|
||||||
CheckBandeauTCO: TCheckBox;
|
CheckBandeauTCO: TCheckBox;
|
||||||
EditNbCantons: TEdit;
|
|
||||||
Label44: TLabel;
|
|
||||||
CheckPosAig: TCheckBox;
|
CheckPosAig: TCheckBox;
|
||||||
ButtonEnregistre: TButton;
|
ButtonEnregistre: TButton;
|
||||||
CheckBoxDemarUSB: TCheckBox;
|
CheckBoxDemarUSB: TCheckBox;
|
||||||
@@ -270,9 +266,6 @@ type
|
|||||||
EditVitNom: TEdit;
|
EditVitNom: TEdit;
|
||||||
LabelInfVitesse: TLabel;
|
LabelInfVitesse: TLabel;
|
||||||
CheckRoulage: TCheckBox;
|
CheckRoulage: TCheckBox;
|
||||||
GroupBox25: TGroupBox;
|
|
||||||
Label58: TLabel;
|
|
||||||
EditFiltrDet: TEdit;
|
|
||||||
CheckBoxVerifXpressNet: TCheckBox;
|
CheckBoxVerifXpressNet: TCheckBox;
|
||||||
ImageTrain: TImage;
|
ImageTrain: TImage;
|
||||||
PopupMenuRichedit: TPopupMenu;
|
PopupMenuRichedit: TPopupMenu;
|
||||||
@@ -353,7 +346,6 @@ type
|
|||||||
Label23: TLabel;
|
Label23: TLabel;
|
||||||
Label28: TLabel;
|
Label28: TLabel;
|
||||||
EditPortServeur: TEdit;
|
EditPortServeur: TEdit;
|
||||||
ButtonPFCDM: TButton;
|
|
||||||
CheckBoxZ21: TCheckBox;
|
CheckBoxZ21: TCheckBox;
|
||||||
RadioButtonDCCpp: TRadioButton;
|
RadioButtonDCCpp: TRadioButton;
|
||||||
CheckBoxSombre: TCheckBox;
|
CheckBoxSombre: TCheckBox;
|
||||||
@@ -361,6 +353,10 @@ type
|
|||||||
ColorDialogFond: TColorDialog;
|
ColorDialogFond: TColorDialog;
|
||||||
LabelD11: TLabel;
|
LabelD11: TLabel;
|
||||||
ButtonPropage: TButton;
|
ButtonPropage: TButton;
|
||||||
|
ButtonPFCDM: TButton;
|
||||||
|
TabAvance: TTabSheet;
|
||||||
|
Label31: TLabel;
|
||||||
|
Label39: TLabel;
|
||||||
procedure ButtonAppliquerEtFermerClick(Sender: TObject);
|
procedure ButtonAppliquerEtFermerClick(Sender: TObject);
|
||||||
procedure FormActivate(Sender: TObject);
|
procedure FormActivate(Sender: TObject);
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
@@ -574,7 +570,10 @@ PortServeur_ch='Port_Serveur';
|
|||||||
AntiTimeoutEthLenz_ch='AntiTimeoutEthLenz';
|
AntiTimeoutEthLenz_ch='AntiTimeoutEthLenz';
|
||||||
Verif_AdrXpressNet_ch='Verif_AdrXpressNet';
|
Verif_AdrXpressNet_ch='Verif_AdrXpressNet';
|
||||||
Filtrage_det_ch='Filtrage_det';
|
Filtrage_det_ch='Filtrage_det';
|
||||||
|
nCantons_Res_ch='nCantonsRes';
|
||||||
|
MaxSignalSens_ch='Max_Signal_Sens';
|
||||||
Algo_localisation_ch='Algo_localisation';
|
Algo_localisation_ch='Algo_localisation';
|
||||||
|
mode_reserve_ch='Mode_reservation';
|
||||||
Avec_roulage_ch='Avec_roulage';
|
Avec_roulage_ch='Avec_roulage';
|
||||||
nb_det_dist_ch='nb_det_dist';
|
nb_det_dist_ch='nb_det_dist';
|
||||||
IpV4_PC_ch='IpV4_PC';
|
IpV4_PC_ch='IpV4_PC';
|
||||||
@@ -648,7 +647,7 @@ var
|
|||||||
ligneClicBr,AncligneClicBr,ligneClicAct,AncLigneClicAct,IndexSignalclic,NumTrameCDM,
|
ligneClicBr,AncligneClicBr,ligneClicAct,AncLigneClicAct,IndexSignalclic,NumTrameCDM,
|
||||||
Algo_localisation,Verif_AdrXpressNet,ligneclicTrain,AncligneclicTrain,AntiTimeoutEthLenz,
|
Algo_localisation,Verif_AdrXpressNet,ligneclicTrain,AncligneclicTrain,AntiTimeoutEthLenz,
|
||||||
ligneDCC,decCourant,AffMemoFenetre,ligneClicAccPeriph,AncligneClicAccPeriph,ligneCherche,
|
ligneDCC,decCourant,AffMemoFenetre,ligneClicAccPeriph,AncligneClicAccPeriph,ligneCherche,
|
||||||
compt_Ligne,Style_aff,Ancien_Style,Ecran_SC : integer;
|
compt_Ligne,Style_aff,Ancien_Style,Ecran_SC,Mode_reserve,Max_Signal_Sens,nCantonsRes : integer;
|
||||||
|
|
||||||
ack_cdm,clicliste,config_modifie,clicproprietes,confasauver,trouve_MaxPort,
|
ack_cdm,clicliste,config_modifie,clicproprietes,confasauver,trouve_MaxPort,
|
||||||
modif_branches,ConfigPrete,trouve_section_dccpp,trouve_section_trains,trouve_section_acccomusb,
|
modif_branches,ConfigPrete,trouve_section_dccpp,trouve_section_trains,trouve_section_acccomusb,
|
||||||
@@ -657,7 +656,7 @@ var
|
|||||||
fichier : text;
|
fichier : text;
|
||||||
|
|
||||||
// composants dynamiques
|
// composants dynamiques
|
||||||
Gp1 : TGroupBox;
|
Gp1,GroupBoxAvance,GroupBoxExpert : TGroupBox;
|
||||||
|
|
||||||
CheckBoxCR,Cb1,Cb2,Cb3,CbVis : TCheckBox;
|
CheckBoxCR,Cb1,Cb2,Cb3,CbVis : TCheckBox;
|
||||||
|
|
||||||
@@ -668,13 +667,19 @@ var
|
|||||||
EditZdet1V2F,EditZdet2V2F,EditZdet1V2O,EditZdet2V2O,
|
EditZdet1V2F,EditZdet2V2F,EditZdet1V2O,EditZdet2V2O,
|
||||||
EditZdet1V3F,EditZdet2V3F,EditZdet1V3O,EditZdet2V3O,
|
EditZdet1V3F,EditZdet2V3F,EditZdet1V3O,EditZdet2V3O,
|
||||||
EditZdet1V4F,EditZdet2V4F,EditZdet1V4O,EditZdet2V4O,
|
EditZdet1V4F,EditZdet2V4F,EditZdet1V4O,EditZdet2V4O,
|
||||||
EditZdet1V5F,EditZdet2V5F,EditZdet1V5O,EditZdet2V5O,EditOuvreEcran : Tedit;
|
EditZdet1V5F,EditZdet2V5F,EditZdet1V5O,EditZdet2V5O,EditOuvreEcran,
|
||||||
|
EditNbDetDist,EditNbCantons,EditFiltrDet,EditAlgo,
|
||||||
|
EditMaxSignalSens,EditnCantonsRes : Tedit;
|
||||||
|
|
||||||
EditT : Array[1..10] of Tedit;
|
EditT : Array[1..10] of Tedit;
|
||||||
TextBoxCde : array[1..19] of Tedit;
|
TextBoxCde : array[1..19] of Tedit;
|
||||||
|
|
||||||
LabelPortCde,LbPnVoie1,LbAPnVoie1,LbAPnVoie2,LbAPnVoie3,LbAPnVoie4,LbAPnVoie5,LbATitre,
|
LabelPortCde,LbPnVoie1,LbAPnVoie1,LbAPnVoie2,LbAPnVoie3,LbAPnVoie4,LbAPnVoie5,LbATitre,
|
||||||
LbZTitre,LbZPnVoie1,LbZPnVoie2,LbZPnVoie3,LbZPnVoie4,LbZPnVoie5,LabelMP,LabelNumeroP,
|
LbZTitre,LbZPnVoie1,LbZPnVoie2,LbZPnVoie3,LbZPnVoie4,LbZPnVoie5,LabelMP,LabelNumeroP,
|
||||||
LabelStyle,LabelOuvreEcran : Tlabel;
|
LabelStyle,LabelOuvreEcran,LabelAvance1,LabelAvance2,
|
||||||
|
LabelTD,LabelNC,LabelFiltre,LabelAlgo,LabelNbSignBS,LabelnCantonsRes : Tlabel;
|
||||||
|
|
||||||
|
RadioReserve : TradioGroup;
|
||||||
|
|
||||||
LabelDecCde : array[1..19] of TLabel;
|
LabelDecCde : array[1..19] of TLabel;
|
||||||
|
|
||||||
@@ -1037,7 +1042,7 @@ begin
|
|||||||
30 : s:=s+',V30';
|
30 : s:=s+',V30';
|
||||||
60 : s:=s+',V60';
|
60 : s:=s+',V60';
|
||||||
else begin
|
else begin
|
||||||
s:=s+',V'+formconfig.EditSpecifique.Text;
|
s:=s+',V'+intToSTR(aiguillage[index].vitesse);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -1725,6 +1730,10 @@ begin
|
|||||||
|
|
||||||
writeln(fichierN,AvecVerifIconesTCO_ch+'=',AvecVerifIconesTCO);
|
writeln(fichierN,AvecVerifIconesTCO_ch+'=',AvecVerifIconesTCO);
|
||||||
writeln(fichierN,Algo_localisation_ch+'=',Algo_localisation);
|
writeln(fichierN,Algo_localisation_ch+'=',Algo_localisation);
|
||||||
|
writeln(fichierN,MaxSignalSens_ch+'=',Max_Signal_Sens);
|
||||||
|
|
||||||
|
writeln(fichierN,mode_reserve_ch+'=',mode_reserve);
|
||||||
|
|
||||||
writeln(fichierN,Avec_roulage_ch+'=',avecRoulage);
|
writeln(fichierN,Avec_roulage_ch+'=',avecRoulage);
|
||||||
writeln(fichierN,debug_ch+'=',debug);
|
writeln(fichierN,debug_ch+'=',debug);
|
||||||
if sombre then s:='1' else s:='0';
|
if sombre then s:='1' else s:='0';
|
||||||
@@ -1734,6 +1743,7 @@ begin
|
|||||||
writeln(fichierN,serveurIPCDM_Touche_ch+'='+s);
|
writeln(fichierN,serveurIPCDM_Touche_ch+'='+s);
|
||||||
writeln(fichierN,PortServeur_ch+'=',PortServeur);
|
writeln(fichierN,PortServeur_ch+'=',PortServeur);
|
||||||
writeln(fichierN,Filtrage_det_ch+'=',filtrageDet0);
|
writeln(fichierN,Filtrage_det_ch+'=',filtrageDet0);
|
||||||
|
writeln(fichierN,nCantons_Res_ch+'=',nCantonsRes);
|
||||||
writeln(fichierN,AntiTimeoutEthLenz_ch+'=',AntiTimeoutEthLenz);
|
writeln(fichierN,AntiTimeoutEthLenz_ch+'=',AntiTimeoutEthLenz);
|
||||||
// taille de la fonte
|
// taille de la fonte
|
||||||
writeln(fichierN,Fonte_ch+'=',TailleFonte);
|
writeln(fichierN,Fonte_ch+'=',TailleFonte);
|
||||||
@@ -3171,6 +3181,15 @@ var s,sa,SOrigine: string;
|
|||||||
val(s,filtrageDet0,erreur);
|
val(s,filtrageDet0,erreur);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
sa:=uppercase(nCantons_Res_ch)+'=';
|
||||||
|
i:=pos(sa,s);
|
||||||
|
if i=1 then
|
||||||
|
begin
|
||||||
|
delete(s,i,length(sa));
|
||||||
|
if (i<1) or (i>5) then i:=2;
|
||||||
|
val(s,nCantonsRes,erreur);
|
||||||
|
end;
|
||||||
|
|
||||||
sa:=uppercase(AntiTimeoutEthLenz_ch)+'=';
|
sa:=uppercase(AntiTimeoutEthLenz_ch)+'=';
|
||||||
i:=pos(sa,s);
|
i:=pos(sa,s);
|
||||||
if i=1 then
|
if i=1 then
|
||||||
@@ -3188,6 +3207,26 @@ var s,sa,SOrigine: string;
|
|||||||
if Algo_localisation<>1 then Affiche('Avertissement: Algo_localisation='+intToSTR(algo_localisation)+' est expérimental et non garanti',clorange);
|
if Algo_localisation<>1 then Affiche('Avertissement: Algo_localisation='+intToSTR(algo_localisation)+' est expérimental et non garanti',clorange);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
sa:=uppercase(MaxSignalSens_ch)+'=';
|
||||||
|
i:=pos(sa,s);
|
||||||
|
if i=1 then
|
||||||
|
begin
|
||||||
|
delete(s,i,length(sa));
|
||||||
|
if (i<0) or (i>50) then i:=5;
|
||||||
|
val(s,Max_Signal_Sens,erreur);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
sa:=uppercase(mode_reserve_ch)+'=';
|
||||||
|
i:=pos(sa,s);
|
||||||
|
if i=1 then
|
||||||
|
begin
|
||||||
|
delete(s,i,length(sa));
|
||||||
|
if (i<0) or (i>1) then i:=0;
|
||||||
|
val(s,mode_reserve,erreur);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
sa:=uppercase(Avec_roulage_ch)+'=';
|
sa:=uppercase(Avec_roulage_ch)+'=';
|
||||||
i:=pos(sa,s);
|
i:=pos(sa,s);
|
||||||
if i=1 then
|
if i=1 then
|
||||||
@@ -3987,6 +4026,10 @@ begin
|
|||||||
if (i<0) or (i>10) then i:=3;
|
if (i<0) or (i>10) then i:=3;
|
||||||
filtrageDet0:=i;
|
filtrageDet0:=i;
|
||||||
|
|
||||||
|
val(EditnCantonsRes.Text,i,erreur);
|
||||||
|
if (i<1) or (i>5) then i:=2;
|
||||||
|
nCantonsRes:=i;
|
||||||
|
|
||||||
Val(editTempoAig.Text,i,erreur);
|
Val(editTempoAig.Text,i,erreur);
|
||||||
if i>3000 then begin labelInfo.Caption:='Temporisation de séquencement incorrecte ';ok:=false;end;
|
if i>3000 then begin labelInfo.Caption:='Temporisation de séquencement incorrecte ';ok:=false;end;
|
||||||
Tempo_Aig:=i;
|
Tempo_Aig:=i;
|
||||||
@@ -4110,6 +4153,14 @@ begin
|
|||||||
val(EditBase.Text,AdrBaseDetDccpp,erreur);
|
val(EditBase.Text,AdrBaseDetDccpp,erreur);
|
||||||
if (AdrBaseDetDccpp<0) or (AdrBaseDetDccpp>2048) then AdrBaseDetDccpp:=513;
|
if (AdrBaseDetDccpp<0) or (AdrBaseDetDccpp>2048) then AdrBaseDetDccpp:=513;
|
||||||
|
|
||||||
|
mode_Reserve:=RadioReserve.ItemIndex; // 0 = par canton - 1=par détecteurs
|
||||||
|
val(EditAlgo.Text,i,erreur);
|
||||||
|
Algo_localisation:=i;
|
||||||
|
|
||||||
|
val(EditMaxSignalSens.Text,i,erreur);
|
||||||
|
Max_Signal_Sens:=i;
|
||||||
|
|
||||||
|
|
||||||
end;
|
end;
|
||||||
if change_srv then services_CDM;
|
if change_srv then services_CDM;
|
||||||
verifie_panneau_config:=ok;
|
verifie_panneau_config:=ok;
|
||||||
@@ -4132,7 +4183,7 @@ procedure clicListeSignal(index : integer);
|
|||||||
var AncAdresse,adresse,erreur : integer;
|
var AncAdresse,adresse,erreur : integer;
|
||||||
s : string;
|
s : string;
|
||||||
begin
|
begin
|
||||||
if index<1 then exit;
|
if (index<1) or (index>FormConfig.ListBoxSig.Items.Count) then exit;
|
||||||
s:=Uppercase(FormConfig.ListBoxSig.Items[index-1]); // ligne cliquée
|
s:=Uppercase(FormConfig.ListBoxSig.Items[index-1]); // ligne cliquée
|
||||||
if s='' then
|
if s='' then
|
||||||
begin
|
begin
|
||||||
@@ -4200,6 +4251,7 @@ begin
|
|||||||
EditportLenz.text:=IntToSTR(PortInterface);
|
EditportLenz.text:=IntToSTR(PortInterface);
|
||||||
EditTempoAig.Text:=IntToSTR(Tempo_Aig);
|
EditTempoAig.Text:=IntToSTR(Tempo_Aig);
|
||||||
EditFiltrDet.text:=intToSTR(filtrageDet0);
|
EditFiltrDet.text:=intToSTR(filtrageDet0);
|
||||||
|
EditnCantonsRes.Text:=intToSTR(nCantonsRes);
|
||||||
|
|
||||||
{$IF CompilerVersion >= 28.0}
|
{$IF CompilerVersion >= 28.0}
|
||||||
ComboStyle.itemIndex:=Style_Aff;
|
ComboStyle.itemIndex:=Style_Aff;
|
||||||
@@ -4290,6 +4342,9 @@ begin
|
|||||||
end;
|
end;
|
||||||
ListBoxAig.itemindex:=0;
|
ListBoxAig.itemindex:=0;
|
||||||
|
|
||||||
|
RadioReserve.ItemIndex:=mode_Reserve;
|
||||||
|
editAlgo.Text:=intToSTR(Algo_localisation);
|
||||||
|
EditMaxSignalSens.Text:=intToSTR(Max_Signal_Sens);
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -4739,6 +4794,13 @@ begin
|
|||||||
c:=TabSheetPeriph.Components[i];
|
c:=TabSheetPeriph.Components[i];
|
||||||
composant(c,couleurfond,couleurTexte);
|
composant(c,couleurfond,couleurTexte);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
// avancé
|
||||||
|
for i:=0 to TabAvance.ComponentCount-1 do
|
||||||
|
begin
|
||||||
|
c:=TabAvance.Components[i];
|
||||||
|
composant(c,couleurfond,couleurTexte);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -4759,10 +4821,11 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TFormConfig.FormCreate(Sender: TObject);
|
procedure TFormConfig.FormCreate(Sender: TObject);
|
||||||
var i,j,y,l,LongestLength,PixelLength : integer;
|
var i,j,x,y,l,LongestLength,PixelLength : integer;
|
||||||
cs,s,LongestString : string;
|
cs,s,LongestString : string;
|
||||||
begin
|
begin
|
||||||
if debug=1 then Affiche('Création fenêtre config',clLime);
|
if debug=1 then Affiche('Création fenêtre config',clLime);
|
||||||
|
|
||||||
clicListe:=true;
|
clicListe:=true;
|
||||||
position:=poMainFormCenter;
|
position:=poMainFormCenter;
|
||||||
cs:='ColorA='+IntToHex(couleurFond,6); // pour rajouter aux couleurs personnalisées de la fenetre couleur
|
cs:='ColorA='+IntToHex(couleurFond,6); // pour rajouter aux couleurs personnalisées de la fenetre couleur
|
||||||
@@ -4790,7 +4853,7 @@ begin
|
|||||||
if debug=1 then Affiche('Fin création fenêtre config',clLime);
|
if debug=1 then Affiche('Fin création fenêtre config',clLime);
|
||||||
|
|
||||||
EditNbreAdr.Text:='2';
|
EditNbreAdr.Text:='2';
|
||||||
|
|
||||||
// création des champs dynamiques de l'onglet CDM Rail
|
// création des champs dynamiques de l'onglet CDM Rail
|
||||||
EditOuvreEcran:=TEdit.create(GroupBox5);
|
EditOuvreEcran:=TEdit.create(GroupBox5);
|
||||||
with EditOuvreEcran do
|
with EditOuvreEcran do
|
||||||
@@ -5487,7 +5550,6 @@ begin
|
|||||||
// positionne une scrollbar dans la listbox - pour l'enlever, envoyer 0 dans pixelLength
|
// positionne une scrollbar dans la listbox - pour l'enlever, envoyer 0 dans pixelLength
|
||||||
SendMessage(ListBoxSig.Handle,LB_SETHORIZONTALEXTENT,PixelLength,0);
|
SendMessage(ListBoxSig.Handle,LB_SETHORIZONTALEXTENT,PixelLength,0);
|
||||||
|
|
||||||
|
|
||||||
//comboBoxNation.Items.addObject('Française',Formprinc.Image9feux.Picture.Graphic);
|
//comboBoxNation.Items.addObject('Française',Formprinc.Image9feux.Picture.Graphic);
|
||||||
//comboBoxNation.Items.addObject('Belge',Formprinc.ImageSignal20.Picture.Graphic);
|
//comboBoxNation.Items.addObject('Belge',Formprinc.ImageSignal20.Picture.Graphic);
|
||||||
//https://www.developpez.net/forums/d487670/environnements-developpement/delphi/composants-vcl/combobox-image-devant-ligne/
|
//https://www.developpez.net/forums/d487670/environnements-developpement/delphi/composants-vcl/combobox-image-devant-ligne/
|
||||||
@@ -5574,7 +5636,7 @@ begin
|
|||||||
|
|
||||||
// composants dynamiques car on ne peut plus ajouter de composants en mode conception!
|
// composants dynamiques car on ne peut plus ajouter de composants en mode conception!
|
||||||
// onglet périphériques COM/USB/Socket
|
// onglet périphériques COM/USB/Socket
|
||||||
//--------- groupbox
|
//--------- groupbox
|
||||||
gp1:=TgroupBox.Create(FormConfig.TabSheetPeriph);
|
gp1:=TgroupBox.Create(FormConfig.TabSheetPeriph);
|
||||||
with gp1 do
|
with gp1 do
|
||||||
begin
|
begin
|
||||||
@@ -5590,7 +5652,7 @@ begin
|
|||||||
cb2:=TCheckBox.Create(FormConfig.TabSheetPeriph);
|
cb2:=TCheckBox.Create(FormConfig.TabSheetPeriph);
|
||||||
with cb2 do
|
with cb2 do
|
||||||
begin
|
begin
|
||||||
Left:=10;Top:=25;Width:=100;Height:=12;
|
Left:=10;Top:=25;Width:=100;Height:=17;
|
||||||
caption:='Détecteurs';
|
caption:='Détecteurs';
|
||||||
name:='cbDet';
|
name:='cbDet';
|
||||||
parent:=gp1;
|
parent:=gp1;
|
||||||
@@ -5601,7 +5663,7 @@ begin
|
|||||||
cb3:=TCheckBox.Create(FormConfig.TabSheetPeriph);
|
cb3:=TCheckBox.Create(FormConfig.TabSheetPeriph);
|
||||||
with cb3 do
|
with cb3 do
|
||||||
begin
|
begin
|
||||||
Left:=10;Top:=45;Width:=100;Height:=12;
|
Left:=10;Top:=45;Width:=100;Height:=17;
|
||||||
caption:='Actionneurs';
|
caption:='Actionneurs';
|
||||||
name:='cbAct';
|
name:='cbAct';
|
||||||
parent:=gp1;
|
parent:=gp1;
|
||||||
@@ -5613,7 +5675,7 @@ begin
|
|||||||
cb1:=TCheckBox.Create(FormConfig.TabSheetPeriph);
|
cb1:=TCheckBox.Create(FormConfig.TabSheetPeriph);
|
||||||
with cb1 do
|
with cb1 do
|
||||||
begin
|
begin
|
||||||
Left:=10;Top:=65;Width:=170;Height:=12;
|
Left:=10;Top:=65;Width:=170;Height:=17;
|
||||||
caption:='Aiguillages et accessoires';
|
caption:='Aiguillages et accessoires';
|
||||||
name:='cbAig';
|
name:='cbAig';
|
||||||
parent:=gp1;
|
parent:=gp1;
|
||||||
@@ -5700,7 +5762,7 @@ begin
|
|||||||
CheckBoxCR:=TCheckBox.Create(FormConfig.TabSheetPeriph);
|
CheckBoxCR:=TCheckBox.Create(FormConfig.TabSheetPeriph);
|
||||||
with CheckBoxCR do
|
with CheckBoxCR do
|
||||||
begin
|
begin
|
||||||
Left:=10;Top:=LabelPortCde.Top+30;width:=150;Height:=12;
|
Left:=10;Top:=LabelPortCde.Top+30;width:=150;Height:=17;
|
||||||
caption:='Envoyer CR (retour chariot)';
|
caption:='Envoyer CR (retour chariot)';
|
||||||
name:='CheckBoxCR';
|
name:='CheckBoxCR';
|
||||||
parent:=GroupBoxDesc;
|
parent:=GroupBoxDesc;
|
||||||
@@ -5713,7 +5775,7 @@ begin
|
|||||||
with cbVis do
|
with cbVis do
|
||||||
begin
|
begin
|
||||||
parent:=groupBoxDesc;
|
parent:=groupBoxDesc;
|
||||||
Left:=10;Top:=CheckBoxCR.top+20;Width:=100;Height:=12;
|
Left:=10;Top:=CheckBoxCR.top+20;Width:=100;Height:=17;
|
||||||
caption:='Mode visible';
|
caption:='Mode visible';
|
||||||
name:='cbVis';
|
name:='cbVis';
|
||||||
hint:='Affiche le texte à l''écran lors des envois';
|
hint:='Affiche le texte à l''écran lors des envois';
|
||||||
@@ -5728,7 +5790,7 @@ begin
|
|||||||
LabelStyle:=TLabel.Create(FormConfig.GroupBoxDivers);
|
LabelStyle:=TLabel.Create(FormConfig.GroupBoxDivers);
|
||||||
with LabelStyle do
|
with LabelStyle do
|
||||||
begin
|
begin
|
||||||
Left:=10;Top:=CheckBoxVerifXpressNet.top+24;Width:=170;Height:=12;
|
Left:=10;Top:=130;Width:=170;Height:=12;
|
||||||
caption:='Styles d''affichage';
|
caption:='Styles d''affichage';
|
||||||
name:='LabelStyle';
|
name:='LabelStyle';
|
||||||
parent:=GroupBoxDivers;
|
parent:=GroupBoxDivers;
|
||||||
@@ -5756,7 +5818,6 @@ begin
|
|||||||
ComboStyle.Items.Add(s);
|
ComboStyle.Items.Add(s);
|
||||||
|
|
||||||
ComboStyle.itemIndex:=Style_Aff;
|
ComboStyle.itemIndex:=Style_Aff;
|
||||||
|
|
||||||
CheckBoxSombre.Visible:=false;
|
CheckBoxSombre.Visible:=false;
|
||||||
ButtonCouleur.Visible:=false;
|
ButtonCouleur.Visible:=false;
|
||||||
|
|
||||||
@@ -5765,6 +5826,172 @@ begin
|
|||||||
GroupBoxDivers.Height:=180;
|
GroupBoxDivers.Height:=180;
|
||||||
{$IFEND}
|
{$IFEND}
|
||||||
|
|
||||||
|
// onglet avancé
|
||||||
|
LabelAvance1:=TLabel.Create(FormConfig.TabAvance);
|
||||||
|
with LabelAvance1 do
|
||||||
|
begin
|
||||||
|
Left:=10;Top:=10;Width:=170;Height:=12;
|
||||||
|
caption:='Paramètres avancés et experts';
|
||||||
|
name:='LabelAvance1';
|
||||||
|
Font.Style:=[fsBold];
|
||||||
|
Font.Size:=10;
|
||||||
|
parent:=TabAvance;
|
||||||
|
end;
|
||||||
|
|
||||||
|
GroupBoxAvance:=TGroupBox.Create(FormConfig.TabAvance);
|
||||||
|
with GroupBoxAvance do
|
||||||
|
begin
|
||||||
|
Left:=20;Top:=40;Width:=350;Height:=120; // maxi=580
|
||||||
|
caption:='Jeu de paramètres avancés';
|
||||||
|
name:='GroupBoxAvance';
|
||||||
|
parent:=TabAvance;
|
||||||
|
end;
|
||||||
|
|
||||||
|
x:=GroupBoxAvance.width-50;
|
||||||
|
LabelTD:=TLabel.Create(FormConfig.TabAvance);
|
||||||
|
with LabelTD do
|
||||||
|
begin
|
||||||
|
Left:=10;Top:=30;Width:=170;Height:=12;
|
||||||
|
caption:='Seuil du nombre de détecteurs trop distants';
|
||||||
|
name:='LabelTD';
|
||||||
|
Font.Size:=9;
|
||||||
|
parent:=GroupBoxAvance;
|
||||||
|
end;
|
||||||
|
EditNbDetDist:=TEdit.Create(FormConfig.TabAvance);
|
||||||
|
with EditNbDetDist do
|
||||||
|
begin
|
||||||
|
Left:=x;Top:=28;Width:=30;Height:=15;
|
||||||
|
name:='EditNbDetDist';
|
||||||
|
text:='';
|
||||||
|
parent:=GroupBoxAvance;
|
||||||
|
hint:='Nombre de détecteurs considérés comme trop distants'+#13+
|
||||||
|
'Cette valeur dépend de la taille du réseau';
|
||||||
|
ShowHint:=true;
|
||||||
|
end;
|
||||||
|
|
||||||
|
LabelNC:=TLabel.Create(FormConfig.TabAvance);
|
||||||
|
with LabelNC do
|
||||||
|
begin
|
||||||
|
Left:=10;Top:=50;Width:=170;Height:=12;
|
||||||
|
caption:='Nombre de cantons présence train avant signal';
|
||||||
|
name:='LabelNC';
|
||||||
|
parent:=GroupBoxAvance;
|
||||||
|
end;
|
||||||
|
EditNbCantons:=TEdit.Create(TabAvance);
|
||||||
|
with EditNbCantons do
|
||||||
|
begin
|
||||||
|
Left:=x;Top:=48;Width:=30;Height:=15;
|
||||||
|
name:='EditNbCantons';
|
||||||
|
text:='';
|
||||||
|
parent:=GroupBoxAvance;
|
||||||
|
hint:='Nombre de cantons présence train avant un signal pour le déclarer verrouillé';
|
||||||
|
ShowHint:=true;
|
||||||
|
end;
|
||||||
|
|
||||||
|
LabelFiltre:=TLabel.Create(FormConfig.TabAvance);
|
||||||
|
with LabelFiltre do
|
||||||
|
begin
|
||||||
|
Left:=10;Top:=70;Width:=170;Height:=12;
|
||||||
|
caption:='Filtrage des détecteurs (x100 ms)';
|
||||||
|
name:='LabelFiltre';
|
||||||
|
parent:=GroupBoxAvance;
|
||||||
|
end;
|
||||||
|
EditFiltrDet:=TEdit.Create(TabAvance);
|
||||||
|
with EditFiltrDet do
|
||||||
|
begin
|
||||||
|
Left:=x;Top:=68;Width:=30;Height:=15;
|
||||||
|
name:='EditFiltrDet';
|
||||||
|
text:='';
|
||||||
|
parent:=GroupBoxAvance;
|
||||||
|
hint:='Temps de filtrage des détecteurs qui passent à 0';
|
||||||
|
ShowHint:=true;
|
||||||
|
end;
|
||||||
|
|
||||||
|
LabelnCantonsRes:=TLabel.Create(FormConfig.TabAvance);
|
||||||
|
with LabelnCantonsRes do
|
||||||
|
begin
|
||||||
|
Left:=10;Top:=90;Width:=170;Height:=12;
|
||||||
|
caption:='Nombre de cantons à réserver en avant du train';
|
||||||
|
name:='LabelnCantonsRes';
|
||||||
|
parent:=GroupBoxAvance;
|
||||||
|
end;
|
||||||
|
EditnCantonsRes:=TEdit.Create(TabAvance);
|
||||||
|
with EditnCantonsRes do
|
||||||
|
begin
|
||||||
|
Left:=x;Top:=88;Width:=30;Height:=15;
|
||||||
|
name:='EditnCantonsRes';
|
||||||
|
text:='';
|
||||||
|
parent:=GroupBoxAvance;
|
||||||
|
hint:='Nombre de cantons à réserver (1 à 5) en avant du train.'+#13+
|
||||||
|
'Utilisé en mode roulage ou réservation [sous mode réservation par canton (ci-dessous)].'+#13+
|
||||||
|
'Cette valeur dépend de la taille du réseau.';
|
||||||
|
ShowHint:=true;
|
||||||
|
end;
|
||||||
|
|
||||||
|
RadioReserve:=TRadioGroup.Create(TabAvance);
|
||||||
|
with RadioReserve do
|
||||||
|
begin
|
||||||
|
Left:=20;Top:=GroupBoxAvance.top+GroupBoxAvance.Height+20;Width:=GroupBoxAvance.width;Height:=60;
|
||||||
|
name:='RadioReserve';
|
||||||
|
Caption:='Réservation des aiguillages';
|
||||||
|
parent:=TabAvance;
|
||||||
|
hint:='Choix du mode de réservation des aiguillages par les trains.'+#13+
|
||||||
|
'La réservation des aiguillages est fonctionelle en mode roulage (mode autonome) ou en mode réservation';
|
||||||
|
ShowHint:=true;
|
||||||
|
items.Add('Réservation par canton');
|
||||||
|
items.Add('Réservation par détecteurs');
|
||||||
|
end;
|
||||||
|
GroupBoxExpert:=TGroupBox.Create(FormConfig.TabAvance);
|
||||||
|
with GroupBoxExpert do
|
||||||
|
begin
|
||||||
|
Left:=20;;Width:=350;Height:=100; // maxi=580
|
||||||
|
Top:=RadioReserve.Top+RadioReserve.Height+20 ;
|
||||||
|
caption:='Jeu de paramètres experts';
|
||||||
|
name:='GroupBoxExpert';
|
||||||
|
parent:=TabAvance;
|
||||||
|
end;
|
||||||
|
LabelAlgo:=TLabel.Create(FormConfig.TabAvance);
|
||||||
|
with LabelAlgo do
|
||||||
|
begin
|
||||||
|
Left:=10;Top:=30;Width:=170;Height:=12;
|
||||||
|
caption:='Algorithme de localisation des trains';
|
||||||
|
name:='LabelAlgo';
|
||||||
|
Font.Size:=9;
|
||||||
|
parent:=GroupBoxExpert;
|
||||||
|
end;
|
||||||
|
EditAlgo:=TEdit.Create(FormConfig.TabAvance);
|
||||||
|
with EditAlgo do
|
||||||
|
begin
|
||||||
|
Left:=x;Top:=28;Width:=30;Height:=15;
|
||||||
|
name:='EditAlgo';
|
||||||
|
text:='';
|
||||||
|
parent:=GroupBoxExpert;
|
||||||
|
hint:='Algorithme de localisation des trains';
|
||||||
|
ShowHint:=true;
|
||||||
|
end;
|
||||||
|
|
||||||
|
LabelNbSignBS:=TLabel.Create(FormConfig.TabAvance);
|
||||||
|
with LabelNbSignBS do
|
||||||
|
begin
|
||||||
|
Left:=10;Top:=50;Width:=100;Height:=30;
|
||||||
|
caption:='Nombre maxi d''éléments de recherche lors'+#13+'d''un signal dans le bon sens';
|
||||||
|
name:='LabelNbSignBS';
|
||||||
|
Font.Size:=9;
|
||||||
|
wordwrap:=true;
|
||||||
|
parent:=GroupBoxExpert;
|
||||||
|
end;
|
||||||
|
EditMaxSignalSens:=TEdit.Create(FormConfig.TabAvance);
|
||||||
|
with EditMaxSignalSens do
|
||||||
|
begin
|
||||||
|
Left:=x;Top:=48;Width:=30;Height:=15;
|
||||||
|
name:='EditMaxSignalSens';
|
||||||
|
text:='';
|
||||||
|
parent:=GroupBoxExpert;
|
||||||
|
hint:='Nombre maxi d''éléments de recherche lors d''un signal dans le bon sens';
|
||||||
|
ShowHint:=true;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// oui
|
||||||
{if FileExists('Image_Signaux.jpg') then ImageSignaux.Picture.LoadFromFile('Image_Signaux.jpg')
|
{if FileExists('Image_Signaux.jpg') then ImageSignaux.Picture.LoadFromFile('Image_Signaux.jpg')
|
||||||
else
|
else
|
||||||
Affiche('Manque fichier "Image_Signaux.jpg"',clOrange);
|
Affiche('Manque fichier "Image_Signaux.jpg"',clOrange);
|
||||||
@@ -5826,13 +6053,14 @@ begin
|
|||||||
B:='Z';
|
B:='Z';
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// Affiche les utilisateurs des périphériques en fonction de la sélection du périphérique
|
// renvoie les utilisateurs des périphériques en fonction de la sélection du périphérique
|
||||||
function utilisateurs_peripheriques : string;
|
function utilisateurs_peripheriques : string;
|
||||||
var i,j,n : integer;
|
var i,j,n : integer;
|
||||||
s : string;
|
s : string;
|
||||||
begin
|
begin
|
||||||
n:=0;
|
n:=0;
|
||||||
s:='Périphérique '+intToSTR(ligneClicAccPeriph+1)+' : '+Tablo_periph[ligneClicAccPeriph+1].nom+#13;
|
s:='Périphérique '+intToSTR(ligneClicAccPeriph+1)+' : '+Tablo_periph[ligneClicAccPeriph+1].nom+#13;
|
||||||
|
s:=s+'------------------------'+#13;
|
||||||
for i:=1 to maxTablo_act do
|
for i:=1 to maxTablo_act do
|
||||||
begin
|
begin
|
||||||
if tablo_actionneur[i].periph then
|
if tablo_actionneur[i].periph then
|
||||||
@@ -5907,7 +6135,7 @@ procedure Aff_champs_aig_tablo(index : integer);
|
|||||||
var Adresse,Adr2,ind,id2,erreur,position : integer;
|
var Adresse,Adr2,ind,id2,erreur,position : integer;
|
||||||
tjd,tri,tjs,croi : boolean;
|
tjd,tri,tjs,croi : boolean;
|
||||||
s,ss : string;
|
s,ss : string;
|
||||||
i : integer;
|
i,vitesse : integer;
|
||||||
begin
|
begin
|
||||||
if index<1 then exit;
|
if index<1 then exit;
|
||||||
s:=Uppercase(formConfig.ListBoxAig.items[index-1]);
|
s:=Uppercase(formConfig.ListBoxAig.items[index-1]);
|
||||||
@@ -6040,10 +6268,18 @@ begin
|
|||||||
|
|
||||||
CheckInverse.checked:=aiguillage[Index_Aig(adresse)].inversionCDM=1;
|
CheckInverse.checked:=aiguillage[Index_Aig(adresse)].inversionCDM=1;
|
||||||
|
|
||||||
if aiguillage[Index_Aig(adresse)].vitesse=0 then begin RadioButtonSans.checked:=true; RadioButton30kmh.checked:=false;RadioButtonSpecifique.checked:=false;RadioButton60kmh.checked:=false;end;
|
vitesse:=aiguillage[Index_Aig(adresse)].vitesse;
|
||||||
if aiguillage[Index_Aig(adresse)].vitesse=30 then begin RadioButtonSans.checked:=false;RadioButton30kmh.checked:=true; RadioButtonSpecifique.checked:=false;RadioButton60kmh.checked:=false;end;
|
EditSpecifique.text:=intToSTR(vitesse);
|
||||||
if aiguillage[Index_Aig(adresse)].vitesse=40 then begin RadioButtonSans.checked:=false;RadioButton30kmh.checked:=false;RadioButtonSpecifique.checked:=true ;RadioButton60kmh.checked:=false;end;
|
if vitesse=0 then begin RadioButtonSans.checked:=true; RadioButton30kmh.checked:=false;RadioButtonSpecifique.checked:=false;RadioButton60kmh.checked:=false;end
|
||||||
if aiguillage[Index_Aig(adresse)].vitesse=60 then begin RadioButtonSans.checked:=false;RadioButton30kmh.checked:=false;RadioButtonSpecifique.checked:=false;RadioButton60kmh.checked:=true;end;
|
else
|
||||||
|
if vitesse=30 then begin RadioButtonSans.checked:=false;RadioButton30kmh.checked:=true; RadioButtonSpecifique.checked:=false;RadioButton60kmh.checked:=false;end
|
||||||
|
else
|
||||||
|
if vitesse=60 then begin RadioButtonSans.checked:=false;RadioButton30kmh.checked:=false;RadioButtonSpecifique.checked:=false;RadioButton60kmh.checked:=true;end
|
||||||
|
else
|
||||||
|
begin RadioButtonSans.checked:=false;RadioButton30kmh.checked:=false;RadioButtonSpecifique.checked:=true ;RadioButton60kmh.checked:=false;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if croi then
|
if croi then
|
||||||
@@ -6090,13 +6326,16 @@ begin
|
|||||||
|
|
||||||
Label18.Visible:=false;
|
Label18.Visible:=false;
|
||||||
CheckInverse.checked:=aiguillage[Index_Aig(adresse)].inversionCDM=1;
|
CheckInverse.checked:=aiguillage[Index_Aig(adresse)].inversionCDM=1;
|
||||||
if aiguillage[Index].vitesse=0 then begin RadioButtonSans.checked:=true;RadioButton30kmh.checked:=false;RadioButtonSpecifique.checked:=false;RadioButton60kmh.checked:=false;end
|
vitesse:=aiguillage[Index].vitesse;
|
||||||
|
EditSpecifique.text:=intToSTR(vitesse);
|
||||||
|
if vitesse=0 then begin RadioButtonSans.checked:=true;RadioButton30kmh.checked:=false;RadioButtonSpecifique.checked:=false;RadioButton60kmh.checked:=false;end
|
||||||
else
|
else
|
||||||
if aiguillage[Index].vitesse=30 then begin RadioButtonSans.checked:=false;RadioButton30kmh.checked:=true;RadioButtonSpecifique.checked:=false;RadioButton60kmh.checked:=false;end
|
if vitesse=30 then begin RadioButtonSans.checked:=false;RadioButton30kmh.checked:=true;RadioButtonSpecifique.checked:=false;RadioButton60kmh.checked:=false;end
|
||||||
else
|
else
|
||||||
if aiguillage[Index].vitesse=60 then begin RadioButtonSans.checked:=false;RadioButton30kmh.checked:=false;RadioButtonSpecifique.checked:=false;RadioButton60kmh.checked:=true;end
|
if vitesse=60 then begin RadioButtonSans.checked:=false;RadioButton30kmh.checked:=false;RadioButtonSpecifique.checked:=false;RadioButton60kmh.checked:=true;end
|
||||||
else
|
else
|
||||||
begin RadioButtonSans.checked:=false;RadioButton30kmh.checked:=false;RadioButtonSpecifique.checked:=true;RadioButton60kmh.checked:=false;end ;
|
begin RadioButtonSans.checked:=false;RadioButton30kmh.checked:=false;RadioButtonSpecifique.checked:=true;RadioButton60kmh.checked:=false;
|
||||||
|
end ;
|
||||||
|
|
||||||
EditPointe_BG.Text:=intToSTR(aiguillage[index].Apointe)+aiguillage[index].ApointeB;
|
EditPointe_BG.Text:=intToSTR(aiguillage[index].Apointe)+aiguillage[index].ApointeB;
|
||||||
EditPointe_BG.Hint:=TypeElAIg_to_char(aiguillage[index].Apointe,aiguillage[index].ApointeB);
|
EditPointe_BG.Hint:=TypeElAIg_to_char(aiguillage[index].Apointe,aiguillage[index].ApointeB);
|
||||||
@@ -6197,8 +6436,12 @@ begin
|
|||||||
GroupBox19.Height:=96;
|
GroupBox19.Height:=96;
|
||||||
ButtonTestAct.Top:=GroupBox19.Top+GroupBox19.Height+8;
|
ButtonTestAct.Top:=GroupBox19.Top+GroupBox19.Height+8;
|
||||||
|
|
||||||
RadioGroup1.Width:=GroupBox18.width-15;
|
with RadioGroupDecl do
|
||||||
RadioGroup1.Height:=74;
|
begin
|
||||||
|
top:=GroupBox18.Top;
|
||||||
|
Width:=GroupBox18.width-15;
|
||||||
|
Height:=74;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -6575,7 +6818,7 @@ begin
|
|||||||
checkBoxFB.Checked:=Signaux[index].FeuBlanc;
|
checkBoxFB.Checked:=Signaux[index].FeuBlanc;
|
||||||
checkFVC.Checked:=Signaux[index].checkFV;
|
checkFVC.Checked:=Signaux[index].checkFV;
|
||||||
checkFRC.Checked:=Signaux[index].checkFR;
|
checkFRC.Checked:=Signaux[index].checkFR;
|
||||||
// conditions supplémentaires du carré par aiguillages
|
// conditions supplémentaires du carré par aiguillages
|
||||||
l:=1;
|
l:=1;
|
||||||
repeat
|
repeat
|
||||||
nc:=Length(Signaux[index].condcarre[l])-1 ;
|
nc:=Length(Signaux[index].condcarre[l])-1 ;
|
||||||
@@ -6594,7 +6837,7 @@ begin
|
|||||||
// scrolle le MemoCarre sur la première ligne
|
// scrolle le MemoCarre sur la première ligne
|
||||||
MemoCarre.SelStart:=0;
|
MemoCarre.SelStart:=0;
|
||||||
MemoCarre.Perform(EM_SCROLLCARET,0,0);
|
MemoCarre.Perform(EM_SCROLLCARET,0,0);
|
||||||
// conditions supplémentaires du feu blanc par aiguillages
|
// conditions supplémentaires du feu blanc par aiguillages
|
||||||
l:=1;
|
l:=1;
|
||||||
repeat
|
repeat
|
||||||
nc:=Length(Signaux[index].condFeuBlanc[l])-1 ;
|
nc:=Length(Signaux[index].condFeuBlanc[l])-1 ;
|
||||||
|
|||||||
@@ -237,6 +237,7 @@ begin
|
|||||||
FormTCO[indexTCO].EdittypeImage.Text:=IntToSTR(BImage);
|
FormTCO[indexTCO].EdittypeImage.Text:=IntToSTR(BImage);
|
||||||
FormTCO[indexTCO].ComboRepr.ItemIndex:=tco[indexTCO,XclicCell[indexTCO],YclicCell[indexTCO]].repr;
|
FormTCO[indexTCO].ComboRepr.ItemIndex:=tco[indexTCO,XclicCell[indexTCO],YclicCell[indexTCO]].repr;
|
||||||
FormTCO[indexTCO].ShapeCoulFond.Brush.Color:=tco[indexTCO,XclicCell[indexTCO],YclicCell[indexTCO]].CouleurFond;
|
FormTCO[indexTCO].ShapeCoulFond.Brush.Color:=tco[indexTCO,XclicCell[indexTCO],YclicCell[indexTCO]].CouleurFond;
|
||||||
|
FormTCO[indexTCO].CheckPinv.Checked:=tco[indextco,XclicCell[indexTCO],YclicCell[indexTCO]].inverse;
|
||||||
|
|
||||||
s:='El='+intToSTR(tco[indexTCO,XclicCell[indexTCO],YclicCell[indexTCO]].BImage);
|
s:='El='+intToSTR(tco[indexTCO,XclicCell[indexTCO],YclicCell[indexTCO]].BImage);
|
||||||
if tco[indexTCO,XclicCell[indexTCO],YclicCell[indexTCO]].adresse<>0 then s:=s+' Adr='+intToSTR(tco[indexTCO,XclicCell[indexTCO],YclicCell[indexTCO]].adresse);
|
if tco[indexTCO,XclicCell[indexTCO],YclicCell[indexTCO]].adresse<>0 then s:=s+' Adr='+intToSTR(tco[indexTCO,XclicCell[indexTCO],YclicCell[indexTCO]].adresse);
|
||||||
|
|||||||
@@ -98,6 +98,7 @@ uses UnitPrinc,unitconfig ;
|
|||||||
|
|
||||||
{$R *.dfm}
|
{$R *.dfm}
|
||||||
|
|
||||||
|
// icone exemple
|
||||||
procedure icone_aig;
|
procedure icone_aig;
|
||||||
var r : Trect;
|
var r : Trect;
|
||||||
x1,y1,x2,y2,x3,y3,x4,y4 : integer;
|
x1,y1,x2,y2,x3,y3,x4,y4 : integer;
|
||||||
|
|||||||
+6
-6
@@ -1,6 +1,6 @@
|
|||||||
object FormPrinc: TFormPrinc
|
object FormPrinc: TFormPrinc
|
||||||
Left = 113
|
Left = 114
|
||||||
Top = 196
|
Top = 237
|
||||||
Width = 1149
|
Width = 1149
|
||||||
Height = 699
|
Height = 699
|
||||||
Anchors = [akLeft, akTop, akRight]
|
Anchors = [akLeft, akTop, akRight]
|
||||||
@@ -18,8 +18,8 @@ object FormPrinc: TFormPrinc
|
|||||||
OnCreate = FormCreate
|
OnCreate = FormCreate
|
||||||
OnResize = FormResize
|
OnResize = FormResize
|
||||||
DesignSize = (
|
DesignSize = (
|
||||||
1133
|
1141
|
||||||
641)
|
648)
|
||||||
PixelsPerInch = 96
|
PixelsPerInch = 96
|
||||||
TextHeight = 13
|
TextHeight = 13
|
||||||
object LabelTitre: TLabel
|
object LabelTitre: TLabel
|
||||||
@@ -1428,8 +1428,8 @@ object FormPrinc: TFormPrinc
|
|||||||
end
|
end
|
||||||
object StatusBar1: TStatusBar
|
object StatusBar1: TStatusBar
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 619
|
Top = 626
|
||||||
Width = 1133
|
Width = 1141
|
||||||
Height = 22
|
Height = 22
|
||||||
Panels = <
|
Panels = <
|
||||||
item
|
item
|
||||||
|
|||||||
+324
-129
@@ -1,5 +1,5 @@
|
|||||||
Unit UnitPrinc;
|
Unit UnitPrinc;
|
||||||
// 27/1 10
|
// 09/2 10h
|
||||||
(********************************************
|
(********************************************
|
||||||
Programme signaux complexes Graphique Lenz
|
Programme signaux complexes Graphique Lenz
|
||||||
Delphi 7 + activeX Tmscomm + clientSocket
|
Delphi 7 + activeX Tmscomm + clientSocket
|
||||||
@@ -381,6 +381,7 @@ type
|
|||||||
procedure proc_checkBoxFB(Sender : Tobject);
|
procedure proc_checkBoxFB(Sender : Tobject);
|
||||||
procedure proc_checkBoxFV(Sender : Tobject);
|
procedure proc_checkBoxFV(Sender : Tobject);
|
||||||
procedure proc_checkBoxFR(Sender : Tobject);
|
procedure proc_checkBoxFR(Sender : Tobject);
|
||||||
|
procedure procAide(Sender : Tobject);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@@ -591,7 +592,7 @@ var
|
|||||||
FormPrinc: TFormPrinc;
|
FormPrinc: TFormPrinc;
|
||||||
|
|
||||||
Enregistrement,chaine_Envoi,chaine_recue,Id_CDM,Af,version_Interface,entete,suffixe,Lay,
|
Enregistrement,chaine_Envoi,chaine_recue,Id_CDM,Af,version_Interface,entete,suffixe,Lay,
|
||||||
CheminProgrammes,cheminWin : string;
|
CheminProgrammes,cheminWin,fichierAide : string;
|
||||||
|
|
||||||
Ancien_detecteur : array[0..NbMaxDet] of boolean; // anciens état des détecteurs et adresses des détecteurs et leur état
|
Ancien_detecteur : array[0..NbMaxDet] of boolean; // anciens état des détecteurs et adresses des détecteurs et leur état
|
||||||
detecteur : array[0..NbMaxDet] of // détecteurs indexés par l'adresse
|
detecteur : array[0..NbMaxDet] of // détecteurs indexés par l'adresse
|
||||||
@@ -913,7 +914,11 @@ begin
|
|||||||
FormDebug.RichDebug.StyleName:='Windows';
|
FormDebug.RichDebug.StyleName:='Windows';
|
||||||
formDebug.MemoEvtDet.StyleName:='Windows';
|
formDebug.MemoEvtDet.StyleName:='Windows';
|
||||||
end;
|
end;
|
||||||
if formConfig<>nil then FormConfig.RichBranche.StyleName:='Windows';
|
if formConfig<>nil then
|
||||||
|
begin
|
||||||
|
FormConfig.RichBranche.StyleName:='Windows';
|
||||||
|
FormConfig.RichCdeDccpp.StyleName:='Windows';
|
||||||
|
end;
|
||||||
for i:=1 to NbreTCO do
|
for i:=1 to NbreTCO do
|
||||||
begin
|
begin
|
||||||
if FormTCO[i]<>nil then FormTCO[i].ScrollBox.StyleName:='Windows';
|
if FormTCO[i]<>nil then FormTCO[i].ScrollBox.StyleName:='Windows';
|
||||||
@@ -1113,7 +1118,7 @@ procedure cercle(ACanvas : Tcanvas;x,y,rayon : integer;couleur : Tcolor);
|
|||||||
begin
|
begin
|
||||||
with Acanvas do
|
with Acanvas do
|
||||||
begin
|
begin
|
||||||
//brush.Style:=bsSolid; &&&&
|
//brush.Style:=bsSolid;
|
||||||
brush.Color:=couleur;
|
brush.Color:=couleur;
|
||||||
pen.Color:=clBlack;
|
pen.Color:=clBlack;
|
||||||
pen.Width:=1;
|
pen.Width:=1;
|
||||||
@@ -2194,7 +2199,19 @@ begin
|
|||||||
until (i=0);
|
until (i=0);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// trouve l'index d'un train par son nom
|
function indexbrut_train_adresse(adr : integer) : integer;
|
||||||
|
var i : integer;
|
||||||
|
trouve : boolean;
|
||||||
|
begin
|
||||||
|
i:=1;
|
||||||
|
repeat
|
||||||
|
trouve:=TrainZone[i].adrTrain=adr;
|
||||||
|
inc(i);
|
||||||
|
until trouve or (i>MaxTrainZone);
|
||||||
|
if trouve then result:=i-1 else result:=0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// trouve l'index d'un train par son nom dans le tableau trains
|
||||||
function index_train_nom(nom : string) : integer;
|
function index_train_nom(nom : string) : integer;
|
||||||
var i : integer;
|
var i : integer;
|
||||||
trouve : boolean;
|
trouve : boolean;
|
||||||
@@ -5034,7 +5051,7 @@ begin
|
|||||||
// faire la réservation du canton
|
// faire la réservation du canton
|
||||||
if Signaux[i].Btype_suiv1<>det then detSuiv:=detecteur_suivant(detect,det,Signaux[i].Adr_el_suiv1,Signaux[i].Btype_suiv1,1)
|
if Signaux[i].Btype_suiv1<>det then detSuiv:=detecteur_suivant(detect,det,Signaux[i].Adr_el_suiv1,Signaux[i].Btype_suiv1,1)
|
||||||
else detSuiv:=Signaux[i].Adr_el_suiv1;
|
else detSuiv:=Signaux[i].Adr_el_suiv1;
|
||||||
if detSuiv<9990 then reserve_canton(detect,detSuiv,Adrtrain,0,2);
|
if detSuiv<9990 then reserve_canton(detect,detSuiv,Adrtrain,0,nCantonsRes);
|
||||||
// démarrage d'un train
|
// démarrage d'un train
|
||||||
j:=index_train_adresse(adrtrain);
|
j:=index_train_adresse(adrtrain);
|
||||||
trains[j].tempoDemarre:=20; // armer la tempo à 2s
|
trains[j].tempoDemarre:=20; // armer la tempo à 2s
|
||||||
@@ -5068,38 +5085,46 @@ begin
|
|||||||
Dessine_signal_mx(Signaux[i].Img.Canvas,0,0,1,1,adr,1);
|
Dessine_signal_mx(Signaux[i].Img.Canvas,0,0,1,1,adr,1);
|
||||||
|
|
||||||
// allume les feux du signal dans le TCO
|
// allume les feux du signal dans le TCO
|
||||||
if TCOACtive then
|
if TCOActive then
|
||||||
begin
|
begin
|
||||||
indexTCO:=1;
|
for indexTCO:=1 to NbreTCO do
|
||||||
for y:=1 to NbreCellY[indexTCO] do
|
|
||||||
for x:=1 to NbreCellX[indexTCO] do
|
|
||||||
begin
|
begin
|
||||||
if TCO[indexTCO,x,y].Bimage=Id_signal then
|
if formTCO[indexTCO]<>nil then
|
||||||
begin
|
begin
|
||||||
adresse:=TCO[IndexTCO,x,y].adresse; // vérifie si le signal existe dans le TCO
|
for y:=1 to NbreCellY[indexTCO] do
|
||||||
aspect:=Signaux[Index_Signal(adresse)].Aspect;
|
for x:=1 to NbreCellX[indexTCO] do
|
||||||
case aspect of
|
begin
|
||||||
2 : ImageSignal:=Formprinc.Image2feux;
|
if TCO[indexTCO,x,y].Bimage=Id_signal then
|
||||||
3 : ImageSignal:=Formprinc.Image3feux;
|
begin
|
||||||
4 : ImageSignal:=Formprinc.Image4feux;
|
adresse:=TCO[IndexTCO,x,y].adresse; // vérifie si le signal existe dans le TCO
|
||||||
5 : ImageSignal:=Formprinc.Image5feux;
|
if adresse=adr then
|
||||||
7 : ImageSignal:=Formprinc.Image7feux;
|
begin
|
||||||
9 : ImageSignal:=Formprinc.Image9feux;
|
aspect:=Signaux[Index_Signal(adresse)].Aspect;
|
||||||
12 : ImageSignal:=Formprinc.Image2Dir;
|
case aspect of
|
||||||
13 : ImageSignal:=Formprinc.Image3Dir;
|
2 : ImageSignal:=Formprinc.Image2feux;
|
||||||
14 : ImageSignal:=Formprinc.Image4Dir;
|
3 : ImageSignal:=Formprinc.Image3feux;
|
||||||
15 : ImageSignal:=Formprinc.Image5Dir;
|
4 : ImageSignal:=Formprinc.Image4feux;
|
||||||
16 : ImageSignal:=Formprinc.Image6Dir;
|
5 : ImageSignal:=Formprinc.Image5feux;
|
||||||
20 : ImageSignal:=formprinc.ImageSignal20;
|
7 : ImageSignal:=Formprinc.Image7feux;
|
||||||
else ImageSignal:=Formprinc.Image3feux;
|
9 : ImageSignal:=Formprinc.Image9feux;
|
||||||
|
12 : ImageSignal:=Formprinc.Image2Dir;
|
||||||
|
13 : ImageSignal:=Formprinc.Image3Dir;
|
||||||
|
14 : ImageSignal:=Formprinc.Image4Dir;
|
||||||
|
15 : ImageSignal:=Formprinc.Image5Dir;
|
||||||
|
16 : ImageSignal:=Formprinc.Image6Dir;
|
||||||
|
20 : ImageSignal:=formprinc.ImageSignal20;
|
||||||
|
else ImageSignal:=Formprinc.Image3feux;
|
||||||
|
end;
|
||||||
|
TailleY:=ImageSignal.picture.BitMap.Height; // taille du signal d'origine
|
||||||
|
TailleX:=ImageSignal.picture.BitMap.Width;
|
||||||
|
Orientation:=tco[indextco,x,y].FeuOriente;
|
||||||
|
// réduction variable en fonction de la taille des cellules
|
||||||
|
calcul_reduction(frx,fry,LargeurCell[indexTCO],HauteurCell[indexTCO]);
|
||||||
|
// décalage en X pour mettre la tete du signal alignée sur le bord droit de la cellule pour les signaux tournés à 90G
|
||||||
|
Dessine_signal_mx(PCanvasTCO[indexTCO],tco[indexTCO,x,y].x,tco[indextco,x,y].y,frx,fry,adresse,orientation);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
TailleY:=ImageSignal.picture.BitMap.Height; // taille du signal d'origine
|
|
||||||
TailleX:=ImageSignal.picture.BitMap.Width;
|
|
||||||
Orientation:=tco[indextco,x,y].FeuOriente;
|
|
||||||
// réduction variable en fonction de la taille des cellules
|
|
||||||
calcul_reduction(frx,fry,LargeurCell[indexTCO],HauteurCell[indexTCO]);
|
|
||||||
// décalage en X pour mettre la tete du signal alignée sur le bord droit de la cellule pour les signaux tournés à 90G
|
|
||||||
Dessine_signal_mx(PCanvasTCO[indexTCO],tco[indexTCO,x,y].x,tco[indextco,x,y].y,frx,fry,adresse,orientation);
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@@ -5367,7 +5392,7 @@ end;
|
|||||||
// 9998: arret sur aiguillage en talon mal positionnée
|
// 9998: arret sur aiguillage en talon mal positionnée
|
||||||
// 9997: arrêt sur aiguillage dévié
|
// 9997: arrêt sur aiguillage dévié
|
||||||
// 9996: arrêt sur position inconnue d'aiguillage
|
// 9996: arrêt sur position inconnue d'aiguillage
|
||||||
// 9995: arrêt anormal sur buttoir
|
// 9995: arrêt sur buttoir
|
||||||
// 9994: arrêt sur aiguillage réservé
|
// 9994: arrêt sur aiguillage réservé
|
||||||
// la variable "actuel" peut etre changée en cas de TJD!
|
// la variable "actuel" peut etre changée en cas de TJD!
|
||||||
function suivant_alg3(prec : integer;typeELprec : TEquipement;actuel : integer;typeElActuel : TEquipement;alg : integer) : integer;
|
function suivant_alg3(prec : integer;typeELprec : TEquipement;actuel : integer;typeElActuel : TEquipement;alg : integer) : integer;
|
||||||
@@ -6746,7 +6771,10 @@ begin
|
|||||||
Adr:=suivant_alg3(AdrPrec,BtypePrec,AdrFonc,BtypeFonc,2); // élément suivant mais arret sur aiguillage en talon mal positionnée
|
Adr:=suivant_alg3(AdrPrec,BtypePrec,AdrFonc,BtypeFonc,2); // élément suivant mais arret sur aiguillage en talon mal positionnée
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin Adr:=AdrFonc;TypeGen:=BtypeFonc;end;
|
begin
|
||||||
|
Adr:=AdrFonc;
|
||||||
|
TypeGen:=BtypeFonc;
|
||||||
|
end;
|
||||||
if Adr>9990 then typeGen:=det;
|
if Adr>9990 then typeGen:=det;
|
||||||
if (NivDebug=3) then AfficheDebug('trouvé '+intToSTR(Adr)+' '+BTypeToChaine(typeGen),clorange);
|
if (NivDebug=3) then AfficheDebug('trouvé '+intToSTR(Adr)+' '+BTypeToChaine(typeGen),clorange);
|
||||||
AdrPrec:=AdrFonc;BtypePrec:=BtypeFonc;
|
AdrPrec:=AdrFonc;BtypePrec:=BtypeFonc;
|
||||||
@@ -7157,6 +7185,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
detecteur_suivant_El:=9999;exit;
|
detecteur_suivant_El:=9999;exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
IndexBranche_det2:=IndexBranche_trouve;
|
IndexBranche_det2:=IndexBranche_trouve;
|
||||||
branche_trouve_det2:=branche_trouve;
|
branche_trouve_det2:=branche_trouve;
|
||||||
j:=1; // J=1 test en incrément J=2 test en décrément
|
j:=1; // J=1 test en incrément J=2 test en décrément
|
||||||
@@ -7165,12 +7194,16 @@ begin
|
|||||||
|
|
||||||
repeat
|
repeat
|
||||||
//préparer les variables
|
//préparer les variables
|
||||||
|
IdEl:=1;
|
||||||
AdrPrec:=el1;TypePrec:=typeDet1;
|
AdrPrec:=el1;TypePrec:=typeDet1;
|
||||||
if j=1 then i1:=IndexBranche_det1+1;
|
if j=1 then i1:=IndexBranche_det1+1;
|
||||||
if j=2 then i1:=IndexBranche_det1-1;
|
if j=2 then i1:=IndexBranche_det1-1;
|
||||||
// les suivants dansla branche sont:
|
// les suivants dansla branche sont:
|
||||||
AdrFonc:=BrancheN[branche_trouve_det1,i1].adresse;
|
AdrFonc:=BrancheN[branche_trouve_det1,i1].adresse;
|
||||||
typeFonc:=BrancheN[branche_trouve_det1,i1].Btype ;
|
typeFonc:=BrancheN[branche_trouve_det1,i1].Btype;
|
||||||
|
IdEl:=1;
|
||||||
|
elements[idEl].adresse:=adrFonc;
|
||||||
|
elements[idEl].typ:=TypeFonc;
|
||||||
|
|
||||||
if NivDebug=3 then
|
if NivDebug=3 then
|
||||||
begin
|
begin
|
||||||
@@ -7190,7 +7223,6 @@ begin
|
|||||||
begin
|
begin
|
||||||
Adr:=9999;
|
Adr:=9999;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
//AfficheDebug('Sortie Alg3: '+IntToSTR(Adr)+'/'+intToSTR(typeGen),clyellow);
|
//AfficheDebug('Sortie Alg3: '+IntToSTR(Adr)+'/'+intToSTR(typeGen),clyellow);
|
||||||
if TypeGen=det then inc(N_Det);
|
if TypeGen=det then inc(N_Det);
|
||||||
if NivDebug=3 then
|
if NivDebug=3 then
|
||||||
@@ -7221,6 +7253,10 @@ begin
|
|||||||
if (typeDet2=TypeGen) and (Adr=el2) and (N_Det<>Nb_det_dist) then
|
if (typeDet2=TypeGen) and (Adr=el2) and (N_Det<>Nb_det_dist) then
|
||||||
begin
|
begin
|
||||||
if Nivdebug=3 then AfficheDebug('614 - Trouvé '+intToSTR(el2),clYellow);
|
if Nivdebug=3 then AfficheDebug('614 - Trouvé '+intToSTR(el2),clYellow);
|
||||||
|
inc(idEl);
|
||||||
|
elements[idEl].adresse:=el2;
|
||||||
|
elements[idEl].typ:=Typedet2;
|
||||||
|
|
||||||
i:=0;
|
i:=0;
|
||||||
repeat
|
repeat
|
||||||
//AfficheDebug('Engage '+IntToSTR(AdrPrec)+','+IntToSTR(typePrec)+'/'+IntToSTR(AdrFonc)+','+IntToSTR(typeFonc),clyellow);
|
//AfficheDebug('Engage '+IntToSTR(AdrPrec)+','+IntToSTR(typePrec)+'/'+IntToSTR(AdrFonc)+','+IntToSTR(typeFonc),clyellow);
|
||||||
@@ -7232,6 +7268,9 @@ begin
|
|||||||
s:='615 : trouvé='+intToSTR(Adr)+BTypeToChaine(typeGen);
|
s:='615 : trouvé='+intToSTR(Adr)+BTypeToChaine(typeGen);
|
||||||
AfficheDebug(s,clorange);
|
AfficheDebug(s,clorange);
|
||||||
end;
|
end;
|
||||||
|
inc(idEl);
|
||||||
|
elements[idEl].adresse:=adr;
|
||||||
|
elements[idEl].typ:=TypeGen;
|
||||||
|
|
||||||
AdrPrec:=AdrFonc;TypePrec:=TypeFonc;
|
AdrPrec:=AdrFonc;TypePrec:=TypeFonc;
|
||||||
AdrFonc:=Adr;TypeFonc:=typeGen;
|
AdrFonc:=Adr;TypeFonc:=typeGen;
|
||||||
@@ -7712,7 +7751,7 @@ begin
|
|||||||
det_contigu(det2,det1,i,Typ);
|
det_contigu(det2,det1,i,Typ);
|
||||||
if i=0 then
|
if i=0 then
|
||||||
begin
|
begin
|
||||||
affiche('Erreur 65 : Signal_suivant_det('+intToSTR(det1)+','+intToSTR(det2)+') ne sont pas liés ',clred);
|
//affiche('Erreur 65 : Signal_suivant_det('+intToSTR(det1)+','+intToSTR(det2)+') ne sont pas liés ',clred);
|
||||||
signal_suivant_det:=0;
|
signal_suivant_det:=0;
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
@@ -8146,7 +8185,8 @@ begin
|
|||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// renvoie vrai si une mémoire de zone est occupée après le signal "adresse" jusqu'au signal suivant (=canton)
|
// renvoie vrai si une mémoire de zone est occupée après le signal "adresse" jusqu'au
|
||||||
|
// nombre de signaux suivants défini par NSigMax=1, 2 ou 3.. (=canton)
|
||||||
// sort de suite si on trouve un train
|
// sort de suite si on trouve un train
|
||||||
// adresse=adresse du signal
|
// adresse=adresse du signal
|
||||||
function test_memoire_zones(adresse : integer) : boolean;
|
function test_memoire_zones(adresse : integer) : boolean;
|
||||||
@@ -8276,7 +8316,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
if (AdrSignal<>0) then // si l'adresse est <>0
|
if (AdrSignal<>0) then // si l'adresse est <>0
|
||||||
begin
|
begin
|
||||||
if (Signaux[isi].Adr_el_suiv1<>prec) then // le feu est-il dans le bon sens de progression?
|
if (Signaux[isi].Adr_el_suiv1<>prec) then // le signal est-il dans le bon sens de progression?
|
||||||
begin
|
begin
|
||||||
inc(NSignaux);
|
inc(NSignaux);
|
||||||
j:=0;
|
j:=0;
|
||||||
@@ -8486,7 +8526,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
if (AdrSignal<>0) then // si l'adresse est <>0
|
if (AdrSignal<>0) then // si l'adresse est <>0
|
||||||
begin
|
begin
|
||||||
if (Signaux[ifd].Adr_el_suiv1=prec) then // le feu est-il dans le bon sens de progression?
|
if (Signaux[ifd].Adr_el_suiv1=prec) then // le signal est-il dans le bon sens de progression?
|
||||||
begin
|
begin
|
||||||
inc(Nsignaux);
|
inc(Nsignaux);
|
||||||
s:='Trouvé signal '+IntToSTR(AdrSignal);
|
s:='Trouvé signal '+IntToSTR(AdrSignal);
|
||||||
@@ -8512,7 +8552,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
// présence train précédent les n (NbCtSig) cantons du signal Adresse, dans le sens d'avance vers le signal.
|
// présence train précédent les n (NbCtSig) cantons du signal Adresse, dans le sens d'avance vers le signal.
|
||||||
// detecteur=true si on doit contrôler aussi sur les détecteurs
|
// detect=true si on doit contrôler aussi sur les détecteurs
|
||||||
// renvoie vrai si présence train
|
// renvoie vrai si présence train
|
||||||
// dans AdrTrain: renvoie 0 si pas de train
|
// dans AdrTrain: renvoie 0 si pas de train
|
||||||
// si on est en mode AvecRESA, renvoie l'index du train
|
// si on est en mode AvecRESA, renvoie l'index du train
|
||||||
@@ -8703,7 +8743,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
if (AdrSignal<>0) then // si l'adresse est <>0
|
if (AdrSignal<>0) then // si l'adresse est <>0
|
||||||
begin
|
begin
|
||||||
if (Signaux[ifd].Adr_el_suiv1=prec) then // le feu est-il dans le bon sens de progression?
|
if (Signaux[ifd].Adr_el_suiv1=prec) then // le signal est-il dans le bon sens de progression?
|
||||||
begin
|
begin
|
||||||
inc(Nsignaux);
|
inc(Nsignaux);
|
||||||
j:=0;
|
j:=0;
|
||||||
@@ -8893,8 +8933,8 @@ begin
|
|||||||
else detSuiv:=Signaux[index].Adr_el_suiv1;
|
else detSuiv:=Signaux[index].Adr_el_suiv1;
|
||||||
if detSuiv<9990 then
|
if detSuiv<9990 then
|
||||||
begin
|
begin
|
||||||
if roulage then reserve_canton(Signaux[index].Adr_det1,detSuiv,AdrtrainLoc,0,2) else
|
if roulage then reserve_canton(Signaux[index].Adr_det1,detSuiv,AdrtrainLoc,0,nCantonsRes) else
|
||||||
if AvecResa then reserve_canton(Signaux[index].Adr_det1,detSuiv,0,AdrtrainLoc,2) ;
|
if AvecResa then reserve_canton(Signaux[index].Adr_det1,detSuiv,0,AdrtrainLoc,nCantonsRes) ;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@@ -8990,7 +9030,7 @@ begin
|
|||||||
PresTrain:=false;
|
PresTrain:=false;
|
||||||
// détecteurs précédent le signal , pour déterminer si leurs mémoires de zones sont à 1 pour libérer le carré
|
// détecteurs précédent le signal , pour déterminer si leurs mémoires de zones sont à 1 pour libérer le carré
|
||||||
//if (Signaux[index].VerrouCarre) and (modele>=4) then
|
//if (Signaux[index].VerrouCarre) and (modele>=4) then
|
||||||
presTrain:=PresTrainPrec(AdrSignal,Nb_cantons_Sig,false,AdrTrainLoc,voie); //etape A // présence train par adresse train ; renvoie l'adresse du train dans AdrTrainLoc
|
presTrain:=PresTrainPrec(AdrSignal,Nb_cantons_Sig,detect,AdrTrainLoc,voie); //etape A // présence train par adresse train ; renvoie l'adresse du train dans AdrTrainLoc
|
||||||
if AffSignal and roulage then AfficheDebug('L''@ du train avant le signal est '+intToSTR(AdrTrainLoc),clYellow);
|
if AffSignal and roulage then AfficheDebug('L''@ du train avant le signal est '+intToSTR(AdrTrainLoc),clYellow);
|
||||||
// si le signal peut afficher un carré et les aiguillages après le signal sont mal positionnées ou aig réservé ou que pas présence train avant signal et signal
|
// si le signal peut afficher un carré et les aiguillages après le signal sont mal positionnées ou aig réservé ou que pas présence train avant signal et signal
|
||||||
// verrouillable au carré, afficher un carré
|
// verrouillable au carré, afficher un carré
|
||||||
@@ -9003,7 +9043,8 @@ begin
|
|||||||
car:=cond_carre(AdrSignal) or car;
|
car:=cond_carre(AdrSignal) or car;
|
||||||
//if AffSignal and car then AfficheDebug('le signal a des aiguilles en talon aval mal positionnées',clYellow);
|
//if AffSignal and car then AfficheDebug('le signal a des aiguilles en talon aval mal positionnées',clYellow);
|
||||||
if AffSignal and Signaux[index].VerrouCarre then AfficheDebug('le signal est verrouillé au carré',clYellow);
|
if AffSignal and Signaux[index].VerrouCarre then AfficheDebug('le signal est verrouillé au carré',clYellow);
|
||||||
if (modele>=4) and ((not(PresTrain) and Signaux[index].Verroucarre) or car ) then Maj_Etat_Signal(AdrSignal,carre)
|
|
||||||
|
if (modele>=4) and ((not(PresTrain) and Signaux[index].Verroucarre) or car ) then Maj_Etat_Signal(AdrSignal,carre)
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
// si on quitte le détecteur on affiche un sémaphore : tester le sens de circulation
|
// si on quitte le détecteur on affiche un sémaphore : tester le sens de circulation
|
||||||
@@ -9041,7 +9082,7 @@ begin
|
|||||||
Affiche(s,clred);
|
Affiche(s,clred);
|
||||||
if AffSignal then AfficheDebug(s,clred);
|
if AffSignal then AfficheDebug(s,clred);
|
||||||
end;
|
end;
|
||||||
// si signal suivant affiche rappel ou rouge
|
// si signal suivant affiche rappel ou rouge (etat=signal suivant)
|
||||||
if TestBit(etat,rappel_60) or testBit(etat,rappel_30) or signal_rouge(AdrSignalSuivant)
|
if TestBit(etat,rappel_60) or testBit(etat,rappel_30) or signal_rouge(AdrSignalSuivant)
|
||||||
then Maj_Etat_Signal(AdrSignal,jaune)
|
then Maj_Etat_Signal(AdrSignal,jaune)
|
||||||
else
|
else
|
||||||
@@ -9051,12 +9092,17 @@ begin
|
|||||||
begin
|
begin
|
||||||
Maj_Etat_Signal(AdrSignal,jaune_cli);
|
Maj_Etat_Signal(AdrSignal,jaune_cli);
|
||||||
//if AffSignal then AfficheDebug('400.Mise du signal au jaune cli',clyellow);
|
//if AffSignal then AfficheDebug('400.Mise du signal au jaune cli',clyellow);
|
||||||
end;
|
end
|
||||||
|
else
|
||||||
|
//sinon si signal suivant=ral30 ou 60
|
||||||
|
if TestBit(etat,ral_30) or TestBit(etat,ral_60) then
|
||||||
|
begin
|
||||||
|
Maj_Etat_Signal(AdrSignal,jaune_cli);
|
||||||
|
end
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
// aiguille locale non déviée ou aspect signal<9
|
// aiguille locale non déviée ou aspect signal<9
|
||||||
// si le signal suivant est rouge
|
|
||||||
begin
|
begin
|
||||||
if AffSignal then AfficheDebug('pas d''aiguille déviée',clYellow);
|
if AffSignal then AfficheDebug('pas d''aiguille déviée',clYellow);
|
||||||
// effacer la signalisation combinée
|
// effacer la signalisation combinée
|
||||||
@@ -9097,7 +9143,7 @@ begin
|
|||||||
begin
|
begin
|
||||||
// si le signal suivant est jaune
|
// si le signal suivant est jaune
|
||||||
//if affsignal then AfficheDebug('test 404',clyellow);
|
//if affsignal then AfficheDebug('test 404',clyellow);
|
||||||
if TestBit(etat,jaune) then
|
if TestBit(etat,jaune) or TestBit(etat,ral_30) or TestBit(etat,ral_60) then
|
||||||
begin
|
begin
|
||||||
Maj_Etat_Signal(AdrSignal,jaune_cli);
|
Maj_Etat_Signal(AdrSignal,jaune_cli);
|
||||||
//if affsignal then AfficheDebug('401.Mise du feu au jaune cli',clyellow);
|
//if affsignal then AfficheDebug('401.Mise du feu au jaune cli',clyellow);
|
||||||
@@ -9153,8 +9199,8 @@ begin
|
|||||||
else detSuiv:=Signaux[index].Adr_el_suiv1;
|
else detSuiv:=Signaux[index].Adr_el_suiv1;
|
||||||
if detSuiv<9990 then
|
if detSuiv<9990 then
|
||||||
begin
|
begin
|
||||||
if roulage then reserve_canton(Signaux[index].Adr_det1,detSuiv,AdrtrainLoc,0,2) else
|
if roulage then reserve_canton(Signaux[index].Adr_det1,detSuiv,AdrtrainLoc,0,nCantonsRes) else
|
||||||
if AvecResa then reserve_canton(Signaux[index].Adr_det1,detSuiv,0,AdrtrainLoc,2) ;
|
if AvecResa then reserve_canton(Signaux[index].Adr_det1,detSuiv,0,AdrtrainLoc,nCantonsRes) ;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@@ -9238,27 +9284,70 @@ begin
|
|||||||
// parcourir les éléments jusque detecteur2
|
// parcourir les éléments jusque detecteur2
|
||||||
// oui, est-il dans le bon sens?
|
// oui, est-il dans le bon sens?
|
||||||
succ:=suivant_alg3(actuel,typeAct,suiv,typSuiv,1);
|
succ:=suivant_alg3(actuel,typeAct,suiv,typSuiv,1);
|
||||||
|
if (succ>9990) then
|
||||||
|
begin
|
||||||
|
Affiche('Erreur 154',clred);
|
||||||
|
end;
|
||||||
actuel:=suiv;typeact:=typSuiv;
|
actuel:=suiv;typeact:=typSuiv;
|
||||||
suiv:=succ;typSuiv:=typeGen;
|
suiv:=succ;typSuiv:=typeGen;
|
||||||
|
|
||||||
inc(it);
|
inc(it);
|
||||||
until (succ=det2) or (it>7);
|
until (succ=det2) or (succ=0) or (it>Max_Signal_Sens);
|
||||||
if debug=3 then formprinc.Caption:='';
|
if debug=3 then formprinc.Caption:='';
|
||||||
signal_sens:=succ=det2;
|
signal_sens:=succ=det2;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
// libère la portion de det1 à detecteur2
|
||||||
|
Procedure libere_detecteur(detecteur1,detecteur2 : integer);
|
||||||
|
var i,j,det3 : integer;
|
||||||
|
typ : tEquipement;
|
||||||
|
begin
|
||||||
|
if not(roulage) and not(avecResa) then exit;
|
||||||
|
//if traceliste or ProcPrinc then
|
||||||
|
Affiche('Libère_Detecteur '+intToSTR(detecteur1)+' '+intToSTR(detecteur2),clLime);
|
||||||
|
if ProcPrinc then AfficheDebug('Libère_Detecteur '+intToSTR(detecteur1)+' '+intToSTR(detecteur2),clLime);
|
||||||
|
det3:=detecteur_suivant_El(detecteur1,det,detecteur2,det,1); // arret sur suivant
|
||||||
|
|
||||||
|
if traceListe then AfficheDebug('Libération portion det '+IntToSTR(detecteur1)+' '+intToSTR(detecteur2)+' : ',clLime);
|
||||||
|
for i:=1 to idEl do
|
||||||
|
begin
|
||||||
|
j:=elements[i].adresse;
|
||||||
|
typ:=elements[i].typ;
|
||||||
|
if (typ=Aig) or (typ=tjd) or (typ=tjs) or (typ=crois) or (typ=triple) then
|
||||||
|
begin
|
||||||
|
if traceListe then Affichedebug_Suivi(intToSTR(j)+' ',clLime);
|
||||||
|
Aiguillage[index_aig(j)].AdrTrain:=0; // libère l'aiguillage
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
Maj_Signaux(false);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// libère le canton avant detecteur2 comportant un signal et le signal précédent
|
// libère le canton avant detecteur2 comportant un signal et le signal précédent
|
||||||
// attention le détecteur 2 n'est pas forcément associé à un signal (et dans le bon sens)
|
// attention le détecteur 2 n'est pas forcément associé à un signal (et dans le bon sens)
|
||||||
Procedure libere_canton(detecteur1,detecteur2 : integer);
|
Procedure libere_canton(detecteur1,detecteur2 : integer);
|
||||||
var sd2,i,j: integer;
|
var sd2,i,j: integer;
|
||||||
typ : tEquipement;
|
typ : tEquipement;
|
||||||
begin
|
begin
|
||||||
|
// mode_reserve 0 = par canton - 1=par détecteurs
|
||||||
|
if mode_reserve=1 then
|
||||||
|
begin
|
||||||
|
libere_detecteur(detecteur1,detecteur2);
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
|
||||||
if not(roulage) and not(avecResa) then exit;
|
if not(roulage) and not(avecResa) then exit;
|
||||||
if traceliste or ProcPrinc then afficheDebug('Libère_canton '+intToSTR(detecteur1)+' '+intToSTR(detecteur2),clorange);
|
//if traceliste or ProcPrinc then
|
||||||
|
affiche('Libère_canton '+intToSTR(detecteur1)+' '+intToSTR(detecteur2),clLime);
|
||||||
|
if ProcPrinc then AfficheDebug('Libère_Canton '+intToSTR(detecteur1)+' '+intToSTR(detecteur2),clLime);
|
||||||
// est-on en limite de canton du detecteur 2 pour le libérer?
|
// est-on en limite de canton du detecteur 2 pour le libérer?
|
||||||
sd2:=signal_detecteur(detecteur2); // trouve le signal associé au detecteur2
|
sd2:=signal_detecteur(detecteur2); // trouve le signal associé au detecteur2
|
||||||
if sd2=0 then exit; // pas de signal associé
|
if sd2=0 then
|
||||||
|
begin
|
||||||
|
if traceliste then affiche('le détecteur '+intToSTR(detecteur2)+' n''est pas pas associé à un signal - pas de libération du canton',clorange);
|
||||||
|
exit; // pas de signal associé
|
||||||
|
end;
|
||||||
// ce signal sd2 est il dans le bon sens
|
// ce signal sd2 est il dans le bon sens
|
||||||
i:=signal_suivant_det(detecteur1,detecteur2); // adresse du signal dans le bon sens associé au détecteur
|
i:=signal_suivant_det(detecteur1,detecteur2); // adresse du signal dans le bon sens associé au détecteur
|
||||||
if i<>sd2 then exit;
|
if i<>sd2 then exit;
|
||||||
@@ -9280,6 +9369,35 @@ begin
|
|||||||
Maj_Signaux(false);
|
Maj_Signaux(false);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
// reserve les aiguillages du det1 au det2 et au suivant de det2
|
||||||
|
procedure reserve_detecteur(det1,det2,adrTrain,NumTrain : integer);
|
||||||
|
var det3,i,j : integer;
|
||||||
|
typ : tEQuipement;
|
||||||
|
begin
|
||||||
|
det3:=detecteur_suivant_El(det1,det,det2,det,1);
|
||||||
|
Affiche('Réserve détecteur '+intToSTR(det1)+' '+intToSTR(det2)+' '+intToSTR(det3),clYellow);
|
||||||
|
for i:=1 to idEl do
|
||||||
|
begin
|
||||||
|
j:=elements[i].adresse;
|
||||||
|
//Affiche(intToSTR(j),clOrange);
|
||||||
|
typ:=elements[i].typ;
|
||||||
|
if (typ=Aig) or (typ=tjd) or (typ=tjs) or (typ=crois) or (typ=triple) then
|
||||||
|
begin
|
||||||
|
if TraceListe then AfficheDebug_Suivi(intToSTR(j)+' ',clOrange);
|
||||||
|
if AvecResa then
|
||||||
|
begin
|
||||||
|
if (Aiguillage[index_aig(j)].AdrTrain=0) then Aiguillage[index_aig(j)].AdrTrain:=numtrain;
|
||||||
|
end;
|
||||||
|
if roulage then
|
||||||
|
begin
|
||||||
|
if (Aiguillage[index_aig(j)].AdrTrain)=0 then Aiguillage[index_aig(j)].AdrTrain:=AdrTrain;
|
||||||
|
end;
|
||||||
|
Texte_aig_fond(j);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
Maj_Signaux(false); //sans_Maj
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
// réserve le nombre de cantons "nCantons" du detecteur1 (non compris) équipé du signal ou le prochain suivant si le signal n'est pas au rouge
|
// réserve le nombre de cantons "nCantons" du detecteur1 (non compris) équipé du signal ou le prochain suivant si le signal n'est pas au rouge
|
||||||
// la réservation consiste à marquer un aiguillage avec l'adresse du train "adrTrain" ou "NumTrain"
|
// la réservation consiste à marquer un aiguillage avec l'adresse du train "adrTrain" ou "NumTrain"
|
||||||
@@ -9293,12 +9411,13 @@ var nc,AdrSig,i,j,etat,etatSuiv,AdrSignalsuivant : integer;
|
|||||||
s : string;
|
s : string;
|
||||||
begin
|
begin
|
||||||
if not(roulage) and not(avecResa) then exit;
|
if not(roulage) and not(avecResa) then exit;
|
||||||
if traceliste or ProcPrinc then
|
|
||||||
begin
|
begin
|
||||||
s:='Réservation '+intToSTR(nCantons)+' cantons après détecteur '+intToSTR(detecteur1)+' '+intToSTR(detecteur2)+' pour train ';
|
s:='Réservation '+intToSTR(nCantons)+' cantons après détecteur '+intToSTR(detecteur1)+' '+intToSTR(detecteur2)+' pour train ';
|
||||||
if roulage then s:=s+'@'+intToSTR(adrtrain)
|
if roulage then s:=s+'@'+intToSTR(adrtrain)
|
||||||
else if avecResa then s:=s+intToSTR(NumTrain);
|
else if avecResa then s:=s+intToSTR(NumTrain);
|
||||||
afficheDebug(s,clorange);
|
if traceliste or ProcPrinc then afficheDebug(s,clorange);
|
||||||
|
Affiche(s,ClOrange);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if (detecteur1>NbMaxDet) or (detecteur2>NbMaxDet) then
|
if (detecteur1>NbMaxDet) or (detecteur2>NbMaxDet) then
|
||||||
@@ -9307,19 +9426,40 @@ begin
|
|||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
idEl:=0;
|
||||||
// y a t-il un signal sur le détecteur1
|
// y a t-il un signal sur le détecteur1
|
||||||
cas2:=false;
|
cas2:=false;
|
||||||
|
|
||||||
AdrSig:=signal_detecteur(detecteur1); // trouve le signal associé au detecteur1
|
AdrSig:=signal_detecteur(detecteur1); // trouve le signal associé au detecteur1
|
||||||
if adrSig<>0 then
|
if adrSig<>0 then
|
||||||
begin
|
begin
|
||||||
// si le signal est dans le bon sens
|
// si le signal est dans le bon sens
|
||||||
if signal_sens(AdrSig,detecteur1,detecteur2) then cas2:=true; // oui
|
if signal_sens(AdrSig,detecteur1,detecteur2) then
|
||||||
|
begin
|
||||||
|
cas2:=true; // oui
|
||||||
|
if TraceListe then AfficheDebug('Trouvé signal '+intToSTR(adrSig)+' dans bon sens',clYellow);
|
||||||
|
end
|
||||||
|
else if TraceListe then AfficheDebug('Trouvé signal '+intToSTR(adrSig)+' dans mauvais sens',clYellow);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if not(cas2) then AdrSig:=signal_suivant_det(detecteur1,detecteur2); // signal suivant dans le bon sens
|
if not(cas2) then AdrSig:=signal_suivant_det(detecteur1,detecteur2); // signal suivant dans le bon sens
|
||||||
|
|
||||||
if traceListe then afficheDebug('Le signal est '+intToSTR(AdrSig)+' ',clyellow);
|
if traceListe then afficheDebug('Le signal est '+intToSTR(AdrSig)+' ',clyellow);
|
||||||
|
|
||||||
|
// pas de signal !!
|
||||||
|
if adrSig=0 then
|
||||||
|
begin
|
||||||
|
//Affiche('Absence de signal après '+intToSTR(detecteur2)+', réservation pour train @'+intToStr(AdrTrain)+' '+intToSTR(detecteur1)+' '+intToSTR(detecteur2)+' impossible',clred);
|
||||||
|
i:=indexbrut_train_adresse(AdrTrain); // numéro de train
|
||||||
|
if i<>0 then
|
||||||
|
begin
|
||||||
|
reserve_detecteur(detecteur1,detecteur2,adrTrain,i);
|
||||||
|
end;
|
||||||
|
|
||||||
|
exit;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
etat:=Signaux[Index_Signal(AdrSig)].etatSignal;
|
etat:=Signaux[Index_Signal(AdrSig)].etatSignal;
|
||||||
rouge:=signal_rouge(AdrSig);
|
rouge:=signal_rouge(AdrSig);
|
||||||
if rouge then
|
if rouge then
|
||||||
@@ -9413,7 +9553,7 @@ begin
|
|||||||
inc(nc);
|
inc(nc);
|
||||||
until (nc>Ncantons);
|
until (nc>Ncantons);
|
||||||
|
|
||||||
Maj_Signaux(false);
|
Maj_Signaux(false); // sans_maj
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// pilote le train sur le détecteur det2, d'adresse adrtrain
|
// pilote le train sur le détecteur det2, d'adresse adrtrain
|
||||||
@@ -9427,6 +9567,7 @@ var entree_signal,jauneC,rappel30C,rappel60C,rouge : boolean;
|
|||||||
s : string;
|
s : string;
|
||||||
begin
|
begin
|
||||||
if not(roulage) or (adrtrain=0) then exit;
|
if not(roulage) or (adrtrain=0) then exit;
|
||||||
|
Affiche('Pilote train '+intToSTR(det1)+' '+intToSTR(det2),clYellow);
|
||||||
i:=index_signal_det(det2,voie,i2); // index du signal associé au det2 j:=signal_detecteur(det3);
|
i:=index_signal_det(det2,voie,i2); // index du signal associé au det2 j:=signal_detecteur(det3);
|
||||||
if i=0 then exit;
|
if i=0 then exit;
|
||||||
|
|
||||||
@@ -9434,7 +9575,7 @@ begin
|
|||||||
couleur:=CouleurTrain[i2];
|
couleur:=CouleurTrain[i2];
|
||||||
index_train:=index_train_adresse(adrTrain); // index du tableau trains
|
index_train:=index_train_adresse(adrTrain); // index du tableau trains
|
||||||
|
|
||||||
adresse:=Signaux[i].adresse; //voir si il est dans le bon sens
|
adresse:=Signaux[i].adresse; // voir si il est dans le bon sens
|
||||||
|
|
||||||
adresse2:=signal_suivant_det(det1,det2); // renvoie le signal suivant dans le sens det1 det2
|
adresse2:=signal_suivant_det(det1,det2); // renvoie le signal suivant dans le sens det1 det2
|
||||||
if adresse<>adresse2 then exit; // non pas dans le bon sens
|
if adresse<>adresse2 then exit; // non pas dans le bon sens
|
||||||
@@ -9604,7 +9745,7 @@ begin
|
|||||||
begin
|
begin
|
||||||
if adrsuiv=9996 then affiche_evt('Erreur position inconnue aiguillage ',clred)
|
if adrsuiv=9996 then affiche_evt('Erreur position inconnue aiguillage ',clred)
|
||||||
else
|
else
|
||||||
Affiche_evt('Erreur 1-0 '+intToSTR(AdrSuiv)+' : pas de suivant detecteur_suivant_el '+intToSTR(det1)+' '+intToSTR(det3),clred);
|
Affiche_evt('Info 1-0 '+intToSTR(AdrSuiv)+' : pas de suivant detecteur_suivant_el '+intToSTR(det1)+' '+intToSTR(det3),clWhite);
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -9646,12 +9787,12 @@ begin
|
|||||||
AdrTrain:=AdrTrainLoc
|
AdrTrain:=AdrTrainLoc
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
reserve_canton(det3,AdrSuiv,AdrTrainLoc,i,2); // si feu réserve canton courant
|
reserve_canton(det3,AdrSuiv,AdrTrainLoc,i,nCantonsRes); // si feu réserve canton courant
|
||||||
libere_canton(det1,det3); // on quitte det3
|
libere_canton(det1,det3); // on quitte det3
|
||||||
Maj_Signaux(false);
|
Maj_Signaux(false);
|
||||||
Maj_Signaux(false);
|
Maj_Signaux(false);
|
||||||
det4:=detecteur_suivant_EL(det3,det,AdrSuiv,det,1);
|
det4:=detecteur_suivant_EL(det3,det,AdrSuiv,det,1);
|
||||||
if det4<9990 then reserve_canton(AdrSuiv,det4,AdrTrainLoc,i,2) // réserve canton suivant après maj signaux
|
if det4<9990 then reserve_canton(AdrSuiv,det4,AdrTrainLoc,i,nCantonsRes) // réserve canton suivant après maj signaux
|
||||||
else Affiche_evt('Réservation canton après '+intToSTR(det3)+' '+intToSTR(ADrSuiv)+' impossible (pos? aig)',clOrange);
|
else Affiche_evt('Réservation canton après '+intToSTR(det3)+' '+intToSTR(ADrSuiv)+' impossible (pos? aig)',clOrange);
|
||||||
|
|
||||||
event_act(det1,det3,1,''); // évènement actionneur
|
event_act(det1,det3,1,''); // évènement actionneur
|
||||||
@@ -9716,7 +9857,8 @@ begin
|
|||||||
until (j>6) or trouve;
|
until (j>6) or trouve;
|
||||||
dec(j);
|
dec(j);
|
||||||
//si début de démarrage train i
|
//si début de démarrage train i
|
||||||
if trouve and (TrainZone[i].Nbre=0) and (det1<NbMaxDet) and (det3<NbMaxDet) then
|
//if trouve and (TrainZone[i].Nbre=0) and (det1<NbMaxDet) and (det3<NbMaxDet) then
|
||||||
|
if (TrainZone[i].Nbre=0) and (det1<NbMaxDet) and (det3<NbMaxDet) then
|
||||||
begin
|
begin
|
||||||
//Affiche('on a trouvé le train '+intToSTR(j),clYellow);
|
//Affiche('on a trouvé le train '+intToSTR(j),clYellow);
|
||||||
detecteur[det3].train:=train_ch; // affecter le nom du train au détecteur
|
detecteur[det3].train:=train_ch; // affecter le nom du train au détecteur
|
||||||
@@ -9735,7 +9877,7 @@ begin
|
|||||||
|
|
||||||
// test si on peut réserver le canton suivant
|
// test si on peut réserver le canton suivant
|
||||||
det_suiv:=det_suiv_cont(det1,det3,1);
|
det_suiv:=det_suiv_cont(det1,det3,1);
|
||||||
if det_suiv<9990 then reserve_canton(det3,det_suiv,AdrTrainLoc,i,2) else
|
if det_suiv<9990 then reserve_canton(det3,det_suiv,AdrTrainLoc,i,nCantonsRes) else
|
||||||
begin
|
begin
|
||||||
if det_suiv=9996 then affiche_evt('Erreur 1-1 position inconnue aiguillage ',clred)
|
if det_suiv=9996 then affiche_evt('Erreur 1-1 position inconnue aiguillage ',clred)
|
||||||
else Affiche_evt('Erreur 1-1 '+intToSTR(Det_Suiv)+' : pas de suivant detecteur_suivant_el '+intToSTR(det1)+' '+intToSTR(det3),clred);
|
else Affiche_evt('Erreur 1-1 '+intToSTR(Det_Suiv)+' : pas de suivant detecteur_suivant_el '+intToSTR(det1)+' '+intToSTR(det3),clred);
|
||||||
@@ -9756,8 +9898,8 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
pilote_train(det1,det3,adrtrainLoc,i); // pilote le train sur det3
|
pilote_train(det1,det3,adrtrainLoc,i); // pilote le train sur det3
|
||||||
//event_act(det1,det3,1,''); // activation zone
|
event_act(det1,det3,1,''); // activation zone
|
||||||
|
maj_signaux(false);
|
||||||
// actualiser le signal du det3
|
// actualiser le signal du det3
|
||||||
j:=signal_detecteur(det3);
|
j:=signal_detecteur(det3);
|
||||||
if j<>0 then Maj_Signal_P(j,false);
|
if j<>0 then Maj_Signal_P(j,false);
|
||||||
@@ -9856,17 +9998,17 @@ begin
|
|||||||
|
|
||||||
libere_canton(det2,det3);
|
libere_canton(det2,det3);
|
||||||
|
|
||||||
reserve_canton(det3,AdrSuiv,adrTrainLoc,i,2);
|
reserve_canton(det3,AdrSuiv,adrTrainLoc,i,nCantonsRes);
|
||||||
det4:=detecteur_suivant_EL(det3,det,AdrSuiv,det,1);
|
det4:=detecteur_suivant_EL(det3,det,AdrSuiv,det,1);
|
||||||
if det4>9990 then
|
if det4>9990 then
|
||||||
begin
|
begin
|
||||||
if det4=9996 then affiche_evt('Erreur 2-0 position inconnue aiguillage ',clred)
|
if det4=9996 then affiche_evt('Erreur: 2-0 position inconnue aiguillage ',clred)
|
||||||
else Affiche_evt('Erreur 2-0 '+intToSTR(Det4)+' : pas de suivant detecteur_suivant_el '+intToSTR(det3)+' '+intToSTR(AdrSuiv),clred);
|
else Affiche_evt('Info: 2-0 '+intToSTR(Det4)+' : pas de suivant detecteur_suivant_el '+intToSTR(det3)+' '+intToSTR(AdrSuiv),clyellow);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
reserve_canton(AdrSuiv,det4,adrTrainLoc,i,2);
|
reserve_canton(AdrSuiv,det4,adrTrainLoc,i,nCantonsRes);
|
||||||
|
|
||||||
Maj_Signaux(false);
|
//Maj_Signaux(false); sans_maj
|
||||||
// stockage dans historique de zones
|
// stockage dans historique de zones
|
||||||
if i<MaxTrainZone then
|
if i<MaxTrainZone then
|
||||||
begin
|
begin
|
||||||
@@ -9978,7 +10120,6 @@ begin
|
|||||||
begin
|
begin
|
||||||
//*** route validée ***
|
//*** route validée ***
|
||||||
// on ne dévalide pas la zone précédente car sinon ne marche pas quand 2 trains se suivent
|
// on ne dévalide pas la zone précédente 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:=MemZone[det2,det3].train;
|
Train_ch:=MemZone[det2,det3].train;
|
||||||
@@ -9998,7 +10139,7 @@ begin
|
|||||||
pilote_train(det2,det3,adrtrainLoc,i); // pilote le train sur det3
|
pilote_train(det2,det3,adrtrainLoc,i); // pilote le train sur det3
|
||||||
// test si on peut réserver le canton suivant
|
// test si on peut réserver le canton suivant
|
||||||
det_suiv:=det_suiv_cont(det2,det3,1);
|
det_suiv:=det_suiv_cont(det2,det3,1);
|
||||||
if det_suiv<9990 then reserve_canton(det3,det_suiv,AdrTrainLoc,i,2)
|
if det_suiv<9990 then reserve_canton(det3,det_suiv,AdrTrainLoc,i,nCantonsRes)
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
if det_suiv=9996 then affiche_evt('Erreur 2-0 position inconnue aiguillage ',clred)
|
if det_suiv=9996 then affiche_evt('Erreur 2-0 position inconnue aiguillage ',clred)
|
||||||
@@ -10050,25 +10191,35 @@ begin
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
if TraceListe then AfficheDebug('La route est invalide car les détecteurs '+intToSTR(det2)+' '+intToSTR(det3)+' ne sont pas contigus',clOrange);
|
if (det1=det3) and false then
|
||||||
s:='2-1 Train n°'+intToSTR(i)+' Route nok de '+intToSTR(det2)+' à '+IntToSTR(det3);
|
|
||||||
Affiche_evt(s,couleur);
|
|
||||||
for tco:=1 to nbreTCO do
|
|
||||||
begin
|
begin
|
||||||
// désactivation du morceau avant l'aiguillage
|
s:='Demi-tour train '+intToSTR(i);
|
||||||
efface_trajet(det3,i);
|
if TraceListe then AfficheDebug(s,clOrange);
|
||||||
|
Affiche_evt(s,clOrange);
|
||||||
|
MemZone[det2,det_Suiv].etat:=false;
|
||||||
|
MemZone[det2,det3].etat:=true;
|
||||||
|
efface_trajet(det2,i);
|
||||||
|
with event_det_train[i] do
|
||||||
|
begin
|
||||||
|
det[1].adresse:=det_suiv;
|
||||||
|
det[1].etat:=false;
|
||||||
|
det[2].adresse:=det2;
|
||||||
|
det[2].etat:=false;
|
||||||
|
NbEl:=2;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
if TraceListe then AfficheDebug('La route est invalide car les détecteurs '+intToSTR(det1)+' '+intToSTR(det2)+' n''ont pas le '+intToSTR(det3)+' attendu',clOrange);
|
||||||
|
s:='2-1 Train n°'+intToSTR(i)+' Route nok de '+intToSTR(det2)+' à '+IntToSTR(det3);
|
||||||
|
Affiche_evt(s,couleur);
|
||||||
|
for tco:=1 to nbreTCO do
|
||||||
|
begin
|
||||||
|
// désactivation du morceau avant l'aiguillage
|
||||||
|
efface_trajet(det3,i);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
//if rebond and (event_det_train[i].det[2].adresse=det3) then
|
|
||||||
//begin
|
|
||||||
// s:='7. Rebond dét. '+intToSTR(det3)+' déjà affecté au train '+IntToSTR(i);
|
|
||||||
// FormDebug.MemoEvtDet.lines.add(s);
|
|
||||||
// if dupliqueEvt then AfficheDebug(s,clyellow);
|
|
||||||
// désaffecter la zone
|
|
||||||
// memzone[det2,det_suiv].etat:=false;
|
|
||||||
// memZone[det1,det2].etat:=true;
|
|
||||||
// exit; // rebond :sortir
|
|
||||||
//end;
|
|
||||||
end;
|
end;
|
||||||
traite:=true; // non traité: train suivant
|
traite:=true; // non traité: train suivant
|
||||||
end;
|
end;
|
||||||
@@ -10079,10 +10230,10 @@ begin
|
|||||||
|
|
||||||
if etat then
|
if etat then
|
||||||
begin
|
begin
|
||||||
Maj_Signaux(true); // les autres signaux , avec détecteurs
|
Maj_Signaux(false); // les autres signaux , avec détecteurs
|
||||||
// mettre à jour le feu du détecteur
|
// mettre à jour le feu du détecteur
|
||||||
i2:=signal_detecteur(det3); // trouve le signal associé au detecteur2
|
i2:=signal_detecteur(det3); // trouve le signal associé au detecteur2
|
||||||
if i2<>0 then Maj_Signal_P(i2,true); // avec détecteur
|
if i2<>0 then Maj_Signal_P(i2,false); // avec détecteur
|
||||||
|
|
||||||
for i:=1 to N_trains do
|
for i:=1 to N_trains do
|
||||||
begin
|
begin
|
||||||
@@ -10111,7 +10262,7 @@ begin
|
|||||||
pilote_train(i2,det3,adrtrainLoc,i); // pilote le train sur det3
|
pilote_train(i2,det3,adrtrainLoc,i); // pilote le train sur det3
|
||||||
// test si on peut réserver le canton suivant
|
// test si on peut réserver le canton suivant
|
||||||
det_suiv:=det_suiv_cont(i2,det3,1);
|
det_suiv:=det_suiv_cont(i2,det3,1);
|
||||||
if det_suiv<9990 then reserve_canton(det3,det_suiv,AdrTrainLoc,i,2);
|
if det_suiv<9990 then reserve_canton(det3,det_suiv,AdrTrainLoc,i,nCantonsRes);
|
||||||
// libère canton
|
// libère canton
|
||||||
libere_canton(i2,det3);
|
libere_canton(i2,det3);
|
||||||
exit;
|
exit;
|
||||||
@@ -10203,6 +10354,7 @@ begin
|
|||||||
AfficheDebug('0-0 Création train '+intToStr(N_trains)+' '+detecteur[det3].train+'--------',clyellow);
|
AfficheDebug('0-0 Création train '+intToStr(N_trains)+' '+detecteur[det3].train+'--------',clyellow);
|
||||||
AfficheDebug(s,clyellow);
|
AfficheDebug(s,clyellow);
|
||||||
end;
|
end;
|
||||||
|
Maj_Signaux(false);
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -12721,15 +12873,7 @@ begin
|
|||||||
if TCOActive then affiche_TCO(index);
|
if TCOActive then affiche_TCO(index);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ ralentit au démarrage
|
Maj_signaux(false);
|
||||||
for i:=1 to NbreFeux do
|
|
||||||
begin
|
|
||||||
typeFeu:=Signaux[i].aspect;
|
|
||||||
if TypeFeu=2 then Signaux[i].EtatSignal:=violet_F;
|
|
||||||
if TypeFeu=3 then Signaux[i].EtatSignal:=semaphore_F;
|
|
||||||
if (TypeFeu>3) and (TypeFeu<10) then Signaux[i].EtatSignal:=carre_F;
|
|
||||||
envoi_signal(Signaux[i].adresse);
|
|
||||||
end; }
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// positionnement des aiguillages au démarrage : seulement en mode autonome
|
// positionnement des aiguillages au démarrage : seulement en mode autonome
|
||||||
@@ -13066,15 +13210,34 @@ begin
|
|||||||
result:=Int64(info.nFileSizeLow) or Int64(info.nFileSizeHigh shl 32);
|
result:=Int64(info.nFileSizeLow) or Int64(info.nFileSizeHigh shl 32);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure Tformprinc.procAide(Sender : Tobject);
|
||||||
|
var i : integer;
|
||||||
|
begin
|
||||||
|
i:=ShellExecute(Formprinc.Handle,'open',
|
||||||
|
Pchar(FichierAide),
|
||||||
|
nil, // paramètre
|
||||||
|
nil // répertoire
|
||||||
|
,SW_SHOWNORMAL);
|
||||||
|
if i<=32 then Affiche('Impossible d''afficher l''aide '+FichierAide,clred);
|
||||||
|
end;
|
||||||
|
|
||||||
// démarrage principal du programme signaux_complexes
|
// démarrage principal du programme signaux_complexes
|
||||||
procedure TFormPrinc.FormCreate(Sender: TObject);
|
procedure TFormPrinc.FormCreate(Sender: TObject);
|
||||||
var n,t,i,index,OrgMilieu : integer;
|
var n,t,i,index,OrgMilieu : integer;
|
||||||
s : string;
|
s : string;
|
||||||
|
trouve : boolean;
|
||||||
|
Sr : TSearchRec;
|
||||||
|
tmP,tmA : tMenuItem;
|
||||||
begin
|
begin
|
||||||
af:='Client TCP-IP ou USB CDM Rail - système XpressNet DCC++ Version '+Version+sousVersion;
|
af:='Client TCP-IP ou USB CDM Rail - système XpressNet DCC++ Version '+Version+sousVersion;
|
||||||
{$IF CompilerVersion >= 28.0}
|
{$IF CompilerVersion >= 28.0}
|
||||||
af:=af+' D11';
|
af:=af+' D11';
|
||||||
{$IFEND}
|
{$IFEND}
|
||||||
|
for index:=1 to 10 do
|
||||||
|
begin
|
||||||
|
formTCO[index]:=nil;
|
||||||
|
end;
|
||||||
|
|
||||||
Caption:=af;
|
Caption:=af;
|
||||||
TraceSign:=True;
|
TraceSign:=True;
|
||||||
configPrete:=false; // form config prete
|
configPrete:=false; // form config prete
|
||||||
@@ -13082,6 +13245,8 @@ begin
|
|||||||
sauve_tco:=false;
|
sauve_tco:=false;
|
||||||
pasChgTBV:=false;
|
pasChgTBV:=false;
|
||||||
ntrains:=0;
|
ntrains:=0;
|
||||||
|
|
||||||
|
mode_reserve:=0; // mode_reserve 0 = par canton - 1=par détecteurs
|
||||||
ntrains_cdm:=0;
|
ntrains_cdm:=0;
|
||||||
protocole:=1;
|
protocole:=1;
|
||||||
filtrageDet0:=3;
|
filtrageDet0:=3;
|
||||||
@@ -13132,8 +13297,10 @@ begin
|
|||||||
affevt:=false;
|
affevt:=false;
|
||||||
EvtClicDet:=false;
|
EvtClicDet:=false;
|
||||||
Algo_localisation:=1; // normal
|
Algo_localisation:=1; // normal
|
||||||
|
nCantonsRes:=2;
|
||||||
AntiTimeoutEthLenz:=0;
|
AntiTimeoutEthLenz:=0;
|
||||||
Verif_AdrXpressNet:=1;
|
Verif_AdrXpressNet:=1;
|
||||||
|
Max_Signal_Sens:=5;
|
||||||
portServeur:=4500;
|
portServeur:=4500;
|
||||||
avecRoulage:=0;
|
avecRoulage:=0;
|
||||||
formatY:=-1;
|
formatY:=-1;
|
||||||
@@ -13144,7 +13311,6 @@ begin
|
|||||||
Diffusion:=AvecInit; // mode diffusion publique + debug mise au point etc
|
Diffusion:=AvecInit; // mode diffusion publique + debug mise au point etc
|
||||||
roulage1.visible:=false;
|
roulage1.visible:=false;
|
||||||
FenRich.MaxLength:=$7FFFFFF0;
|
FenRich.MaxLength:=$7FFFFFF0;
|
||||||
|
|
||||||
NbDecodeur:= 11;
|
NbDecodeur:= 11;
|
||||||
NbDecodeurdeBase:=NbDecodeur;
|
NbDecodeurdeBase:=NbDecodeur;
|
||||||
Decodeur[0]:='Rien';Decodeur[1]:='Digital Bahn';Decodeur[2]:='CDF';Decodeur[3]:='LS-DEC-SNCF';Decodeur[4]:='LEB';
|
Decodeur[0]:='Rien';Decodeur[1]:='Digital Bahn';Decodeur[2]:='CDF';Decodeur[3]:='LS-DEC-SNCF';Decodeur[4]:='LEB';
|
||||||
@@ -13165,6 +13331,39 @@ begin
|
|||||||
cheminWin:=GetCurrentProcessEnvVar('windir')+'\System32';
|
cheminWin:=GetCurrentProcessEnvVar('windir')+'\System32';
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
//DirList:=TStringList.Create;
|
||||||
|
if FindFirst(chemin_dest+ '*.*', faAnyFile, SR) = 0 then
|
||||||
|
begin
|
||||||
|
repeat
|
||||||
|
s:=sr.Name;
|
||||||
|
if (s<>'.') and (s<>'..') then
|
||||||
|
begin
|
||||||
|
FichierAide:=lowercase(SR.Name);
|
||||||
|
trouve:=pos('.pdf',FichierAide)<>0;
|
||||||
|
end;
|
||||||
|
until (FindNext(sr)<>0) or (trouve);
|
||||||
|
FindClose(sr);
|
||||||
|
end;
|
||||||
|
if trouve then
|
||||||
|
begin
|
||||||
|
// menu principal
|
||||||
|
tmP:=TmenuItem.Create(MainMenu1);
|
||||||
|
tmP.Caption:='Aide';
|
||||||
|
tmP.Name:='MiAide';
|
||||||
|
tmP.Hint:=FichierAide;
|
||||||
|
MainMenu1.items.Add(tmP);
|
||||||
|
|
||||||
|
// 1ere entrée
|
||||||
|
i:=MainMenu1.Items.Count;
|
||||||
|
tmA:=TmenuItem.Create(MainMenu1);
|
||||||
|
tmA.Caption:='Fichier d''aide';
|
||||||
|
tmA.Name:='MiAidePDF';
|
||||||
|
tmA.Hint:=FichierAide;
|
||||||
|
MainMenu1.Items[i-1].Add(tmA);
|
||||||
|
|
||||||
|
MainMenu1.Items[i-1].Items[0].OnClick:=ProcAide;
|
||||||
|
end;
|
||||||
|
|
||||||
// vérifier ocx tmscomm
|
// vérifier ocx tmscomm
|
||||||
i:=filesize(cheminwin+'\mscomm32.ocx');
|
i:=filesize(cheminwin+'\mscomm32.ocx');
|
||||||
if (i<>103744) and (i<>-1) then Affiche('Version fichier '+cheminwin+'\mscomm32.ocx incorrecte',clred);
|
if (i<>103744) and (i<>-1) then Affiche('Version fichier '+cheminwin+'\mscomm32.ocx incorrecte',clred);
|
||||||
@@ -13346,10 +13545,6 @@ begin
|
|||||||
positionne_elements(PosSplitter);
|
positionne_elements(PosSplitter);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
for index:=1 to 10 do
|
|
||||||
begin
|
|
||||||
formTCO[index]:=nil;
|
|
||||||
end;
|
|
||||||
|
|
||||||
// positionnement de la fenêtre principale
|
// positionnement de la fenêtre principale
|
||||||
show;
|
show;
|
||||||
@@ -13465,19 +13660,15 @@ begin
|
|||||||
begin
|
begin
|
||||||
if maxaiguillage>0 then
|
if maxaiguillage>0 then
|
||||||
begin
|
begin
|
||||||
Affiche('Positionnement des aiguillages',clYellow);
|
Affiche('Positionnement des aiguillages',clcyan);
|
||||||
init_aiguillages; // initialisation des aiguillages
|
init_aiguillages; // initialisation des aiguillages
|
||||||
end;
|
end;
|
||||||
if NbreSignaux>0 then
|
|
||||||
begin
|
|
||||||
Affiche('Positionnement des signaux',clyellow);
|
|
||||||
envoi_signauxCplx; // initialisation des signaux
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if not(AvecInitAiguillages) and not(ferme) and (parSocketLenz or portCommOuvert)
|
if not(AvecInitAiguillages) and not(ferme) and (parSocketLenz or portCommOuvert)
|
||||||
and AvecDemandeAiguillages then
|
and AvecDemandeAiguillages then
|
||||||
begin
|
begin
|
||||||
procetape('demande etats accessoires');
|
procetape('Demande etats accessoires');
|
||||||
demande_etat_acc; // demande l'état des accessoires (position des aiguillages)
|
demande_etat_acc; // demande l'état des accessoires (position des aiguillages)
|
||||||
end;
|
end;
|
||||||
//Menu_interface(valide);
|
//Menu_interface(valide);
|
||||||
@@ -15658,9 +15849,9 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
Affiche('Liste des zones actuellement occupées:',clWhite);
|
Affiche('Liste des zones actuellement occupées:',clWhite);
|
||||||
i:=1;
|
i:=0;
|
||||||
repeat
|
repeat
|
||||||
j:=1;
|
j:=0;
|
||||||
repeat
|
repeat
|
||||||
aff:=MemZone[i,j].etat;
|
aff:=MemZone[i,j].etat;
|
||||||
if aff then
|
if aff then
|
||||||
@@ -16079,7 +16270,6 @@ end;
|
|||||||
procedure TFormPrinc.TrackBarVitChange(Sender: TObject);
|
procedure TFormPrinc.TrackBarVitChange(Sender: TObject);
|
||||||
var s : string;
|
var s : string;
|
||||||
i,adr,vit,erreur : integer;
|
i,adr,vit,erreur : integer;
|
||||||
sens : boolean;
|
|
||||||
begin
|
begin
|
||||||
if affEvt then Affiche('Changement TrackBarVit',clyellow);
|
if affEvt then Affiche('Changement TrackBarVit',clyellow);
|
||||||
if pasChgTBV then exit;
|
if pasChgTBV then exit;
|
||||||
@@ -16099,9 +16289,10 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
//Affiche('Commande vitesse train '+s+' ('+intToSTR(adr)+') à '+IntToSTR(vit)+'%',cllime);
|
//Affiche('Commande vitesse train '+s+' ('+intToSTR(adr)+') à '+IntToSTR(vit)+'%',cllime);
|
||||||
sens:=vit>0;
|
// ne pas commander la vitesse car la rétro met à jour la track bar!!!
|
||||||
vitesse_loco(s,i,adr,vit,sens,true);
|
//sens:=vit>0;
|
||||||
if s='' then s:=intToSTR(adr);
|
//vitesse_loco(s,i,adr,vit,sens,true);
|
||||||
|
//if s='' then s:=intToSTR(adr);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TFormPrinc.EditVitesseChange(Sender: TObject);
|
procedure TFormPrinc.EditVitesseChange(Sender: TObject);
|
||||||
@@ -16318,10 +16509,13 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TFormPrinc.RazResaClick(Sender: TObject);
|
procedure TFormPrinc.RazResaClick(Sender: TObject);
|
||||||
|
var i : integer;
|
||||||
begin
|
begin
|
||||||
Affiche('Mise à 0 de la réservation des aiguillages',clYellow);
|
Affiche('Mise à 0 de la réservation des aiguillages',clYellow);
|
||||||
Raz_reservations;
|
Raz_reservations;
|
||||||
Maj_Signaux(false);
|
//Maj_Signaux(false);
|
||||||
|
for i:=1 to nbreTCO do
|
||||||
|
Affiche_tco(i);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TFormPrinc.SBMarcheArretLocoClick(Sender: TObject);
|
procedure TFormPrinc.SBMarcheArretLocoClick(Sender: TObject);
|
||||||
@@ -17530,7 +17724,8 @@ begin
|
|||||||
if n>1 then affiche(intToSTR(n)+' clients connectés',clyellow);
|
if n>1 then affiche(intToSTR(n)+' clients connectés',clyellow);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
begin
|
|
||||||
end.
|
begin
|
||||||
|
end.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+18
-7
@@ -556,7 +556,7 @@ var
|
|||||||
OldBmp : TBitMap;
|
OldBmp : TBitMap;
|
||||||
PScrollBoxTCO : TScrollBox;
|
PScrollBoxTCO : TScrollBox;
|
||||||
|
|
||||||
// liste des variables par tco
|
// liste des variables par tco de 1 à 10
|
||||||
largeurCelld2,HauteurCelld2,NbCellulesTCO,NbreCellX,NbreCellY,LargeurCell,HauteurCell,
|
largeurCelld2,HauteurCelld2,NbCellulesTCO,NbreCellX,NbreCellY,LargeurCell,HauteurCell,
|
||||||
Xentoure,Yentoure,XclicCell,YclicCell,EcranTCO,clGrille,clFond,ClAllume,ClVoies,
|
Xentoure,Yentoure,XclicCell,YclicCell,EcranTCO,clGrille,clFond,ClAllume,ClVoies,
|
||||||
ClCanton,clPiedSignal,ClQuai,ClBarriere,ZoomInit,Xinit,Yinit : array[1..10] of integer;
|
ClCanton,clPiedSignal,ClQuai,ClBarriere,ZoomInit,Xinit,Yinit : array[1..10] of integer;
|
||||||
@@ -8485,14 +8485,18 @@ begin
|
|||||||
2 : yt:=hauteurCell[indexTCO]-round(17*fryGlob[indexTCO]); // bas
|
2 : yt:=hauteurCell[indexTCO]-round(17*fryGlob[indexTCO]); // bas
|
||||||
end; }
|
end; }
|
||||||
|
|
||||||
i:=detecteur[adresse].AdrTrain;
|
|
||||||
if i<>0 then
|
|
||||||
begin
|
begin
|
||||||
i:=index_train_adresse(i);
|
i:=detecteur[adresse].AdrTrain;
|
||||||
if i<>0 then s:=s+' '+trains[i].nom_train;
|
if i<>0 then
|
||||||
|
begin
|
||||||
|
i:=index_train_adresse(i); // trouve le nom du train par son adresse
|
||||||
|
if i<>0 then s:=s+' '+trains[i].nom_train;
|
||||||
|
end
|
||||||
|
else if roulage then s:=s+' ';
|
||||||
|
//PCanvasTCO[indexTCO].font.Size:=(LargeurCell[indexTCO] div 13)+4 ;
|
||||||
|
TextOut(xOrg+xt,Yorg+yt,s+' ');
|
||||||
end;
|
end;
|
||||||
//PCanvasTCO[indexTCO].font.Size:=(LargeurCell[indexTCO] div 13)+4 ;
|
|
||||||
TextOut(xOrg+xt,Yorg+yt,s+' ');
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -8966,6 +8970,12 @@ procedure efface_trajet(det,train : integer);
|
|||||||
var i,j,t,n,Bimage,x,y : integer;
|
var i,j,t,n,Bimage,x,y : integer;
|
||||||
trouve : boolean;
|
trouve : boolean;
|
||||||
begin
|
begin
|
||||||
|
if Train>Max_Trains then
|
||||||
|
begin
|
||||||
|
Affiche('Erreur 85: paramètre maximal train atteint',clred);
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
|
||||||
for t:=1 to NbreTCO do
|
for t:=1 to NbreTCO do
|
||||||
begin
|
begin
|
||||||
n:=Trace_Train[t].train[train].nombre;
|
n:=Trace_Train[t].train[train].nombre;
|
||||||
@@ -12608,6 +12618,7 @@ begin
|
|||||||
YclicCellInserer:=YClic;
|
YclicCellInserer:=YClic;
|
||||||
EditAdrElement.Text:=IntToSTR(tco[indextco,XClicCellInserer,YClicCellInserer].Adresse);
|
EditAdrElement.Text:=IntToSTR(tco[indextco,XClicCellInserer,YClicCellInserer].Adresse);
|
||||||
EditTypeImage.Text:=IntToSTR(tco[indextco,XClicCellInserer,YClicCellInserer].Bimage);
|
EditTypeImage.Text:=IntToSTR(tco[indextco,XClicCellInserer,YClicCellInserer].Bimage);
|
||||||
|
CheckPinv.Checked:=tco[indextco,XClicCellInserer,YClicCellInserer].inverse;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ implementation
|
|||||||
{$R *.dfm}
|
{$R *.dfm}
|
||||||
|
|
||||||
procedure commande_simple;
|
procedure commande_simple;
|
||||||
|
var i : integer;
|
||||||
begin
|
begin
|
||||||
with formAig do
|
with formAig do
|
||||||
begin
|
begin
|
||||||
@@ -50,9 +51,22 @@ begin
|
|||||||
|
|
||||||
ButtonDev.Left:=48;
|
ButtonDev.Left:=48;
|
||||||
ButtonDroit.Left:=216;
|
ButtonDroit.Left:=216;
|
||||||
|
|
||||||
|
i:=Index_aig(Aiguille);
|
||||||
|
i:=aiguillage[i].position;
|
||||||
|
if i=const_devie then
|
||||||
|
begin
|
||||||
|
buttonDev.SetFocus;
|
||||||
|
end;
|
||||||
|
if i=const_droit then
|
||||||
|
begin
|
||||||
|
buttonDroit.SetFocus;
|
||||||
|
end;
|
||||||
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
// activation de la form, l'aiguillage à piloter est dans la variable globale "Aiguille"
|
||||||
procedure TFormAig.FormActivate(Sender: TObject);
|
procedure TFormAig.FormActivate(Sender: TObject);
|
||||||
var i : integer;
|
var i : integer;
|
||||||
s : string;
|
s : string;
|
||||||
|
|||||||
+9
-9
@@ -177,36 +177,36 @@ begin
|
|||||||
if (prec<9990) then
|
if (prec<9990) then
|
||||||
begin
|
begin
|
||||||
inc(it);
|
inc(it);
|
||||||
{
|
|
||||||
detecteur[detect].etat:=true;
|
detecteur[detect].etat:=true;
|
||||||
detecteur[detect].AdrTrain:=trains[i].adresse;
|
detecteur[detect].AdrTrain:=trains[i].adresse;
|
||||||
detecteur[detect].train:=placement[i].train;
|
detecteur[detect].train:=placement[i].train;
|
||||||
detecteur[detect].IndexTrain:=i;
|
detecteur[detect].IndexTrain:=i;
|
||||||
|
|
||||||
|
// valider zone précédente
|
||||||
|
|
||||||
MemZone[prec,detect].etat:=true;
|
MemZone[prec,detect].etat:=true;
|
||||||
MemZone[prec,detect].train:=placement[i].train;
|
MemZone[prec,detect].train:=placement[i].train;
|
||||||
MemZone[prec,detect].Adrtrain:=trains[i].adresse;
|
MemZone[prec,detect].Adrtrain:=trains[i].adresse;
|
||||||
MemZone[prec,detect].NumTrain:=i;
|
MemZone[prec,detect].IndexTrain:=i;
|
||||||
//Affiche(inttostr(prec)+' '+intToSTR(detect),clorange);
|
//Affiche(inttostr(prec)+' '+intToSTR(detect),clorange);
|
||||||
|
|
||||||
|
// remplir 1er élément du tableau
|
||||||
event_det_train[it].NbEl:=1 ;
|
event_det_train[it].NbEl:=1 ;
|
||||||
event_det_train[it].AdrTrain:=trains[i].adresse;
|
event_det_train[it].AdrTrain:=trains[i].adresse;
|
||||||
event_det_train[it].det[1].adresse:=prec;
|
event_det_train[it].det[1].adresse:=prec;
|
||||||
event_det_train[it].det[1].etat:=false;
|
event_det_train[it].det[1].etat:=false;
|
||||||
event_det_train[it].nom_train:=placement[i].train;
|
event_det_train[it].nom_train:=placement[i].train;
|
||||||
|
|
||||||
inc(N_trains);
|
inc(N_trains);
|
||||||
}
|
|
||||||
// essai-------------------------
|
// essai-------------------------
|
||||||
Event_Detecteur(detect,true,nomtrain);
|
Event_Detecteur(detect,true,nomtrain);
|
||||||
detecteur[detect].AdrTrain:=trains[i].adresse;
|
detecteur[detect].AdrTrain:=trains[i].adresse;
|
||||||
// -----------------------------
|
// -----------------------------
|
||||||
|
|
||||||
Affiche('Positionnement train '+detecteur[detect].train+' sur détecteur '+intToSTR(detect)+' vers '+Ssuiv,clLime);
|
Affiche('Positionnement train '+detecteur[detect].train+' sur détecteur '+intToSTR(detect)+' vers '+Ssuiv,clLime);
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
@@ -384,7 +384,7 @@ begin
|
|||||||
s:='Lancement du train '+detecteur[adrDet].train+' depuis détecteur '+intToSTR(adrDet);
|
s:='Lancement du train '+detecteur[adrDet].train+' depuis détecteur '+intToSTR(adrDet);
|
||||||
Affiche(s,clYellow);
|
Affiche(s,clYellow);
|
||||||
if traceListe then AfficheDebug(s,clyellow);
|
if traceListe then AfficheDebug(s,clyellow);
|
||||||
reserve_canton(AdrDet,placement[j].detdir,adrtrain,0,2);
|
reserve_canton(AdrDet,placement[j].detdir,adrtrain,0,nCantonsRes);
|
||||||
|
|
||||||
end
|
end
|
||||||
Else Affiche('Le signal '+intToSTR(AdrSignal)+' étant rouge, le train '+detecteur[adrDet].train+' @'+intToSTR(AdrTrain)+' ne démarre pas',clyellow);
|
Else Affiche('Le signal '+intToSTR(AdrSignal)+' étant rouge, le train '+detecteur[adrDet].train+' @'+intToSTR(AdrTrain)+' ne démarre pas',clyellow);
|
||||||
|
|||||||
+287
-12
@@ -5,7 +5,7 @@ interface
|
|||||||
uses
|
uses
|
||||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||||
Dialogs, StdCtrls , ComCtrls ,WinInet, ExtCtrls , StrUtils, unitPrinc,
|
Dialogs, StdCtrls , ComCtrls ,WinInet, ExtCtrls , StrUtils, unitPrinc,
|
||||||
ShellAPI;
|
ShellAPI , comObj , ShlObj , ActiveX ;
|
||||||
|
|
||||||
type
|
type
|
||||||
TFormVersion = class(TForm)
|
TFormVersion = class(TForm)
|
||||||
@@ -22,15 +22,23 @@ type
|
|||||||
var
|
var
|
||||||
FormVersion: TFormVersion;
|
FormVersion: TFormVersion;
|
||||||
Lance_verif : integer;
|
Lance_verif : integer;
|
||||||
verifVersion,notificationVersion : boolean;
|
verifVersion,notificationVersion,essai : boolean;
|
||||||
date_creation,nombre_tel : string;
|
chemin_Dest,chemin_src,date_creation,nombre_tel : string;
|
||||||
|
|
||||||
Const Version='8.41'; // sert à la comparaison de la version publiée
|
Const Version='8.42'; // 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
|
||||||
|
// pour unzip
|
||||||
|
SHCONTCH_NOPROGRESSBOX = 4;
|
||||||
|
SHCONTCH_AUTORENAME = 8;
|
||||||
|
SHCONTCH_RESPONDYESTOALL = 16;
|
||||||
|
SHCONTF_INCLUDEHIDDEN = 128;
|
||||||
|
SHCONTF_FOLDERS = 32;
|
||||||
|
SHCONTF_NONFOLDERS = 64;
|
||||||
|
|
||||||
function GetCurrentProcessEnvVar(const VariableName: string): string;
|
function GetCurrentProcessEnvVar(const VariableName: string): string;
|
||||||
function verifie_version : real;
|
function verifie_version : real;
|
||||||
function DownloadURL_NOCache(aUrl: string;s : string;var taille : longint): Boolean;
|
function DownloadURL_NOCache(aUrl: string;s : string;var taille : longint): Boolean;
|
||||||
|
function Unzip(zipfile : oleVariant): boolean;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
@@ -114,11 +122,195 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure copie_fichier(s : string);
|
||||||
|
var fs,fd : string;
|
||||||
|
i : integer;
|
||||||
|
begin
|
||||||
|
fd:=chemin_dest+s;
|
||||||
|
fs:=chemin_src+s;
|
||||||
|
//Affiche(fd,clOrange);
|
||||||
|
//Affiche(fs,clOrange);
|
||||||
|
|
||||||
|
if not(copyfile(pchar(fs),pchar(fd),false)) then
|
||||||
|
begin
|
||||||
|
fs:=' non copié'; // true évite de le recopier
|
||||||
|
i:=getLastError;
|
||||||
|
Affiche('Erreur '+s,clred);
|
||||||
|
Affiche('non copié. Erreur '+intToSTR(i)+': '+SysErrorMessage(i),clred);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
Affiche(s+' copié',clLime);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure cree_raccourci(nom_exe : string);
|
||||||
|
var
|
||||||
|
LinkName : WideString;
|
||||||
|
TargetName : String;
|
||||||
|
IObject : IUnknown;
|
||||||
|
ISLink : IShellLink;
|
||||||
|
IPFile : IPersistFile;
|
||||||
|
PIDL : PItemIDList;
|
||||||
|
InFolder : array[0..MAX_PATH] of Char;
|
||||||
|
begin
|
||||||
|
TargetName:=CheminProgrammes+'\Signaux_complexes\'+nom_exe;
|
||||||
|
IObject:=CreateComObject(CLSID_ShellLink);
|
||||||
|
ISLink:=IObject as IShellLink;
|
||||||
|
IPFile:=IObject as IPersistFile;
|
||||||
|
|
||||||
|
with ISLink do begin
|
||||||
|
SetPath(pChar(TargetName));
|
||||||
|
SetWorkingDirectory(pChar(ExtractFilePath(TargetName)));
|
||||||
|
end;
|
||||||
|
|
||||||
|
// on veut placer le lien sur le bureau
|
||||||
|
SHGetSpecialFolderLocation(0,CSIDL_DESKTOPDIRECTORY,PIDL);
|
||||||
|
SHGetPathFromIDList(PIDL,InFolder);
|
||||||
|
|
||||||
|
if nom_exe='signaux_complexes_gl.exe' then LinkName:=InFolder + '\Signaux Complexes.lnk';
|
||||||
|
if nom_exe='signaux_complexes_gl_d11.exe' then LinkName:=InFolder + '\Signaux Complexes D11.lnk';
|
||||||
|
|
||||||
|
IPFile.Save(PWChar(LinkName),false);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
// dézipe copie les fichiers et lance la nouvelle version
|
||||||
|
procedure dezipe_copie(s : string);
|
||||||
|
var fichier,nomPDF : string;
|
||||||
|
dirList : tStrings;
|
||||||
|
SR : TSearchRec;
|
||||||
|
nombre,i,attributes : integer;
|
||||||
|
pdf,ok : boolean;
|
||||||
|
begin
|
||||||
|
Aff('Téléchargement réussi, décompression');
|
||||||
|
formVersion.close;
|
||||||
|
|
||||||
|
Affiche('Décompression du zip '+s,clLime);
|
||||||
|
if not(unzip(s)) then
|
||||||
|
begin
|
||||||
|
Affiche('Erreur à la décompression du zip',clred);
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
|
||||||
|
chemin_src:=s;
|
||||||
|
i:=pos('.zip',chemin_src);
|
||||||
|
if i=0 then
|
||||||
|
begin
|
||||||
|
affiche('Zip invalide',clred);
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
delete(chemin_src,i,4);
|
||||||
|
|
||||||
|
// Vérifier si répertoire dest existe
|
||||||
|
chemin_Dest:=CheminProgrammes+'\Signaux_complexes';
|
||||||
|
if not(directoryExists(chemin_Dest)) then
|
||||||
|
begin
|
||||||
|
Affiche('Création du répertoire '+chemin_dest,clLime);
|
||||||
|
mkDir(chemin_dest);
|
||||||
|
end;
|
||||||
|
chemin_dest:=chemin_dest+'\';
|
||||||
|
chemin_src:=chemin_src+'\';
|
||||||
|
|
||||||
|
|
||||||
|
// remplit dirlist avec les noms de fichiers du chemin dest
|
||||||
|
nombre:=0;
|
||||||
|
DirList:=TStringList.Create;
|
||||||
|
if FindFirst(chemin_dest+ '*.*', faAnyFile, SR) = 0 then
|
||||||
|
begin
|
||||||
|
repeat
|
||||||
|
s:=sr.Name;
|
||||||
|
if (s<>'.') and (s<>'..') then
|
||||||
|
begin
|
||||||
|
DirList.Add(SR.Name); //Fill the list
|
||||||
|
inc(nombre);
|
||||||
|
end;
|
||||||
|
until FindNext(SR) <> 0;
|
||||||
|
FindClose(SR);
|
||||||
|
end;
|
||||||
|
|
||||||
|
// supprimer les fichiers signaux_complexes_gl.Exe et versions.txt et pdf
|
||||||
|
nomPdf:='';
|
||||||
|
for i:=0 to nombre-1 do
|
||||||
|
begin
|
||||||
|
s:=DirList.Strings[i];
|
||||||
|
s:=lowercase(s);
|
||||||
|
pdf:=pos('.pdf',s)<>0;
|
||||||
|
if pdf then
|
||||||
|
nomPDF:=s;
|
||||||
|
|
||||||
|
//Affiche(s,clyellow);
|
||||||
|
// fichiers à supprimer dans répertoire destination
|
||||||
|
if (pos('.exe',s)<>0) or (s='versions.txt') or (s='signaux_complexes_gl_d11.exe') or pdf then
|
||||||
|
begin
|
||||||
|
fichier:=chemin_dest+s;
|
||||||
|
if sysutils.FileExists((fichier)) then
|
||||||
|
begin
|
||||||
|
Affiche('Suppression de '+fichier,clorange);
|
||||||
|
Attributes:=FileGetAttr(pchar(fichier));
|
||||||
|
Attributes := Attributes and not (faReadOnly or faHidden);
|
||||||
|
SetFileAttributes(pchar(fichier),Attributes);
|
||||||
|
ok:=sysutils.DeleteFile(pchar(fichier));
|
||||||
|
if not(OK) then Affiche('Erreur : Pas réussi à supprimer '+fichier,clred);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// copie les fichiers du répertoire zip vers le rep installé
|
||||||
|
copie_fichier('signaux_complexes_gl.exe');
|
||||||
|
copie_fichier('signaux_complexes_gl_d11.exe');
|
||||||
|
copie_fichier('versions.txt');
|
||||||
|
|
||||||
|
// trouver du nom du pdf
|
||||||
|
nombre:=0;
|
||||||
|
// remplit dirlist avec les noms de fichiers du chemin src
|
||||||
|
if FindFirst(chemin_src+ '*.*', faAnyFile, SR) = 0 then
|
||||||
|
begin
|
||||||
|
repeat
|
||||||
|
s:=sr.Name;
|
||||||
|
if (s<>'.') and (s<>'..') then
|
||||||
|
begin
|
||||||
|
DirList.Add(SR.Name); //Fill the list
|
||||||
|
if pos('.pdf',sr.Name)<>0 then NomPdf:=sr.name;
|
||||||
|
inc(nombre);
|
||||||
|
end;
|
||||||
|
until FindNext(SR) <> 0;
|
||||||
|
FindClose(SR);
|
||||||
|
end;
|
||||||
|
DirList.Destroy;
|
||||||
|
|
||||||
|
if nomPdf<>'' then copie_fichier(nomPdf);
|
||||||
|
|
||||||
|
Affiche('Création des raccourcis sur le bureau',cllime);
|
||||||
|
cree_raccourci('signaux_complexes_gl.exe');
|
||||||
|
cree_raccourci('signaux_complexes_gl_d11.exe');
|
||||||
|
|
||||||
|
if essai then exit;
|
||||||
|
|
||||||
|
s:='';
|
||||||
|
Affiche('Lancement de la nouvelle version',clyellow);
|
||||||
|
Application.processMessages;
|
||||||
|
Sleep(3000);
|
||||||
|
i:=ShellExecute(Formprinc.Handle,'open',
|
||||||
|
Pchar('signaux_complexes_gl_d11.exe'),
|
||||||
|
Pchar(s), // paramètre
|
||||||
|
PChar(chemin_dest) // répertoire
|
||||||
|
,SW_SHOWNORMAL);
|
||||||
|
if i>32 then
|
||||||
|
begin
|
||||||
|
Affiche('lancement ok',cllime);
|
||||||
|
Application.Terminate;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
Affiche('Erreur '+intToSTR(i),clred);
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
// renvoie le numéro de version depuis le site github
|
// renvoie le numéro de version depuis le site github
|
||||||
// si 0
|
// si 0
|
||||||
function verifie_version : real;
|
function verifie_version : real;
|
||||||
var description,s,s2,s3,Version_p,Url,LocalFile,nomfichier,date_creation_ang
|
var description,s,s2,s3,Version_p,Url,LocalFile,nomfichier,date_creation_ang : string;
|
||||||
: string;
|
|
||||||
trouve_version,trouve_zip,zone_comm,LocZip : boolean;
|
trouve_version,trouve_zip,zone_comm,LocZip : boolean;
|
||||||
fichier : text;
|
fichier : text;
|
||||||
i,j,erreur,Ncomm,i2,l : integer;
|
i,j,erreur,Ncomm,i2,l : integer;
|
||||||
@@ -301,21 +493,34 @@ begin
|
|||||||
aff(' ');
|
aff(' ');
|
||||||
for i:=1 to ncomm do aff(comm[i]);
|
for i:=1 to ncomm do aff(comm[i]);
|
||||||
end;
|
end;
|
||||||
if MessageDlg(s+'. Voulez-vous la télécharger?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
|
if MessageDlg(s+#13+'Voulez-vous la télécharger, l''installer et l''exécuter?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
|
||||||
begin
|
begin
|
||||||
// récupérer depuis la variable d'environnement windows USERPROFILE le repertoire de la session ouverte
|
// récupérer depuis la variable d'environnement windows USERPROFILE le repertoire de la session ouverte
|
||||||
s:=GetCurrentProcessEnvVar('USERPROFILE')+'\Downloads\'+Nomfichier;
|
s:=GetCurrentProcessEnvVar('USERPROFILE')+'\Downloads\'+Nomfichier;
|
||||||
Aff('Téléchargement de '+s3+' dans ');
|
|
||||||
Aff(s);
|
essai:=false;
|
||||||
|
|
||||||
|
if not(essai) then
|
||||||
|
begin
|
||||||
|
Aff('Téléchargement de '+s3+' dans ');
|
||||||
|
Aff(s);
|
||||||
|
Affiche('Téléchargement de '+s3+' dans '+s,clLime);
|
||||||
|
end;
|
||||||
|
|
||||||
|
if essai then
|
||||||
|
begin
|
||||||
|
Affiche('*** mode essai ***',clOrange);
|
||||||
|
dezipe_copie(s);
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
|
||||||
if DownloadURL_NOCache(s3,s,taille) then
|
if DownloadURL_NOCache(s3,s,taille) then
|
||||||
begin
|
begin
|
||||||
if taille>700000 then
|
if taille>700000 then
|
||||||
begin
|
begin
|
||||||
Aff('Téléchargement réussi');
|
dezipe_copie(s);
|
||||||
Aff('Vous pouvez ouvrir le dossier de téléchargement, décomprimer le zip et l''installer');
|
|
||||||
end
|
end
|
||||||
else Aff('Echec 2 de téléchargement');
|
else Aff('Echec 2 de téléchargement - taille invalide');
|
||||||
end
|
end
|
||||||
else Aff('Echec 1 de téléchargement');
|
else Aff('Echec 1 de téléchargement');
|
||||||
end
|
end
|
||||||
@@ -368,5 +573,75 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure DeleteDirectory(const DirName: string);
|
||||||
|
var
|
||||||
|
FileFolderOperation: TSHFileOpStruct;
|
||||||
|
begin
|
||||||
|
FillChar(FileFolderOperation, SizeOf(FileFolderOperation), 0);
|
||||||
|
FileFolderOperation.wFunc := FO_DELETE;
|
||||||
|
FileFolderOperation.pFrom := PChar(ExcludeTrailingPathDelimiter(DirName) + #0);
|
||||||
|
FileFolderOperation.fFlags := FOF_SILENT or FOF_NOERRORUI or FOF_NOCONFIRMATION;
|
||||||
|
SHFileOperation(FileFolderOperation);
|
||||||
|
end;
|
||||||
|
|
||||||
|
// https://github.com/sx2008/Delphi-Test-Apps/blob/master/ShellZipTest/ShellZipTool.pas
|
||||||
|
function Unzip(zipfile : oleVariant): boolean;
|
||||||
|
var
|
||||||
|
shellobj,srcfldr, destfldr, shellfldritems,repertoire: Olevariant;
|
||||||
|
filtre: string;
|
||||||
|
i : integer;
|
||||||
|
erreur : integer;
|
||||||
|
begin
|
||||||
|
filtre:='';
|
||||||
|
zipfile:=lowercase(zipfile);
|
||||||
|
i:=pos('.zip',zipfile);
|
||||||
|
if i=0 then exit;
|
||||||
|
filtre:=zipfile;
|
||||||
|
delete(filtre,i,4);
|
||||||
|
|
||||||
|
if directoryExists(filtre) then DeleteDirectory(filtre);
|
||||||
|
|
||||||
|
{$I-}
|
||||||
|
MkDir(filtre);
|
||||||
|
erreur:=IoResult;
|
||||||
|
{$I+}
|
||||||
|
if erreur<>0 then
|
||||||
|
begin
|
||||||
|
Affiche('Impossible de créer répertoire',clred);
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
repertoire:=filtre; // mettre dans olevariant
|
||||||
|
|
||||||
|
filtre:='';
|
||||||
|
shellobj:=CreateOleObject('Shell.Application');
|
||||||
|
|
||||||
|
srcfldr:=ShellObj.NameSpace(Zipfile);
|
||||||
|
if not ((VarType(srcfldr)=varDispatch) and Assigned(TVarData(srcfldr).VDispatch)) then
|
||||||
|
begin
|
||||||
|
Affiche(zipfile+ ' invalide ou absent',clred);
|
||||||
|
result:=false;
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
|
||||||
|
destfldr:=ShellObj.NameSpace(repertoire);
|
||||||
|
if not ((VarType(destfldr)=varDispatch) and Assigned(TVarData(destfldr).VDispatch)) then
|
||||||
|
begin
|
||||||
|
Affiche(' répertoire destination invalide : '+ repertoire,clred);
|
||||||
|
result:=false;
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
|
||||||
|
shellfldritems:=srcfldr.Items;
|
||||||
|
if (filtre<>'') then shellfldritems.Filter(SHCONTF_INCLUDEHIDDEN or SHCONTF_NONFOLDERS or SHCONTF_FOLDERS,filtre);
|
||||||
|
|
||||||
|
//destfldr.CopyHere(shellfldritems, SHCONTCH_NOPROGRESSBOX or SHCONTCH_RESPONDYESTOALL);
|
||||||
|
destfldr.CopyHere(shellfldritems, SHCONTCH_RESPONDYESTOALL);
|
||||||
|
result:=true;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
begin
|
begin
|
||||||
end.
|
end.
|
||||||
|
|||||||
+4
-1
@@ -227,6 +227,9 @@ version 8.38 : Ajout de l'importation depuis le r
|
|||||||
Amélioration du traitement des trames inconnues en XpressNet.
|
Amélioration du traitement des trames inconnues en XpressNet.
|
||||||
version 8.4 : Création de la version D11 (deux exécutables disponibles après installation) qui permet de choisir des styles d'affichage.
|
version 8.4 : Création de la version D11 (deux exécutables disponibles après installation) qui permet de choisir des styles d'affichage.
|
||||||
Lire la documentation pages 6 et 7.
|
Lire la documentation pages 6 et 7.
|
||||||
version 8.41 : Améliorations diverses dans les traitements
|
version 8.41 : Améliorations diverses dans les traitements.
|
||||||
Possibilité d'ouvrir signaux_complexes sur un écran au choix.
|
Possibilité d'ouvrir signaux_complexes sur un écran au choix.
|
||||||
|
Auto-installation des nouvelles versions au choix.
|
||||||
|
version 8.42 : Création d'un onglet de paramètres avancés.
|
||||||
|
Fichier d'aide affichable depuis le menu.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user