This commit is contained in:
f1iwq2
2020-04-17 15:59:50 +02:00
parent 8f2e8119a6
commit ce096cfcb7
20 changed files with 3164 additions and 1717 deletions

Binary file not shown.

View File

@@ -2,7 +2,7 @@ object FormConfig: TFormConfig
Left = 316 Left = 316
Top = 238 Top = 238
Width = 598 Width = 598
Height = 340 Height = 382
Caption = 'Configuration g'#233'n'#233'rale' Caption = 'Configuration g'#233'n'#233'rale'
Color = clBtnFace Color = clBtnFace
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
@@ -16,7 +16,7 @@ object FormConfig: TFormConfig
TextHeight = 13 TextHeight = 13
object Label6: TLabel object Label6: TLabel
Left = 128 Left = 128
Top = 248 Top = 288
Width = 332 Width = 332
Height = 13 Height = 13
Caption = Caption =
@@ -41,7 +41,7 @@ object FormConfig: TFormConfig
Left = 8 Left = 8
Top = 8 Top = 8
Width = 265 Width = 265
Height = 89 Height = 81
Caption = 'CDM Rail' Caption = 'CDM Rail'
TabOrder = 0 TabOrder = 0
object Label1: TLabel object Label1: TLabel
@@ -151,7 +151,7 @@ object FormConfig: TFormConfig
end end
object Button1: TButton object Button1: TButton
Left = 112 Left = 112
Top = 272 Top = 312
Width = 105 Width = 105
Height = 25 Height = 25
Caption = 'Appliquer et Fermer' Caption = 'Appliquer et Fermer'
@@ -160,7 +160,7 @@ object FormConfig: TFormConfig
end end
object GroupBox3: TGroupBox object GroupBox3: TGroupBox
Left = 8 Left = 8
Top = 104 Top = 96
Width = 265 Width = 265
Height = 105 Height = 105
Caption = 'Acc'#232's r'#233'seau '#224' l'#39'interface vers la centrale LENZ' Caption = 'Acc'#232's r'#233'seau '#224' l'#39'interface vers la centrale LENZ'
@@ -246,11 +246,35 @@ object FormConfig: TFormConfig
end end
object Button2: TButton object Button2: TButton
Left = 352 Left = 352
Top = 272 Top = 312
Width = 113 Width = 113
Height = 25 Height = 25
Caption = 'Fermer sans appliquer' Caption = 'Fermer sans appliquer'
TabOrder = 5 TabOrder = 5
OnClick = Button2Click OnClick = Button2Click
end end
object GroupBox5: TGroupBox
Left = 8
Top = 208
Width = 265
Height = 57
Caption = 'Versions du programme'
TabOrder = 6
object CheckVerifVersion: TCheckBox
Left = 8
Top = 16
Width = 249
Height = 17
Caption = 'V'#233'rifications de nouvelle version au d'#233'marrage'
TabOrder = 0
end
object CheckInfoVersion: TCheckBox
Left = 8
Top = 32
Width = 241
Height = 17
Caption = 'Information sur la version actuelle'
TabOrder = 1
end
end
end end

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, ExtCtrls, StdCtrls ; Dialogs, ExtCtrls, StdCtrls , verif_version ;
type type
TFormConfig = class(TForm) TFormConfig = class(TForm)
@@ -37,6 +37,9 @@ type
Label10: TLabel; Label10: TLabel;
Label11: TLabel; Label11: TLabel;
Label12: TLabel; Label12: TLabel;
GroupBox5: TGroupBox;
CheckVerifVersion: TCheckBox;
CheckInfoVersion: TCheckBox;
procedure Button1Click(Sender: TObject); procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject); procedure Button2Click(Sender: TObject);
procedure FormActivate(Sender: TObject); procedure FormActivate(Sender: TObject);
@@ -260,15 +263,15 @@ begin
if changeInterface then if changeInterface then
begin begin
if AdresseIP<>'0' then if AdresseIP<>'0' then
begin
Affiche('demande connexion à la centrale Lenz par Ethernet',clyellow);
With Formprinc do
begin begin
Affiche('demande connexion à la centrale Lenz par Ethernet',clyellow); ClientSocketLenz.port:=port;
With Formprinc do ClientSocketLenz.Address:=AdresseIP;
begin ClientSocketLenz.Open;
ClientSocketLenz.port:=port; end;
ClientSocketLenz.Address:=AdresseIP; end
ClientSocketLenz.Open;
end;
end
end; end;
if changeUSB then if changeUSB then
@@ -277,6 +280,9 @@ begin
connecte_USB; connecte_USB;
end; end;
verifVersion:=CheckVerifVersion.Checked;
notificationVersion:=CheckInfoVersion.Checked;
formConfig.close; formConfig.close;
end; end;
@@ -305,6 +311,10 @@ begin
if Valeur_entete=0 then RadioButton1.checked:=true; if Valeur_entete=0 then RadioButton1.checked:=true;
if Valeur_entete=1 then RadioButton2.checked:=true; if Valeur_entete=1 then RadioButton2.checked:=true;
if Valeur_entete=2 then RadioButton3.checked:=true; if Valeur_entete=2 then RadioButton3.checked:=true;
CheckVerifVersion.Checked:=verifVersion;
CheckInfoVersion.Checked:=notificationVersion;
end; end;
end. end.

Binary file not shown.

View File

@@ -1,7 +1,7 @@
object FormConfigTCO: TFormConfigTCO object FormConfigTCO: TFormConfigTCO
Left = 542 Left = 542
Top = 389 Top = 389
Width = 405 Width = 360
Height = 251 Height = 251
Caption = 'Configuration du TCO' Caption = 'Configuration du TCO'
Color = clBtnFace Color = clBtnFace
@@ -11,7 +11,7 @@ object FormConfigTCO: TFormConfigTCO
Font.Name = 'MS Sans Serif' Font.Name = 'MS Sans Serif'
Font.Style = [] Font.Style = []
OldCreateOrder = False OldCreateOrder = False
OnCreate = FormCreate OnActivate = FormActivate
PixelsPerInch = 96 PixelsPerInch = 96
TextHeight = 13 TextHeight = 13
object Label1: TLabel object Label1: TLabel
@@ -42,34 +42,14 @@ object FormConfigTCO: TFormConfigTCO
Height = 13 Height = 13
Caption = 'Nombre de cellules en vertical:' Caption = 'Nombre de cellules en vertical:'
end end
object LabelNbCellX: TLabel object LabelErreur: TLabel
Left = 192 Left = 35
Top = 52 Top = 144
Width = 96 Width = 3
Height = 20 Height = 13
Caption = 'LabelNbCellX'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
end
object LabelNbCellY: TLabel
Left = 192
Top = 76
Width = 96
Height = 20
Caption = 'LabelNbCellX'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
end end
object ButtonOK: TButton object ButtonOK: TButton
Left = 168 Left = 240
Top = 176 Top = 176
Width = 75 Width = 75
Height = 25 Height = 25
@@ -110,4 +90,20 @@ object FormConfigTCO: TFormConfigTCO
Caption = 'dessine grille' Caption = 'dessine grille'
TabOrder = 4 TabOrder = 4
end end
object EditNbCellX: TEdit
Left = 184
Top = 56
Width = 49
Height = 21
TabOrder = 5
Text = 'EditNbCellX'
end
object EditNbCellY: TEdit
Left = 184
Top = 80
Width = 49
Height = 21
TabOrder = 6
Text = 'EditNbCellY'
end
end end

View File

@@ -15,13 +15,14 @@ type
Label2: TLabel; Label2: TLabel;
Label3: TLabel; Label3: TLabel;
Label4: TLabel; Label4: TLabel;
LabelNbCellX: TLabel;
LabelNbCellY: TLabel;
ButtonDessine: TButton; ButtonDessine: TButton;
CheckDessineGrille: TCheckBox; CheckDessineGrille: TCheckBox;
EditNbCellX: TEdit;
EditNbCellY: TEdit;
LabelErreur: TLabel;
procedure ButtonOKClick(Sender: TObject); procedure ButtonOKClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ButtonDessineClick(Sender: TObject); procedure ButtonDessineClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
private private
{ Déclarations privées } { Déclarations privées }
public public
@@ -38,50 +39,85 @@ uses UnitPrinc;
{$R *.dfm} {$R *.dfm}
procedure TFormConfigTCO.ButtonOKClick(Sender: TObject); function verif_config_TCO : boolean; // renvoie true si ok
var i,erreur : integer; var erreur : integer;
nokNbX,nokNbY,nokHt,nokLg : boolean;
begin begin
Val(EditTailleCellX.Text,i,erreur); with formConfigTCO do
LargeurCell:=i;
Val(EditTailleCellY.Text,i,erreur);
HauteurCell:=i;
with formTCO do
begin begin
ImageTCO.Width:=LargeurCell*NbreCellX; Val(EditNbCellX.Text,NbreCellX,erreur);
ImageTCO.Height:=HauteurCell*NbreCellY; nokNbX:=erreur<>0;
if nokNbX then LabelErreur.caption:='Erreur nombre de cellules X';
nokNbX:=(NbreCellX<20) or (NbreCellX>MaxCellX);
if nokNbX then LabelErreur.caption:='Erreur: nombre de cellules X: mini=20 maxi='+IntToSTR(MaxCellX);
Val(EditNbCellY.Text,NbreCellY,erreur);
nokNbY:=erreur<>0;
if nokNbY then LabelErreur.caption:='Erreur: nombre de cellules Y';
nokNbY:=nokNbY or (NbreCellY<10) or (NbreCellY>MaxCellY);
if nokNbY then LabelErreur.caption:='Erreur: nombre de cellules Y: mini=10 maxi='+IntToSTR(MaxCellY);
Val(EditTailleCellX.Text,LargeurCell,erreur);
nokLg:=erreur<>0;
if nokLg then LabelErreur.caption:='Erreur largeur de cellules';
nokLg:=nokLg or (LargeurCell<20) or (LargeurCell>50) ;
if nokLg then LabelErreur.caption:='Erreur: Tailles des cellules - largeur cellules mini=20 maxi=50';
Val(EditTailleCellY.Text,HauteurCell,erreur);
nokHt:=erreur<>0;
if nokHt then LabelErreur.caption:='Erreur hauteur de cellules';
nokHt:=nokHt or (HauteurCell<20) or (HauteurCell>50) ;
if nokHt then LabelErreur.caption:='Erreur: Tailles des cellules - hauteur cellules mini=20 maxi=50';
AvecGrille:=checkDessineGrille.Checked;
end; end;
AvecGrille:=checkDessineGrille.Checked; verif_config_TCO:=not(nokNbX or nokNbY or nokHt or nokLg);
formTCO.affiche_TCO;
close;
end; end;
procedure TFormConfigTCO.FormCreate(Sender: TObject); procedure TFormConfigTCO.ButtonOKClick(Sender: TObject);
var i : integer;
begin begin
EditTailleCellX.Text:=IntToSTR(LargeurCell); if verif_config_TCO then
EditTailleCellY.Text:=IntToSTR(HauteurCell); begin
LabelNbCellX.Caption:=IntToSTR(NbreCellX); with formTCO do
LabelNbCellY.Caption:=IntToSTR(NbreCellY); begin
ImageTCO.Width:=LargeurCell*NbreCellX;
ImageTCO.Height:=HauteurCell*NbreCellY;
end;
AvecGrille:=checkDessineGrille.Checked;
formTCO.affiche_TCO;
LabelErreur.caption:='';
close;
end;
end; end;
procedure TFormConfigTCO.ButtonDessineClick(Sender: TObject); procedure TFormConfigTCO.ButtonDessineClick(Sender: TObject);
var i,erreur : integer; var i,erreur : integer;
r : Trect; r : Trect;
c : tCanvas; c : tCanvas;
begin begin
if verif_config_TCO then
Val(EditTailleCellX.Text,i,erreur);
LargeurCell:=i;
Val(EditTailleCellY.Text,i,erreur);
HauteurCell:=i;
with formTCO do
begin begin
ImageTCO.Width:=LargeurCell*NbreCellX; with formTCO do
ImageTCO.Height:=HauteurCell*NbreCellY; begin
ImageTCO.Width:=LargeurCell*NbreCellX;
ImageTCO.Height:=HauteurCell*NbreCellY;
end;
formTCO.affiche_TCO;
end; end;
formTCO.affiche_TCO; end;
procedure TFormConfigTCO.FormActivate(Sender: TObject);
begin
EditTailleCellX.Text:=IntToSTR(LargeurCell);
EditTailleCellY.Text:=IntToSTR(HauteurCell);
EditNbCellX.Text:=IntToSTR(NbreCellX);
EditNbCellY.Text:=IntToSTR(NbreCellY);
checkDessineGrille.Checked:=AvecGrille;
end; end;
end. end.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,11 +1,9 @@
object FormPrinc: TFormPrinc object FormPrinc: TFormPrinc
Left = 56 Left = 30
Top = 197 Top = 270
AutoSize = True Width = 1212
BorderStyle = bsSingle 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'
ClientHeight = 606
ClientWidth = 1196
Color = clBtnFace Color = clBtnFace
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText Font.Color = clWindowText
@@ -15,9 +13,13 @@ object FormPrinc: TFormPrinc
Menu = MainMenu1 Menu = MainMenu1
OldCreateOrder = False OldCreateOrder = False
Position = poScreenCenter Position = poScreenCenter
Scaled = False
ShowHint = True ShowHint = True
OnClose = FormClose OnClose = FormClose
OnCreate = FormCreate OnCreate = FormCreate
DesignSize = (
1196
606)
PixelsPerInch = 96 PixelsPerInch = 96
TextHeight = 13 TextHeight = 13
object LabelTitre: TLabel object LabelTitre: TLabel
@@ -33,19 +35,6 @@ object FormPrinc: TFormPrinc
Font.Style = [fsBold, fsItalic] Font.Style = [fsBold, fsItalic]
ParentFont = False ParentFont = False
end end
object LabelEtat: TLabel
Left = 456
Top = 16
Width = 152
Height = 18
Caption = 'Initialisations en cours'
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'Arial'
Font.Style = []
ParentFont = False
end
object Image9feux: TImage object Image9feux: TImage
Left = 384 Left = 384
Top = 0 Top = 0
@@ -678,8 +667,8 @@ object FormPrinc: TFormPrinc
Visible = False Visible = False
end end
object Image2feux: TImage object Image2feux: TImage
Left = 1096 Left = 776
Top = 136 Top = 128
Width = 33 Width = 33
Height = 57 Height = 57
Picture.Data = { Picture.Data = {
@@ -752,8 +741,8 @@ object FormPrinc: TFormPrinc
Visible = False Visible = False
end end
object Image2Dir: TImage object Image2Dir: TImage
Left = 968 Left = 696
Top = 48 Top = 184
Width = 41 Width = 41
Height = 25 Height = 25
Picture.Data = { Picture.Data = {
@@ -827,8 +816,8 @@ object FormPrinc: TFormPrinc
Visible = False Visible = False
end end
object Image3Dir: TImage object Image3Dir: TImage
Left = 1008 Left = 768
Top = 48 Top = 136
Width = 49 Width = 49
Height = 25 Height = 25
Picture.Data = { Picture.Data = {
@@ -905,8 +894,8 @@ object FormPrinc: TFormPrinc
Visible = False Visible = False
end end
object Image4Dir: TImage object Image4Dir: TImage
Left = 1056 Left = 816
Top = 48 Top = 128
Width = 57 Width = 57
Height = 25 Height = 25
Picture.Data = { Picture.Data = {
@@ -993,8 +982,8 @@ object FormPrinc: TFormPrinc
Visible = False Visible = False
end end
object Image5Dir: TImage object Image5Dir: TImage
Left = 1112 Left = 664
Top = 48 Top = 120
Width = 65 Width = 65
Height = 25 Height = 25
Picture.Data = { Picture.Data = {
@@ -1091,8 +1080,8 @@ object FormPrinc: TFormPrinc
Visible = False Visible = False
end end
object Image6Dir: TImage object Image6Dir: TImage
Left = 1112 Left = 808
Top = 80 Top = 152
Width = 81 Width = 81
Height = 25 Height = 25
Picture.Data = { Picture.Data = {
@@ -1198,41 +1187,27 @@ object FormPrinc: TFormPrinc
0000} 0000}
Visible = False Visible = False
end end
object Label1: TLabel object LabelEtat: TLabel
Left = 656 Left = 456
Top = 148 Top = 16
Width = 89 Width = 152
Height = 13 Height = 18
Caption = 'Nombre de trains : ' Anchors = [akTop, akRight]
end Caption = 'Initialisations en cours'
object LabelNbTrains: TLabel
Left = 760
Top = 144
Width = 9
Height = 19
Caption = '0'
Font.Charset = ANSI_CHARSET Font.Charset = ANSI_CHARSET
Font.Color = clBlack Font.Color = clWindowText
Font.Height = -16 Font.Height = -16
Font.Name = 'Arial' Font.Name = 'Arial'
Font.Style = [fsBold] Font.Style = []
ParentFont = False ParentFont = False
end end
object BoutVersion: TButton
Left = 1008
Top = 16
Width = 83
Height = 33
Caption = 'Dem version'
TabOrder = 0
OnClick = BoutVersionClick
end
object ListBox1: TListBox object ListBox1: TListBox
Left = 8 Left = 8
Top = 48 Top = 48
Width = 633 Width = 633
Height = 520 Height = 520
Style = lbOwnerDrawFixed Style = lbOwnerDrawFixed
Anchors = [akLeft, akTop, akRight, akBottom]
Color = clBlack Color = clBlack
Font.Charset = ANSI_CHARSET Font.Charset = ANSI_CHARSET
Font.Color = clBlue Font.Color = clBlue
@@ -1241,34 +1216,31 @@ object FormPrinc: TFormPrinc
Font.Style = [] Font.Style = []
ItemHeight = 16 ItemHeight = 16
ParentFont = False ParentFont = False
TabOrder = 1 TabOrder = 0
OnDrawItem = ListBox1DrawItem OnDrawItem = ListBox1DrawItem
end end
object BoutonRaf: TButton
Left = 912
Top = 16
Width = 89
Height = 33
Caption = 'Rafraichissement'
TabOrder = 2
OnClick = BoutonRafClick
end
object ScrollBox1: TScrollBox object ScrollBox1: TScrollBox
Left = 648 Left = 648
Top = 168 Top = 176
Width = 537 Width = 537
Height = 405 Height = 393
HorzScrollBar.Smooth = True
HorzScrollBar.Tracking = True
VertScrollBar.Smooth = True
VertScrollBar.Tracking = True
Anchors = [akTop, akRight, akBottom]
Color = clWhite Color = clWhite
ParentColor = False ParentColor = False
TabOrder = 3 TabOrder = 1
end end
object GroupBox1: TGroupBox object GroupBox1: TGroupBox
Left = 656 Left = 648
Top = 8 Top = 0
Width = 249 Width = 249
Height = 129 Height = 129
Anchors = [akTop, akRight]
Caption = 'Commande d'#39'accessoires' Caption = 'Commande d'#39'accessoires'
TabOrder = 4 TabOrder = 2
object Label2: TLabel object Label2: TLabel
Left = 7 Left = 7
Top = 16 Top = 16
@@ -1309,17 +1281,6 @@ object FormPrinc: TFormPrinc
Text = '1' Text = '1'
OnEnter = EditvalEnter OnEnter = EditvalEnter
end end
object ButtonCommande: TButton
Left = 124
Top = 24
Width = 109
Height = 33
Hint = 'Ecriture des accessoires DCC'
Caption = 'Envoi commande'
TabOrder = 2
WordWrap = True
OnClick = ButtonCommandeClick
end
object ButtonEcrCV: TButton object ButtonEcrCV: TButton
Left = 8 Left = 8
Top = 64 Top = 64
@@ -1327,7 +1288,7 @@ object FormPrinc: TFormPrinc
Height = 25 Height = 25
Hint = 'Ecriture CV en mode direct sur voie de programmation' Hint = 'Ecriture CV en mode direct sur voie de programmation'
Caption = 'Ecriture CV - 1 '#224' 255 par bus XpressNet' Caption = 'Ecriture CV - 1 '#224' 255 par bus XpressNet'
TabOrder = 3 TabOrder = 2
WordWrap = True WordWrap = True
OnClick = ButtonEcrCVClick OnClick = ButtonEcrCVClick
end end
@@ -1339,28 +1300,20 @@ object FormPrinc: TFormPrinc
Hint = 'Lecture CV en mode direct sur voie de programmation' Hint = 'Lecture CV en mode direct sur voie de programmation'
Caption = 'Lecture CV - 1 '#224' 255 par le bus XpressNet' Caption = 'Lecture CV - 1 '#224' 255 par le bus XpressNet'
Enabled = False Enabled = False
TabOrder = 4 TabOrder = 3
OnClick = ButtonLitCVClick OnClick = ButtonLitCVClick
end end
end object ButtonCommande: TButton
object ButtonTest: TButton Left = 124
Left = 912 Top = 24
Top = 96 Width = 109
Width = 89 Height = 33
Height = 33 Hint = 'Ecriture des accessoires DCC'
Caption = 'Demande '#233'tat r'#233'trosignalisation' Caption = 'Envoi commande'
TabOrder = 5 TabOrder = 4
WordWrap = True WordWrap = True
OnClick = ButtonTestClick OnClick = ButtonCommandeClick
end end
object ButtonInfo: TButton
Left = 1008
Top = 56
Width = 81
Height = 33
Caption = 'Informations'
TabOrder = 6
OnClick = ButtonInfoClick
end end
object StatusBar1: TStatusBar object StatusBar1: TStatusBar
Left = 0 Left = 0
@@ -1380,55 +1333,138 @@ object FormPrinc: TFormPrinc
2143341208000000ED030000ED03000001568A64000006000000010000040000 2143341208000000ED030000ED03000001568A64000006000000010000040000
00020000802500000000080000000000000000003F00000011000000} 00020000802500000000080000000000000000003F00000011000000}
end end
object loco: TButton object Panel1: TPanel
Left = 1096
Top = 16
Width = 75
Height = 33
Caption = 'loco'
TabOrder = 9
OnClick = locoClick
end
object ButtonAffDebug: TButton
Left = 912 Left = 912
Top = 56 Top = 0
Width = 89 Width = 273
Height = 33 Height = 169
Caption = 'Affiche debug' Anchors = [akTop, akRight]
TabOrder = 10 Caption = 'Panel1'
OnClick = ButtonAffDebugClick TabOrder = 5
object BoutonRaf: TButton
Left = 8
Top = 8
Width = 89
Height = 33
Caption = 'Rafraichissement'
TabOrder = 0
OnClick = BoutonRafClick
end
object ButtonAffDebug: TButton
Left = 8
Top = 48
Width = 89
Height = 33
Caption = 'Affiche debug'
TabOrder = 1
OnClick = ButtonAffDebugClick
end
object BoutVersion: TButton
Left = 102
Top = 8
Width = 83
Height = 33
Caption = 'Dem version'
TabOrder = 2
OnClick = BoutVersionClick
end
object loco: TButton
Left = 190
Top = 8
Width = 75
Height = 33
Caption = 'loco'
TabOrder = 3
OnClick = locoClick
end
object ButtonInfo: TButton
Left = 104
Top = 48
Width = 81
Height = 33
Caption = 'Informations'
TabOrder = 4
OnClick = ButtonInfoClick
end
object ButtonReprise: TButton
Left = 190
Top = 48
Width = 75
Height = 33
Hint =
'Relance du bus DCC apr'#232's une '#233'criture d'#39'un CV ou une mise hors t' +
'ension de la centrale'
Caption = 'Reprise DCC'
TabOrder = 5
OnClick = ButtonRepriseClick
end
object ButtonTest: TButton
Left = 8
Top = 88
Width = 89
Height = 33
Caption = 'Demande '#233'tat r'#233'trosignalisation'
TabOrder = 6
WordWrap = True
OnClick = ButtonTestClick
end
object ButtonArretSimu: TButton
Left = 104
Top = 88
Width = 81
Height = 33
Caption = 'Arret simulation'
TabOrder = 7
Visible = False
OnClick = ButtonArretSimuClick
end
object ButtonAffTCO: TButton
Left = 192
Top = 88
Width = 73
Height = 33
Caption = 'Affiche TCO'
TabOrder = 8
OnClick = ButtonAffTCOClick
end
object ButtonLanceCDM: TButton
Left = 8
Top = 128
Width = 89
Height = 33
Caption = 'Lance CDM rail'
TabOrder = 9
OnClick = ButtonLanceCDMClick
end
end end
object ButtonReprise: TButton object Panel2: TPanel
Left = 1096 Left = 648
Top = 56
Width = 75
Height = 33
Hint =
'Relance du bus DCC apr'#232's une '#233'criture d'#39'un CV ou une mise hors t' +
'ension de la centrale'
Caption = 'Reprise DCC'
TabOrder = 11
OnClick = ButtonRepriseClick
end
object Button2: TButton
Left = 872
Top = 136 Top = 136
Width = 97 Width = 153
Height = 25 Height = 25
Caption = 'Test' Anchors = [akTop, akRight]
TabOrder = 12 Caption = 'Panel2'
Visible = False TabOrder = 6
OnClick = Button2Click object Label1: TLabel
end Left = 16
object ButtonArretSimu: TButton Top = 4
Left = 1008 Width = 89
Top = 96 Height = 13
Width = 81 Caption = 'Nombre de trains : '
Height = 33 end
Caption = 'Arret simulation' object LabelNbTrains: TLabel
TabOrder = 13 Left = 120
Visible = False Top = 2
OnClick = ButtonArretSimuClick Width = 9
Height = 19
Caption = '0'
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -16
Font.Name = 'Arial'
Font.Style = [fsBold]
ParentFont = False
end
end end
object Timer1: TTimer object Timer1: TTimer
Interval = 100 Interval = 100
@@ -1447,8 +1483,7 @@ object FormPrinc: TFormPrinc
Left = 320 Left = 320
end end
object MainMenu1: TMainMenu object MainMenu1: TMainMenu
Left = 1160 Left = 560
Top = 8
object Afficher1: TMenuItem object Afficher1: TMenuItem
Caption = 'Afficher' Caption = 'Afficher'
object Etatdesdtecteurs1: TMenuItem object Etatdesdtecteurs1: TMenuItem
@@ -1571,11 +1606,11 @@ object FormPrinc: TFormPrinc
Left = 352 Left = 352
end end
object OpenDialog: TOpenDialog object OpenDialog: TOpenDialog
Left = 1104 Left = 888
Top = 112 Top = 152
end end
object SaveDialog: TSaveDialog object SaveDialog: TSaveDialog
Left = 1120 Left = 888
Top = 88 Top = 16
end end
end end

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,129 +1,128 @@
/****************************************** /******************************************
/ fichier de configuration de signaux_complexes / fichier de configuration de signaux complexes
/ gily - f1iwq - 2018 / cap de bouheyre avec signaux - 2018
/****************************************** /****************************************
/ Sans Log=0 / Avec Log=1 : génère un fichier log / Sans Log=0 / Avec Log=1 : génère un fichier log
Log=0 Log=0
/ Affichage du débug du calcul des routes, et enregistrement dans le log si la variable précédente est à 1 / Affichage du débug du calcul des routes, et enregistrement dans le log si la variable précédente est à 1
TraceDet=0 TraceDet=0
/ Envoie un 0 après le pilotage des décodeurs / si 1 envoie un 0 après le pilotage des décodeurs LEB
/ Mettre 1 si utilisation de décodeurs LEB RazSignaux=0
RazSignaux=1
/ /
/ modélisation des aiguillages : détermine les éléments connectés aux 3 branches des aiguilles (Pointe, Droit, Dévié (S) / modélisation des aiguillages : détermine les éléments connectés aux 3 branches des aiguilles (Pointe, Droit, Dévié (S)
/ adresse d'aiguillage,P=élément vers pointe D=élément vers Droit, S=élément vers dévié. / adresse d'aiguillage[B],P=élément vers pointe D=élément vers Droit, S=élément vers dévié
/ [60 ou 30 dans le cas d'un aiguillage en position déviée qui doit être fanchie à 30 ou 60] / B pour adresse d'aiguillage déja utilisée
/ Elément = détecteur (valeur uniquement numérique) ou aiguillage (adresse+branche de connexion (P S ou D) / Elément = détecteur (valeur uniquement numérique) ou aiguillage (adresse [TRI,TJS,TJD]+branche de connexion (P S ou D)
/ Exemple : 1,P518,D523,S3P signifie : définition de l'aiguillage @1 : sur pointe relié au détecteur 518 / Exemples : 1,P518,D523,S3P signifie : définition de l'aiguillage @1 : sur pointe relié au détecteur 518
/ sur Droit relié au détecteur 518 / sur Droit relié au détecteur 518
/ sur Dévié, relié à l'aiguillage 3 en pointe / sur Dévié, relié à l'aiguillage 3 en pointe
/ Pour une TJD : 26TJD,D530,S529,P28 / Voir la documentation des signaux complexes pour une description complete
/ P désigne l'autre adresse de la TJD
/ Aiguillage triple
/
/ S'il n'y a pas de détecteur connecté à une branche d'aiguillage, mettre 0. / S'il n'y a pas de détecteur connecté à une branche d'aiguillage, mettre 0.
1,P518,S3P,D523,30 1,S1BS,P2P,D3P,0
2,P12S,S5S,D519 1B,P553,D16P,S1S
3,P1S,S5D,D4P 2,P1P,D4P,S2BS
4,P3D,S514,D6S 2B,P521,D16D,S2S
5,P515,S2S,D3S 3,P1D,D522,S5BP
6,P516,S4D,D0 4,P2D,D554,S6BP
7,P527,S520,D519 5,P9P,S15P,D5BS
8,P527,S522,D521 5B,P3S,S5D,D545,0,1
9,P526,S515,D513,60 6,P10P,S546,D6BS
10,P19P,S528,D29P,30 6B,P4S,D545,S6D
11,P18P,D30D,S525 7,P15S,D566,S565
12,P517,D20S,S2P 8,P20P,D566,S565
17,P525,D535,S528 9,P5P,D530,S17P
18,P11P,S517,D23P 10,P6P,D530,S18P
19,P10P,S531,D22P 13,P17S,D563,S564
20,P520,D21P,S12D 14,P18S,D563,S564
21,P20D,S28D,D28D 15,P5S,D546,S7P
22,P19D,S538,D537 16,P1BD,S16BS,D2BD
23,P18D,S534,D538 16B,P0,S16S,D557
24,P538,S533,D32S 17,P9S,D531,S13P
25,P31S,D529,S27P 18,P10S,D562,S14P
26TJD,D530,S529,P28 20,P8P,D547,S548
28TJD,D21D,S21S,P26 21,P25P,S537,D23S
27,P25S,D530,S537 22,P24P,S561,D25S
29,P10D,S30S,D513,60 23,P569,S21D,D538
30,P524,S29D,D11D 24,P22P,S26P,D513
31,P534,S25P,D0 25,P21P,S22D,D570
32,P22S,S24D,D0 26,P24S,S515,D514
28,P30P,S29P,D570
29,P28S,D516,S31P
30,P28P,D32S,S539
31TRI,27,P29S,D518,S0,S2-517
32,P571,D538,S30D
0 0
// //
/ modélisation du réseau par branche / modélisation du réseau par branche
/ 1 ligne par branche - le sens de parcours de la branche est arbitraire. / 1 ligne par branche - le sens de parcours de la description n'a pas d'importance.
/ Chaque ligne (branche) doit commmencer et finir par un aiguillage / Chaque ligne (branche) doit comporter au moins un détecteur et au moins aiguillage
/ Une ligne qui finit par un 0 signifie un heurtoir
/ @ détecteur A=@aiguillage / @ détecteur A=@aiguillage
/ Terminer par 0 / chaque ligne doit commencer par un aiguillage et se terminer par un aiguillage
/ Exemple : 519 est un détecteur - A2 est l'aiguillage 2 / Terminer par les brances par 0
/ Exemple : 519 est un détecteur - A2 est l'aiguillage 2 - A1B est l'aiguillage 1bis
/ /
A2,A12,517,A18,A11,A30,524,521,A8,527,A7,519,A2 / rouge - jaune
A7,520,A20,A12 A20,547,561,A22,A24,A26,515,518,A31,A29,A28,A30,539,522,A3,A1,A2,A4,A6B,545,A5B,A3
A1,A3,A4,514,522,A8 A26,514,517,A31
A1,523,526,A9,513,A29,A10,A19,531,518,A1 A26,515,518,A31
A9,515,A5 A24,513,516,A29
A11,525,A17,528,A10 /grande boucle extérieure départ de couche rouge: de 569 à 569
A17,535,533,A24,538,A23 A23,538,A32,571,553,A1B,A16,A2B,521,569,A23
A7,520,A20,A21,A28,A26,530,A27,A25,A31,534,A23,A18 / grande boucle intérieure
A26,529,A25 A21,A25,570,A28
A22,537,A27 A4,554,537,A21
A22,A32,A24 / couche jaune
A6,516,0 A10,530,A9,A5,A15,546,A6
A31,0 A18,562,531,A17
A14,563,A13
A14,564,A13
/
A7,565,A8
A7,566,A8
A16B,557,0
A20S,548,0
0 0
/ liste des adresses des signaux et leur forme, pour affichage de l'image correspondante , /
/ avec ou sans bouton de commande pour le feu blanc, type de décodeur [, type de cible (pour les décodeurs Unisemaf uniquement)] / liste des signaux
/ la liste doit être terminée par une adresse à 0 / la liste doit être terminée par une adresse à 0
/ forme : 2=2 feux(carré violet/blanc) / 3=3 feux / 4=4 feux / 5=5 feux (carré + blanc ou violet) / forme : 2=2 feux(carré violet/blanc) / 3=3 feux / 4=4 feux (carré) / 5=5 feux (carré + blanc)
/ 7=7 feux (blanc ou violet + ralentissement / 9=9 feux (blanc ou violet + rappel ralentissement) / 7=7 feux (carré+blanc + ralentissement / 9=9 feux (blanc ou violet + rappel ralentissement)
/ Dx : signal directionnel à x feux / type de décodeur : 0=feu virtuel 1=digital Bahn 2=CDF 3=LDT 4=LEB
/ type de décodeur : 1=digital Bahn 2=CDF 3=LDT 4=LEB 5=NMRA 6=Unisemaf / l'énumération destecteurs ne nécessite pas de parenthèses si il est seul, mais il faut des parenthèses si
/ le signal concerne plusieurs voies (donc détecteurs)
/ Notation de chaque ligne: / Notation de chaque ligne:
/ adresse de base du signal, forme, avec ou sans bouton de commande du feu blanc, type de décodeur [, détecteur (det2, det3, ...) , élément suivant , / adresse de base du signal, forme, réserve, type de décodeur [, (détecteur,..detecteur , élément suivant ..) ,
/ avec ou sans demande de verrouillage du feu au carré] / avec ou sans demande de verrouillage du feu au carré (0 ou 1)]
/ 161,4,0,4,(538,A32),0
176,7,0,1,(520,A20),1 169,9,0,4,(539,A30),0,
190,7,0,1,(523,526),1 177,9,0,4,(569,A23),0
204,9,0,1,(527,A7),1 185,4,0,4,(570,A25),0
218,7,0,1,(525,A17),1 193,4,0,4,(516,A29),0
232,2,1,1,(516,A6),1 201,2,0,4,(517,31TRI,518,31TRI),0
260,9,1,1,(518,A1),1 209,9,0,4,(513,A24),0
274,3,0,1,(524,521),1 217,2,0,4,(514,A26,515,A26),0
288,7,0,1,(522,A8),1 225,9,0,4,(561,A22),0
302,9,0,1,(526,A9),1 233,4,0,4,(547,A20),0
316,7,1,1,(515,A5),1 241,4,0,4,(548,A20),1
330,7,0,1,(519,A2),1 1001,3,0,0,(537,554),0
344,9,0,1,(528,A10),1 1003,3,0,0,(553,A1B),0
358,9,0,1,(517,A18),1 1005,3,0,0,(571,553),0
372,D3,1,(A10D)(A19S)(A19D,A22D)(A19D,A22S) 1007,3,0,0,(554,A4),0
382,D3,1,(A29S,A10S)(A19S)(A19D,A22D)(A19D,A22S) 1009,3,0,0,(522,539),0
392,3,0,1,(535,533),1 1011,3,0,0,(521,569),0
420,7,0,1,(529,A25,530,A27,537,A27),1 1013,3,0,0,(565,A7),0
448,7,0,1,(533,A24),1 1015,3,0,0,(562,A18),0
462,9,0,1,(513,A29),1 1017,3,0,0,(563,A14),0
476,9,0,1,(538,A23),1 1019,3,0,0,(564,A14),0
497,9,0,4,(531,A19),1
600,7,0,0,(521,A8),1
0 0
/ /
/ Section actionneurs. Ne fonctionne qu'en mode connecté à CDM en run
/ Fonctions Fx à envoyer aux locomotives sur passage d'un actionneur / Fonctions Fx à envoyer aux locomotives sur passage d'un actionneur
/ actionneur,état,Nom du train,fonction,temporisation en ms avant remise à 0 / Uniquement en mode connecté à CDM
/ / actionneur,état,Nom de la loco,fonction,temporisation en ms avant remise à 0
/ Passages à niveau (PN) /815,1,CC406526,F2,400
/ (act_ferme_voie1,act_ouvre_voie1),(act_ferme_voie2,act_ouvre_voie2),...,PN(adresse_ferme,adresse_ouvre)
/
/ Klaxon (F2)
/ 815,1,CC406526,F2,400
/
/ passage à niveau à 2 voies
/(815,830),(820,840),PN(121+,121-) /(815,830),(820,840),PN(121+,121-)
/
/ passage à niveau à 1 voie
/(815,809),PN(121+,121-) /(815,809),PN(121+,121-)
0 0

View File

@@ -107,9 +107,26 @@ A31,0
476,9,0,1,(538,A23),1 476,9,0,1,(538,A23),1
497,9,0,4,(531,A19),1 497,9,0,4,(531,A19),1
600,7,0,0,(521,A8),1 600,7,0,0,(521,A8),1
610,9,0,6,(520,A20),0,7 / signaux de test
610,4,0,0,(521,a8),1
615,5,0,0,(521,a8),1
0 0
/ /
/ Section actionneurs. Ne fonctionne qu'en mode connecté à CDM en run
/ Fonctions Fx à envoyer aux locomotives sur passage d'un actionneur
/ actionneur,état,Nom du train,fonction,temporisation en ms avant remise à 0
/
/ Passages à niveau (PN)
/ (act_ferme_voie1,act_ouvre_voie1),(act_ferme_voie2,act_ouvre_voie2),...,PN(adresse_ferme,adresse_ouvre)
/
/ Klaxon (F2)
/ 815,1,CC406526,F2,400
/
/ passage à niveau à 2 voies
/(815,830),(820,840),PN(121+,121-)
/
/ passage à niveau à 1 voie
/(815,809),PN(121+,121-)
0

Binary file not shown.

View File

@@ -21,8 +21,9 @@ type
var var
FormVersion: TFormVersion; FormVersion: TFormVersion;
Lance_verif : integer; Lance_verif : integer;
verifVersion,notificationVersion : boolean;
Const Version='1.5'; //Version='1.2';// sert à la comparaison de la version publiée Const Version='1.6'; //Version='1.2';// sert à la comparaison de la version publiée
implementation implementation
@@ -65,8 +66,8 @@ var
dwTimeout : integer; dwTimeout : integer;
begin begin
Result:=False; Result:=False;
DeleteFile(s);
Try Fs:=TFileStream.Create(s,fmCreate); Try Fs:=TFileStream.Create(s,fmCreate,fmShareDenyNone);
hSession:=InternetOpen('MyApp',INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); hSession:=InternetOpen('MyApp',INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
try try
if Assigned(hSession) then if Assigned(hSession) then
@@ -105,7 +106,8 @@ var s,s2,s3,Version_p,Url,LocalFile : string;
V_publie,V_utile : real; V_publie,V_utile : real;
begin begin
//Affiche('vérifie version',clLime); //Affiche('vérifie version',clLime);
if not(AvecInit) then exit ; if not(AvecInit) then exit ;
if not(verifVersion) then exit;
Url:='http://cdmrail.free.fr/ForumCDR/viewtopic.php?f=77&t=3906#p50499'; Url:='http://cdmrail.free.fr/ForumCDR/viewtopic.php?f=77&t=3906#p50499';
LocalFile:='page.txt'; LocalFile:='page.txt';
trouve_version:=false; trouve_version:=false;
@@ -166,6 +168,7 @@ begin
Aff(s); Aff(s);
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
s:=GetCurrentProcessEnvVar('USERPROFILE')+'\Downloads\Signaux_Complexes_GL.Zip'; s:=GetCurrentProcessEnvVar('USERPROFILE')+'\Downloads\Signaux_Complexes_GL.Zip';
Aff('Téléchargement de '+s3+' dans '); Aff('Téléchargement de '+s3+' dans ');
Aff(s); Aff(s);
@@ -181,13 +184,13 @@ begin
else formVersion.Free; else formVersion.Free;
end; end;
// if V_utile=V_publie then Affiche('Votre version '+Version_p+' est à jour',clLime); if (V_utile=V_publie) and notificationVersion then Affiche('Votre version '+Version_p+' est à jour',clLime);
end; end;
end end
else else
begin begin
//Affiche('Pas d''accès au site CDM rail',clorange); if notificationVersion then Affiche('Pas d''accès au site CDM rail',clorange);
end; end;
end; end;

View File

@@ -17,4 +17,7 @@ Version 1.42 : Correction erreur lecture signaux
Version 1.43 : Correction erreur gestion sémaphore Version 1.43 : Correction erreur gestion sémaphore
Version 1.44 : Gestion trains avec voitures éclairées Version 1.44 : Gestion trains avec voitures éclairées
Version 1.45 : Rejette les n° d'objets supérieurs aiguillages à la même adresse Version 1.45 : Rejette les n° d'objets supérieurs aiguillages à la même adresse
Version 1.5 : Nouvel algorithme de suivi des trains Version 1.5 : Nouvel algorithme de suivi des trains - Gestion des feux provenant de voies en buttoir
Version 1.6 : Implémentation du TCO. Ouverture de CDM rail au démarrage avec LAY à la demande