This commit is contained in:
f1iwq2
2021-08-02 10:41:27 +02:00
parent effa51ce98
commit ba7be100e6
14 changed files with 1222 additions and 719 deletions

14
README.adoc Normal file
View File

@@ -0,0 +1,14 @@
Signaux_complexes_GL
====================
Client signaux complexes pour CDM rail ou centrales pilotées par XpressNet
en USB ou Ethernet.
Fichiers sources.
== Liens ==
:lien: http://cdmrail.free.fr/ForumCDR/viewtopic.php?f=77&t=3906#p50499
:cdm: http://cdmrail.free.fr/SiteCDR/index.html
* {lien} [Lien vers le fil] -- Forum de CDM rail
* {cdm} [Lin vers CDM rail] -- Site de CDM rail

View File

@@ -1,4 +0,0 @@
# Signaux_complexes_GL
Client signaux complexes pour CDM rail ou centrales LENZ
Fichiers sources et exécutables.
http://cdmrail.free.fr/ForumCDR/viewtopic.php?f=77&t=3906#p50499

Binary file not shown.

View File

@@ -1,13 +1,13 @@
object FormConfig: TFormConfig object FormConfig: TFormConfig
Left = 345 Left = 285
Top = 219 Top = 127
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'
BorderStyle = bsDialog BorderStyle = bsDialog
Caption = 'Configuration g'#233'n'#233'rale' Caption = 'Configuration g'#233'n'#233'rale'
ClientHeight = 501 ClientHeight = 501
ClientWidth = 854 ClientWidth = 902
Color = clBtnFace Color = clBtnFace
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText Font.Color = clWindowText
@@ -21,7 +21,7 @@ object FormConfig: TFormConfig
PixelsPerInch = 96 PixelsPerInch = 96
TextHeight = 13 TextHeight = 13
object LabelInfo: TLabel object LabelInfo: TLabel
Left = 601 Left = 649
Top = 416 Top = 416
Width = 29 Width = 29
Height = 16 Height = 16
@@ -34,7 +34,7 @@ object FormConfig: TFormConfig
ParentFont = False ParentFont = False
end end
object Image1: TImage object Image1: TImage
Left = 600 Left = 648
Top = 128 Top = 128
Width = 249 Width = 249
Height = 177 Height = 177
@@ -944,7 +944,7 @@ object FormConfig: TFormConfig
Stretch = True Stretch = True
end end
object Label11: TLabel object Label11: TLabel
Left = 600 Left = 648
Top = 32 Top = 32
Width = 244 Width = 244
Height = 31 Height = 31
@@ -957,7 +957,7 @@ object FormConfig: TFormConfig
ParentFont = False ParentFont = False
end end
object ImageAig: TImage object ImageAig: TImage
Left = 600 Left = 648
Top = 312 Top = 312
Width = 137 Width = 137
Height = 57 Height = 57
@@ -1229,7 +1229,7 @@ object FormConfig: TFormConfig
Visible = False Visible = False
end end
object ImageTJD: TImage object ImageTJD: TImage
Left = 720 Left = 760
Top = 320 Top = 320
Width = 137 Width = 137
Height = 57 Height = 57
@@ -1365,7 +1365,7 @@ object FormConfig: TFormConfig
Visible = False Visible = False
end end
object ImageTri: TImage object ImageTri: TImage
Left = 600 Left = 648
Top = 336 Top = 336
Width = 145 Width = 145
Height = 65 Height = 65
@@ -1543,7 +1543,7 @@ object FormConfig: TFormConfig
Caption = 'Verrouillable au carr'#233' :' Caption = 'Verrouillable au carr'#233' :'
end end
object Image2: TImage object Image2: TImage
Left = 720 Left = 760
Top = 352 Top = 352
Width = 129 Width = 129
Height = 41 Height = 41
@@ -1773,9 +1773,9 @@ object FormConfig: TFormConfig
object PageControl: TPageControl object PageControl: TPageControl
Left = 8 Left = 8
Top = 8 Top = 8
Width = 585 Width = 633
Height = 457 Height = 457
ActivePage = TabSheetSig ActivePage = TabSheetCDM
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack Font.Color = clBlack
Font.Height = -11 Font.Height = -11
@@ -1787,7 +1787,7 @@ object FormConfig: TFormConfig
object TabSheetCDM: TTabSheet object TabSheetCDM: TTabSheet
Caption = 'CDM Rail' Caption = 'CDM Rail'
object GroupBox1: TGroupBox object GroupBox1: TGroupBox
Left = 8 Left = 16
Top = 8 Top = 8
Width = 273 Width = 273
Height = 81 Height = 81
@@ -1827,7 +1827,7 @@ object FormConfig: TFormConfig
end end
end end
object GroupBox5: TGroupBox object GroupBox5: TGroupBox
Left = 8 Left = 16
Top = 96 Top = 96
Width = 273 Width = 273
Height = 185 Height = 185
@@ -1900,7 +1900,7 @@ object FormConfig: TFormConfig
end end
end end
object GroupBox6: TGroupBox object GroupBox6: TGroupBox
Left = 296 Left = 320
Top = 8 Top = 8
Width = 273 Width = 273
Height = 169 Height = 169
@@ -1980,7 +1980,7 @@ object FormConfig: TFormConfig
end end
end end
object GroupBox7: TGroupBox object GroupBox7: TGroupBox
Left = 296 Left = 320
Top = 184 Top = 184
Width = 273 Width = 273
Height = 137 Height = 137
@@ -2036,7 +2036,7 @@ object FormConfig: TFormConfig
end end
end end
object GroupBox8: TGroupBox object GroupBox8: TGroupBox
Left = 8 Left = 16
Top = 288 Top = 288
Width = 273 Width = 273
Height = 113 Height = 113
@@ -2091,7 +2091,7 @@ object FormConfig: TFormConfig
end end
end end
object GroupBox15: TGroupBox object GroupBox15: TGroupBox
Left = 296 Left = 320
Top = 328 Top = 328
Width = 273 Width = 273
Height = 73 Height = 73
@@ -2120,7 +2120,7 @@ object FormConfig: TFormConfig
object Label9: TLabel object Label9: TLabel
Left = 8 Left = 8
Top = 400 Top = 400
Width = 297 Width = 294
Height = 13 Height = 13
Caption = 'Ces param'#232'tres sont utilis'#233's en fonctionnement sans CDM Rail' Caption = 'Ces param'#232'tres sont utilis'#233's en fonctionnement sans CDM Rail'
WordWrap = True WordWrap = True
@@ -2260,55 +2260,54 @@ object FormConfig: TFormConfig
object Memo1: TMemo object Memo1: TMemo
Left = 312 Left = 312
Top = 8 Top = 8
Width = 257 Width = 297
Height = 97 Height = 97
BevelInner = bvLowered BevelInner = bvLowered
BevelKind = bkFlat BevelKind = bkFlat
BorderStyle = bsNone BorderStyle = bsNone
Lines.Strings = ( Lines.Strings = (
'1. Port COM de l'#39'adresse USB de l'#39'interface ' '1. Port COM de l'#39'adresse USB de l'#39'interface XpressNet.'
'XpressNet.' 'Attention de COM1 '#224' 9 - Si le port de l'#39'interface USB>9, il '
'Attention de COM1 '#224' 9 - Si le port de l'#39'interface ' 'faut le changer manuellement dans le gestionnaire des '
'USB>9, il faut le changer manuellement dans le ' 'p'#233'riph'#233'riques. '
'gestionnaire des p'#233'riph'#233'riques. Mettre 0 si inutilis'#233'e. ' 'Mettre 0 si inutilis'#233'e. Le programme ne tentera pas de se '
'Le programme ne tentera pas de se connecter '#224' la ' 'connecter '#224' la centrale si CDM rail est d'#233'tect'#233'.')
'centrale si CDM rail est d'#233'tect'#233'.')
ReadOnly = True ReadOnly = True
TabOrder = 3 TabOrder = 3
end end
object Memo2: TMemo object Memo2: TMemo
Left = 312 Left = 312
Top = 112 Top = 112
Width = 257 Width = 297
Height = 97 Height = 97
BevelInner = bvLowered BevelInner = bvLowered
BevelKind = bkFlat BevelKind = bkFlat
BorderStyle = bsNone BorderStyle = bsNone
Lines.Strings = ( Lines.Strings = (
'2. Valeur de temporisation entre deux octets ' '2. Valeur de temporisation entre deux octets transf'#233'r'#233's '#224' '
'transf'#233'r'#233's '#224' l'#39'interface. Elle peut '#234'tre nulle. Pour ' 'l'#39'interface. Elle peut '#234'tre nulle. '
'les interfaces s'#233'rie sans protocole (0) comme le ' 'Pour les interfaces s'#233'rie sans protocole (0) comme le '
'GENLI, il est conseill'#233' de la positionner '#224' une ' 'GENLI, il est conseill'#233' de la positionner '#224' une valeur de '
'valeur de l'#39'ordre de 30 (ms). Pour les interfaces avec ' 'l'#39'ordre de 30 (ms). '
'protocole mat'#233'riel RTS-CTS (2) cette ' 'Pour les interfaces avec protocole mat'#233'riel RTS-CTS (2) '
'variable est ignor'#233'e.') 'cette variable est ignor'#233'e.')
ReadOnly = True ReadOnly = True
TabOrder = 4 TabOrder = 4
end end
object Memo3: TMemo object Memo3: TMemo
Left = 312 Left = 312
Top = 216 Top = 216
Width = 257 Width = 297
Height = 89 Height = 89
BevelInner = bvLowered BevelInner = bvLowered
BevelKind = bkFlat BevelKind = bkFlat
BorderStyle = bsNone BorderStyle = bsNone
Lines.Strings = ( Lines.Strings = (
'3. Valeur maximale par tranche de 100 ms qui d'#233'finit ' '3. Valeur maximale par tranche de 100 ms qui d'#233'finit le temps '
'le temps d'#39'attente de la r'#233'ponse de l'#39'interface apr'#232's ' 'd'#39'attente de la r'#233'ponse de l'#39'interface apr'#232's '
'une trame qui lui est transf'#233'r'#233'e. Cette valeur est '#224' ' 'une trame qui lui est transf'#233'r'#233'e. '
'tester en fonction de votre interface. En cas de ' 'Cette valeur est '#224' tester en fonction de votre interface. '
'd'#233'passement de la valeur, un message '#171' pas de ' 'En cas de d'#233'passement de la valeur, un message '#171' pas de '
'r'#233'ponse de l'#39'interface '#187' sera affich'#233'.') 'r'#233'ponse de l'#39'interface '#187' sera affich'#233'.')
ReadOnly = True ReadOnly = True
TabOrder = 5 TabOrder = 5
@@ -2316,17 +2315,17 @@ object FormConfig: TFormConfig
object Memo4: TMemo object Memo4: TMemo
Left = 312 Left = 312
Top = 312 Top = 312
Width = 257 Width = 297
Height = 73 Height = 73
BevelInner = bvLowered BevelInner = bvLowered
BevelKind = bkFlat BevelKind = bkFlat
BorderStyle = bsNone BorderStyle = bsNone
Lines.Strings = ( Lines.Strings = (
'4. Pour l'#39'utilisation d'#39'interfaces s'#233'rie (GENLI), cette ' '4. Pour l'#39'utilisation d'#39'interfaces s'#233'rie (GENLI), cette valeur '
'valeur doit '#234'tre '#224' 0. Pour les interfaces utilisant ' 'doit '#234'tre '#224' 0. Pour les interfaces utilisant nativement de '
'nativement de l'#39'USB, cette valeur doit '#234'tre '#224' 1. La ' 'l'#39'USB, cette valeur doit '#234'tre '#224' 1. '
'valeur 2 est utilis'#233'e exclusivement pour des ' 'La valeur 2 est utilis'#233'e exclusivement pour des interfaces '#224' '
'interfaces '#224' base d'#39'arduino pour xpressnet.') 'base d'#39'arduino pour xpressnet.')
ReadOnly = True ReadOnly = True
TabOrder = 6 TabOrder = 6
end end
@@ -2397,11 +2396,25 @@ 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 = 280 Left = 328
Top = 32 Top = 32
Width = 289 Width = 289
Height = 353 Height = 393
Caption = 'Description de l'#39'aiguillage' Caption = 'Description de l'#39'aiguillage'
TabOrder = 0 TabOrder = 0
object LabelAdresse: TLabel object LabelAdresse: TLabel
@@ -2433,7 +2446,7 @@ object FormConfig: TFormConfig
end end
object GroupBox10: TGroupBox object GroupBox10: TGroupBox
Left = 8 Left = 8
Top = 96 Top = 88
Width = 273 Width = 273
Height = 73 Height = 73
Caption = 'Vitesse de franchissement d'#233'vi'#233' :' Caption = 'Vitesse de franchissement d'#233'vi'#233' :'
@@ -2468,7 +2481,7 @@ object FormConfig: TFormConfig
end end
object CheckInverse: TCheckBox object CheckInverse: TCheckBox
Left = 16 Left = 16
Top = 296 Top = 269
Width = 137 Width = 137
Height = 17 Height = 17
Caption = 'Inversion de l'#39#233'tat CDM' Caption = 'Inversion de l'#39#233'tat CDM'
@@ -2484,7 +2497,7 @@ object FormConfig: TFormConfig
OnChange = EditAdrAigChange OnChange = EditAdrAigChange
end end
object ComboBoxAig: TComboBox object ComboBoxAig: TComboBox
Left = 72 Left = 8
Top = 64 Top = 64
Width = 145 Width = 145
Height = 21 Height = 21
@@ -2500,9 +2513,9 @@ object FormConfig: TFormConfig
end end
object GroupBox16: TGroupBox object GroupBox16: TGroupBox
Left = 8 Left = 8
Top = 176 Top = 168
Width = 273 Width = 273
Height = 105 Height = 97
Caption = 'Repr'#233'sentation' Caption = 'Repr'#233'sentation'
TabOrder = 4 TabOrder = 4
object LabelHG: TLabel object LabelHG: TLabel
@@ -2577,15 +2590,15 @@ object FormConfig: TFormConfig
ParentFont = False ParentFont = False
end end
object LabelTJD1: TLabel object LabelTJD1: TLabel
Left = 72 Left = 96
Top = 84 Top = 76
Width = 52 Width = 52
Height = 13 Height = 13
Caption = 'LabelTJD1' Caption = 'LabelTJD1'
end end
object LabelTJD2: TLabel object LabelTJD2: TLabel
Left = 152 Left = 168
Top = 84 Top = 76
Width = 52 Width = 52
Height = 13 Height = 13
Caption = 'LabelTJD1' Caption = 'LabelTJD1'
@@ -2673,8 +2686,8 @@ object FormConfig: TFormConfig
end end
end end
object ButtonRestaureAig: TButton object ButtonRestaureAig: TButton
Left = 192 Left = 200
Top = 296 Top = 56
Width = 75 Width = 75
Height = 25 Height = 25
Hint = Hint =
@@ -2695,24 +2708,76 @@ object FormConfig: TFormConfig
Visible = False Visible = False
OnChange = EditAigTripleChange OnChange = EditAigTripleChange
end end
object GroupBox21: TGroupBox
Left = 8
Top = 288
Width = 273
Height = 97
Caption = 'Initialisation de l'#39'aiguillage en mode autonome'
TabOrder = 7
object Label37: TLabel
Left = 8
Top = 26
Width = 66
Height = 13
Caption = 'D'#233'vi'#233' ou droit'
end
object Label38: TLabel
Left = 8
Top = 42
Width = 129
Height = 13
Caption = 'Temporisation (1/10'#232'me s)'
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
Left = 152
Top = 40
Width = 41
Height = 21
TabOrder = 1
OnChange = EditTempo10Change
end
object CheckInvInit: TCheckBox
Left = 8
Top = 64
Width = 153
Height = 17
Caption = 'Pilotage invers'#233
TabOrder = 2
OnClick = CheckInvInitClick
end
end
end end
object RichAig: TRichEdit object RichAig: TRichEdit
Left = 0 Left = 0
Top = 56 Top = 72
Width = 265 Width = 233
Height = 337 Height = 353
Color = clBlack Color = clBlack
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
Font.Color = clYellow Font.Color = clYellow
Font.Height = -11 Font.Height = -11
Font.Name = 'MS Sans Serif' Font.Name = 'MS Sans Serif'
Font.Style = [] Font.Style = []
Lines.Strings = (
'RichAig')
ParentFont = False ParentFont = False
ReadOnly = True ReadOnly = True
ScrollBars = ssVertical ScrollBars = ssBoth
TabOrder = 1 TabOrder = 1
WordWrap = False
OnMouseDown = RichAigMouseDown OnMouseDown = RichAigMouseDown
end end
object ButtonNouvAig: TButton object ButtonNouvAig: TButton
@@ -2742,6 +2807,23 @@ 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'
@@ -2756,7 +2838,7 @@ object FormConfig: TFormConfig
'la modifier - Valider la ligne apr'#232's modification' 'la modifier - Valider la ligne apr'#232's modification'
end end
object Label34: TLabel object Label34: TLabel
Left = 408 Left = 472
Top = 192 Top = 192
Width = 136 Width = 136
Height = 26 Height = 26
@@ -2764,7 +2846,7 @@ object FormConfig: TFormConfig
WordWrap = True WordWrap = True
end end
object GroupBox20: TGroupBox object GroupBox20: TGroupBox
Left = 408 Left = 464
Top = 24 Top = 24
Width = 153 Width = 153
Height = 161 Height = 161
@@ -2809,7 +2891,7 @@ object FormConfig: TFormConfig
object RichBranche: TRichEdit object RichBranche: TRichEdit
Left = 0 Left = 0
Top = 24 Top = 24
Width = 401 Width = 457
Height = 401 Height = 401
Color = clBlack Color = clBlack
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
@@ -2822,6 +2904,7 @@ object FormConfig: TFormConfig
ParentFont = False ParentFont = False
ScrollBars = ssBoth ScrollBars = ssBoth
TabOrder = 1 TabOrder = 1
WordWrap = False
OnMouseDown = RichBrancheMouseDown OnMouseDown = RichBrancheMouseDown
end end
end end
@@ -2838,10 +2921,10 @@ object FormConfig: TFormConfig
'z sur une ligne pour afficher la description du signal' 'z sur une ligne pour afficher la description du signal'
end end
object GroupBox12: TGroupBox object GroupBox12: TGroupBox
Left = 288 Left = 336
Top = 40 Top = 40
Width = 281 Width = 281
Height = 353 Height = 385
Caption = 'Description du signal' Caption = 'Description du signal'
TabOrder = 0 TabOrder = 0
object ImageSignal: TImage object ImageSignal: TImage
@@ -2964,10 +3047,11 @@ object FormConfig: TFormConfig
object MemoCarre: TMemo object MemoCarre: TMemo
Left = 8 Left = 8
Top = 280 Top = 280
Width = 241 Width = 265
Height = 65 Height = 89
ScrollBars = ssVertical ScrollBars = ssBoth
TabOrder = 0 TabOrder = 0
WordWrap = False
OnChange = MemoCarreChange OnChange = MemoCarreChange
end end
object ComboBoxDec: TComboBox object ComboBoxDec: TComboBox
@@ -3052,7 +3136,7 @@ object FormConfig: TFormConfig
OnChange = EditSuiv4Change OnChange = EditSuiv4Change
end end
object CheckVerrouCarre: TCheckBox object CheckVerrouCarre: TCheckBox
Left = 104 Left = 120
Top = 224 Top = 224
Width = 145 Width = 145
Height = 17 Height = 17
@@ -3115,8 +3199,8 @@ object FormConfig: TFormConfig
object RichSig: TRichEdit object RichSig: TRichEdit
Left = 0 Left = 0
Top = 56 Top = 56
Width = 273 Width = 329
Height = 337 Height = 369
Color = clBlack Color = clBlack
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
Font.Color = clYellow Font.Color = clYellow
@@ -3173,43 +3257,27 @@ object FormConfig: TFormConfig
'iquez sur une ligne pour afficher la description de l'#39'action' 'iquez sur une ligne pour afficher la description de l'#39'action'
end end
object GroupBox13: TGroupBox object GroupBox13: TGroupBox
Left = 304 Left = 360
Top = 32 Top = 32
Width = 257 Width = 257
Height = 385 Height = 385
Caption = 'Description de l'#39'actionneur ' Caption = 'Description de l'#39'actionneur '
TabOrder = 0 TabOrder = 0
object GroupBoxRadio: TGroupBox object Label40: TLabel
Left = 16 Left = 16
Top = 24 Top = 328
Width = 225 Width = 191
Height = 65 Height = 26
Caption = 'Type d'#39'actionneur ' Caption =
TabOrder = 0 'Les accessoires ne sont utilisables qu'#39'en mode connect'#233' avec CDM' +
object RadioButtonLoc: TRadioButton ' Rail'
Left = 24 WordWrap = True
Top = 24
Width = 193
Height = 17
Caption = 'Fonction F pour locomotive'
TabOrder = 0
OnClick = RadioButtonLocClick
end
object RadioButtonAccess: TRadioButton
Left = 24
Top = 40
Width = 161
Height = 17
Caption = 'Fonction F pour accessoire'
TabOrder = 1
OnClick = RadioButtonAccessClick
end
end end
object GroupBoxPN: TGroupBox object GroupBoxPN: TGroupBox
Left = 32 Left = -32
Top = 80 Top = 24
Width = 225 Width = 225
Height = 193 Height = 289
Caption = 'Actionneurs gestion passage '#224' niveau' Caption = 'Actionneurs gestion passage '#224' niveau'
TabOrder = 2 TabOrder = 2
object Label21: TLabel object Label21: TLabel
@@ -3253,6 +3321,13 @@ object FormConfig: TFormConfig
Width = 137 Width = 137
Height = 2 Height = 2
end end
object Label39: TLabel
Left = 8
Top = 188
Width = 30
Height = 13
Caption = 'Voie 4'
end
object EditAdrFerme: TEdit object EditAdrFerme: TEdit
Left = 120 Left = 120
Top = 24 Top = 24
@@ -3349,19 +3424,61 @@ object FormConfig: TFormConfig
TabOrder = 11 TabOrder = 11
OnChange = EditV3OChange OnChange = EditV3OChange
end end
object EditV4F: TEdit
Left = 64
Top = 184
Width = 41
Height = 21
TabOrder = 12
OnChange = EditV4FChange
end end
object GroupBoxAct: TGroupBox object EditV4O: TEdit
Left = 152
Top = 184
Width = 41
Height = 21
TabOrder = 13
OnChange = EditV4OChange
end
end
object GroupBoxRadio: TGroupBox
Left = 16 Left = 16
Top = 72 Top = 72
Width = 225 Width = 225
Height = 249 Height = 65
Caption = 'Type d'#39'actionneur '
TabOrder = 0
object RadioButtonLoc: TRadioButton
Left = 24
Top = 24
Width = 193
Height = 17
Caption = 'Fonction F pour locomotive'
TabOrder = 0
OnClick = RadioButtonLocClick
end
object RadioButtonAccess: TRadioButton
Left = 24
Top = 40
Width = 161
Height = 17
Caption = 'Fonction F pour accessoire'
TabOrder = 1
OnClick = RadioButtonAccessClick
end
end
object GroupBoxAct: TGroupBox
Left = 16
Top = 104
Width = 225
Height = 225
Caption = 'Actionneur fonction de locomotive ' Caption = 'Actionneur fonction de locomotive '
TabOrder = 1 TabOrder = 1
object GroupBox18: TGroupBox object GroupBox18: TGroupBox
Left = 8 Left = 8
Top = 24 Top = 24
Width = 209 Width = 209
Height = 97 Height = 81
Caption = 'D'#233'clencheur ' Caption = 'D'#233'clencheur '
TabOrder = 0 TabOrder = 0
object LabelActionneur: TLabel object LabelActionneur: TLabel
@@ -3417,13 +3534,13 @@ object FormConfig: TFormConfig
end end
object GroupBox19: TGroupBox object GroupBox19: TGroupBox
Left = 8 Left = 8
Top = 128 Top = 112
Width = 209 Width = 209
Height = 105 Height = 105
Caption = 'Action ' Caption = 'Action '
TabOrder = 1 TabOrder = 1
object LabelTempo: TLabel object LabelTempo: TLabel
Left = 40 Left = 48
Top = 52 Top = 52
Width = 55 Width = 55
Height = 13 Height = 13
@@ -3447,8 +3564,8 @@ object FormConfig: TFormConfig
Caption = #224 Caption = #224
end end
object EditTempo: TEdit object EditTempo: TEdit
Left = 128 Left = 112
Top = 45 Top = 46
Width = 33 Width = 33
Height = 21 Height = 21
TabOrder = 0 TabOrder = 0
@@ -3456,7 +3573,7 @@ object FormConfig: TFormConfig
end end
object CheckRAZ: TCheckBox object CheckRAZ: TCheckBox
Left = 32 Left = 32
Top = 72 Top = 80
Width = 145 Width = 145
Height = 17 Height = 17
Caption = 'Remise '#224' 0 apr'#232's pilotage' Caption = 'Remise '#224' 0 apr'#232's pilotage'
@@ -3465,7 +3582,7 @@ object FormConfig: TFormConfig
end end
object EditFonctionAccess: TEdit object EditFonctionAccess: TEdit
Left = 112 Left = 112
Top = 15 Top = 18
Width = 25 Width = 25
Height = 21 Height = 21
Hint = 'Num'#233'ro de fonction du d'#233'codeur du train' Hint = 'Num'#233'ro de fonction du d'#233'codeur du train'
@@ -3476,7 +3593,7 @@ object FormConfig: TFormConfig
end end
object EditEtatFoncSortie: TEdit object EditEtatFoncSortie: TEdit
Left = 160 Left = 160
Top = 15 Top = 18
Width = 25 Width = 25
Height = 21 Height = 21
TabOrder = 3 TabOrder = 3
@@ -3488,7 +3605,7 @@ object FormConfig: TFormConfig
object GroupBox14: TGroupBox object GroupBox14: TGroupBox
Left = 0 Left = 0
Top = 32 Top = 32
Width = 297 Width = 345
Height = 185 Height = 185
Caption = 'Actionneurs locomotives ou accessoires' Caption = 'Actionneurs locomotives ou accessoires'
TabOrder = 1 TabOrder = 1
@@ -3516,7 +3633,7 @@ object FormConfig: TFormConfig
object RichAct: TRichEdit object RichAct: TRichEdit
Left = 8 Left = 8
Top = 48 Top = 48
Width = 281 Width = 329
Height = 129 Height = 129
Color = clBlack Color = clBlack
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
@@ -3526,16 +3643,17 @@ object FormConfig: TFormConfig
Font.Style = [] Font.Style = []
ParentFont = False ParentFont = False
ReadOnly = True ReadOnly = True
ScrollBars = ssVertical ScrollBars = ssBoth
TabOrder = 2 TabOrder = 2
WordWrap = False
OnMouseDown = RichActMouseDown OnMouseDown = RichActMouseDown
end end
end end
object GroupBox17: TGroupBox object GroupBox17: TGroupBox
Left = 0 Left = 0
Top = 232 Top = 232
Width = 297 Width = 345
Height = 185 Height = 193
Caption = 'Actionneurs passage '#224' niveau' Caption = 'Actionneurs passage '#224' niveau'
TabOrder = 2 TabOrder = 2
object ButtonNouvPN: TButton object ButtonNouvPN: TButton
@@ -3562,8 +3680,8 @@ object FormConfig: TFormConfig
object RichPN: TRichEdit object RichPN: TRichEdit
Left = 8 Left = 8
Top = 48 Top = 48
Width = 281 Width = 329
Height = 129 Height = 137
Color = clBlack Color = clBlack
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
Font.Color = clYellow Font.Color = clYellow
@@ -3572,8 +3690,9 @@ object FormConfig: TFormConfig
Font.Style = [] Font.Style = []
ParentFont = False ParentFont = False
ReadOnly = True ReadOnly = True
ScrollBars = ssVertical ScrollBars = ssBoth
TabOrder = 2 TabOrder = 2
WordWrap = False
OnMouseDown = RichPNMouseDown OnMouseDown = RichPNMouseDown
end end
end end

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

View File

@@ -1,6 +1,6 @@
object FormPrinc: TFormPrinc object FormPrinc: TFormPrinc
Left = 58 Left = 55
Top = 217 Top = 177
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'
@@ -1434,6 +1434,7 @@ object FormPrinc: TFormPrinc
ReadOnly = True ReadOnly = True
ScrollBars = ssBoth ScrollBars = ssBoth
TabOrder = 7 TabOrder = 7
WordWrap = False
OnChange = FenRichChange OnChange = FenRichChange
end end
object GroupBox2: TGroupBox object GroupBox2: TGroupBox
@@ -1600,6 +1601,7 @@ object FormPrinc: TFormPrinc
end end
object Vrifierlacohrence: TMenuItem object Vrifierlacohrence: TMenuItem
Caption = 'V'#233'rifier la coh'#233'rence' Caption = 'V'#233'rifier la coh'#233'rence'
Hint = 'V'#233'rifie la coh'#233'rence de la configuration'
OnClick = VrifierlacohrenceClick OnClick = VrifierlacohrenceClick
end end
object N8: TMenuItem object N8: TMenuItem

View File

@@ -208,6 +208,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
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
@@ -268,7 +269,7 @@ TFeu = record
posAig : char; posAig : char;
end; end;
CondCarre : array[1..6] of array of record // conditions supplémentaires d'aiguillages en position pour le carré CondCarre : array[1..6] of array of record // conditions supplémentaires d'aiguillages en position pour le carré
// attention les données sont stockée en adresse 1 du tableau dynamique // attention les données sont stockées en adresse 1 du tableau dynamique
Adresse : integer; // aiguillage Adresse : integer; // aiguillage
posAig : char; posAig : char;
end; end;
@@ -1261,6 +1262,7 @@ var TypeFeu : integer;
const espY = 15;//40; // espacement Y entre deux lignes de feux 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;
Feux[rang].Img:=Timage.create(Formprinc.ScrollBox1); Feux[rang].Img:=Timage.create(Formprinc.ScrollBox1);
with Feux[rang].Img do with Feux[rang].Img do
begin begin
@@ -2294,7 +2296,6 @@ var
combine,aspect,code : word; combine,aspect,code : word;
s : string; s : string;
begin begin
code:=etatsignalcplx[adresse];
if (ancien_tablo_signalCplx[adresse]<>EtatSignalCplx[adresse]) then //; && (stop_cmd==FALSE)) if (ancien_tablo_signalCplx[adresse]<>EtatSignalCplx[adresse]) then //; && (stop_cmd==FALSE))
begin begin
ancien_tablo_signalCplx[adresse]:=EtatSignalCplx[adresse]; ancien_tablo_signalCplx[adresse]:=EtatSignalCplx[adresse];
@@ -2430,7 +2431,6 @@ begin
if TCO[x,y].Bimage=30 then if TCO[x,y].Bimage=30 then
begin begin
adresse:=TCO[x,y].adresse; // vérifie si le feu existe dans le TCO adresse:=TCO[x,y].adresse; // vérifie si le feu existe dans le TCO
a:=EtatsignalCplx[adresse]; // a = état binaire du feu
aspect:=TCO[x,y].aspect; aspect:=TCO[x,y].aspect;
case aspect of case aspect of
2 : ImageFeu:=Formprinc.Image2feux; 2 : ImageFeu:=Formprinc.Image2feux;
@@ -2563,7 +2563,6 @@ procedure trouve_detecteur(detecteur : integer);
var NBranche,i : integer; var NBranche,i : integer;
begin begin
Nbranche:=1; Nbranche:=1;
i:=1;
repeat repeat
i:=index_detecteur(detecteur,Nbranche); i:=index_detecteur(detecteur,Nbranche);
if i=0 then inc(NBranche); if i=0 then inc(NBranche);
@@ -2579,7 +2578,6 @@ procedure trouve_aiguillage(adresse : integer);
var NBranche,i : integer; var NBranche,i : integer;
begin begin
Nbranche:=1; Nbranche:=1;
i:=1;
repeat repeat
i:=index_aiguillage(Adresse,Nbranche); i:=index_aiguillage(Adresse,Nbranche);
if i=0 then inc(NBranche); if i=0 then inc(NBranche);
@@ -2637,7 +2635,6 @@ var s,sa,chaine,SOrigine: string;
if esp<>0 then delete(s,esp,1); if esp<>0 then delete(s,esp,1);
until esp=0; until esp=0;
lit_ligne:=s; lit_ligne:=s;
//Affiche(s,clWhite);
end; end;
procedure compile_section_init; procedure compile_section_init;
@@ -2650,14 +2647,16 @@ var s,sa,chaine,SOrigine: string;
if j>1 then if j>1 then
begin begin
begin begin
adresse:=StrToINT(copy(s,1,j-1));Delete(s,1,j); // adresse aiguillage Val(s,adresse,erreur);
Delete(s,1,j); // adresse aiguillage
if (adresse>0) and (AvecInitAiguillages) then if (adresse>0) and (AvecInitAiguillages) then
begin begin
j:=pos(',',s); j:=pos(',',s);
position:=StrToInt(copy(s,1,j-1));Delete(S,1,j);// position aiguillage Val(s,position,erreur);
Delete(S,1,j);// position aiguillage
if (position<1) or (position>2) then position:=1; if (position<1) or (position>2) then position:=1;
index:=Index_Aig(adresse); index:=Index_Aig(adresse);
aiguillage[index].position:=position; aiguillage[index].posInit:=position;
// temporisation aiguillage // temporisation aiguillage
j:=pos(',',s);if j=0 then j:=length(s); j:=pos(',',s);if j=0 then j:=length(s);
@@ -2704,6 +2703,7 @@ begin
Aiguillage[i].modele:=0 ; // sans existence Aiguillage[i].modele:=0 ; // sans existence
Aiguillage[i].adresse:=0; Aiguillage[i].adresse:=0;
Aiguillage[i].position:=const_inconnu; // position inconnue Aiguillage[i].position:=const_inconnu; // position inconnue
Aiguillage[i].PosInit:=const_inconnu; // position inconnue
Aiguillage[i].temps:=5 ; Aiguillage[i].temps:=5 ;
Aiguillage[i].inversion:=0; Aiguillage[i].inversion:=0;
Aiguillage[i].inversionCDM:=0; Aiguillage[i].inversionCDM:=0;
@@ -2715,7 +2715,6 @@ begin
Ancien_detecteur[i]:=false; Ancien_detecteur[i]:=false;
end; end;
Affiche('lecture du fichier de configuration config.cfg',clyellow); Affiche('lecture du fichier de configuration config.cfg',clyellow);
{$I+} {$I+}
try try
@@ -3367,6 +3366,7 @@ begin
AvecInitAiguillages:=s='1'; AvecInitAiguillages:=s='1';
end; end;
// taille de la fenetre
sa:=uppercase(fenetre_ch)+'='; sa:=uppercase(fenetre_ch)+'=';
i:=pos(sa,s); i:=pos(sa,s);
if i<>0 then if i<>0 then
@@ -3378,6 +3378,7 @@ begin
if fenetre=1 then Formprinc.windowState:=wsMaximized; if fenetre=1 then Formprinc.windowState:=wsMaximized;
end; end;
// temporisation aiguillages
sa:=uppercase(Tempo_Aig_ch)+'='; sa:=uppercase(Tempo_Aig_ch)+'=';
i:=pos(sa,s); i:=pos(sa,s);
if i<>0 then if i<>0 then
@@ -3388,7 +3389,6 @@ begin
val(s,Tempo_Aig,erreur); val(s,Tempo_Aig,erreur);
end; end;
i:=pos(uppercase(section_init),s); i:=pos(uppercase(section_init),s);
if i<>0 then if i<>0 then
begin begin
@@ -3418,7 +3418,6 @@ begin
delete(s,i,length(sa)); delete(s,i,length(sa));
trouve_NOTIF_VERSION:=true; trouve_NOTIF_VERSION:=true;
// vérification de la version au démarrage // vérification de la version au démarrage
i:=0;
val(s,i,erreur); val(s,i,erreur);
notificationVersion:=i=1; notificationVersion:=i=1;
end; end;
@@ -3431,7 +3430,6 @@ begin
delete(s,i,length(sa)); delete(s,i,length(sa));
trouve_TCO:=true; trouve_TCO:=true;
// vérification de la version au démarrage // vérification de la version au démarrage
i:=0;
val(s,i,erreur); val(s,i,erreur);
AvecTCO:=i=1; AvecTCO:=i=1;
end; end;
@@ -3444,7 +3442,6 @@ begin
trouve_CDM:=true; trouve_CDM:=true;
delete(s,i,length(sa)); delete(s,i,length(sa));
// vérification de la version au démarrage // vérification de la version au démarrage
i:=0;
val(s,i,erreur); val(s,i,erreur);
LanceCDM:=i=1; LanceCDM:=i=1;
end; end;
@@ -3466,7 +3463,6 @@ begin
inc(nv); inc(nv);
trouve_serveur_interface:=true; trouve_serveur_interface:=true;
delete(s,i,length(sa)); delete(s,i,length(sa));
i:=0;
val(s,i,erreur); val(s,i,erreur);
ServeurInterfaceCDM:=i; ServeurInterfaceCDM:=i;
end; end;
@@ -3478,7 +3474,6 @@ begin
inc(nv); inc(nv);
trouve_retro:=true; trouve_retro:=true;
delete(s,i,length(sa)); delete(s,i,length(sa));
i:=0;
val(s,i,erreur); val(s,i,erreur);
ServeurRetroCDM:=i; ServeurRetroCDM:=i;
end; end;
@@ -3490,7 +3485,6 @@ begin
inc(nv); inc(nv);
trouve_NbDetDist:=true; trouve_NbDetDist:=true;
delete(s,i,length(sa)); delete(s,i,length(sa));
i:=0;
val(s,i,erreur); val(s,i,erreur);
if i<2 then begin i:=2;Affiche('Attention '+nb_det_dist_ch+' ramené à '+IntToSTR(i),clOrange); end; if i<2 then begin i:=2;Affiche('Attention '+nb_det_dist_ch+' ramené à '+IntToSTR(i),clOrange); end;
Nb_Det_Dist:=i; Nb_Det_Dist:=i;
@@ -4449,6 +4443,7 @@ end;
// renvoie vrai si les aiguillages déclarés dans la définition du signal sont mal positionnés // renvoie vrai si les aiguillages déclarés dans la définition du signal sont mal positionnés
// (conditions suppplémentares)
function cond_carre(adresse : integer) : boolean; function cond_carre(adresse : integer) : boolean;
var i,l,k,NCondCarre,adrAig,index : integer; var i,l,k,NCondCarre,adrAig,index : integer;
resultatET,resultatOU: boolean; resultatET,resultatOU: boolean;
@@ -4469,10 +4464,13 @@ begin
//s2:=s2+'A'+IntToSTR(feux[i].condcarre[l][k].Adresse)+feux[i].condcarre[l][k].PosAig+' '; //s2:=s2+'A'+IntToSTR(feux[i].condcarre[l][k].Adresse)+feux[i].condcarre[l][k].PosAig+' ';
AdrAig:=feux[i].condcarre[l][k].Adresse; AdrAig:=feux[i].condcarre[l][k].Adresse;
index:=index_aig(adrAig); index:=index_aig(adrAig);
if index<>0 then
begin
if nivDebug=3 then AfficheDebug('Contrôle aiguillage '+IntToSTR(AdrAig),clyellow); if nivDebug=3 then AfficheDebug('Contrôle aiguillage '+IntToSTR(AdrAig),clyellow);
resultatET:=((aiguillage[index].position=const_devie) and (feux[i].condcarre[l][k].PosAig='S') or (aiguillage[index].position=const_droit) and (feux[i].condcarre[l][k].PosAig='D')) resultatET:=((aiguillage[index].position=const_devie) and (feux[i].condcarre[l][k].PosAig='S') or (aiguillage[index].position=const_droit) and (feux[i].condcarre[l][k].PosAig='D'))
and resultatET; and resultatET;
end; end;
end;
//if resultatET then Affiche('VRAI',clyellow) else affiche('FAUX',clred); //if resultatET then Affiche('VRAI',clyellow) else affiche('FAUX',clred);
inc(l); inc(l);
resultatOU:=resultatOU or resultatET; resultatOU:=resultatOU or resultatET;
@@ -6269,7 +6267,7 @@ begin
j:=posEx(',',PortCom,j+1); j:=posEx(',',PortCom,j+1);
j:=posEx(',',PortCom,j+1); j:=posEx(',',PortCom,j+1);
confStCom:=copy(portCom,i+1,j-i-1); //Affiche(ConfStCom,clred); confStCom:=copy(portCom,i+1,j-i-1);
Settings:=ConfStCom; // COMx:vitesse,n,8,1 Settings:=ConfStCom; // COMx:vitesse,n,8,1
Affiche('Demande ouverture COM'+intToSTR(NumPort)+':'+ConfStCom+' protocole '+IntToSTR(protocole),CLYellow); Affiche('Demande ouverture COM'+intToSTR(NumPort)+':'+ConfStCom+' protocole '+IntToSTR(protocole),CLYellow);
if protocole>=4 then Handshaking:=0 {0=aucun 1=Xon-Xoff 2=cts 3=RTS-Xon-Xoff 4=5=protocoles "maison"} if protocole>=4 then Handshaking:=0 {0=aucun 1=Xon-Xoff 2=cts 3=RTS-Xon-Xoff 4=5=protocoles "maison"}
@@ -6786,7 +6784,7 @@ begin
index:=index_aig(i); index:=index_aig(i);
if aiguillage[index].modele<>0 then // si l'aiguillage existe if aiguillage[index].modele<>0 then // si l'aiguillage existe
begin begin
pos:=aiguillage[index].position; pos:=aiguillage[index].posInit;
s:='Init aiguillage '+intToSTR(i)+'='+intToSTR(pos); s:='Init aiguillage '+intToSTR(i)+'='+intToSTR(pos);
if pos=1 then s:=s+' (dévié)' else s:=s+' (droit)'; if pos=1 then s:=s+' (dévié)' else s:=s+' (droit)';
Affiche(s,cyan); Affiche(s,cyan);
@@ -7139,7 +7137,7 @@ procedure TFormPrinc.MenuConnecterEthernetClick(Sender: TObject);
begin begin
if AdresseIP<>'0' then if AdresseIP<>'0' then
begin begin
Affiche('Demande de connexion de l''interface Lenz en ethernet '+AdresseIP+':'+IntToSTR(Port),clyellow); Affiche('Demande de connexion de l''interface XpressNet en ethernet sur '+AdresseIP+':'+IntToSTR(Port),clyellow);
ClientSocketLenz.port:=port; ClientSocketLenz.port:=port;
ClientSocketLenz.Address:=AdresseIP; ClientSocketLenz.Address:=AdresseIP;
ClientSocketLenz.Open; ClientSocketLenz.Open;
@@ -7422,7 +7420,6 @@ begin
// Tempo_chgt_feux:=10; // demander la mise à jour des feux // Tempo_chgt_feux:=10; // demander la mise à jour des feux
end; end;
// évènement détecteur // évènement détecteur
posDT:=pos('CMDACC-ST_DT',commandeCDM); posDT:=pos('CMDACC-ST_DT',commandeCDM);
if posDT<>0 then if posDT<>0 then
@@ -7593,9 +7590,8 @@ begin
ConnecterCDMRail.enabled:=true; ConnecterCDMRail.enabled:=true;
end; end;
procedure TFormPrinc.Codificationdesfeux1Click(Sender: TObject); procedure TFormPrinc.Codificationdesfeux1Click(Sender: TObject);
var i,j,k,l,CondCarre,NfeuxDir : integer; var i,j,k,l,CondCarre,NfeuxDir,nc : integer;
s,s2 : string; s,s2 : string;
begin begin
Affiche('Codification interne des feux',Cyan); Affiche('Codification interne des feux',Cyan);
@@ -7612,31 +7608,29 @@ begin
s:=s+' Det='+IntToSTR(feux[i].Adr_det1); s:=s+' Det='+IntToSTR(feux[i].Adr_det1);
s:=s+' El_Suiv1='+IntToSTR(feux[i].Adr_el_suiv1)+' Type suiv1='+intToSTR(feux[i].Btype_suiv1); s:=s+' El_Suiv1='+IntToSTR(feux[i].Adr_el_suiv1)+' Type suiv1='+intToSTR(feux[i].Btype_suiv1);
case feux[i].Btype_suiv1 of case feux[i].Btype_suiv1 of
1 : s:=s+' (détecteur)'; 1 : s:=s+' (détecteur) ';
2 : s:=s+' (aiguillage ou TJD-S)'; 2 : s:=s+' (aiguillage ou TJD-S) ';
4 : s:=s+' (aiguillage triple)'; 4 : s:=s+' (aiguillage triple) ';
5 : s:=s+' (aiguillage bis)'; 5 : s:=s+' (aiguillage bis) ';
end; end;
if feux[i].decodeur=6 then if feux[i].decodeur=6 then
s:=s+' Cible unisemaf='+intToSTR(feux[i].Unisemaf); s:=s+'Cible unisemaf= '+intToSTR(feux[i].Unisemaf);
// conditions sur carré // conditions sur carré
CondCarre:=Length(feux[i].condcarre[1]);
l:=1; l:=1;
s2:=''; repeat
while condCarre<>0 do nc:=Length(feux[i].condcarre[l])-1 ;
if (nc>0) and (l=1) then begin Affiche(s,clYellow);s:='';end; // pour afficher sur 2 lignes
for k:=1 to nc do
begin begin
if condcarre<>0 then dec(condcarre); s:=s+'A'+IntToSTR(feux[i].condcarre[l][k].Adresse)+feux[i].condcarre[l][k].PosAig;
for k:=1 to condCarre do if k<nc then s:=s+',';
begin
s2:=s2+'A'+IntToSTR(feux[i].condcarre[l][k].Adresse)+feux[i].condcarre[l][k].PosAig+' ';
end; end;
s2:=s2+'/';
inc(l); inc(l);
CondCarre:=Length(feux[i].condcarre[l]); if nc>0 then s:=s+'/';
end; until (nc<=0) or (l>6);
end end
else else
// feu directionnel // feu directionnel
begin begin
@@ -7981,7 +7975,7 @@ begin
Tformconfig.create(nil); Tformconfig.create(nil);
formconfig.PageControl.ActivePage:=formconfig.TabSheetSig; formconfig.PageControl.ActivePage:=formconfig.TabSheetSig;
//Affiche(intToSTR(index),clOrange); //Affiche(intToSTR(index),clOrange);
lignecliquee:=index-1; ligneClicSig:=index-1;
formconfig.showmodal; formconfig.showmodal;
formconfig.close; formconfig.close;
end; end;

Binary file not shown.

Binary file not shown.

View File

@@ -1,28 +1,31 @@
object FormVersion: TFormVersion object FormVersion: TFormVersion
Left = 497 Left = 197
Top = 186 Top = 230
Width = 468 BorderIcons = []
Height = 194 BorderStyle = bsDialog
Caption = 'V'#233'rification de version' Caption = 'V'#233'rification de version'
Color = clBtnFace ClientHeight = 213
ClientWidth = 644
Color = clNavy
Font.Charset = ANSI_CHARSET Font.Charset = ANSI_CHARSET
Font.Color = clBlack Font.Color = clBlack
Font.Height = -16 Font.Height = -16
Font.Name = 'Arial Narrow' Font.Name = 'Arial Narrow'
Font.Style = [] Font.Style = []
OldCreateOrder = False OldCreateOrder = False
Position = poScreenCenter
OnCreate = FormCreate OnCreate = FormCreate
PixelsPerInch = 96 PixelsPerInch = 96
TextHeight = 20 TextHeight = 20
object Memo1: TMemo object Memo1: TMemo
Left = 16 Left = 0
Top = 32 Top = 0
Width = 425 Width = 641
Height = 105 Height = 209
BorderStyle = bsNone
Color = clNavy
Font.Charset = ANSI_CHARSET Font.Charset = ANSI_CHARSET
Font.Color = clBlack Font.Color = clYellow
Font.Height = -13 Font.Height = -19
Font.Name = 'Arial Narrow' Font.Name = 'Arial Narrow'
Font.Style = [] Font.Style = []
ParentFont = False ParentFont = False

View File

@@ -4,7 +4,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; Dialogs, StdCtrls , ComCtrls ,WinInet, ExtCtrls , StrUtils;
type type
TFormVersion = class(TForm) TFormVersion = class(TForm)
@@ -23,7 +23,7 @@ var
Lance_verif : integer; Lance_verif : integer;
verifVersion,notificationVersion : boolean; verifVersion,notificationVersion : boolean;
Const Version='3.0'; // sert à la comparaison de la version publiée Const Version='3.1'; // sert à la comparaison de la version publiée
implementation implementation
@@ -100,10 +100,11 @@ end;
procedure verifie_version; procedure verifie_version;
var s,s2,s3,Version_p,Url,LocalFile : string; var s,s2,s3,Version_p,Url,LocalFile : string;
trouve_version,trouve_zip : boolean; trouve_version,trouve_zip,zone_comm : boolean;
fichier : text; fichier : text;
i,j,erreur : integer; i,j,erreur,Ncomm,i2,i3 : integer;
V_publie,V_utile : real; V_publie,V_utile : real;
comm : array[1..10] of string;
begin begin
//Affiche('vérifie version',clLime); //Affiche('vérifie version',clLime);
if not(AvecInit) then exit ; if not(AvecInit) then exit ;
@@ -112,6 +113,8 @@ begin
LocalFile:='page.txt'; LocalFile:='page.txt';
trouve_version:=false; trouve_version:=false;
trouve_zip:=false; trouve_zip:=false;
zone_comm:=false;
Ncomm:=0;
if DownloadURL_NOCache(Url,localFile) then if DownloadURL_NOCache(Url,localFile) then
begin begin
AssignFile(fichier,LocalFile); AssignFile(fichier,LocalFile);
@@ -124,18 +127,43 @@ begin
begin begin
i:=pos('version ',s); i:=pos('version ',s);
trouve_version:=i<>0; trouve_version:=i<>0;
if trouve_version then s2:=s; if trouve_version then begin s2:=s;zone_comm:=true;end;
end; end;
if not(trouve_zip) then if not(trouve_zip) then
begin begin
i:=pos('.zip',s); i:=pos('.zip',s);
trouve_zip:=i<>0; trouve_zip:=i<>0;
if trouve_zip then if trouve_zip then begin s3:=s;zone_comm:=false;end;
s3:=s; end;
// commentaire en gras
if zone_comm then
begin
i:=pos('bold">',s)+6;i2:=posEx('<br />',s,i+1);
if i<>6 then
begin
inc(ncomm);
comm[ncomm]:=UTF8Decode(copy(s,i,i2-i));
Delete(s,1,i2-1);
j:=0;
repeat
i:=pos('<br />',s)+6;i3:=posEx('</span>',s,i+1);i2:=posEx('<br />',s,i+1);
inc(ncomm);
if i2<i3 then
begin
comm[ncomm]:=UTF8Decode(copy(s,i,i2-i));Delete(s,1,i2-1);
end
else
begin
comm[ncomm]:=UTF8Decode(copy(s,i,i3-i));Delete(s,1,i3-1);
end;
inc(j);
until (i3<i2) or (ncomm=10) or (j=20);
zone_comm:=false;
end;
end; end;
// Aff(s)
end; end;
closefile(fichier); closefile(fichier);
if trouve_version and trouve_zip then if trouve_version and trouve_zip then
begin begin
// isoler le champ version // isoler le champ version
@@ -151,7 +179,6 @@ begin
i:=pos('.',s3); i:=pos('.',s3);
if i<>0 then delete(s3,i,1); // supprimer le . if i<>0 then delete(s3,i,1); // supprimer le .
s3:='http://cdmrail.free.fr/ForumCDR'+s3 ; s3:='http://cdmrail.free.fr/ForumCDR'+s3 ;
aff(s3); // lien dans s3
// changer le . en , // changer le . en ,
s:=Version_p; s:=Version_p;
@@ -164,9 +191,17 @@ begin
if V_utile<V_publie then if V_utile<V_publie then
begin begin
FormVersion.Top:=1;
FormVersion.Left:=1;
FormVersion.show; FormVersion.show;
//aff(s3); // url dans s3
s:='Vous utilisez la version '+version+' mais il existe la version '+Version_p; s:='Vous utilisez la version '+version+' mais il existe la version '+Version_p;
Aff(s); if ncomm>0 then
begin
Aff('Nouveautés de la V'+version_p+' de Signaux_Complexes_GL :');
Aff(' ');
for i:=1 to ncomm do aff(comm[i]);
end;
if MessageDlg(s+'. Voulez-vous la télécharger?',mtConfirmation,[mbYes,mbNo],0)=mrYes then if MessageDlg(s+'. Voulez-vous la télécharger?',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

View File

@@ -56,6 +56,9 @@ version 3.0 : Ajout des fonctions Nouveau / supprimer feu, accessoires dans le
Tous les éléments des feux, aiguillages, branches et actionneurs peuvent être modifiés depuis le panneau. Tous les éléments des feux, aiguillages, branches et actionneurs peuvent être modifiés depuis le panneau.
Nécessite de nommer les sections dans le fichier config.cfg Nécessite de nommer les sections dans le fichier config.cfg
Il n'est donc plus nécessaire de modifier les fichiers de configuration. Il n'est donc plus nécessaire de modifier les fichiers de configuration.
version 3.1 : Renforcement de la vérification de la configuration.
Modification de la liste d'initialisation des aiguillages en mode autonome.
Indépendance des modifications entre les onglets du panneau de configuration.