V3.1 B
This commit is contained in:
1 parent
ba7be100e6
commit
ed7a721910
15 files changed
+758
-513
No files matched your search
BIN
Binary file not shown.
+2
-2
@@ -10,5 +10,5 @@ Fichiers sources.
|
|||||||
:lien: http://cdmrail.free.fr/ForumCDR/viewtopic.php?f=77&t=3906#p50499
|
:lien: http://cdmrail.free.fr/ForumCDR/viewtopic.php?f=77&t=3906#p50499
|
||||||
:cdm: http://cdmrail.free.fr/SiteCDR/index.html
|
:cdm: http://cdmrail.free.fr/SiteCDR/index.html
|
||||||
|
|
||||||
* {lien} [Lien vers le fil] -- Forum de CDM rail
|
* {lien}[Lien vers le fil] -- Forum de CDM rail
|
||||||
* {cdm} [Lin vers CDM rail] -- Site de CDM rail
|
* {cdm}[Lien vers CDM rail] -- Site de CDM rail
|
||||||
Binary file not shown.
+133
-146
@@ -1,6 +1,6 @@
|
|||||||
object FormConfig: TFormConfig
|
object FormConfig: TFormConfig
|
||||||
Left = 285
|
Left = 277
|
||||||
Top = 127
|
Top = 203
|
||||||
Hint =
|
Hint =
|
||||||
'Modifie les fichiers de configuration selon les s'#233'lections chois' +
|
'Modifie les fichiers de configuration selon les s'#233'lections chois' +
|
||||||
'ies'
|
'ies'
|
||||||
@@ -17,6 +17,7 @@ object FormConfig: TFormConfig
|
|||||||
OldCreateOrder = False
|
OldCreateOrder = False
|
||||||
Position = poScreenCenter
|
Position = poScreenCenter
|
||||||
OnActivate = FormActivate
|
OnActivate = FormActivate
|
||||||
|
OnClose = FormClose
|
||||||
OnCreate = FormCreate
|
OnCreate = FormCreate
|
||||||
PixelsPerInch = 96
|
PixelsPerInch = 96
|
||||||
TextHeight = 13
|
TextHeight = 13
|
||||||
@@ -1528,13 +1529,6 @@ object FormConfig: TFormConfig
|
|||||||
Height = 13
|
Height = 13
|
||||||
Caption = 'Element suivant'
|
Caption = 'Element suivant'
|
||||||
end
|
end
|
||||||
object Label20: TLabel
|
|
||||||
Left = 24
|
|
||||||
Top = 160
|
|
||||||
Width = 50
|
|
||||||
Height = 13
|
|
||||||
Caption = 'LabelTrain'
|
|
||||||
end
|
|
||||||
object Label10: TLabel
|
object Label10: TLabel
|
||||||
Left = 80
|
Left = 80
|
||||||
Top = 120
|
Top = 120
|
||||||
@@ -1769,13 +1763,14 @@ object FormConfig: TFormConfig
|
|||||||
Height = 25
|
Height = 25
|
||||||
Caption = 'Fermer sans enregistrer la configuration'
|
Caption = 'Fermer sans enregistrer la configuration'
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
|
OnClick = Button2Click
|
||||||
end
|
end
|
||||||
object PageControl: TPageControl
|
object PageControl: TPageControl
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 8
|
Top = 8
|
||||||
Width = 633
|
Width = 633
|
||||||
Height = 457
|
Height = 457
|
||||||
ActivePage = TabSheetCDM
|
ActivePage = TabSheetAutonome
|
||||||
Font.Charset = DEFAULT_CHARSET
|
Font.Charset = DEFAULT_CHARSET
|
||||||
Font.Color = clBlack
|
Font.Color = clBlack
|
||||||
Font.Height = -11
|
Font.Height = -11
|
||||||
@@ -1783,7 +1778,6 @@ object FormConfig: TFormConfig
|
|||||||
Font.Style = []
|
Font.Style = []
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
OnChange = PageControlChange
|
|
||||||
object TabSheetCDM: TTabSheet
|
object TabSheetCDM: TTabSheet
|
||||||
Caption = 'CDM Rail'
|
Caption = 'CDM Rail'
|
||||||
object GroupBox1: TGroupBox
|
object GroupBox1: TGroupBox
|
||||||
@@ -2104,6 +2098,13 @@ object FormConfig: TFormConfig
|
|||||||
Height = 13
|
Height = 13
|
||||||
Caption = 'Seuil du nombre de d'#233'tecteurs trop distants'
|
Caption = 'Seuil du nombre de d'#233'tecteurs trop distants'
|
||||||
end
|
end
|
||||||
|
object Label41: TLabel
|
||||||
|
Left = 8
|
||||||
|
Top = 36
|
||||||
|
Width = 188
|
||||||
|
Height = 13
|
||||||
|
Caption = 'Taille de la fonte de la fen'#234'tre principale'
|
||||||
|
end
|
||||||
object EditNbDetDist: TEdit
|
object EditNbDetDist: TEdit
|
||||||
Left = 232
|
Left = 232
|
||||||
Top = 12
|
Top = 12
|
||||||
@@ -2112,6 +2113,14 @@ object FormConfig: TFormConfig
|
|||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
Text = 'EditNbDetDist'
|
Text = 'EditNbDetDist'
|
||||||
end
|
end
|
||||||
|
object EditFonte: TEdit
|
||||||
|
Left = 232
|
||||||
|
Top = 32
|
||||||
|
Width = 25
|
||||||
|
Height = 21
|
||||||
|
ReadOnly = True
|
||||||
|
TabOrder = 1
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object TabSheetAutonome: TTabSheet
|
object TabSheetAutonome: TTabSheet
|
||||||
@@ -2358,10 +2367,8 @@ object FormConfig: TFormConfig
|
|||||||
Left = 8
|
Left = 8
|
||||||
Top = 32
|
Top = 32
|
||||||
Width = 281
|
Width = 281
|
||||||
Height = 33
|
Height = 25
|
||||||
Caption =
|
Caption = 'Initialisation des aiguillages '
|
||||||
'Initialisation des aiguillages suivant liste dans fichier client' +
|
|
||||||
'-gl.cfg [section init]'
|
|
||||||
ParentShowHint = False
|
ParentShowHint = False
|
||||||
ShowHint = False
|
ShowHint = False
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
@@ -2396,20 +2403,6 @@ object FormConfig: TFormConfig
|
|||||||
Height = 13
|
Height = 13
|
||||||
Caption = 'LabelTJD1'
|
Caption = 'LabelTJD1'
|
||||||
end
|
end
|
||||||
object Label35: TLabel
|
|
||||||
Left = 0
|
|
||||||
Top = 56
|
|
||||||
Width = 134
|
|
||||||
Height = 13
|
|
||||||
Caption = 'Configuration des aiguillages'
|
|
||||||
end
|
|
||||||
object Label36: TLabel
|
|
||||||
Left = 232
|
|
||||||
Top = 56
|
|
||||||
Width = 86
|
|
||||||
Height = 13
|
|
||||||
Caption = 'Liste d'#39'initialisation'
|
|
||||||
end
|
|
||||||
object GroupBox11: TGroupBox
|
object GroupBox11: TGroupBox
|
||||||
Left = 328
|
Left = 328
|
||||||
Top = 32
|
Top = 32
|
||||||
@@ -2430,20 +2423,6 @@ object FormConfig: TFormConfig
|
|||||||
Font.Style = [fsBold]
|
Font.Style = [fsBold]
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
end
|
end
|
||||||
object LabelLigne: TLabel
|
|
||||||
Left = 16
|
|
||||||
Top = 42
|
|
||||||
Width = 104
|
|
||||||
Height = 16
|
|
||||||
Alignment = taCenter
|
|
||||||
Caption = ' - '
|
|
||||||
Font.Charset = ANSI_CHARSET
|
|
||||||
Font.Color = clBlack
|
|
||||||
Font.Height = -13
|
|
||||||
Font.Name = 'Arial'
|
|
||||||
Font.Style = []
|
|
||||||
ParentFont = False
|
|
||||||
end
|
|
||||||
object GroupBox10: TGroupBox
|
object GroupBox10: TGroupBox
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 88
|
Top = 88
|
||||||
@@ -2484,7 +2463,10 @@ object FormConfig: TFormConfig
|
|||||||
Top = 269
|
Top = 269
|
||||||
Width = 137
|
Width = 137
|
||||||
Height = 17
|
Height = 17
|
||||||
|
Hint = 'Cocher si l'#39'aiguillage est invers'#233' dans CDM rail'
|
||||||
Caption = 'Inversion de l'#39#233'tat CDM'
|
Caption = 'Inversion de l'#39#233'tat CDM'
|
||||||
|
ParentShowHint = False
|
||||||
|
ShowHint = True
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
OnClick = CheckInverseClick
|
OnClick = CheckInverseClick
|
||||||
end
|
end
|
||||||
@@ -2494,7 +2476,7 @@ object FormConfig: TFormConfig
|
|||||||
Width = 33
|
Width = 33
|
||||||
Height = 21
|
Height = 21
|
||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
OnChange = EditAdrAigChange
|
OnKeyPress = EditAdrAigKeyPress
|
||||||
end
|
end
|
||||||
object ComboBoxAig: TComboBox
|
object ComboBoxAig: TComboBox
|
||||||
Left = 8
|
Left = 8
|
||||||
@@ -2520,7 +2502,7 @@ object FormConfig: TFormConfig
|
|||||||
TabOrder = 4
|
TabOrder = 4
|
||||||
object LabelHG: TLabel
|
object LabelHG: TLabel
|
||||||
Left = 10
|
Left = 10
|
||||||
Top = 17
|
Top = 21
|
||||||
Width = 9
|
Width = 9
|
||||||
Height = 16
|
Height = 16
|
||||||
Caption = 'D'
|
Caption = 'D'
|
||||||
@@ -2590,27 +2572,40 @@ object FormConfig: TFormConfig
|
|||||||
ParentFont = False
|
ParentFont = False
|
||||||
end
|
end
|
||||||
object LabelTJD1: TLabel
|
object LabelTJD1: TLabel
|
||||||
Left = 96
|
Left = 80
|
||||||
Top = 76
|
Top = 76
|
||||||
Width = 52
|
Width = 52
|
||||||
Height = 13
|
Height = 13
|
||||||
Caption = 'LabelTJD1'
|
Caption = 'LabelTJD1'
|
||||||
end
|
end
|
||||||
object LabelTJD2: TLabel
|
object LabelTJD2: TLabel
|
||||||
Left = 168
|
Left = 176
|
||||||
Top = 76
|
Top = 76
|
||||||
Width = 52
|
Width = 52
|
||||||
Height = 13
|
Height = 13
|
||||||
Caption = 'LabelTJD1'
|
Caption = 'LabelTJD1'
|
||||||
end
|
end
|
||||||
|
object LabelL: TLabel
|
||||||
|
Left = 10
|
||||||
|
Top = 69
|
||||||
|
Width = 8
|
||||||
|
Height = 16
|
||||||
|
Caption = 'L'
|
||||||
|
Font.Charset = ANSI_CHARSET
|
||||||
|
Font.Color = clBlack
|
||||||
|
Font.Height = -13
|
||||||
|
Font.Name = 'Arial'
|
||||||
|
Font.Style = [fsBold]
|
||||||
|
ParentFont = False
|
||||||
|
Visible = False
|
||||||
|
end
|
||||||
object Edit_HG: TEdit
|
object Edit_HG: TEdit
|
||||||
Left = 24
|
Left = 24
|
||||||
Top = 20
|
Top = 20
|
||||||
Width = 41
|
Width = 41
|
||||||
Height = 21
|
Height = 21
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
Text = 'EditPointe'
|
OnKeyPress = Edit_HGKeyPress
|
||||||
OnChange = Edit_HGChange
|
|
||||||
end
|
end
|
||||||
object EditPointe_BG: TEdit
|
object EditPointe_BG: TEdit
|
||||||
Left = 24
|
Left = 24
|
||||||
@@ -2618,8 +2613,7 @@ object FormConfig: TFormConfig
|
|||||||
Width = 41
|
Width = 41
|
||||||
Height = 21
|
Height = 21
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
Text = 'EditPointe_BG'
|
OnKeyPress = EditPointe_BGKeyPress
|
||||||
OnChange = EditPointe_BGChange
|
|
||||||
end
|
end
|
||||||
object EditP1: TEdit
|
object EditP1: TEdit
|
||||||
Left = 88
|
Left = 88
|
||||||
@@ -2627,8 +2621,7 @@ object FormConfig: TFormConfig
|
|||||||
Width = 33
|
Width = 33
|
||||||
Height = 21
|
Height = 21
|
||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
Text = 'EditDDroit'
|
OnKeyPress = EditP1KeyPress
|
||||||
OnChange = EditP1Change
|
|
||||||
end
|
end
|
||||||
object EditP2: TEdit
|
object EditP2: TEdit
|
||||||
Left = 88
|
Left = 88
|
||||||
@@ -2636,8 +2629,7 @@ object FormConfig: TFormConfig
|
|||||||
Width = 33
|
Width = 33
|
||||||
Height = 21
|
Height = 21
|
||||||
TabOrder = 3
|
TabOrder = 3
|
||||||
Text = 'EditDdevie'
|
OnKeyPress = EditP2KeyPress
|
||||||
OnChange = EditP2Change
|
|
||||||
end
|
end
|
||||||
object EditP3: TEdit
|
object EditP3: TEdit
|
||||||
Left = 160
|
Left = 160
|
||||||
@@ -2645,8 +2637,7 @@ object FormConfig: TFormConfig
|
|||||||
Width = 33
|
Width = 33
|
||||||
Height = 21
|
Height = 21
|
||||||
TabOrder = 4
|
TabOrder = 4
|
||||||
Text = 'EditDDroit'
|
OnKeyPress = EditP3KeyPress
|
||||||
OnChange = EditP3Change
|
|
||||||
end
|
end
|
||||||
object EditP4: TEdit
|
object EditP4: TEdit
|
||||||
Left = 160
|
Left = 160
|
||||||
@@ -2654,8 +2645,7 @@ object FormConfig: TFormConfig
|
|||||||
Width = 33
|
Width = 33
|
||||||
Height = 21
|
Height = 21
|
||||||
TabOrder = 5
|
TabOrder = 5
|
||||||
Text = 'EditDDroit'
|
OnKeyPress = EditP4KeyPress
|
||||||
OnChange = EditP4Change
|
|
||||||
end
|
end
|
||||||
object EditDevie_HD: TEdit
|
object EditDevie_HD: TEdit
|
||||||
Left = 232
|
Left = 232
|
||||||
@@ -2663,8 +2653,7 @@ object FormConfig: TFormConfig
|
|||||||
Width = 33
|
Width = 33
|
||||||
Height = 21
|
Height = 21
|
||||||
TabOrder = 6
|
TabOrder = 6
|
||||||
Text = 'EditDevie_HD'
|
OnKeyPress = EditDevie_HDKeyPress
|
||||||
OnChange = EditDevie_HDChange
|
|
||||||
end
|
end
|
||||||
object EditDroit_BD: TEdit
|
object EditDroit_BD: TEdit
|
||||||
Left = 232
|
Left = 232
|
||||||
@@ -2672,8 +2661,7 @@ object FormConfig: TFormConfig
|
|||||||
Width = 33
|
Width = 33
|
||||||
Height = 21
|
Height = 21
|
||||||
TabOrder = 7
|
TabOrder = 7
|
||||||
Text = 'EditDroit_BD'
|
OnKeyPress = EditDroit_BDKeyPress
|
||||||
OnChange = EditDroit_BDChange
|
|
||||||
end
|
end
|
||||||
object EditDevieS2: TEdit
|
object EditDevieS2: TEdit
|
||||||
Left = 232
|
Left = 232
|
||||||
@@ -2681,8 +2669,16 @@ object FormConfig: TFormConfig
|
|||||||
Width = 33
|
Width = 33
|
||||||
Height = 21
|
Height = 21
|
||||||
TabOrder = 8
|
TabOrder = 8
|
||||||
Text = 'EditDevie_HD'
|
OnKeyPress = EditDevieS2KeyPress
|
||||||
OnChange = EditDevieS2Change
|
end
|
||||||
|
object EditL: TEdit
|
||||||
|
Left = 40
|
||||||
|
Top = 68
|
||||||
|
Width = 25
|
||||||
|
Height = 21
|
||||||
|
TabOrder = 9
|
||||||
|
Visible = False
|
||||||
|
OnChange = EditLChange
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object ButtonRestaureAig: TButton
|
object ButtonRestaureAig: TButton
|
||||||
@@ -2706,7 +2702,7 @@ object FormConfig: TFormConfig
|
|||||||
Height = 21
|
Height = 21
|
||||||
TabOrder = 6
|
TabOrder = 6
|
||||||
Visible = False
|
Visible = False
|
||||||
OnChange = EditAigTripleChange
|
OnKeyPress = EditAigTripleKeyPress
|
||||||
end
|
end
|
||||||
object GroupBox21: TGroupBox
|
object GroupBox21: TGroupBox
|
||||||
Left = 8
|
Left = 8
|
||||||
@@ -2717,7 +2713,7 @@ object FormConfig: TFormConfig
|
|||||||
TabOrder = 7
|
TabOrder = 7
|
||||||
object Label37: TLabel
|
object Label37: TLabel
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 26
|
Top = 18
|
||||||
Width = 66
|
Width = 66
|
||||||
Height = 13
|
Height = 13
|
||||||
Caption = 'D'#233'vi'#233' ou droit'
|
Caption = 'D'#233'vi'#233' ou droit'
|
||||||
@@ -2729,44 +2725,46 @@ object FormConfig: TFormConfig
|
|||||||
Height = 13
|
Height = 13
|
||||||
Caption = 'Temporisation (1/10'#232'me s)'
|
Caption = 'Temporisation (1/10'#232'me s)'
|
||||||
end
|
end
|
||||||
object LabelDevie: TLabel
|
|
||||||
Left = 200
|
|
||||||
Top = 24
|
|
||||||
Width = 3
|
|
||||||
Height = 13
|
|
||||||
end
|
|
||||||
object EditDevDroit: TEdit
|
|
||||||
Left = 152
|
|
||||||
Top = 18
|
|
||||||
Width = 41
|
|
||||||
Height = 21
|
|
||||||
TabOrder = 0
|
|
||||||
OnChange = EditDevDroitChange
|
|
||||||
end
|
|
||||||
object EditTempo10: TEdit
|
object EditTempo10: TEdit
|
||||||
Left = 152
|
Left = 160
|
||||||
Top = 40
|
Top = 40
|
||||||
Width = 41
|
Width = 41
|
||||||
Height = 21
|
Height = 21
|
||||||
TabOrder = 1
|
TabOrder = 0
|
||||||
OnChange = EditTempo10Change
|
OnKeyPress = EditTempo10KeyPress
|
||||||
end
|
end
|
||||||
object CheckInvInit: TCheckBox
|
object CheckInvInit: TCheckBox
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 64
|
Top = 64
|
||||||
Width = 153
|
Width = 153
|
||||||
Height = 17
|
Height = 17
|
||||||
|
Hint = 'Inverse le pilotage de l'#39'aiguillage'
|
||||||
Caption = 'Pilotage invers'#233
|
Caption = 'Pilotage invers'#233
|
||||||
TabOrder = 2
|
ParentShowHint = False
|
||||||
|
ShowHint = True
|
||||||
|
TabOrder = 1
|
||||||
OnClick = CheckInvInitClick
|
OnClick = CheckInvInitClick
|
||||||
end
|
end
|
||||||
|
object ComboBoxDD: TComboBox
|
||||||
|
Left = 160
|
||||||
|
Top = 16
|
||||||
|
Width = 97
|
||||||
|
Height = 21
|
||||||
|
ItemHeight = 13
|
||||||
|
TabOrder = 2
|
||||||
|
OnChange = ComboBoxDDChange
|
||||||
|
Items.Strings = (
|
||||||
|
'D'#233'vi'#233
|
||||||
|
'Droit'
|
||||||
|
'Non positionn'#233)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object RichAig: TRichEdit
|
object RichAig: TRichEdit
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 72
|
Top = 56
|
||||||
Width = 233
|
Width = 321
|
||||||
Height = 353
|
Height = 369
|
||||||
Color = clBlack
|
Color = clBlack
|
||||||
Font.Charset = DEFAULT_CHARSET
|
Font.Charset = DEFAULT_CHARSET
|
||||||
Font.Color = clYellow
|
Font.Color = clYellow
|
||||||
@@ -2807,23 +2805,6 @@ object FormConfig: TFormConfig
|
|||||||
TabOrder = 4
|
TabOrder = 4
|
||||||
OnClick = ButtonAjSupClick
|
OnClick = ButtonAjSupClick
|
||||||
end
|
end
|
||||||
object RichInitAig: TRichEdit
|
|
||||||
Left = 232
|
|
||||||
Top = 72
|
|
||||||
Width = 89
|
|
||||||
Height = 353
|
|
||||||
Color = clBlack
|
|
||||||
Font.Charset = DEFAULT_CHARSET
|
|
||||||
Font.Color = clYellow
|
|
||||||
Font.Height = -11
|
|
||||||
Font.Name = 'MS Sans Serif'
|
|
||||||
Font.Style = []
|
|
||||||
ParentFont = False
|
|
||||||
ReadOnly = True
|
|
||||||
ScrollBars = ssBoth
|
|
||||||
TabOrder = 5
|
|
||||||
WordWrap = False
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
object TabSheetBranches: TTabSheet
|
object TabSheetBranches: TTabSheet
|
||||||
Caption = 'Branches'
|
Caption = 'Branches'
|
||||||
@@ -2922,9 +2903,9 @@ object FormConfig: TFormConfig
|
|||||||
end
|
end
|
||||||
object GroupBox12: TGroupBox
|
object GroupBox12: TGroupBox
|
||||||
Left = 336
|
Left = 336
|
||||||
Top = 40
|
Top = 32
|
||||||
Width = 281
|
Width = 281
|
||||||
Height = 385
|
Height = 393
|
||||||
Caption = 'Description du signal'
|
Caption = 'Description du signal'
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
object ImageSignal: TImage
|
object ImageSignal: TImage
|
||||||
@@ -2969,7 +2950,7 @@ object FormConfig: TFormConfig
|
|||||||
end
|
end
|
||||||
object Label17: TLabel
|
object Label17: TLabel
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 248
|
Top = 264
|
||||||
Width = 228
|
Width = 228
|
||||||
Height = 26
|
Height = 26
|
||||||
Caption =
|
Caption =
|
||||||
@@ -3046,11 +3027,11 @@ object FormConfig: TFormConfig
|
|||||||
end
|
end
|
||||||
object MemoCarre: TMemo
|
object MemoCarre: TMemo
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 280
|
Top = 296
|
||||||
Width = 265
|
Width = 265
|
||||||
Height = 89
|
Height = 89
|
||||||
ScrollBars = ssBoth
|
ScrollBars = ssBoth
|
||||||
TabOrder = 0
|
TabOrder = 12
|
||||||
WordWrap = False
|
WordWrap = False
|
||||||
OnChange = MemoCarreChange
|
OnChange = MemoCarreChange
|
||||||
end
|
end
|
||||||
@@ -3068,80 +3049,77 @@ object FormConfig: TFormConfig
|
|||||||
Top = 120
|
Top = 120
|
||||||
Width = 41
|
Width = 41
|
||||||
Height = 21
|
Height = 21
|
||||||
TabOrder = 2
|
TabOrder = 3
|
||||||
Text = 'EditDet1'
|
OnKeyPress = EditDet1KeyPress
|
||||||
OnChange = EditDet1Change
|
|
||||||
end
|
end
|
||||||
object EditSuiv1: TEdit
|
object EditSuiv1: TEdit
|
||||||
Left = 184
|
Left = 184
|
||||||
Top = 120
|
Top = 120
|
||||||
Width = 41
|
Width = 41
|
||||||
Height = 21
|
Height = 21
|
||||||
TabOrder = 3
|
TabOrder = 4
|
||||||
Text = 'EditSuiv1'
|
OnKeyPress = EditSuiv1KeyPress
|
||||||
OnChange = EditSuiv1Change
|
|
||||||
end
|
end
|
||||||
object EditDet2: TEdit
|
object EditDet2: TEdit
|
||||||
Left = 120
|
Left = 120
|
||||||
Top = 144
|
Top = 144
|
||||||
Width = 41
|
Width = 41
|
||||||
Height = 21
|
Height = 21
|
||||||
TabOrder = 4
|
TabOrder = 5
|
||||||
Text = 'Edit1'
|
OnKeyPress = EditDet2KeyPress
|
||||||
OnChange = EditDet2Change
|
|
||||||
end
|
end
|
||||||
object EditSuiv2: TEdit
|
object EditSuiv2: TEdit
|
||||||
Left = 184
|
Left = 184
|
||||||
Top = 144
|
Top = 144
|
||||||
Width = 41
|
Width = 41
|
||||||
Height = 21
|
Height = 21
|
||||||
TabOrder = 5
|
TabOrder = 6
|
||||||
Text = 'Edit2'
|
OnKeyPress = EditSuiv2KeyPress
|
||||||
OnChange = EditSuiv2Change
|
|
||||||
end
|
end
|
||||||
object EditDet3: TEdit
|
object EditDet3: TEdit
|
||||||
Left = 120
|
Left = 120
|
||||||
Top = 168
|
Top = 168
|
||||||
Width = 41
|
Width = 41
|
||||||
Height = 21
|
Height = 21
|
||||||
TabOrder = 6
|
TabOrder = 7
|
||||||
Text = 'Edit1'
|
OnKeyPress = EditDet3KeyPress
|
||||||
OnChange = EditDet3Change
|
|
||||||
end
|
end
|
||||||
object EditSuiv3: TEdit
|
object EditSuiv3: TEdit
|
||||||
Left = 184
|
Left = 184
|
||||||
Top = 168
|
Top = 168
|
||||||
Width = 41
|
Width = 41
|
||||||
Height = 21
|
Height = 21
|
||||||
TabOrder = 7
|
TabOrder = 8
|
||||||
Text = 'Edit2'
|
OnKeyPress = EditSuiv3KeyPress
|
||||||
OnChange = EditSuiv3Change
|
|
||||||
end
|
end
|
||||||
object EditDet4: TEdit
|
object EditDet4: TEdit
|
||||||
Left = 120
|
Left = 120
|
||||||
Top = 192
|
Top = 192
|
||||||
Width = 41
|
Width = 41
|
||||||
Height = 21
|
Height = 21
|
||||||
TabOrder = 8
|
TabOrder = 9
|
||||||
Text = 'Edit1'
|
OnKeyPress = EditDet4KeyPress
|
||||||
OnChange = EditDet4Change
|
|
||||||
end
|
end
|
||||||
object EditSuiv4: TEdit
|
object EditSuiv4: TEdit
|
||||||
Left = 184
|
Left = 184
|
||||||
Top = 192
|
Top = 192
|
||||||
Width = 41
|
Width = 41
|
||||||
Height = 21
|
Height = 21
|
||||||
TabOrder = 9
|
TabOrder = 10
|
||||||
Text = 'Edit2'
|
OnKeyPress = EditSuiv4KeyPress
|
||||||
OnChange = EditSuiv4Change
|
|
||||||
end
|
end
|
||||||
object CheckVerrouCarre: TCheckBox
|
object CheckVerrouCarre: TCheckBox
|
||||||
Left = 120
|
Left = 120
|
||||||
Top = 224
|
Top = 224
|
||||||
Width = 145
|
Width = 145
|
||||||
Height = 17
|
Height = 17
|
||||||
|
Hint =
|
||||||
|
'Passe le feu au carr'#233' ci aucun train n'#39'est pr'#233'sent 3 cantons ava' +
|
||||||
|
'nt le signal'
|
||||||
Caption = 'Verrouillable au carr'#233
|
Caption = 'Verrouillable au carr'#233
|
||||||
TabOrder = 10
|
ParentShowHint = False
|
||||||
|
ShowHint = True
|
||||||
|
TabOrder = 11
|
||||||
OnClick = CheckVerrouCarreClick
|
OnClick = CheckVerrouCarreClick
|
||||||
end
|
end
|
||||||
object EditAdrSig: TEdit
|
object EditAdrSig: TEdit
|
||||||
@@ -3149,9 +3127,9 @@ object FormConfig: TFormConfig
|
|||||||
Top = 18
|
Top = 18
|
||||||
Width = 33
|
Width = 33
|
||||||
Height = 21
|
Height = 21
|
||||||
TabOrder = 11
|
TabOrder = 0
|
||||||
Text = ' '
|
Text = ' '
|
||||||
OnChange = EditAdrSigChange
|
OnKeyPress = EditAdrSigKeyPress
|
||||||
end
|
end
|
||||||
object ComboBoxAsp: TComboBox
|
object ComboBoxAsp: TComboBox
|
||||||
Left = 144
|
Left = 144
|
||||||
@@ -3159,7 +3137,7 @@ object FormConfig: TFormConfig
|
|||||||
Width = 129
|
Width = 129
|
||||||
Height = 21
|
Height = 21
|
||||||
ItemHeight = 13
|
ItemHeight = 13
|
||||||
TabOrder = 12
|
TabOrder = 2
|
||||||
OnChange = ComboBoxAspChange
|
OnChange = ComboBoxAspChange
|
||||||
Items.Strings = (
|
Items.Strings = (
|
||||||
'2 feux'
|
'2 feux'
|
||||||
@@ -3179,9 +3157,9 @@ object FormConfig: TFormConfig
|
|||||||
Top = 176
|
Top = 176
|
||||||
Width = 33
|
Width = 33
|
||||||
Height = 21
|
Height = 21
|
||||||
TabOrder = 13
|
TabOrder = 14
|
||||||
Visible = False
|
Visible = False
|
||||||
OnChange = EditSpecUniChange
|
OnKeyPress = EditSpecUniKeyPress
|
||||||
end
|
end
|
||||||
object Buttonrestaure: TButton
|
object Buttonrestaure: TButton
|
||||||
Left = 8
|
Left = 8
|
||||||
@@ -3192,9 +3170,18 @@ object FormConfig: TFormConfig
|
|||||||
Caption = 'Restaurer'
|
Caption = 'Restaurer'
|
||||||
ParentShowHint = False
|
ParentShowHint = False
|
||||||
ShowHint = True
|
ShowHint = True
|
||||||
TabOrder = 14
|
TabOrder = 13
|
||||||
OnClick = ButtonrestaureClick
|
OnClick = ButtonrestaureClick
|
||||||
end
|
end
|
||||||
|
object CheckBoxFB: TCheckBox
|
||||||
|
Left = 120
|
||||||
|
Top = 240
|
||||||
|
Width = 153
|
||||||
|
Height = 17
|
||||||
|
Caption = 'Avec demande feu blanc'
|
||||||
|
TabOrder = 15
|
||||||
|
OnClick = CheckBoxFBClick
|
||||||
|
end
|
||||||
end
|
end
|
||||||
object RichSig: TRichEdit
|
object RichSig: TRichEdit
|
||||||
Left = 0
|
Left = 0
|
||||||
@@ -3237,7 +3224,7 @@ object FormConfig: TFormConfig
|
|||||||
object ButtonInsFeu: TButton
|
object ButtonInsFeu: TButton
|
||||||
Left = 144
|
Left = 144
|
||||||
Top = 32
|
Top = 32
|
||||||
Width = 113
|
Width = 145
|
||||||
Height = 17
|
Height = 17
|
||||||
Caption = 'Ajouter le feu supprim'#233
|
Caption = 'Ajouter le feu supprim'#233
|
||||||
TabOrder = 4
|
TabOrder = 4
|
||||||
@@ -3274,8 +3261,8 @@ object FormConfig: TFormConfig
|
|||||||
WordWrap = True
|
WordWrap = True
|
||||||
end
|
end
|
||||||
object GroupBoxPN: TGroupBox
|
object GroupBoxPN: TGroupBox
|
||||||
Left = -32
|
Left = 16
|
||||||
Top = 24
|
Top = 16
|
||||||
Width = 225
|
Width = 225
|
||||||
Height = 289
|
Height = 289
|
||||||
Caption = 'Actionneurs gestion passage '#224' niveau'
|
Caption = 'Actionneurs gestion passage '#224' niveau'
|
||||||
@@ -3468,8 +3455,8 @@ object FormConfig: TFormConfig
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
object GroupBoxAct: TGroupBox
|
object GroupBoxAct: TGroupBox
|
||||||
Left = 16
|
Left = 48
|
||||||
Top = 104
|
Top = 176
|
||||||
Width = 225
|
Width = 225
|
||||||
Height = 225
|
Height = 225
|
||||||
Caption = 'Actionneur fonction de locomotive '
|
Caption = 'Actionneur fonction de locomotive '
|
||||||
|
|||||||
+441
-262
File diff suppressed because it is too large.
Load diff
Binary file not shown.
+15
-2
@@ -1,6 +1,6 @@
|
|||||||
object FormDebug: TFormDebug
|
object FormDebug: TFormDebug
|
||||||
Left = 192
|
Left = 203
|
||||||
Top = 290
|
Top = 155
|
||||||
Width = 855
|
Width = 855
|
||||||
Height = 817
|
Height = 817
|
||||||
Caption = 'Fen'#234'tre de d'#233'bug'
|
Caption = 'Fen'#234'tre de d'#233'bug'
|
||||||
@@ -434,6 +434,19 @@ object FormDebug: TFormDebug
|
|||||||
TabOrder = 6
|
TabOrder = 6
|
||||||
OnClick = CheckBoxAffDebDecSigClick
|
OnClick = CheckBoxAffDebDecSigClick
|
||||||
end
|
end
|
||||||
|
object EditDebugSignal: TEdit
|
||||||
|
Left = 168
|
||||||
|
Top = 12
|
||||||
|
Width = 33
|
||||||
|
Height = 18
|
||||||
|
Hint =
|
||||||
|
'Adresse du signal seul '#224' surveiller ou si 0 surveille tous les s' +
|
||||||
|
'ignaux'
|
||||||
|
ParentShowHint = False
|
||||||
|
ShowHint = True
|
||||||
|
TabOrder = 7
|
||||||
|
OnChange = EditDebugSignalChange
|
||||||
|
end
|
||||||
end
|
end
|
||||||
object RichDebug: TRichEdit
|
object RichDebug: TRichEdit
|
||||||
Left = 8
|
Left = 8
|
||||||
|
|||||||
+14
-5
@@ -50,6 +50,7 @@ type
|
|||||||
ButtonSimuDet1: TButton;
|
ButtonSimuDet1: TButton;
|
||||||
EditSimuDet: TEdit;
|
EditSimuDet: TEdit;
|
||||||
ButtonRazTout: TButton;
|
ButtonRazTout: TButton;
|
||||||
|
EditDebugSignal: TEdit;
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
procedure ButtonEcrLogClick(Sender: TObject);
|
procedure ButtonEcrLogClick(Sender: TObject);
|
||||||
procedure EditNivDebugKeyPress(Sender: TObject; var Key: Char);
|
procedure EditNivDebugKeyPress(Sender: TObject; var Key: Char);
|
||||||
@@ -78,6 +79,7 @@ type
|
|||||||
procedure ButtonRazToutClick(Sender: TObject);
|
procedure ButtonRazToutClick(Sender: TObject);
|
||||||
procedure RichEditChange(Sender: TObject);
|
procedure RichEditChange(Sender: TObject);
|
||||||
procedure MemoEvtDetChange(Sender: TObject);
|
procedure MemoEvtDetChange(Sender: TObject);
|
||||||
|
procedure EditDebugSignalChange(Sender: TObject);
|
||||||
private
|
private
|
||||||
{ Déclarations privées }
|
{ Déclarations privées }
|
||||||
public
|
public
|
||||||
@@ -91,7 +93,7 @@ Max_Trains=50;
|
|||||||
|
|
||||||
var
|
var
|
||||||
FormDebug: TFormDebug;
|
FormDebug: TFormDebug;
|
||||||
NivDebug : integer;
|
NivDebug,signalDebug : integer;
|
||||||
AffSignal,AffAffect,initform,AffFD,debug_dec_sig : boolean;
|
AffSignal,AffAffect,initform,AffFD,debug_dec_sig : boolean;
|
||||||
N_event_det : integer; // index du dernier évènement (de 1 à 20)
|
N_event_det : integer; // index du dernier évènement (de 1 à 20)
|
||||||
event_det : array[1..Max_event_det] of integer;
|
event_det : array[1..Max_event_det] of integer;
|
||||||
@@ -114,8 +116,6 @@ var
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
procedure AfficheDebug(s : string;lacouleur : TColor);
|
procedure AfficheDebug(s : string;lacouleur : TColor);
|
||||||
Procedure Raz_tout;
|
Procedure Raz_tout;
|
||||||
procedure RE_ColorLine(ARichEdit: TRichEdit; ARow: Integer; AColor: TColor);
|
procedure RE_ColorLine(ARichEdit: TRichEdit; ARow: Integer; AColor: TColor);
|
||||||
@@ -139,8 +139,11 @@ end;
|
|||||||
|
|
||||||
procedure AfficheDebug(s : string;lacouleur : TColor);
|
procedure AfficheDebug(s : string;lacouleur : TColor);
|
||||||
begin
|
begin
|
||||||
FormDebug.RichDebug.Lines.add(s);
|
with FormDebug.RichDebug do
|
||||||
|
begin
|
||||||
|
Lines.add(s);
|
||||||
RE_ColorLine(FormDebug.RichDebug,FormDebug.RichDebug.lines.count-1,lacouleur);
|
RE_ColorLine(FormDebug.RichDebug,FormDebug.RichDebug.lines.count-1,lacouleur);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure Raz_tout;
|
Procedure Raz_tout;
|
||||||
@@ -361,7 +364,7 @@ begin
|
|||||||
if s2[1]='A' then begin type2:=2;delete(s2,1,1);end else type2:=1;
|
if s2[1]='A' then begin type2:=2;delete(s2,1,1);end else type2:=1;
|
||||||
Val(s1,prec,erreur); if erreur<>0 then exit;
|
Val(s1,prec,erreur); if erreur<>0 then exit;
|
||||||
Val(s2,Actuel,erreur); if erreur<>0 then exit;
|
Val(s2,Actuel,erreur); if erreur<>0 then exit;
|
||||||
Adr:=detecteur_suivant_El(prec,type1,actuel,type2);
|
Adr:=detecteur_suivant_El(prec,type1,actuel,type2,1);
|
||||||
if Adr<9996 then AfficheDebug('Le détecteur suivant aux éléments '+IntToSTR(prec)+'/'+IntToSTR(actuel)+' est '+IntToSTR(Adr),clyellow)
|
if Adr<9996 then AfficheDebug('Le détecteur suivant aux éléments '+IntToSTR(prec)+'/'+IntToSTR(actuel)+' est '+IntToSTR(Adr),clyellow)
|
||||||
else AfficheDebug('Pas trouvé de détecteur suvant aux éléments '+IntToSTR(prec)+'/'+IntToSTR(actuel),clyellow);
|
else AfficheDebug('Pas trouvé de détecteur suvant aux éléments '+IntToSTR(prec)+'/'+IntToSTR(actuel),clyellow);
|
||||||
NivDebug:=AncDebug;
|
NivDebug:=AncDebug;
|
||||||
@@ -449,4 +452,10 @@ begin
|
|||||||
SendMessage(MemoEvtDet.handle, WM_VSCROLL, SB_BOTTOM, 0);
|
SendMessage(MemoEvtDet.handle, WM_VSCROLL, SB_BOTTOM, 0);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TFormDebug.EditDebugSignalChange(Sender: TObject);
|
||||||
|
var erreur : integer;
|
||||||
|
begin
|
||||||
|
val(EditDebugSignal.text,signalDebug,erreur);
|
||||||
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
Binary file not shown.
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
object FormPrinc: TFormPrinc
|
object FormPrinc: TFormPrinc
|
||||||
Left = 55
|
Left = 39
|
||||||
Top = 177
|
Top = 183
|
||||||
Width = 1212
|
Width = 1212
|
||||||
Height = 664
|
Height = 664
|
||||||
Caption = 'Client TCP-IP CDM Rail ou USB - syst'#232'me LENZ'
|
Caption = 'Client TCP-IP CDM Rail ou USB - syst'#232'me LENZ'
|
||||||
|
|||||||
+144
-88
@@ -177,6 +177,7 @@ type
|
|||||||
|
|
||||||
const
|
const
|
||||||
titre='Signaux complexes GL ';
|
titre='Signaux complexes GL ';
|
||||||
|
const espY = 15;//40; // espacement Y entre deux lignes de feux
|
||||||
tempoFeu=100;
|
tempoFeu=100;
|
||||||
MaxAcc=2048; // et aussi adresse maxi d'accessoire
|
MaxAcc=2048; // et aussi adresse maxi d'accessoire
|
||||||
LargImg=50;HtImg=91; // Dimensions image des feux
|
LargImg=50;HtImg=91; // Dimensions image des feux
|
||||||
@@ -208,7 +209,7 @@ type TBranche = record
|
|||||||
Adresse : integer;
|
Adresse : integer;
|
||||||
modele : integer; // 0=n'existe pas 1=aiguillage 2=TJD 3=TJS 4=aiguillage triple
|
modele : integer; // 0=n'existe pas 1=aiguillage 2=TJD 3=TJS 4=aiguillage triple
|
||||||
position, // position actuelle : 1=dévié 2=droit (centrale LENZ)
|
position, // position actuelle : 1=dévié 2=droit (centrale LENZ)
|
||||||
posInit, // position d'initialisation
|
posInit, // position d'initialisation 1=dévié 2=droit 9=non positionné
|
||||||
Adrtriple, // 2eme adresse pour un aiguillage triple
|
Adrtriple, // 2eme adresse pour un aiguillage triple
|
||||||
temps, // temps de pilotage (durée de l'impulsion en x 100 ms)
|
temps, // temps de pilotage (durée de l'impulsion en x 100 ms)
|
||||||
inversion : integer; // positionné dans fichier config_gl section_init
|
inversion : integer; // positionné dans fichier config_gl section_init
|
||||||
@@ -245,7 +246,7 @@ TFeu = record
|
|||||||
adresse, aspect : integer; // adresse du feu, aspect (2 feux..9 feux 12=direction 2 feux .. 16=direction 6 feux)
|
adresse, aspect : integer; // adresse du feu, aspect (2 feux..9 feux 12=direction 2 feux .. 16=direction 6 feux)
|
||||||
Img : TImage; // Pointeur sur structure TImage du feu
|
Img : TImage; // Pointeur sur structure TImage du feu
|
||||||
Lbl : TLabel; // pointeur sur structure Tlabel du feu
|
Lbl : TLabel; // pointeur sur structure Tlabel du feu
|
||||||
check : TCheckBox; // pointeur sur structure Checkbox avec feu blanc
|
check : TCheckBox; // pointeur sur structure Checkbox "demande feu blanc"
|
||||||
FeuBlanc : boolean ; // avec checkbox ou pas
|
FeuBlanc : boolean ; // avec checkbox ou pas
|
||||||
decodeur : integer; // type du décodeur
|
decodeur : integer; // type du décodeur
|
||||||
Adr_det1 : integer; // adresse du détecteur1 sur lequel il est implanté
|
Adr_det1 : integer; // adresse du détecteur1 sur lequel il est implanté
|
||||||
@@ -349,8 +350,8 @@ var
|
|||||||
aiguillage : array[0..MaxAcc] of Taiguillage;
|
aiguillage : array[0..MaxAcc] of Taiguillage;
|
||||||
// signaux - L'index du tableau n'est pas son adresse
|
// signaux - L'index du tableau n'est pas son adresse
|
||||||
feux : array[1..MaxAcc] of Tfeu;
|
feux : array[1..MaxAcc] of Tfeu;
|
||||||
Feu_supprime : Tfeu;
|
Feu_supprime,Feu_sauve : Tfeu;
|
||||||
Aig_supprime : TAiguillage;
|
Aig_supprime,Aig_sauve : TAiguillage;
|
||||||
|
|
||||||
Fimage : Timage;
|
Fimage : Timage;
|
||||||
BrancheN : array[1..100,1..200] of TBranche; //
|
BrancheN : array[1..100,1..200] of TBranche; //
|
||||||
@@ -383,7 +384,7 @@ procedure Pilote_acc0_X(adresse : integer;octet : byte);
|
|||||||
procedure pilote_acc(adresse : integer;octet : byte;Acc : TAccessoire);
|
procedure pilote_acc(adresse : integer;octet : byte;Acc : TAccessoire);
|
||||||
function etat_signal_suivant(Adresse,rang : integer) : integer;
|
function etat_signal_suivant(Adresse,rang : integer) : integer;
|
||||||
function suivant_alg3(prec : integer;typeELprec : integer;var actuel : integer;typeElActuel : integer;alg : integer) : integer;
|
function suivant_alg3(prec : integer;typeELprec : integer;var actuel : integer;typeElActuel : integer;alg : integer) : integer;
|
||||||
function detecteur_suivant_El(el1: integer;TypeDet1 : integer;el2 : integer;TypeDet2 : integer) : integer ;
|
function detecteur_suivant_El(el1: integer;TypeDet1 : integer;el2 : integer;TypeDet2,alg : integer) : integer ;
|
||||||
function test_memoire_zones(adresse : integer) : boolean;
|
function test_memoire_zones(adresse : integer) : boolean;
|
||||||
function PresTrainPrec(AdrFeu : integer) : boolean;
|
function PresTrainPrec(AdrFeu : integer) : boolean;
|
||||||
function cond_carre(adresse : integer) : boolean;
|
function cond_carre(adresse : integer) : boolean;
|
||||||
@@ -1097,9 +1098,6 @@ begin
|
|||||||
begin
|
begin
|
||||||
FenRich.lines.add(s);
|
FenRich.lines.add(s);
|
||||||
RE_ColorLine(FenRich,FenRich.lines.count-1,lacouleur);
|
RE_ColorLine(FenRich,FenRich.lines.count-1,lacouleur);
|
||||||
//FenRich.SetFocus;
|
|
||||||
//FenRich.SelStart := FenRich.GetTextLen;
|
|
||||||
//FenRich.Perform(EM_SCROLLCARET, 0, 0);
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -1257,9 +1255,9 @@ end;
|
|||||||
|
|
||||||
// créée une image dynamiquement pour un nouveau feu déclaré dans le fichier de config
|
// créée une image dynamiquement pour un nouveau feu déclaré dans le fichier de config
|
||||||
procedure cree_image(rang : integer);
|
procedure cree_image(rang : integer);
|
||||||
var TypeFeu : integer;
|
var TypeFeu,adresse : integer;
|
||||||
s : string;
|
s : string;
|
||||||
const espY = 15;//40; // espacement Y entre deux lignes de feux
|
|
||||||
begin
|
begin
|
||||||
TypeFeu:=feux[rang].aspect;
|
TypeFeu:=feux[rang].aspect;
|
||||||
if typeFeu<=0 then exit;
|
if typeFeu<=0 then exit;
|
||||||
@@ -1267,7 +1265,7 @@ begin
|
|||||||
with Feux[rang].Img do
|
with Feux[rang].Img do
|
||||||
begin
|
begin
|
||||||
Parent:=Formprinc.ScrollBox1; // dire que l'image est dans la scrollBox1
|
Parent:=Formprinc.ScrollBox1; // dire que l'image est dans la scrollBox1
|
||||||
Name:='ImageFeu'+IntToSTR(rang); // nom de l'image - sert à identifier le composant si on fait clic droit.
|
//Name:='ImageFeu'+IntToSTR(rang); // nom de l'image - sert à identifier le composant si on fait clic droit.
|
||||||
Top:=(HtImg+espY+20)*((rang-1) div NbreImagePLigne); // détermine les points d'origine
|
Top:=(HtImg+espY+20)*((rang-1) div NbreImagePLigne); // détermine les points d'origine
|
||||||
Left:=10+ (LargImg+5)*((rang-1) mod (NbreImagePLigne));
|
Left:=10+ (LargImg+5)*((rang-1) mod (NbreImagePLigne));
|
||||||
width:=57;
|
width:=57;
|
||||||
@@ -1289,10 +1287,11 @@ begin
|
|||||||
picture.Bitmap:=Select_dessin_feu(TypeFeu);
|
picture.Bitmap:=Select_dessin_feu(TypeFeu);
|
||||||
|
|
||||||
// mettre rouge par défaut
|
// mettre rouge par défaut
|
||||||
if TypeFeu=2 then EtatSignalCplx[feux[rang].adresse]:=violet_F;
|
adresse:=Feux[rang].adresse;
|
||||||
if TypeFeu=3 then EtatSignalCplx[feux[rang].adresse]:=semaphore_F;
|
if TypeFeu=2 then EtatSignalCplx[adresse]:=violet_F;
|
||||||
if (TypeFeu>3) and (TypeFeu<10) then EtatSignalCplx[feux[rang].adresse]:=carre_F;
|
if TypeFeu=3 then EtatSignalCplx[adresse]:=semaphore_F;
|
||||||
if TypeFeu>10 then EtatSignalCplx[feux[rang].adresse]:=0;
|
if (TypeFeu>3) and (TypeFeu<10) then EtatSignalCplx[adresse]:=carre_F;
|
||||||
|
if TypeFeu>10 then EtatSignalCplx[adresse]:=0;
|
||||||
|
|
||||||
dessine_feu_mx(Feux[rang].Img.Canvas,0,0,1,1,feux[rang].adresse,1);
|
dessine_feu_mx(Feux[rang].Img.Canvas,0,0,1,1,feux[rang].adresse,1);
|
||||||
//if feux[rang].aspect=5 then cercle(Picture.Bitmap.Canvas,13,22,6,ClYellow);
|
//if feux[rang].aspect=5 then cercle(Picture.Bitmap.Canvas,13,22,6,ClYellow);
|
||||||
@@ -1314,8 +1313,8 @@ begin
|
|||||||
if feux[rang].FeuBlanc then
|
if feux[rang].FeuBlanc then
|
||||||
begin
|
begin
|
||||||
Feux[rang].check:=TCheckBox.create(Formprinc.ScrollBox1); // ranger l'adresse de la Checkbox dans la structure du feu
|
Feux[rang].check:=TCheckBox.create(Formprinc.ScrollBox1); // ranger l'adresse de la Checkbox dans la structure du feu
|
||||||
Feux[rang].check.onClick:=formprinc.proc_checkBoxFB; // affecter l'adresse de la procédure de traitement quand on clique dessus
|
//Feux[rang].check.onClick:=formprinc.proc_checkBoxFB; // affecter l'adresse de la procédure de traitement quand on clique dessus non utilisé
|
||||||
Feux[rang].check.Hint:=intToSTR(rang); // affecter l'index du feu dans le HINT pour pouvoir le retrouver plus tard
|
Feux[rang].check.Hint:=intToSTR(adresse); // affecter l'adresse du feu dans le HINT pour pouvoir le retrouver plus tard
|
||||||
|
|
||||||
with Feux[rang].Check do
|
with Feux[rang].Check do
|
||||||
begin
|
begin
|
||||||
@@ -1326,7 +1325,8 @@ begin
|
|||||||
Left:=10+ (LargImg+5)*((rang-1) mod (NbreImagePLigne));
|
Left:=10+ (LargImg+5)*((rang-1) mod (NbreImagePLigne));
|
||||||
BringToFront;
|
BringToFront;
|
||||||
end;
|
end;
|
||||||
end;
|
end
|
||||||
|
else Feux[rang].check:=nil;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// calcule le checksum d'une trame
|
// calcule le checksum d'une trame
|
||||||
@@ -2597,7 +2597,7 @@ begin
|
|||||||
if (UniSem<>2) and (UniSem<>3) and (UniSem<>4) and (UniSem<>51) and (UniSem<>52) and (UniSem<>71) and (UniSem<>72) and (UniSem<>73) and
|
if (UniSem<>2) and (UniSem<>3) and (UniSem<>4) and (UniSem<>51) and (UniSem<>52) and (UniSem<>71) and (UniSem<>72) and (UniSem<>73) and
|
||||||
((UniSem<90) or (UniSem>99)) then begin verif_UniSemaf:=1;exit;end;
|
((UniSem<90) or (UniSem>99)) then begin verif_UniSemaf:=1;exit;end;
|
||||||
|
|
||||||
aspect:=feux[adresse].aspect;
|
aspect:=feux[index_feu(adresse)].aspect;
|
||||||
if ((aspect=2) and (UniSem=2)) or
|
if ((aspect=2) and (UniSem=2)) or
|
||||||
((aspect=3) and (UniSem=3)) or
|
((aspect=3) and (UniSem=3)) or
|
||||||
((aspect=4) and (UniSem=4)) or
|
((aspect=4) and (UniSem=4)) or
|
||||||
@@ -2615,10 +2615,10 @@ var s,sa,chaine,SOrigine: string;
|
|||||||
trouve_sec_init,trouve_init_aig,trouve_lay,trouve_IPV4_INTERFACE,trouve_PROTOCOLE_SERIE,trouve_INTER_CAR,
|
trouve_sec_init,trouve_init_aig,trouve_lay,trouve_IPV4_INTERFACE,trouve_PROTOCOLE_SERIE,trouve_INTER_CAR,
|
||||||
trouve_Tempo_maxi,trouve_Entete,trouve_tco,trouve_cdm,trouve_Serveur_interface,trouve_fenetre,
|
trouve_Tempo_maxi,trouve_Entete,trouve_tco,trouve_cdm,trouve_Serveur_interface,trouve_fenetre,
|
||||||
trouve_NOTIF_VERSION,trouve_verif_version,trouve_fonte,trouve_tempo_aig,trouve_raz,trouve_section_aig,
|
trouve_NOTIF_VERSION,trouve_verif_version,trouve_fonte,trouve_tempo_aig,trouve_raz,trouve_section_aig,
|
||||||
pds,trouve_section_branche,trouve_section_sig,trouve_section_act : boolean;
|
pds,trouve_section_branche,trouve_section_sig,trouve_section_act,compile_init_cfg : boolean;
|
||||||
bd,virgule,i_detect,i,erreur,aig,aig2,detect,offset,index, adresse,j,position,temporisation,invers,indexPointe,indexDevie,indexDroit,
|
bd,virgule,i_detect,i,erreur,aig,aig2,detect,offset,index, adresse,j,position,temporisation,invers,indexPointe,indexDevie,indexDroit,
|
||||||
ComptEl,Compt_IT,Num_Element,k,modele,adr,adr2,erreur2,l,t,Nligne,postriple,itl,
|
ComptEl,Compt_IT,Num_Element,k,modele,adr,adr2,erreur2,l,t,Nligne,postriple,itl,
|
||||||
postjd,postjs,nv,it,Num_Champ,asp : integer;
|
postjd,postjs,nv,it,Num_Champ,asp,inversion : integer;
|
||||||
label ici1,ici2,ici3,ici4 ;
|
label ici1,ici2,ici3,ici4 ;
|
||||||
|
|
||||||
function lit_ligne : string ;
|
function lit_ligne : string ;
|
||||||
@@ -2674,6 +2674,7 @@ var s,sa,chaine,SOrigine: string;
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
|
compile_init_cfg:=true;
|
||||||
debugConfig:=false;
|
debugConfig:=false;
|
||||||
trouve_NbDetDist:=false;
|
trouve_NbDetDist:=false;
|
||||||
trouve_ipv4_PC:=false;
|
trouve_ipv4_PC:=false;
|
||||||
@@ -2975,6 +2976,28 @@ begin
|
|||||||
virgule:=pos(',',enregistrement);if virgule=0 then virgule:=length(enregistrement)+1;
|
virgule:=pos(',',enregistrement);if virgule=0 then virgule:=length(enregistrement)+1;
|
||||||
delete(enregistrement,1,virgule);
|
delete(enregistrement,1,virgule);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
// Init aiguillage
|
||||||
|
i:=pos('INIT(',enregistrement);
|
||||||
|
if i=1 then
|
||||||
|
begin
|
||||||
|
compile_init_cfg:=false; // ne pas compiler la section init du fichier config-gl.cfg
|
||||||
|
inc(num_champ);
|
||||||
|
delete(enregistrement,i,i+4);
|
||||||
|
Val(enregistrement,position,erreur);
|
||||||
|
i:=pos(',',enregistrement);
|
||||||
|
if i<>0 then delete(enregistrement,1,i);
|
||||||
|
Val(enregistrement,j,erreur);
|
||||||
|
i:=pos(',',enregistrement);
|
||||||
|
if i<>0 then delete(enregistrement,1,i);
|
||||||
|
Val(enregistrement,inversion,erreur);
|
||||||
|
aiguillage[maxaiguillage].temps:=j;
|
||||||
|
aiguillage[maxaiguillage].inversion:=inversion;
|
||||||
|
aiguillage[maxaiguillage].posinit:=position;
|
||||||
|
i:=pos(')',enregistrement);
|
||||||
|
delete(enregistrement,1,i);
|
||||||
|
end;
|
||||||
|
|
||||||
inc(itl);
|
inc(itl);
|
||||||
until (enregistrement='') or (itl>3);
|
until (enregistrement='') or (itl>3);
|
||||||
if itl>4 then begin Affiche('Erreur 400 ligne '+sOrigine,clred);closefile(fichier);exit;end;
|
if itl>4 then begin Affiche('Erreur 400 ligne '+sOrigine,clred);closefile(fichier);exit;end;
|
||||||
@@ -3039,7 +3062,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
until (s='0');
|
until (s='0');
|
||||||
NbreFeux:=i-1; if NbreFeux<0 then NbreFeux:=0;
|
NbreFeux:=i-1; if NbreFeux<0 then NbreFeux:=0;
|
||||||
//Affiche('Nombre de feux='+IntToSTR(NbreFeux),clYellow);
|
|
||||||
|
|
||||||
configNulle:=(maxAiguillage=0) and (NbreBranches=0) and (Nbrefeux=0);
|
configNulle:=(maxAiguillage=0) and (NbreBranches=0) and (Nbrefeux=0);
|
||||||
if configNulle then Affiche('Fonctionnement en config nulle',ClYellow);
|
if configNulle then Affiche('Fonctionnement en config nulle',ClYellow);
|
||||||
@@ -3259,11 +3281,9 @@ begin
|
|||||||
inc(nv);
|
inc(nv);
|
||||||
trouve_fonte:=true;
|
trouve_fonte:=true;
|
||||||
delete(s,i,length(sa));
|
delete(s,i,length(sa));
|
||||||
TailleFonte:=StrToINT(s);
|
val(s,TailleFonte,erreur);
|
||||||
with FormPrinc.FenRich do
|
if (TailleFonte<8) or (tailleFonte>25) then taillefonte:=10;
|
||||||
begin
|
FormPrinc.FenRich.Font.Size:=TailleFonte;
|
||||||
Font.Size:=TailleFonte;
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// adresse ip et port de CDM
|
// adresse ip et port de CDM
|
||||||
@@ -3277,8 +3297,9 @@ begin
|
|||||||
i:=pos(':',s);
|
i:=pos(':',s);
|
||||||
if i<>0 then
|
if i<>0 then
|
||||||
begin
|
begin
|
||||||
adresseIPCDM:=copy(s,1,i-1);Delete(s,1,i);portCDM:=StrToINT(s);
|
adresseIPCDM:=copy(s,1,i-1);Delete(s,1,i);
|
||||||
if portCDM=0 then affiche('Erreur port nul : '+s,clred);
|
val(s,portCDM,erreur);
|
||||||
|
if (portCDM=0) or (portCDM>65535) or (erreur<>0) then affiche('Erreur port CDM : '+s,clred);
|
||||||
end
|
end
|
||||||
else affiche('Erreur adresse ip cdm rail '+s,clred);
|
else affiche('Erreur adresse ip cdm rail '+s,clred);
|
||||||
end;
|
end;
|
||||||
@@ -3390,11 +3411,18 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
i:=pos(uppercase(section_init),s);
|
i:=pos(uppercase(section_init),s);
|
||||||
if i<>0 then
|
if (i<>0) then
|
||||||
|
begin
|
||||||
|
if compile_init_cfg then
|
||||||
begin
|
begin
|
||||||
inc(nv);
|
|
||||||
trouve_sec_init:=true;
|
trouve_sec_init:=true;
|
||||||
compile_section_init;
|
compile_section_init;
|
||||||
|
inc(nv);
|
||||||
|
Affiche('compilation de la section [init aig]',cllime);
|
||||||
|
end;
|
||||||
|
Affiche('Attention la section [init_aig] n''est plus gérée, elle est déplacée dans la configuration des aiguillages',clWhite);
|
||||||
|
Affiche('Veuillez regénérer les fichiers de configuration: ',clWhite);
|
||||||
|
Affiche('Menu Divers/configuration bouton "Enregistrement de la configuration et fermer"',clWhite);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
sa:=uppercase(verif_version_ch)+'=';
|
sa:=uppercase(verif_version_ch)+'=';
|
||||||
@@ -3491,30 +3519,27 @@ begin
|
|||||||
end;
|
end;
|
||||||
inc(it);
|
inc(it);
|
||||||
|
|
||||||
until (Nv>=19) or (it>30);
|
until ((Nv>=19) and compile_init_cfg) or ((Nv>=18) and not(compile_init_cfg)) or (it>30);
|
||||||
|
|
||||||
//affiche(IntToSTR(Nv)+' variables',cyan);
|
s:='';//Affiche(intToSTR(Nv),clred);
|
||||||
s:='';
|
if not(trouve_NbDetDist) then s:=nb_det_dist_ch;
|
||||||
if (nv<19) then s:='ERREUR: manque variables dans config-gl.cfg :';
|
if not(trouve_ipv4_PC) then s:=IpV4_PC_ch;
|
||||||
|
if not(trouve_retro) then s:=retro_ch;
|
||||||
if not(trouve_NbDetDist) then s:=s+' '+nb_det_dist_ch;
|
//if not(trouve_sec_init) and compile_init_cfg then s:=section_init;
|
||||||
if not(trouve_ipv4_PC) then s:=s+' '+IpV4_PC_ch;
|
if not(trouve_init_aig) then s:=INIT_AIG_ch;
|
||||||
if not(trouve_retro) then s:=s+' '+retro_ch;
|
if not(trouve_lay) then s:=LAY_ch;
|
||||||
if not(trouve_sec_init) then s:=s+' '+section_init;
|
if not(trouve_INTER_CAR) then s:=INTER_CAR_ch;
|
||||||
if not(trouve_init_aig) then s:=s+' '+INIT_AIG_ch;
|
if not(trouve_Tempo_maxi) then s:=Tempo_maxi_ch;
|
||||||
if not(trouve_lay) then s:=s+' '+LAY_ch;
|
if not(trouve_Entete) then s:=Entete_ch;
|
||||||
if not(trouve_INTER_CAR) then s:=s+' '+INTER_CAR_ch;
|
if not(trouve_TCO) then s:=TCO_ch;
|
||||||
if not(trouve_Tempo_maxi) then s:=s+' '+Tempo_maxi_ch;
|
if not(trouve_CDM) then s:=CDM_ch;
|
||||||
if not(trouve_Entete) then s:=s+' '+Entete_ch;
|
if not(trouve_Serveur_interface) then s:=Serveur_interface_ch;
|
||||||
if not(trouve_TCO) then s:=s+' '+TCO_ch;
|
if not(trouve_fenetre) then s:=fenetre_ch;
|
||||||
if not(trouve_CDM) then s:=s+' '+CDM_ch;
|
if not(trouve_tempo_aig) then s:=tempo_aig_ch;
|
||||||
if not(trouve_Serveur_interface) then s:=s+' '+Serveur_interface_ch;
|
if not(trouve_NOTIF_VERSION) then s:=NOTIF_VERSION_ch;
|
||||||
if not(trouve_fenetre) then s:=s+' '+fenetre_ch;
|
if not(trouve_verif_version) then s:=verif_version_ch;
|
||||||
if not(trouve_tempo_aig) then s:=s+' '+tempo_aig_ch;
|
if not(trouve_fonte) then s:=fonte_ch;
|
||||||
if not(trouve_NOTIF_VERSION) then s:=s+' '+NOTIF_VERSION_ch;
|
if s<>'' then affiche('ERREUR: manque variables dans config-gl.cfg '+s,clred);
|
||||||
if not(trouve_verif_version) then s:=s+' '+verif_version_ch;
|
|
||||||
if not(trouve_fonte) then s:=s+' '+fonte_ch;
|
|
||||||
if s<>'' then affiche(s,clred);
|
|
||||||
|
|
||||||
closefile(fichier);
|
closefile(fichier);
|
||||||
verif_coherence;
|
verif_coherence;
|
||||||
@@ -3622,7 +3647,8 @@ begin
|
|||||||
AfficheDebug(s,clred);
|
AfficheDebug(s,clred);
|
||||||
Suivant_alg3:=9999;exit;
|
Suivant_alg3:=9999;exit;
|
||||||
end;
|
end;
|
||||||
if NivDebug=3 then AfficheDebug('Alg3 précédent='+intToSTR(prec)+'/'+intToStr(TypeElprec)+' actuel='+intToSTR(actuel)+'/'+IntToSTR(typeElActuel),clyellow);
|
if NivDebug=3 then
|
||||||
|
AfficheDebug('Alg3 précédent='+intToSTR(prec)+'/'+intToStr(TypeElprec)+' actuel='+intToSTR(actuel)+'/'+IntToSTR(typeElActuel)+' Alg='+intToSTr(alg),clyellow);
|
||||||
// trouver les éléments du précédent
|
// trouver les éléments du précédent
|
||||||
trouve_element(prec,TypeELPrec,1); // branche_trouve IndexBranche_trouve
|
trouve_element(prec,TypeELPrec,1); // branche_trouve IndexBranche_trouve
|
||||||
if IndexBranche_trouve=0 then
|
if IndexBranche_trouve=0 then
|
||||||
@@ -4189,7 +4215,8 @@ function detecteur_suivant(prec : integer;TypeElPrec : integer;actuel : integer;
|
|||||||
var actuelCalc,PrecCalc,j,AdrSuiv ,indexCalc,
|
var actuelCalc,PrecCalc,j,AdrSuiv ,indexCalc,
|
||||||
TypeprecCalc,TypeActuelCalc : integer;
|
TypeprecCalc,TypeActuelCalc : integer;
|
||||||
begin
|
begin
|
||||||
if NivDebug>=2 then AfficheDebug('Proc Detecteur_suivant '+IntToSTR(prec)+','+IntToSTR(typeElPrec)+'/'+intToSTR(actuel)+','+intToSTR(TypeElActuel),clyellow);
|
if NivDebug>=2 then
|
||||||
|
AfficheDebug('Proc Detecteur_suivant '+IntToSTR(prec)+','+IntToSTR(typeElPrec)+'/'+intToSTR(actuel)+','+intToSTR(TypeElActuel)+' Alg='+IntToSTR(algo),clyellow);
|
||||||
j:=0;
|
j:=0;
|
||||||
|
|
||||||
PrecCalc:=prec;
|
PrecCalc:=prec;
|
||||||
@@ -4290,7 +4317,7 @@ end;
|
|||||||
// El1 et El2 peuvent être séparés par des aiguillages, mais de pas plus de 3 détecteurs
|
// El1 et El2 peuvent être séparés par des aiguillages, mais de pas plus de 3 détecteurs
|
||||||
// en sortie : 9999= det1 ou det2 non trouvé
|
// en sortie : 9999= det1 ou det2 non trouvé
|
||||||
// 9996 : non trouvé
|
// 9996 : non trouvé
|
||||||
function detecteur_suivant_El(el1: integer;TypeDet1 : integer;el2 : integer;TypeDet2 : integer) : integer ;
|
function detecteur_suivant_El(el1: integer;TypeDet1 : integer;el2 : integer;TypeDet2,alg : integer) : integer ;
|
||||||
var IndexBranche_det1,IndexBranche_det2,branche_trouve_det1,branche_trouve_det2,i,
|
var IndexBranche_det1,IndexBranche_det2,branche_trouve_det1,branche_trouve_det2,i,
|
||||||
j,AdrPrec,Adr,AdrFonc,TypePrec,TypeFonc,i1,N_det : integer;
|
j,AdrPrec,Adr,AdrFonc,TypePrec,TypeFonc,i1,N_det : integer;
|
||||||
Sortie : boolean;
|
Sortie : boolean;
|
||||||
@@ -4362,7 +4389,7 @@ begin
|
|||||||
repeat
|
repeat
|
||||||
//AfficheDebug('Engage '+IntToSTR(AdrPrec)+','+IntToSTR(typePrec)+'/'+IntToSTR(AdrFonc)+','+IntToSTR(typeFonc),clyellow);
|
//AfficheDebug('Engage '+IntToSTR(AdrPrec)+','+IntToSTR(typePrec)+'/'+IntToSTR(AdrFonc)+','+IntToSTR(typeFonc),clyellow);
|
||||||
if nivDebug=3 then AfficheDebug('i='+IntToSTR(i)+' NDet='+IntToSTR(N_det),clyellow);
|
if nivDebug=3 then AfficheDebug('i='+IntToSTR(i)+' NDet='+IntToSTR(N_det),clyellow);
|
||||||
if (AdrFonc<>0) or (TypeFonc<>0) then Adr:=suivant_alg3(AdrPrec,TypePrec,AdrFonc,TypeFonc,1) else
|
if (AdrFonc<>0) or (TypeFonc<>0) then Adr:=suivant_alg3(AdrPrec,TypePrec,AdrFonc,TypeFonc,alg) else
|
||||||
begin
|
begin
|
||||||
Adr:=9999;
|
Adr:=9999;
|
||||||
end;
|
end;
|
||||||
@@ -4401,7 +4428,7 @@ begin
|
|||||||
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);
|
||||||
Adr:=suivant_alg3(AdrPrec,TypePrec,AdrFonc,TypeFonc,1);
|
Adr:=suivant_alg3(AdrPrec,TypePrec,AdrFonc,TypeFonc,alg);
|
||||||
//AfficheDebug('Sortie Alg3: '+IntToSTR(Adr)+'/'+intToSTR(typeGen),clyellow);
|
//AfficheDebug('Sortie Alg3: '+IntToSTR(Adr)+'/'+intToSTR(typeGen),clyellow);
|
||||||
|
|
||||||
if NivDebug=3 then
|
if NivDebug=3 then
|
||||||
@@ -5006,7 +5033,7 @@ function test_route_valide(det1,det2,det3 : integer) : integer;
|
|||||||
var det_suiv,resultat : integer;
|
var det_suiv,resultat : integer;
|
||||||
begin
|
begin
|
||||||
if TraceListe then AfficheDebug('test route valide '+IntToSTR(det1)+' '+IntToSTR(det2)+' vers '+IntToSTR(det3)+' ',clyellow);
|
if TraceListe then AfficheDebug('test route valide '+IntToSTR(det1)+' '+IntToSTR(det2)+' vers '+IntToSTR(det3)+' ',clyellow);
|
||||||
det_suiv:=detecteur_suivant_el(det1,1,det2,1);
|
det_suiv:=detecteur_suivant_el(det1,1,det2,1,1);
|
||||||
if det_suiv=det3 then begin test_route_valide:=10;exit;end;
|
if det_suiv=det3 then begin test_route_valide:=10;exit;end;
|
||||||
|
|
||||||
test_route_valide:=9999;
|
test_route_valide:=9999;
|
||||||
@@ -5018,7 +5045,7 @@ begin
|
|||||||
begin
|
begin
|
||||||
test_route_valide:=0;exit;
|
test_route_valide:=0;exit;
|
||||||
// si manipulation proche aiguillage
|
// si manipulation proche aiguillage
|
||||||
det_suiv:=detecteur_suivant_el(det3,1,det2,1);
|
det_suiv:=detecteur_suivant_el(det3,1,det2,1,1);
|
||||||
if (det_suiv>=9996) or (det1<>det_suiv) then begin test_route_valide:=0; NivDebug:=0;exit;end;
|
if (det_suiv>=9996) or (det1<>det_suiv) then begin test_route_valide:=0; NivDebug:=0;exit;end;
|
||||||
end;
|
end;
|
||||||
test_route_valide:=10 ;
|
test_route_valide:=10 ;
|
||||||
@@ -5080,15 +5107,15 @@ begin
|
|||||||
if nivdebug=3 then afficheDebug('detPrec1='+intToSTR(DetPrec1),clorange);
|
if nivdebug=3 then afficheDebug('detPrec1='+intToSTR(DetPrec1),clorange);
|
||||||
if DetPrec1<1024 then // route bloquée par aiguillage mal positionné
|
if DetPrec1<1024 then // route bloquée par aiguillage mal positionné
|
||||||
begin
|
begin
|
||||||
if detPrec1<>0 then DetPrec2:=detecteur_suivant_El(det_initial,1,DetPrec1,1) else DetPrec2:=0;
|
if detPrec1<>0 then DetPrec2:=detecteur_suivant_El(det_initial,1,DetPrec1,1,2) else DetPrec2:=0;
|
||||||
if nivdebug=3 then afficheDebug('detPrec2='+intToSTR(DetPrec2),clorange);
|
if nivdebug=3 then afficheDebug('detPrec2='+intToSTR(DetPrec2),clorange);
|
||||||
if DetPrec2<1024 then
|
if DetPrec2<1024 then
|
||||||
begin
|
begin
|
||||||
if detPrec2<>0 then DetPrec3:=detecteur_suivant_El(DetPrec1,1,DetPrec2,1) else DetPrec3:=0;
|
if detPrec2<>0 then DetPrec3:=detecteur_suivant_El(DetPrec1,1,DetPrec2,1,2) else DetPrec3:=0;
|
||||||
if nivdebug=3 then afficheDebug('detPrec3='+intToSTR(DetPrec3),clorange);
|
if nivdebug=3 then afficheDebug('detPrec3='+intToSTR(DetPrec3),clorange);
|
||||||
if DetPrec3<1024 then
|
if DetPrec3<1024 then
|
||||||
begin
|
begin
|
||||||
if detPrec3<>0 then DetPrec4:=detecteur_suivant_El(DetPrec2,1,DetPrec3,1) else DetPrec4:=0;
|
if detPrec3<>0 then DetPrec4:=detecteur_suivant_El(DetPrec2,1,DetPrec3,1,2) else DetPrec4:=0;
|
||||||
if nivdebug=3 then afficheDebug('detPrec4='+intToSTR(DetPrec4),clorange);
|
if nivdebug=3 then afficheDebug('detPrec4='+intToSTR(DetPrec4),clorange);
|
||||||
if DetPrec4<1024 then
|
if DetPrec4<1024 then
|
||||||
begin
|
begin
|
||||||
@@ -5122,7 +5149,7 @@ end;
|
|||||||
|
|
||||||
// mise à jour de l'état d'un feu en fontion de son environnement et affiche le feu
|
// mise à jour de l'état d'un feu en fontion de son environnement et affiche le feu
|
||||||
procedure Maj_Feu(Adrfeu : integer);
|
procedure Maj_Feu(Adrfeu : integer);
|
||||||
var i,Adr_det,etat,Aig,Adr_El_Suiv,
|
var Adr_det,etat,Aig,Adr_El_Suiv,
|
||||||
Btype_el_suivant,modele,index : integer ;
|
Btype_el_suivant,modele,index : integer ;
|
||||||
PresTrain,Aff_semaphore,car : boolean;
|
PresTrain,Aff_semaphore,car : boolean;
|
||||||
code,combine : word;
|
code,combine : word;
|
||||||
@@ -5130,15 +5157,16 @@ var i,Adr_det,etat,Aig,Adr_El_Suiv,
|
|||||||
begin
|
begin
|
||||||
s:='Traitement du feu '+intToSTR(Adrfeu)+'------------------------------------';
|
s:='Traitement du feu '+intToSTR(Adrfeu)+'------------------------------------';
|
||||||
|
|
||||||
|
if signalDebug=AdrFeu then AffSignal:=true;
|
||||||
if AffSignal then AfficheDebug(s,clOrange);
|
if AffSignal then AfficheDebug(s,clOrange);
|
||||||
i:=index_feu(Adrfeu);
|
index:=index_feu(Adrfeu);
|
||||||
if AdrFeu<>0 then
|
if AdrFeu<>0 then
|
||||||
begin
|
begin
|
||||||
modele:=Feux[i].aspect;
|
modele:=Feux[index].aspect;
|
||||||
|
|
||||||
Adr_det:=Feux[i].Adr_det1; // détecteur sur le signal
|
Adr_det:=Feux[index].Adr_det1; // détecteur sur le signal
|
||||||
Adr_El_Suiv:=Feux[i].Adr_el_suiv1; // adresse élément suivant au feu
|
Adr_El_Suiv:=Feux[index].Adr_el_suiv1; // adresse élément suivant au feu
|
||||||
Btype_el_suivant:=Feux[i].Btype_suiv1;
|
Btype_el_suivant:=Feux[index].Btype_suiv1;
|
||||||
|
|
||||||
// signal directionnel ?
|
// signal directionnel ?
|
||||||
if (modele>10) then
|
if (modele>10) then
|
||||||
@@ -5179,7 +5207,7 @@ begin
|
|||||||
}
|
}
|
||||||
|
|
||||||
// signal à 2 feux = carré violet+blanc
|
// signal à 2 feux = carré violet+blanc
|
||||||
if (Feux[i].aspect=2) then //or (feux[i].check<>nil) then // si carré violet
|
if (Feux[index].aspect=2) then //or (feux[i].check<>nil) then // si carré violet
|
||||||
begin
|
begin
|
||||||
//AfficheDebug('Feux à 2 feux',CLOrange);
|
//AfficheDebug('Feux à 2 feux',CLOrange);
|
||||||
// si aiguillage après signal mal positionnées
|
// si aiguillage après signal mal positionnées
|
||||||
@@ -5201,11 +5229,11 @@ begin
|
|||||||
|
|
||||||
//if AffSignal then AfficheDebug('Debut du traitement général',clYellow);
|
//if AffSignal then AfficheDebug('Debut du traitement général',clYellow);
|
||||||
// traitement des feux >3 feux différents de violet (cas général)
|
// traitement des feux >3 feux différents de violet (cas général)
|
||||||
if (Feux[i].aspect>=3) and (EtatSignalCplx[AdrFeu]<>violet_F) then
|
if (Feux[index].aspect>=3) and (EtatSignalCplx[AdrFeu]<>violet_F) then
|
||||||
begin
|
begin
|
||||||
PresTrain:=false;
|
PresTrain:=false;
|
||||||
// détecteurs précédent le feu , pour déterminer si leurs mémoires de zones sont à 1 pour libérer le carré
|
// détecteurs précédent le feu , pour déterminer si leurs mémoires de zones sont à 1 pour libérer le carré
|
||||||
if (Feux[i].VerrouCarre) and (Feux[i].aspect>=4) then presTrain:=PresTrainPrec(AdrFeu);
|
if (Feux[index].VerrouCarre) and (Feux[index].aspect>=4) then presTrain:=PresTrainPrec(AdrFeu);
|
||||||
|
|
||||||
if AffSignal then afficheDebug('Fin de la recherche des 4 détecteurs précédents-----',clOrange);
|
if AffSignal then afficheDebug('Fin de la recherche des 4 détecteurs précédents-----',clOrange);
|
||||||
// si le signal peut afficher un carré et les aiguillages après le signal sont mal positionnées 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 que pas présence train avant signal et signal
|
||||||
@@ -5215,7 +5243,7 @@ begin
|
|||||||
car:=cond_carre(AdrFeu) or car;
|
car:=cond_carre(AdrFeu) 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 (NivDebug>=1) and car then AfficheDebug('le signal a des aiguilles en talon aval mal positionnées',clYellow);
|
if (NivDebug>=1) and car then AfficheDebug('le signal a des aiguilles en talon aval mal positionnées',clYellow);
|
||||||
if (Feux[i].aspect>=4) and ( (not(PresTrain) and Feux[i].VerrouCarre) or car) then Maj_Etat_Signal(AdrFeu,carre)
|
if (Feux[index].aspect>=4) and ( (not(PresTrain) and Feux[index].VerrouCarre) or car) then Maj_Etat_Signal(AdrFeu,carre)
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
// si on quitte le détecteur on affiche un sémaphore : attention tester le sens de circulation
|
// si on quitte le détecteur on affiche un sémaphore : attention tester le sens de circulation
|
||||||
@@ -5232,12 +5260,11 @@ begin
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
// si aiguille locale déviée
|
|
||||||
Aig:=Aiguille_deviee(Adrfeu);
|
Aig:=Aiguille_deviee(Adrfeu);
|
||||||
index:=index_aig(Aig);
|
// si aiguille locale déviée
|
||||||
if (aig<>0) and (feux[i].aspect>=9) then // si le signal peut afficher un rappel et aiguille déviée
|
if (aig<>0) and (feux[index].aspect>=9) then // si le signal peut afficher un rappel et aiguille déviée
|
||||||
begin
|
begin
|
||||||
if AffSignal then AfficheDebug('Aiguille '+intToSTR(aig)+' déviée',clYellow);
|
if AffSignal then AfficheDebug('Aiguille '+intToSTR(AdrFeu)+' déviée',clYellow);
|
||||||
EtatSignalCplx[AdrFeu]:=0;
|
EtatSignalCplx[AdrFeu]:=0;
|
||||||
if (aiguillage[index].vitesse=30) or (aiguillage[index].vitesse=0) then Maj_Etat_Signal(AdrFeu,rappel_30);
|
if (aiguillage[index].vitesse=30) or (aiguillage[index].vitesse=0) then Maj_Etat_Signal(AdrFeu,rappel_30);
|
||||||
if aiguillage[index].vitesse=60 then Maj_Etat_Signal(AdrFeu,rappel_60);
|
if aiguillage[index].vitesse=60 then Maj_Etat_Signal(AdrFeu,rappel_60);
|
||||||
@@ -5275,7 +5302,15 @@ begin
|
|||||||
else
|
else
|
||||||
// si le signal suivant est jaune
|
// si le signal suivant est jaune
|
||||||
if TestBit(etat,jaune) then Maj_Etat_Signal(AdrFeu,jaune_cli)
|
if TestBit(etat,jaune) then Maj_Etat_Signal(AdrFeu,jaune_cli)
|
||||||
else Maj_Etat_Signal(AdrFeu,vert)
|
else
|
||||||
|
begin
|
||||||
|
if feux[index].check<>nil then
|
||||||
|
begin
|
||||||
|
if feux[index].check.Checked then Maj_Etat_Signal(AdrFeu,blanc);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
Maj_Etat_Signal(AdrFeu,vert);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@@ -5283,6 +5318,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
envoi_signauxCplx;
|
envoi_signauxCplx;
|
||||||
|
if signalDebug=AdrFeu then AffSignal:=false;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure Maj_feux;
|
Procedure Maj_feux;
|
||||||
@@ -5381,7 +5417,7 @@ begin
|
|||||||
resultat:=test_route_valide(det1,det2,det3);
|
resultat:=test_route_valide(det1,det2,det3);
|
||||||
if resultat=10 then
|
if resultat=10 then
|
||||||
begin
|
begin
|
||||||
AdrSuiv:=detecteur_suivant_el(det2,1,det3,1); // ici on cherche le suivant à det2 det3
|
AdrSuiv:=detecteur_suivant_el(det2,1,det3,1,1); // ici on cherche le suivant à det2 det3, algo=1
|
||||||
if (Adrsuiv>=9996) then
|
if (Adrsuiv>=9996) then
|
||||||
begin
|
begin
|
||||||
Affiche('Erreur 1500 : pas de suivant sur la route de '+intToSTR(det2)+' à '+intToSTR(det3),clRed);
|
Affiche('Erreur 1500 : pas de suivant sur la route de '+intToSTR(det2)+' à '+intToSTR(det3),clRed);
|
||||||
@@ -5781,12 +5817,9 @@ var s: string;
|
|||||||
faire_event,inv : boolean;
|
faire_event,inv : boolean;
|
||||||
prov,i,index : integer;
|
prov,i,index : integer;
|
||||||
begin
|
begin
|
||||||
// vérifier que l'évènement accessoire vient bien d'un aiguillage et pas d'un feu
|
// vérifier que l'évènement accessoire vient bien d'un aiguillage et pas d'un feu qu'on pilote (et que cdm renvoie)
|
||||||
i:=0;
|
index:=index_aig(adresse);
|
||||||
repeat
|
if index>MaxAiguillage then exit; // non ce n'est pas un aiguillage, on sort
|
||||||
inc(i);
|
|
||||||
until (i>MaxAiguillage) or (i=adresse);
|
|
||||||
if i>MaxAiguillage then exit; // non ce n'est pas un aiguillage, on sort
|
|
||||||
|
|
||||||
// si l'aiguillage est inversé dans CDM et qu'on est en mode autonome, inverser sa position
|
// si l'aiguillage est inversé dans CDM et qu'on est en mode autonome, inverser sa position
|
||||||
inv:=false;
|
inv:=false;
|
||||||
@@ -7081,10 +7114,33 @@ begin
|
|||||||
demande_etat_acc;
|
demande_etat_acc;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// procédure Event appelée si on clique sur un checkbox des images des feux
|
// procédure Event appelée si on clique sur un checkbox de demande de feu blanc des images des feux
|
||||||
|
// non utilisé
|
||||||
procedure TFormprinc.proc_checkBoxFB(Sender : Tobject);
|
procedure TFormprinc.proc_checkBoxFB(Sender : Tobject);
|
||||||
|
var s : string;
|
||||||
|
Cb : TcheckBox;
|
||||||
|
etat,adresse,erreur : integer;
|
||||||
|
i : word;
|
||||||
|
coche : boolean;
|
||||||
begin
|
begin
|
||||||
Maj_feux ; // évalue l'état des signaux
|
Cb:=Sender as TcheckBox;
|
||||||
|
coche:=cb.Checked; // état de la checkbox
|
||||||
|
s:=Cb.Hint;
|
||||||
|
val(s,adresse,erreur); // adresse du signal correspondant au checkbox cliqué
|
||||||
|
if erreur=0 then
|
||||||
|
begin
|
||||||
|
i:=index_feu(adresse);
|
||||||
|
etat:=feux[i].EtatSignal;
|
||||||
|
affiche(IntToSTR(etat),clyellow);
|
||||||
|
// si le feu est vert et que la coche est mise, substituer le blanc
|
||||||
|
if (etat=vert_F) and coche then
|
||||||
|
begin
|
||||||
|
Maj_Etat_Signal(Adresse,blanc);
|
||||||
|
Envoi_signauxCplx;
|
||||||
|
end;
|
||||||
|
// si pas coché, on revient en normal
|
||||||
|
if not(coche) then rafraichit;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
BIN
Binary file not shown.
+3
-6
@@ -2328,14 +2328,11 @@ begin
|
|||||||
AdrSuiv:=BrancheN[IndexMax,i+1].Adresse;
|
AdrSuiv:=BrancheN[IndexMax,i+1].Adresse;
|
||||||
index:=Index_aig(adresse);
|
index:=Index_aig(adresse);
|
||||||
// connecté sur position droite : la pointe est à gauche
|
// connecté sur position droite : la pointe est à gauche
|
||||||
if aiguillage[Index].Adroit=AdrSuiv then
|
if aiguillage[Index].Adroit=AdrSuiv then Bimage:=3; // ou 4
|
||||||
Bimage:=3; // ou 4
|
|
||||||
// connecté sur position déviée : la pointe est à gauche, mais il faut changer de ligne
|
// connecté sur position déviée : la pointe est à gauche, mais il faut changer de ligne
|
||||||
if aiguillage[Index].Adevie=AdrSuiv then
|
if aiguillage[Index].Adevie=AdrSuiv then Bimage:=4; // ou 4
|
||||||
Bimage:=4; // ou 4
|
|
||||||
// connecté sur pointe : la pointe est à droite
|
// connecté sur pointe : la pointe est à droite
|
||||||
if aiguillage[Index].Apointe=AdrSuiv then
|
if aiguillage[Index].Apointe=AdrSuiv then Bimage:=5; // ou 2
|
||||||
Bimage:=5; // ou 2
|
|
||||||
TCO[i,ligne].BImage:=Bimage;
|
TCO[i,ligne].BImage:=Bimage;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|||||||
@@ -59,6 +59,10 @@ version 3.0 : Ajout des fonctions Nouveau / supprimer feu, accessoires dans le
|
|||||||
version 3.1 : Renforcement de la vérification de la configuration.
|
version 3.1 : Renforcement de la vérification de la configuration.
|
||||||
Modification de la liste d'initialisation des aiguillages en mode autonome.
|
Modification de la liste d'initialisation des aiguillages en mode autonome.
|
||||||
Indépendance des modifications entre les onglets du panneau de configuration.
|
Indépendance des modifications entre les onglets du panneau de configuration.
|
||||||
|
Correction d'un bug sur l'affichage des rappels de ralentissement non présentés.
|
||||||
|
Correction d'un bug sur certains évènements aiguillages.
|
||||||
|
Correction d'un bug sur présence train avant signal sur aiguille en talon mal positionnée.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user