V2.31
This commit is contained in:
@@ -6,7 +6,7 @@
|
|||||||
-$F-
|
-$F-
|
||||||
-$G+
|
-$G+
|
||||||
-$H+
|
-$H+
|
||||||
-$I+
|
-$I-
|
||||||
-$J-
|
-$J-
|
||||||
-$K-
|
-$K-
|
||||||
-$L+
|
-$L+
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ E=0
|
|||||||
F=0
|
F=0
|
||||||
G=1
|
G=1
|
||||||
H=1
|
H=1
|
||||||
I=1
|
I=0
|
||||||
J=0
|
J=0
|
||||||
K=0
|
K=0
|
||||||
L=1
|
L=1
|
||||||
|
|||||||
Binary file not shown.
+23
-6
@@ -1,12 +1,12 @@
|
|||||||
object FormConfig: TFormConfig
|
object FormConfig: TFormConfig
|
||||||
Left = 266
|
Left = 194
|
||||||
Top = 160
|
Top = 249
|
||||||
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 = 495
|
ClientHeight = 501
|
||||||
ClientWidth = 858
|
ClientWidth = 858
|
||||||
Color = clBtnFace
|
Color = clBtnFace
|
||||||
Font.Charset = DEFAULT_CHARSET
|
Font.Charset = DEFAULT_CHARSET
|
||||||
@@ -1776,7 +1776,7 @@ object FormConfig: TFormConfig
|
|||||||
Top = 8
|
Top = 8
|
||||||
Width = 585
|
Width = 585
|
||||||
Height = 441
|
Height = 441
|
||||||
ActivePage = TabSheetAct
|
ActivePage = TabSheetBranches
|
||||||
Font.Charset = DEFAULT_CHARSET
|
Font.Charset = DEFAULT_CHARSET
|
||||||
Font.Color = clBackground
|
Font.Color = clBackground
|
||||||
Font.Height = -11
|
Font.Height = -11
|
||||||
@@ -2120,7 +2120,7 @@ object FormConfig: TFormConfig
|
|||||||
ImageIndex = 1
|
ImageIndex = 1
|
||||||
object Label9: TLabel
|
object Label9: TLabel
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 352
|
Top = 384
|
||||||
Width = 297
|
Width = 297
|
||||||
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'
|
||||||
@@ -2335,7 +2335,7 @@ object FormConfig: TFormConfig
|
|||||||
Left = 8
|
Left = 8
|
||||||
Top = 296
|
Top = 296
|
||||||
Width = 297
|
Width = 297
|
||||||
Height = 41
|
Height = 81
|
||||||
Caption = 'Divers'
|
Caption = 'Divers'
|
||||||
TabOrder = 7
|
TabOrder = 7
|
||||||
object CheckBoxRazSignaux: TCheckBox
|
object CheckBoxRazSignaux: TCheckBox
|
||||||
@@ -2349,6 +2349,19 @@ object FormConfig: TFormConfig
|
|||||||
ShowHint = True
|
ShowHint = True
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
end
|
end
|
||||||
|
object CheckBoxInitAig: TCheckBox
|
||||||
|
Left = 8
|
||||||
|
Top = 32
|
||||||
|
Width = 281
|
||||||
|
Height = 33
|
||||||
|
Caption =
|
||||||
|
'Initialisation des aiguillages suivant liste dans fichier client' +
|
||||||
|
'-gl.cfg [section init]'
|
||||||
|
ParentShowHint = False
|
||||||
|
ShowHint = False
|
||||||
|
TabOrder = 1
|
||||||
|
WordWrap = True
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object TabSheetAig: TTabSheet
|
object TabSheetAig: TTabSheet
|
||||||
@@ -2582,6 +2595,7 @@ object FormConfig: TFormConfig
|
|||||||
Height = 17
|
Height = 17
|
||||||
Caption = 'Inversion de l'#39#233'tat CDM'
|
Caption = 'Inversion de l'#39#233'tat CDM'
|
||||||
TabOrder = 7
|
TabOrder = 7
|
||||||
|
OnClick = CheckInverseClick
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object Edit_HG: TEdit
|
object Edit_HG: TEdit
|
||||||
@@ -2591,6 +2605,7 @@ object FormConfig: TFormConfig
|
|||||||
Height = 21
|
Height = 21
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
Text = 'EditPointe'
|
Text = 'EditPointe'
|
||||||
|
OnChange = Edit_HGChange
|
||||||
end
|
end
|
||||||
object RichAig: TRichEdit
|
object RichAig: TRichEdit
|
||||||
Left = 0
|
Left = 0
|
||||||
@@ -2877,6 +2892,7 @@ object FormConfig: TFormConfig
|
|||||||
Color = clBlack
|
Color = clBlack
|
||||||
Lines.Strings = (
|
Lines.Strings = (
|
||||||
'RichSig')
|
'RichSig')
|
||||||
|
ReadOnly = True
|
||||||
ScrollBars = ssBoth
|
ScrollBars = ssBoth
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
WordWrap = False
|
WordWrap = False
|
||||||
@@ -3202,6 +3218,7 @@ object FormConfig: TFormConfig
|
|||||||
Width = 289
|
Width = 289
|
||||||
Height = 369
|
Height = 369
|
||||||
Color = clBlack
|
Color = clBlack
|
||||||
|
ReadOnly = True
|
||||||
ScrollBars = ssVertical
|
ScrollBars = ssVertical
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
OnMouseDown = RichActMouseDown
|
OnMouseDown = RichActMouseDown
|
||||||
|
|||||||
+47
-3
@@ -185,6 +185,7 @@ type
|
|||||||
EditNbDetDist: TEdit;
|
EditNbDetDist: TEdit;
|
||||||
Label31: TLabel;
|
Label31: TLabel;
|
||||||
RichAct: TRichEdit;
|
RichAct: TRichEdit;
|
||||||
|
CheckBoxInitAig: TCheckBox;
|
||||||
procedure ButtonAppliquerEtFermerClick(Sender: TObject);
|
procedure ButtonAppliquerEtFermerClick(Sender: TObject);
|
||||||
procedure Button2Click(Sender: TObject);
|
procedure Button2Click(Sender: TObject);
|
||||||
procedure FormActivate(Sender: TObject);
|
procedure FormActivate(Sender: TObject);
|
||||||
@@ -221,6 +222,8 @@ type
|
|||||||
procedure EditEtatFoncSortieChange(Sender: TObject);
|
procedure EditEtatFoncSortieChange(Sender: TObject);
|
||||||
procedure EditTempoChange(Sender: TObject);
|
procedure EditTempoChange(Sender: TObject);
|
||||||
procedure CheckRAZClick(Sender: TObject);
|
procedure CheckRAZClick(Sender: TObject);
|
||||||
|
procedure Edit_HGChange(Sender: TObject);
|
||||||
|
procedure CheckInverseClick(Sender: TObject);
|
||||||
private
|
private
|
||||||
{ Déclarations privées }
|
{ Déclarations privées }
|
||||||
public
|
public
|
||||||
@@ -254,7 +257,7 @@ var
|
|||||||
AdresseIPCDM,AdresseIP,PortCom,recuCDM,residuCDM : string;
|
AdresseIPCDM,AdresseIP,PortCom,recuCDM,residuCDM : string;
|
||||||
portCDM,TempoOctet,TimoutMaxInterface,Valeur_entete,Port,protocole,NumPort,
|
portCDM,TempoOctet,TimoutMaxInterface,Valeur_entete,Port,protocole,NumPort,
|
||||||
LigneCliquee,AncLigneCliquee : integer;
|
LigneCliquee,AncLigneCliquee : integer;
|
||||||
ack_cdm,clicliste : boolean;
|
ack_cdm,clicliste,entreeTCO : boolean;
|
||||||
|
|
||||||
function config_com(s : string) : boolean;
|
function config_com(s : string) : boolean;
|
||||||
function envoi_CDM(s : string) : boolean;
|
function envoi_CDM(s : string) : boolean;
|
||||||
@@ -265,7 +268,7 @@ procedure sauve_config;
|
|||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses UnitDebug,UnitPrinc;
|
uses UnitDebug,UnitPrinc, UnitTCO;
|
||||||
|
|
||||||
{$R *.dfm}
|
{$R *.dfm}
|
||||||
|
|
||||||
@@ -656,7 +659,8 @@ begin
|
|||||||
copie_commentaire;
|
copie_commentaire;
|
||||||
|
|
||||||
// avec ou sans initialisation des aiguillages
|
// avec ou sans initialisation des aiguillages
|
||||||
writeln(fichierN,Init_Aig_ch+'=',IntToSTR(AvecInitAiguillages));
|
if AvecInitAiguillages then s:='1' else s:='0';
|
||||||
|
writeln(fichierN,Init_Aig_ch+'='+s);
|
||||||
copie_commentaire;
|
copie_commentaire;
|
||||||
|
|
||||||
// plein écran
|
// plein écran
|
||||||
@@ -927,6 +931,8 @@ begin
|
|||||||
Srvc_PosTrain:=CheckServPosTrains.checked;
|
Srvc_PosTrain:=CheckServPosTrains.checked;
|
||||||
Srvc_Sig:=CheckBoxSrvSig.checked;
|
Srvc_Sig:=CheckBoxSrvSig.checked;
|
||||||
Raz_Acc_signaux:=CheckBoxRazSignaux.checked;
|
Raz_Acc_signaux:=CheckBoxRazSignaux.checked;
|
||||||
|
AvecInitAiguillages:=CheckBoxInitAig.Checked;
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if change_srv then services_CDM;
|
if change_srv then services_CDM;
|
||||||
@@ -940,6 +946,13 @@ procedure TFormConfig.ButtonAppliquerEtFermerClick(Sender: TObject);
|
|||||||
begin
|
begin
|
||||||
Sauve_config;
|
Sauve_config;
|
||||||
formConfig.close;
|
formConfig.close;
|
||||||
|
// TCO
|
||||||
|
if avectco and not(entreeTCO) then
|
||||||
|
begin
|
||||||
|
//créée la fenêtre TCO non modale
|
||||||
|
FormTCO:=TformTCO.Create(nil);
|
||||||
|
FormTCO.show;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TFormConfig.Button2Click(Sender: TObject);
|
procedure TFormConfig.Button2Click(Sender: TObject);
|
||||||
@@ -997,6 +1010,7 @@ begin
|
|||||||
CheckInfoVersion.Checked:=notificationVersion;
|
CheckInfoVersion.Checked:=notificationVersion;
|
||||||
CheckLanceCDM.Checked:=LanceCDM;
|
CheckLanceCDM.Checked:=LanceCDM;
|
||||||
CheckAvecTCO.checked:=avecTCO;
|
CheckAvecTCO.checked:=avecTCO;
|
||||||
|
entreeTCO:=avecTCO;
|
||||||
EditNomLay.Text:=Lay;
|
EditNomLay.Text:=Lay;
|
||||||
RadioButton4.Checked:=ServeurInterfaceCDM=0;
|
RadioButton4.Checked:=ServeurInterfaceCDM=0;
|
||||||
RadioButton5.Checked:=ServeurInterfaceCDM=1;
|
RadioButton5.Checked:=ServeurInterfaceCDM=1;
|
||||||
@@ -1020,6 +1034,7 @@ begin
|
|||||||
CheckBoxServAct.checked:=Srvc_Act;
|
CheckBoxServAct.checked:=Srvc_Act;
|
||||||
CheckServPosTrains.checked:=Srvc_PosTrain;
|
CheckServPosTrains.checked:=Srvc_PosTrain;
|
||||||
CheckBoxRazSignaux.checked:=Raz_Acc_signaux;
|
CheckBoxRazSignaux.checked:=Raz_Acc_signaux;
|
||||||
|
CheckBoxInitAig.checked:=AvecInitAiguillages;
|
||||||
|
|
||||||
EditDroit_BD.Text:='';
|
EditDroit_BD.Text:='';
|
||||||
EditPointe_BG.Text:='';
|
EditPointe_BG.Text:='';
|
||||||
@@ -1628,6 +1643,12 @@ begin
|
|||||||
clicliste:=false;
|
clicliste:=false;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
// on change la valeur de la description du champ HG pour les TJD
|
||||||
|
procedure change_HG ;
|
||||||
|
begin
|
||||||
|
if clicliste then exit;
|
||||||
|
end;
|
||||||
|
|
||||||
// on change la valeur de la description de la pointe de l'aiguillage
|
// on change la valeur de la description de la pointe de l'aiguillage
|
||||||
procedure change_Pointe;
|
procedure change_Pointe;
|
||||||
var AdrAig,adr,erreur : integer;
|
var AdrAig,adr,erreur : integer;
|
||||||
@@ -1823,6 +1844,11 @@ begin
|
|||||||
change_pointe;
|
change_pointe;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TFormConfig.Edit_HGChange(Sender: TObject);
|
||||||
|
begin
|
||||||
|
change_HG;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TFormConfig.EditDevie_HDChange(Sender: TObject);
|
procedure TFormConfig.EditDevie_HDChange(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
Change_devie;
|
Change_devie;
|
||||||
@@ -1838,6 +1864,21 @@ begin
|
|||||||
Change_s2;
|
Change_s2;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TFormConfig.CheckInverseClick(Sender: TObject);
|
||||||
|
var s : string;
|
||||||
|
adrAig,erreur : integer;
|
||||||
|
begin
|
||||||
|
// récupérer l'adresse de l'aiguillage cliqué
|
||||||
|
s:=formconfig.RichAig.Lines[lignecliquee];
|
||||||
|
Val(s,adrAig,erreur);
|
||||||
|
if checkInverse.Checked then aiguillage[adraig].InversionCDM:=1 else aiguillage[adraig].InversionCDM:=0;
|
||||||
|
// réencoder la ligne
|
||||||
|
s:=encode_aig(AdrAig);
|
||||||
|
formconfig.RichAig.Lines[lignecliquee]:=s;
|
||||||
|
labelLigne.Caption:=s;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TFormConfig.RadioButtonsansClick(Sender: TObject);
|
procedure TFormConfig.RadioButtonsansClick(Sender: TObject);
|
||||||
var AdrAig,erreur : integer;
|
var AdrAig,erreur : integer;
|
||||||
s : string;
|
s : string;
|
||||||
@@ -2318,6 +2359,9 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
+74
-32
@@ -1,8 +1,8 @@
|
|||||||
object FormDebug: TFormDebug
|
object FormDebug: TFormDebug
|
||||||
Left = 329
|
Left = 192
|
||||||
Top = 122
|
Top = 290
|
||||||
Width = 855
|
Width = 855
|
||||||
Height = 762
|
Height = 817
|
||||||
Caption = 'Fen'#234'tre de d'#233'bug'
|
Caption = 'Fen'#234'tre de d'#233'bug'
|
||||||
Color = clWindow
|
Color = clWindow
|
||||||
TransparentColorValue = clTeal
|
TransparentColorValue = clTeal
|
||||||
@@ -16,7 +16,7 @@ object FormDebug: TFormDebug
|
|||||||
OnCreate = FormCreate
|
OnCreate = FormCreate
|
||||||
DesignSize = (
|
DesignSize = (
|
||||||
839
|
839
|
||||||
724)
|
779)
|
||||||
PixelsPerInch = 96
|
PixelsPerInch = 96
|
||||||
TextHeight = 13
|
TextHeight = 13
|
||||||
object Label1: TLabel
|
object Label1: TLabel
|
||||||
@@ -49,24 +49,6 @@ object FormDebug: TFormDebug
|
|||||||
Font.Style = [fsBold, fsItalic]
|
Font.Style = [fsBold, fsItalic]
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
end
|
end
|
||||||
object Label3: TLabel
|
|
||||||
Left = 485
|
|
||||||
Top = 160
|
|
||||||
Width = 99
|
|
||||||
Height = 185
|
|
||||||
Anchors = [akTop, akRight]
|
|
||||||
AutoSize = False
|
|
||||||
Caption = 'Label3'
|
|
||||||
Color = clGray
|
|
||||||
Font.Charset = ANSI_CHARSET
|
|
||||||
Font.Color = clWindow
|
|
||||||
Font.Height = -13
|
|
||||||
Font.Name = 'Arial Narrow'
|
|
||||||
Font.Style = []
|
|
||||||
ParentColor = False
|
|
||||||
ParentFont = False
|
|
||||||
WordWrap = True
|
|
||||||
end
|
|
||||||
object EditNivDebug: TEdit
|
object EditNivDebug: TEdit
|
||||||
Left = 767
|
Left = 767
|
||||||
Top = 2
|
Top = 2
|
||||||
@@ -85,7 +67,7 @@ object FormDebug: TFormDebug
|
|||||||
end
|
end
|
||||||
object MemoEvtDet: TMemo
|
object MemoEvtDet: TMemo
|
||||||
Left = 591
|
Left = 591
|
||||||
Top = 344
|
Top = 320
|
||||||
Width = 239
|
Width = 239
|
||||||
Height = 225
|
Height = 225
|
||||||
Anchors = [akTop, akRight]
|
Anchors = [akTop, akRight]
|
||||||
@@ -99,12 +81,14 @@ object FormDebug: TFormDebug
|
|||||||
'Tableau des '#233'v'#232'nements '
|
'Tableau des '#233'v'#232'nements '
|
||||||
'fronts descendants d'#233'tecteurs')
|
'fronts descendants d'#233'tecteurs')
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
|
ReadOnly = True
|
||||||
ScrollBars = ssVertical
|
ScrollBars = ssVertical
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
|
OnChange = MemoEvtDetChange
|
||||||
end
|
end
|
||||||
object ButtonEcrLog: TButton
|
object ButtonEcrLog: TButton
|
||||||
Left = 487
|
Left = 487
|
||||||
Top = 464
|
Top = 312
|
||||||
Width = 97
|
Width = 97
|
||||||
Height = 29
|
Height = 29
|
||||||
Anchors = [akTop, akRight]
|
Anchors = [akTop, akRight]
|
||||||
@@ -114,7 +98,7 @@ object FormDebug: TFormDebug
|
|||||||
end
|
end
|
||||||
object ButtonRazTampon: TButton
|
object ButtonRazTampon: TButton
|
||||||
Left = 487
|
Left = 487
|
||||||
Top = 536
|
Top = 344
|
||||||
Width = 97
|
Width = 97
|
||||||
Height = 33
|
Height = 33
|
||||||
Anchors = [akTop, akRight]
|
Anchors = [akTop, akRight]
|
||||||
@@ -125,7 +109,7 @@ object FormDebug: TFormDebug
|
|||||||
end
|
end
|
||||||
object ButtonCherche: TButton
|
object ButtonCherche: TButton
|
||||||
Left = 487
|
Left = 487
|
||||||
Top = 432
|
Top = 280
|
||||||
Width = 97
|
Width = 97
|
||||||
Height = 25
|
Height = 25
|
||||||
Anchors = [akTop, akRight]
|
Anchors = [akTop, akRight]
|
||||||
@@ -135,7 +119,7 @@ object FormDebug: TFormDebug
|
|||||||
end
|
end
|
||||||
object ButtonAffEvtChrono: TButton
|
object ButtonAffEvtChrono: TButton
|
||||||
Left = 487
|
Left = 487
|
||||||
Top = 392
|
Top = 240
|
||||||
Width = 97
|
Width = 97
|
||||||
Height = 33
|
Height = 33
|
||||||
Anchors = [akTop, akRight]
|
Anchors = [akTop, akRight]
|
||||||
@@ -146,7 +130,7 @@ object FormDebug: TFormDebug
|
|||||||
end
|
end
|
||||||
object ButtonCop: TButton
|
object ButtonCop: TButton
|
||||||
Left = 487
|
Left = 487
|
||||||
Top = 344
|
Top = 192
|
||||||
Width = 97
|
Width = 97
|
||||||
Height = 41
|
Height = 41
|
||||||
Anchors = [akTop, akRight]
|
Anchors = [akTop, akRight]
|
||||||
@@ -165,7 +149,7 @@ object FormDebug: TFormDebug
|
|||||||
Left = 591
|
Left = 591
|
||||||
Top = 160
|
Top = 160
|
||||||
Width = 239
|
Width = 239
|
||||||
Height = 185
|
Height = 153
|
||||||
Anchors = [akTop, akRight]
|
Anchors = [akTop, akRight]
|
||||||
Font.Charset = DEFAULT_CHARSET
|
Font.Charset = DEFAULT_CHARSET
|
||||||
Font.Color = clWhite
|
Font.Color = clWhite
|
||||||
@@ -175,12 +159,14 @@ object FormDebug: TFormDebug
|
|||||||
HideScrollBars = False
|
HideScrollBars = False
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
PopupMenu = PopupMenuRE
|
PopupMenu = PopupMenuRE
|
||||||
|
ReadOnly = True
|
||||||
ScrollBars = ssVertical
|
ScrollBars = ssVertical
|
||||||
TabOrder = 7
|
TabOrder = 7
|
||||||
|
OnChange = RichEditChange
|
||||||
end
|
end
|
||||||
object ButtonRazLog: TButton
|
object ButtonRazLog: TButton
|
||||||
Left = 487
|
Left = 487
|
||||||
Top = 496
|
Top = 384
|
||||||
Width = 97
|
Width = 97
|
||||||
Height = 33
|
Height = 33
|
||||||
Anchors = [akTop, akRight]
|
Anchors = [akTop, akRight]
|
||||||
@@ -191,7 +177,7 @@ object FormDebug: TFormDebug
|
|||||||
end
|
end
|
||||||
object GroupBox1: TGroupBox
|
object GroupBox1: TGroupBox
|
||||||
Left = 485
|
Left = 485
|
||||||
Top = 576
|
Top = 608
|
||||||
Width = 353
|
Width = 353
|
||||||
Height = 145
|
Height = 145
|
||||||
Anchors = [akTop, akRight]
|
Anchors = [akTop, akRight]
|
||||||
@@ -453,15 +439,71 @@ object FormDebug: TFormDebug
|
|||||||
Left = 8
|
Left = 8
|
||||||
Top = 8
|
Top = 8
|
||||||
Width = 470
|
Width = 470
|
||||||
Height = 705
|
Height = 743
|
||||||
Anchors = [akLeft, akTop, akRight, akBottom]
|
Anchors = [akLeft, akTop, akRight, akBottom]
|
||||||
Lines.Strings = (
|
Lines.Strings = (
|
||||||
'RichDebug')
|
'RichDebug')
|
||||||
PopupMenu = PopupMenuRD
|
PopupMenu = PopupMenuRD
|
||||||
|
ReadOnly = True
|
||||||
ScrollBars = ssBoth
|
ScrollBars = ssBoth
|
||||||
TabOrder = 11
|
TabOrder = 11
|
||||||
OnChange = RichDebugChange
|
OnChange = RichDebugChange
|
||||||
end
|
end
|
||||||
|
object GroupBox5: TGroupBox
|
||||||
|
Left = 487
|
||||||
|
Top = 552
|
||||||
|
Width = 345
|
||||||
|
Height = 49
|
||||||
|
Anchors = [akTop, akRight]
|
||||||
|
Caption = 'Simulation d'#233'tecteur'
|
||||||
|
Color = cl3DLight
|
||||||
|
Font.Charset = DEFAULT_CHARSET
|
||||||
|
Font.Color = clNavy
|
||||||
|
Font.Height = -11
|
||||||
|
Font.Name = 'MS Sans Serif'
|
||||||
|
Font.Style = []
|
||||||
|
ParentColor = False
|
||||||
|
ParentFont = False
|
||||||
|
TabOrder = 12
|
||||||
|
object EditSimuDet: TEdit
|
||||||
|
Left = 8
|
||||||
|
Top = 16
|
||||||
|
Width = 73
|
||||||
|
Height = 21
|
||||||
|
Hint = 'Adresse d'#39'un d'#233'tecteur'
|
||||||
|
ParentShowHint = False
|
||||||
|
ShowHint = True
|
||||||
|
TabOrder = 0
|
||||||
|
end
|
||||||
|
object ButtonSimuDet0: TButton
|
||||||
|
Left = 120
|
||||||
|
Top = 16
|
||||||
|
Width = 75
|
||||||
|
Height = 25
|
||||||
|
Caption = 'D'#233'tecteur '#224' 0'
|
||||||
|
TabOrder = 1
|
||||||
|
OnClick = ButtonSimuDet0Click
|
||||||
|
end
|
||||||
|
object ButtonSimuDet1: TButton
|
||||||
|
Left = 232
|
||||||
|
Top = 16
|
||||||
|
Width = 75
|
||||||
|
Height = 25
|
||||||
|
Caption = 'D'#233'tecteur '#224' 1'
|
||||||
|
TabOrder = 2
|
||||||
|
OnClick = ButtonSimuDet1Click
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object ButtonRazTout: TButton
|
||||||
|
Left = 488
|
||||||
|
Top = 160
|
||||||
|
Width = 97
|
||||||
|
Height = 25
|
||||||
|
Anchors = [akTop, akRight]
|
||||||
|
Caption = 'RAZ tous trains'
|
||||||
|
TabOrder = 13
|
||||||
|
OnClick = ButtonRazToutClick
|
||||||
|
end
|
||||||
object SaveDialog: TSaveDialog
|
object SaveDialog: TSaveDialog
|
||||||
Left = 768
|
Left = 768
|
||||||
Top = 488
|
Top = 488
|
||||||
|
|||||||
+61
-4
@@ -14,7 +14,6 @@ type
|
|||||||
Label2: TLabel;
|
Label2: TLabel;
|
||||||
SaveDialog: TSaveDialog;
|
SaveDialog: TSaveDialog;
|
||||||
ButtonEcrLog: TButton;
|
ButtonEcrLog: TButton;
|
||||||
Label3: TLabel;
|
|
||||||
ButtonRazTampon: TButton;
|
ButtonRazTampon: TButton;
|
||||||
ButtonCherche: TButton;
|
ButtonCherche: TButton;
|
||||||
ButtonAffEvtChrono: TButton;
|
ButtonAffEvtChrono: TButton;
|
||||||
@@ -46,6 +45,11 @@ type
|
|||||||
RichDebug: TRichEdit;
|
RichDebug: TRichEdit;
|
||||||
PopupMenuRD: TPopupMenu;
|
PopupMenuRD: TPopupMenu;
|
||||||
Copier2: TMenuItem;
|
Copier2: TMenuItem;
|
||||||
|
GroupBox5: TGroupBox;
|
||||||
|
ButtonSimuDet0: TButton;
|
||||||
|
ButtonSimuDet1: TButton;
|
||||||
|
EditSimuDet: TEdit;
|
||||||
|
ButtonRazTout: TButton;
|
||||||
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);
|
||||||
@@ -69,6 +73,11 @@ type
|
|||||||
procedure Button2Click(Sender: TObject);
|
procedure Button2Click(Sender: TObject);
|
||||||
procedure Copier2Click(Sender: TObject);
|
procedure Copier2Click(Sender: TObject);
|
||||||
procedure RichDebugChange(Sender: TObject);
|
procedure RichDebugChange(Sender: TObject);
|
||||||
|
procedure ButtonSimuDet0Click(Sender: TObject);
|
||||||
|
procedure ButtonSimuDet1Click(Sender: TObject);
|
||||||
|
procedure ButtonRazToutClick(Sender: TObject);
|
||||||
|
procedure RichEditChange(Sender: TObject);
|
||||||
|
procedure MemoEvtDetChange(Sender: TObject);
|
||||||
private
|
private
|
||||||
{ Déclarations privées }
|
{ Déclarations privées }
|
||||||
public
|
public
|
||||||
@@ -109,6 +118,7 @@ var
|
|||||||
|
|
||||||
|
|
||||||
procedure AfficheDebug(s : string;lacouleur : TColor);
|
procedure AfficheDebug(s : string;lacouleur : TColor);
|
||||||
|
Procedure Raz_tout;
|
||||||
procedure RE_ColorLine(ARichEdit: TRichEdit; ARow: Integer; AColor: TColor);
|
procedure RE_ColorLine(ARichEdit: TRichEdit; ARow: Integer; AColor: TColor);
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@@ -134,16 +144,27 @@ begin
|
|||||||
RE_ColorLine(FormDebug.RichDebug,FormDebug.RichDebug.lines.count-1,lacouleur);
|
RE_ColorLine(FormDebug.RichDebug,FormDebug.RichDebug.lines.count-1,lacouleur);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Procedure Raz_tout;
|
||||||
|
var i : integer;
|
||||||
|
begin
|
||||||
|
N_Event_tick:=0;
|
||||||
|
N_event_det:=0;
|
||||||
|
N_trains:=0;
|
||||||
|
Formprinc.LabelNbTrains.caption:=IntToSTR(N_trains);
|
||||||
|
for i:=1 to Max_Trains do Event_det_Train[i].NbEl:=0;
|
||||||
|
i_simule:=0;
|
||||||
|
FormDebug.MemoEvtDet.Clear;
|
||||||
|
FormDebug.Richedit.Clear;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TFormDebug.FormCreate(Sender: TObject);
|
procedure TFormDebug.FormCreate(Sender: TObject);
|
||||||
var s: string;
|
var s: string;
|
||||||
i : integer;
|
|
||||||
begin
|
begin
|
||||||
EditNivDebug.Text:='0';
|
EditNivDebug.Text:='0';
|
||||||
s:='Cette fenêtre permet d''afficher des informations sur le ';
|
s:='Cette fenêtre permet d''afficher des informations sur le ';
|
||||||
s:=s+'comportement du programme. Positionner le niveau de 1 à 3 pour';
|
s:=s+'comportement du programme. Positionner le niveau du débug de 1 à 3 pour';
|
||||||
s:=s+' afficher des informations plus ou moins détaillées.';
|
s:=s+' afficher des informations plus ou moins détaillées.';
|
||||||
Label3.caption:=s;
|
RichEdit.Lines.add(s);
|
||||||
RichDebug.WordWrap:=false; // interdit la coupure des chaînes en limite du composant
|
RichDebug.WordWrap:=false; // interdit la coupure des chaînes en limite du composant
|
||||||
RichDebug.color:=$33;
|
RichDebug.color:=$33;
|
||||||
initform:=false;
|
initform:=false;
|
||||||
@@ -393,4 +414,40 @@ begin
|
|||||||
SendMessage(RichDebug.handle, WM_VSCROLL, SB_BOTTOM, 0);
|
SendMessage(RichDebug.handle, WM_VSCROLL, SB_BOTTOM, 0);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TFormDebug.ButtonSimuDet0Click(Sender: TObject);
|
||||||
|
var det,erreur : integer;
|
||||||
|
begin
|
||||||
|
val(EditSimuDet.Text,det,erreur);
|
||||||
|
if erreur=0 then
|
||||||
|
begin
|
||||||
|
Event_Detecteur(det,false,'');
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TFormDebug.ButtonSimuDet1Click(Sender: TObject);
|
||||||
|
var det,erreur : integer;
|
||||||
|
begin
|
||||||
|
val(EditSimuDet.Text,det,erreur);
|
||||||
|
if erreur=0 then
|
||||||
|
begin
|
||||||
|
Event_Detecteur(det,true,'');
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TFormDebug.ButtonRazToutClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
Raz_tout;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TFormDebug.RichEditChange(Sender: TObject);
|
||||||
|
begin
|
||||||
|
SendMessage(RichEdit.handle, WM_VSCROLL, SB_BOTTOM, 0);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TFormDebug.MemoEvtDetChange(Sender: TObject);
|
||||||
|
begin
|
||||||
|
SendMessage(MemoEvtDet.handle, WM_VSCROLL, SB_BOTTOM, 0);
|
||||||
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|||||||
Binary file not shown.
+120
-86
@@ -1,6 +1,6 @@
|
|||||||
object FormPrinc: TFormPrinc
|
object FormPrinc: TFormPrinc
|
||||||
Left = 1296
|
Left = 44
|
||||||
Top = 222
|
Top = 270
|
||||||
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'
|
||||||
@@ -24,7 +24,7 @@ object FormPrinc: TFormPrinc
|
|||||||
TextHeight = 13
|
TextHeight = 13
|
||||||
object LabelTitre: TLabel
|
object LabelTitre: TLabel
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 16
|
Top = 8
|
||||||
Width = 173
|
Width = 173
|
||||||
Height = 18
|
Height = 18
|
||||||
Caption = 'Signaux complexes GL'
|
Caption = 'Signaux complexes GL'
|
||||||
@@ -1203,9 +1203,9 @@ object FormPrinc: TFormPrinc
|
|||||||
end
|
end
|
||||||
object ScrollBox1: TScrollBox
|
object ScrollBox1: TScrollBox
|
||||||
Left = 631
|
Left = 631
|
||||||
Top = 168
|
Top = 176
|
||||||
Width = 537
|
Width = 546
|
||||||
Height = 377
|
Height = 385
|
||||||
HorzScrollBar.Smooth = True
|
HorzScrollBar.Smooth = True
|
||||||
HorzScrollBar.Tracking = True
|
HorzScrollBar.Tracking = True
|
||||||
VertScrollBar.Smooth = True
|
VertScrollBar.Smooth = True
|
||||||
@@ -1218,96 +1218,61 @@ object FormPrinc: TFormPrinc
|
|||||||
object GroupBox1: TGroupBox
|
object GroupBox1: TGroupBox
|
||||||
Left = 631
|
Left = 631
|
||||||
Top = 5
|
Top = 5
|
||||||
Width = 249
|
Width = 266
|
||||||
Height = 129
|
Height = 52
|
||||||
Anchors = [akTop, akRight]
|
Anchors = [akTop, akRight]
|
||||||
Caption = 'Commande d'#39'accessoires'
|
Caption = 'Commande d'#39'accessoires'
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
object Label2: TLabel
|
object Label2: TLabel
|
||||||
Left = 7
|
Left = 7
|
||||||
Top = 16
|
Top = 24
|
||||||
Width = 58
|
Width = 58
|
||||||
Height = 13
|
Height = 13
|
||||||
Caption = 'adresse acc'
|
Caption = 'adresse acc'
|
||||||
end
|
end
|
||||||
object Label3: TLabel
|
|
||||||
Left = 75
|
|
||||||
Top = 16
|
|
||||||
Width = 30
|
|
||||||
Height = 13
|
|
||||||
Caption = '1 ou 2'
|
|
||||||
end
|
|
||||||
object Label4: TLabel
|
|
||||||
Left = 133
|
|
||||||
Top = 10
|
|
||||||
Width = 85
|
|
||||||
Height = 13
|
|
||||||
Caption = '1=d'#233'vi'#233' 2=droit'
|
|
||||||
end
|
|
||||||
object EditAdresse: TEdit
|
object EditAdresse: TEdit
|
||||||
Left = 8
|
Left = 72
|
||||||
Top = 32
|
Top = 24
|
||||||
Width = 57
|
Width = 49
|
||||||
Height = 21
|
Height = 21
|
||||||
Hint = 'Adresse accessoire ou de CV'
|
Hint = 'Adresse accessoire ou de CV'
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
Text = '1'
|
Text = '1'
|
||||||
end
|
end
|
||||||
object Editval: TEdit
|
object ButtonDroit: TButton
|
||||||
Left = 72
|
Left = 132
|
||||||
Top = 32
|
Top = 16
|
||||||
Width = 41
|
Width = 53
|
||||||
Height = 21
|
|
||||||
Hint = 'Entrez 1 ou 2 pour un accessoire DCC et 1 '#224' 255 pour un CV'
|
|
||||||
TabOrder = 1
|
|
||||||
Text = '1'
|
|
||||||
OnEnter = EditvalEnter
|
|
||||||
end
|
|
||||||
object ButtonEcrCV: TButton
|
|
||||||
Left = 8
|
|
||||||
Top = 64
|
|
||||||
Width = 225
|
|
||||||
Height = 25
|
Height = 25
|
||||||
Hint = 'Ecriture CV en mode direct sur voie de programmation'
|
Hint = 'Ecriture des accessoires DCC'
|
||||||
Caption = 'Ecriture CV - 1 '#224' 255 par bus XpressNet'
|
Caption = 'droit'
|
||||||
|
TabOrder = 1
|
||||||
|
WordWrap = True
|
||||||
|
OnClick = ButtonDroitClick
|
||||||
|
end
|
||||||
|
object ButtonDevie: TButton
|
||||||
|
Left = 192
|
||||||
|
Top = 16
|
||||||
|
Width = 57
|
||||||
|
Height = 25
|
||||||
|
Hint = 'Ecriture des accessoires DCC'
|
||||||
|
Caption = 'devi'#233
|
||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
WordWrap = True
|
WordWrap = True
|
||||||
OnClick = ButtonEcrCVClick
|
OnClick = ButtonDevieClick
|
||||||
end
|
|
||||||
object ButtonLitCV: TButton
|
|
||||||
Left = 8
|
|
||||||
Top = 96
|
|
||||||
Width = 225
|
|
||||||
Height = 25
|
|
||||||
Hint = 'Lecture CV en mode direct sur voie de programmation'
|
|
||||||
Caption = 'Lecture CV - 1 '#224' 255 par le bus XpressNet'
|
|
||||||
Enabled = False
|
|
||||||
TabOrder = 3
|
|
||||||
OnClick = ButtonLitCVClick
|
|
||||||
end
|
|
||||||
object ButtonCommande: TButton
|
|
||||||
Left = 124
|
|
||||||
Top = 24
|
|
||||||
Width = 109
|
|
||||||
Height = 33
|
|
||||||
Hint = 'Ecriture des accessoires DCC'
|
|
||||||
Caption = 'Envoi commande'
|
|
||||||
TabOrder = 4
|
|
||||||
WordWrap = True
|
|
||||||
OnClick = ButtonCommandeClick
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object StatusBar1: TStatusBar
|
object StatusBar1: TStatusBar
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 576
|
Top = 584
|
||||||
Width = 1196
|
Width = 1196
|
||||||
Height = 30
|
Height = 22
|
||||||
Panels = <>
|
Panels = <>
|
||||||
SimplePanel = True
|
SimplePanel = True
|
||||||
end
|
end
|
||||||
object MSCommUSBLenz: TMSComm
|
object MSCommUSBLenz: TMSComm
|
||||||
Left = 720
|
Left = 1160
|
||||||
Top = 144
|
Top = 192
|
||||||
Width = 32
|
Width = 32
|
||||||
Height = 32
|
Height = 32
|
||||||
OnComm = MSCommUSBLenzComm
|
OnComm = MSCommUSBLenzComm
|
||||||
@@ -1316,10 +1281,10 @@ object FormPrinc: TFormPrinc
|
|||||||
00020000802500000000080000000000000000003F00000011000000}
|
00020000802500000000080000000000000000003F00000011000000}
|
||||||
end
|
end
|
||||||
object Panel1: TPanel
|
object Panel1: TPanel
|
||||||
Left = 887
|
Left = 903
|
||||||
Top = 5
|
Top = 5
|
||||||
Width = 281
|
Width = 282
|
||||||
Height = 129
|
Height = 132
|
||||||
Anchors = [akTop, akRight]
|
Anchors = [akTop, akRight]
|
||||||
TabOrder = 4
|
TabOrder = 4
|
||||||
object BoutonRaf: TButton
|
object BoutonRaf: TButton
|
||||||
@@ -1385,19 +1350,20 @@ object FormPrinc: TFormPrinc
|
|||||||
OnClick = ButtonTestClick
|
OnClick = ButtonTestClick
|
||||||
end
|
end
|
||||||
object ButtonArretSimu: TButton
|
object ButtonArretSimu: TButton
|
||||||
Left = 104
|
Left = 8
|
||||||
Top = 88
|
Top = 88
|
||||||
Width = 81
|
Width = 89
|
||||||
Height = 33
|
Height = 33
|
||||||
Caption = 'Arret simulation'
|
Caption = 'Arret simulation'
|
||||||
TabOrder = 6
|
TabOrder = 6
|
||||||
Visible = False
|
Visible = False
|
||||||
|
WordWrap = True
|
||||||
OnClick = ButtonArretSimuClick
|
OnClick = ButtonArretSimuClick
|
||||||
end
|
end
|
||||||
object ButtonAffTCO: TButton
|
object ButtonAffTCO: TButton
|
||||||
Left = 8
|
Left = 104
|
||||||
Top = 88
|
Top = 88
|
||||||
Width = 89
|
Width = 81
|
||||||
Height = 33
|
Height = 33
|
||||||
Caption = 'Affiche TCO'
|
Caption = 'Affiche TCO'
|
||||||
TabOrder = 7
|
TabOrder = 7
|
||||||
@@ -1415,12 +1381,11 @@ object FormPrinc: TFormPrinc
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
object Panel2: TPanel
|
object Panel2: TPanel
|
||||||
Left = 631
|
Left = 904
|
||||||
Top = 136
|
Top = 144
|
||||||
Width = 153
|
Width = 281
|
||||||
Height = 25
|
Height = 25
|
||||||
Anchors = [akTop, akRight]
|
Anchors = [akTop, akRight]
|
||||||
Caption = 'Panel2'
|
|
||||||
TabOrder = 5
|
TabOrder = 5
|
||||||
object Label1: TLabel
|
object Label1: TLabel
|
||||||
Left = 16
|
Left = 16
|
||||||
@@ -1430,7 +1395,7 @@ object FormPrinc: TFormPrinc
|
|||||||
Caption = 'Nombre de trains : '
|
Caption = 'Nombre de trains : '
|
||||||
end
|
end
|
||||||
object LabelNbTrains: TLabel
|
object LabelNbTrains: TLabel
|
||||||
Left = 120
|
Left = 248
|
||||||
Top = 2
|
Top = 2
|
||||||
Width = 9
|
Width = 9
|
||||||
Height = 19
|
Height = 19
|
||||||
@@ -1445,7 +1410,7 @@ object FormPrinc: TFormPrinc
|
|||||||
end
|
end
|
||||||
object StaticText: TStaticText
|
object StaticText: TStaticText
|
||||||
Left = 16
|
Left = 16
|
||||||
Top = 560
|
Top = 565
|
||||||
Width = 14
|
Width = 14
|
||||||
Height = 17
|
Height = 17
|
||||||
Anchors = [akLeft, akRight, akBottom]
|
Anchors = [akLeft, akRight, akBottom]
|
||||||
@@ -1454,9 +1419,9 @@ object FormPrinc: TFormPrinc
|
|||||||
end
|
end
|
||||||
object FenRich: TRichEdit
|
object FenRich: TRichEdit
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 48
|
Top = 32
|
||||||
Width = 617
|
Width = 617
|
||||||
Height = 497
|
Height = 529
|
||||||
Anchors = [akLeft, akTop, akRight, akBottom]
|
Anchors = [akLeft, akTop, akRight, akBottom]
|
||||||
Color = clBlack
|
Color = clBlack
|
||||||
Font.Charset = DEFAULT_CHARSET
|
Font.Charset = DEFAULT_CHARSET
|
||||||
@@ -1471,11 +1436,73 @@ object FormPrinc: TFormPrinc
|
|||||||
TabOrder = 7
|
TabOrder = 7
|
||||||
OnChange = FenRichChange
|
OnChange = FenRichChange
|
||||||
end
|
end
|
||||||
|
object GroupBox2: TGroupBox
|
||||||
|
Left = 632
|
||||||
|
Top = 64
|
||||||
|
Width = 265
|
||||||
|
Height = 105
|
||||||
|
Anchors = [akTop, akRight]
|
||||||
|
Caption = 'Variables CV'
|
||||||
|
TabOrder = 8
|
||||||
|
object Label3: TLabel
|
||||||
|
Left = 208
|
||||||
|
Top = 34
|
||||||
|
Width = 14
|
||||||
|
Height = 13
|
||||||
|
Caption = 'CV'
|
||||||
|
WordWrap = True
|
||||||
|
end
|
||||||
|
object LabelVCV: TLabel
|
||||||
|
Left = 208
|
||||||
|
Top = 55
|
||||||
|
Width = 47
|
||||||
|
Height = 13
|
||||||
|
Caption = 'Valeur CV'
|
||||||
|
WordWrap = True
|
||||||
|
end
|
||||||
|
object ButtonEcrCV: TButton
|
||||||
|
Left = 8
|
||||||
|
Top = 16
|
||||||
|
Width = 153
|
||||||
|
Height = 33
|
||||||
|
Hint = 'Ecriture CV en mode direct sur voie de programmation'
|
||||||
|
Caption = 'Ecriture CV - 1 '#224' 255 par bus XpressNet'
|
||||||
|
TabOrder = 0
|
||||||
|
WordWrap = True
|
||||||
|
OnClick = ButtonEcrCVClick
|
||||||
|
end
|
||||||
|
object ButtonLitCV: TButton
|
||||||
|
Left = 8
|
||||||
|
Top = 64
|
||||||
|
Width = 153
|
||||||
|
Height = 33
|
||||||
|
Hint = 'Lecture CV en mode direct sur voie de programmation'
|
||||||
|
Caption = 'Lecture CV - 1 '#224' 255 par le bus XpressNet'
|
||||||
|
Enabled = False
|
||||||
|
TabOrder = 1
|
||||||
|
WordWrap = True
|
||||||
|
OnClick = ButtonLitCVClick
|
||||||
|
end
|
||||||
|
object EditCV: TEdit
|
||||||
|
Left = 168
|
||||||
|
Top = 32
|
||||||
|
Width = 33
|
||||||
|
Height = 21
|
||||||
|
TabOrder = 2
|
||||||
|
end
|
||||||
|
object EditVal: TEdit
|
||||||
|
Left = 168
|
||||||
|
Top = 52
|
||||||
|
Width = 33
|
||||||
|
Height = 21
|
||||||
|
TabOrder = 3
|
||||||
|
end
|
||||||
|
end
|
||||||
object Timer1: TTimer
|
object Timer1: TTimer
|
||||||
Interval = 100
|
Interval = 100
|
||||||
OnTimer = Timer1Timer
|
OnTimer = Timer1Timer
|
||||||
Left = 888
|
Left = 1168
|
||||||
Top = 80
|
Top = 224
|
||||||
end
|
end
|
||||||
object ClientSocketLenz: TClientSocket
|
object ClientSocketLenz: TClientSocket
|
||||||
Active = False
|
Active = False
|
||||||
@@ -1596,6 +1623,13 @@ object FormPrinc: TFormPrinc
|
|||||||
' sur la voie de programmation'
|
' sur la voie de programmation'
|
||||||
OnClick = LireunfichierdeCV1Click
|
OnClick = LireunfichierdeCV1Click
|
||||||
end
|
end
|
||||||
|
object N6: TMenuItem
|
||||||
|
Caption = '-'
|
||||||
|
end
|
||||||
|
object Apropos1: TMenuItem
|
||||||
|
Caption = 'A propos'
|
||||||
|
OnClick = Apropos1Click
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object ClientSocketCDM: TClientSocket
|
object ClientSocketCDM: TClientSocket
|
||||||
|
|||||||
+250
-167
@@ -27,8 +27,6 @@ type
|
|||||||
GroupBox1: TGroupBox;
|
GroupBox1: TGroupBox;
|
||||||
EditAdresse: TEdit;
|
EditAdresse: TEdit;
|
||||||
Label2: TLabel;
|
Label2: TLabel;
|
||||||
Editval: TEdit;
|
|
||||||
Label3: TLabel;
|
|
||||||
MainMenu1: TMainMenu;
|
MainMenu1: TMainMenu;
|
||||||
Interface1: TMenuItem;
|
Interface1: TMenuItem;
|
||||||
MenuConnecterUSB: TMenuItem;
|
MenuConnecterUSB: TMenuItem;
|
||||||
@@ -37,7 +35,6 @@ type
|
|||||||
MenuConnecterEthernet: TMenuItem;
|
MenuConnecterEthernet: TMenuItem;
|
||||||
MenuDeconnecterEthernet: TMenuItem;
|
MenuDeconnecterEthernet: TMenuItem;
|
||||||
StatusBar1: TStatusBar;
|
StatusBar1: TStatusBar;
|
||||||
Label4: TLabel;
|
|
||||||
MSCommUSBLenz: TMSComm;
|
MSCommUSBLenz: TMSComm;
|
||||||
Afficher1: TMenuItem;
|
Afficher1: TMenuItem;
|
||||||
Etatdesdtecteurs1: TMenuItem;
|
Etatdesdtecteurs1: TMenuItem;
|
||||||
@@ -62,7 +59,6 @@ type
|
|||||||
Divers1: TMenuItem;
|
Divers1: TMenuItem;
|
||||||
ClientSocketCDM: TClientSocket;
|
ClientSocketCDM: TClientSocket;
|
||||||
FichierSimu: TMenuItem;
|
FichierSimu: TMenuItem;
|
||||||
ButtonEcrCV: TButton;
|
|
||||||
OpenDialog: TOpenDialog;
|
OpenDialog: TOpenDialog;
|
||||||
N1: TMenuItem;
|
N1: TMenuItem;
|
||||||
LireunfichierdeCV1: TMenuItem;
|
LireunfichierdeCV1: TMenuItem;
|
||||||
@@ -70,7 +66,6 @@ type
|
|||||||
N5: TMenuItem;
|
N5: TMenuItem;
|
||||||
Quitter1: TMenuItem;
|
Quitter1: TMenuItem;
|
||||||
Config: TMenuItem;
|
Config: TMenuItem;
|
||||||
ButtonLitCV: TButton;
|
|
||||||
Codificationdesactionneurs1: TMenuItem;
|
Codificationdesactionneurs1: TMenuItem;
|
||||||
OuvrirunfichiertramesCDM1: TMenuItem;
|
OuvrirunfichiertramesCDM1: TMenuItem;
|
||||||
Panel1: TPanel;
|
Panel1: TPanel;
|
||||||
@@ -81,7 +76,7 @@ type
|
|||||||
ButtonReprise: TButton;
|
ButtonReprise: TButton;
|
||||||
ButtonTest: TButton;
|
ButtonTest: TButton;
|
||||||
ButtonArretSimu: TButton;
|
ButtonArretSimu: TButton;
|
||||||
ButtonCommande: TButton;
|
ButtonDroit: TButton;
|
||||||
Panel2: TPanel;
|
Panel2: TPanel;
|
||||||
Label1: TLabel;
|
Label1: TLabel;
|
||||||
LabelNbTrains: TLabel;
|
LabelNbTrains: TLabel;
|
||||||
@@ -94,12 +89,22 @@ type
|
|||||||
PopupMenuFenRich: TPopupMenu;
|
PopupMenuFenRich: TPopupMenu;
|
||||||
Copier1: TMenuItem;
|
Copier1: TMenuItem;
|
||||||
Etatdessignaux1: TMenuItem;
|
Etatdessignaux1: TMenuItem;
|
||||||
|
N6: TMenuItem;
|
||||||
|
Apropos1: TMenuItem;
|
||||||
|
ButtonDevie: TButton;
|
||||||
|
GroupBox2: TGroupBox;
|
||||||
|
ButtonEcrCV: TButton;
|
||||||
|
ButtonLitCV: TButton;
|
||||||
|
EditCV: TEdit;
|
||||||
|
Label3: TLabel;
|
||||||
|
LabelVCV: TLabel;
|
||||||
|
EditVal: TEdit;
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
procedure MSCommUSBLenzComm(Sender: TObject);
|
procedure MSCommUSBLenzComm(Sender: TObject);
|
||||||
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||||||
procedure Timer1Timer(Sender: TObject);
|
procedure Timer1Timer(Sender: TObject);
|
||||||
procedure BoutVersionClick(Sender: TObject);
|
procedure BoutVersionClick(Sender: TObject);
|
||||||
procedure ButtonCommandeClick(Sender: TObject);
|
procedure ButtonDroitClick(Sender: TObject);
|
||||||
procedure EditvalEnter(Sender: TObject);
|
procedure EditvalEnter(Sender: TObject);
|
||||||
procedure BoutonRafClick(Sender: TObject);
|
procedure BoutonRafClick(Sender: TObject);
|
||||||
procedure ClientSocketLenzError(Sender: TObject; Socket: TCustomWinSocket;
|
procedure ClientSocketLenzError(Sender: TObject; Socket: TCustomWinSocket;
|
||||||
@@ -147,6 +152,8 @@ type
|
|||||||
procedure FenRichChange(Sender: TObject);
|
procedure FenRichChange(Sender: TObject);
|
||||||
procedure Copier1Click(Sender: TObject);
|
procedure Copier1Click(Sender: TObject);
|
||||||
procedure Etatdessignaux1Click(Sender: TObject);
|
procedure Etatdessignaux1Click(Sender: TObject);
|
||||||
|
procedure Apropos1Click(Sender: TObject);
|
||||||
|
procedure ButtonDevieClick(Sender: TObject);
|
||||||
private
|
private
|
||||||
{ Déclarations privées }
|
{ Déclarations privées }
|
||||||
procedure DoHint(Sender : Tobject);
|
procedure DoHint(Sender : Tobject);
|
||||||
@@ -166,6 +173,7 @@ const_droit=2;const_devie=1; // positions aiguillages transmises par la central
|
|||||||
const_devieG_CDM=3; // positions aiguillages transmises par cdm
|
const_devieG_CDM=3; // positions aiguillages transmises par cdm
|
||||||
const_devieD_CDM=2; // positions aiguillages transmises par cdm
|
const_devieD_CDM=2; // positions aiguillages transmises par cdm
|
||||||
const_droit_CDM=0; // positions aiguillages transmises par cdm
|
const_droit_CDM=0; // positions aiguillages transmises par cdm
|
||||||
|
const_inconnu=9; // position inconnue
|
||||||
ClBleuClair=$FF7070 ;
|
ClBleuClair=$FF7070 ;
|
||||||
Cyan=$FF6060;
|
Cyan=$FF6060;
|
||||||
clviolet=$FF00FF;
|
clviolet=$FF00FF;
|
||||||
@@ -226,14 +234,14 @@ TMA = (valide,devalide);
|
|||||||
|
|
||||||
var
|
var
|
||||||
ancien_tablo_signalCplx,EtatsignalCplx : array[0..MaxAcc] of word;
|
ancien_tablo_signalCplx,EtatsignalCplx : array[0..MaxAcc] of word;
|
||||||
AvecInitAiguillages,tempsCli,NbreFeux,pasreponse,AdrDevie,fenetre,
|
tempsCli,NbreFeux,pasreponse,AdrDevie,fenetre,
|
||||||
NombreImages,signalCpx,branche_trouve,Indexbranche_trouve,Actuel,Signal_suivant,
|
NombreImages,signalCpx,branche_trouve,Indexbranche_trouve,Actuel,Signal_suivant,
|
||||||
Nbre_recu_cdm,Tempo_chgt_feux,Adj1,Adj2,NbrePN,ServeurInterfaceCDM,
|
Nbre_recu_cdm,Tempo_chgt_feux,Adj1,Adj2,NbrePN,ServeurInterfaceCDM,
|
||||||
ServeurRetroCDM,TailleFonte,Nb_Det_Dist : integer;
|
ServeurRetroCDM,TailleFonte,Nb_Det_Dist : integer;
|
||||||
|
|
||||||
Hors_tension2,traceSign,TraceZone,Ferme,parSocketLenz,ackCdm,PremierFD,
|
Hors_tension2,traceSign,TraceZone,Ferme,parSocketLenz,ackCdm,PremierFD,
|
||||||
NackCDM,MsgSim,succes,recu_cv,AffActionneur,AffAigDet,Option_demarrage,
|
NackCDM,MsgSim,succes,recu_cv,AffActionneur,AffAigDet,Option_demarrage,
|
||||||
TraceListe,clignotant,nack,Maj_feux_cours,configNulle,LanceCDM : boolean;
|
TraceListe,clignotant,nack,Maj_feux_cours,configNulle,LanceCDM,AvecInitAiguillages : boolean;
|
||||||
|
|
||||||
CDMhd : THandle;
|
CDMhd : THandle;
|
||||||
branche : array [1..100] of string;
|
branche : array [1..100] of string;
|
||||||
@@ -360,6 +368,7 @@ 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;
|
||||||
function carre_signal(adresse : integer) : boolean;
|
function carre_signal(adresse : integer) : boolean;
|
||||||
|
procedure Event_Detecteur(Adresse : integer;etat : boolean;train : string);
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
@@ -1468,70 +1477,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
// pilotage d'un accessoire (décodeur d'aiguillage, de signal)
|
|
||||||
// octet = 0 ou 1 ou 2
|
|
||||||
// la sortie "octet" est mise à 1 puis à 0
|
|
||||||
// acc = aig ou feu
|
|
||||||
procedure pilote_acc(adresse : integer;octet : byte;Acc : TAccessoire);
|
|
||||||
var groupe,temps : integer ;
|
|
||||||
fonction : byte;
|
|
||||||
s : string;
|
|
||||||
begin
|
|
||||||
//Affiche(IntToSTR(adresse)+' '+intToSTr(octet),clYellow);
|
|
||||||
// pilotage par CDM rail
|
|
||||||
if CDM_connecte then
|
|
||||||
begin
|
|
||||||
//AfficheDebug(intToSTR(adresse),clred);
|
|
||||||
if debug_dec_sig and (acc=feu) then AfficheDebug('Tick='+IntToSTR(Tick)+' signal '+intToSTR(adresse)+' '+intToSTR(octet),clorange);
|
|
||||||
s:=chaine_CDM_Acc(adresse,octet);
|
|
||||||
envoi_CDM(s);
|
|
||||||
if (acc=feu) and not(Raz_Acc_signaux) then exit;
|
|
||||||
if debug_dec_sig and (acc=feu) then AfficheDebug('Tick='+IntToSTR(Tick)+' signal '+intToSTR(adresse)+' 0',clorange);
|
|
||||||
s:=chaine_CDM_Acc(adresse,0);
|
|
||||||
envoi_CDM(s);
|
|
||||||
exit;
|
|
||||||
end;
|
|
||||||
|
|
||||||
// pilotage par USB ou par éthernet de la centrale
|
|
||||||
|
|
||||||
// Affiche('Accessoire '+intToSTR(adresse),clLime);
|
|
||||||
if (hors_tension2=false) and (portCommOuvert or parSocketLenz) then
|
|
||||||
begin
|
|
||||||
// test si pilotage aiguillage inversé
|
|
||||||
if aiguillage[adresse].inversion=1 then
|
|
||||||
begin
|
|
||||||
if octet=1 then octet:=2 else octet:=1;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if (octet=0) or (octet>2) then exit;
|
|
||||||
//if (octet>2) then exit;
|
|
||||||
groupe:=(adresse-1) div 4;
|
|
||||||
fonction:=((adresse-1) mod 4)*2 + (octet-1);
|
|
||||||
// pilotage à 1
|
|
||||||
s:=#$52+Char(groupe)+char(fonction or $88); // activer la sortie
|
|
||||||
s:=checksum(s);
|
|
||||||
if debug_dec_sig and (acc=feu) then AfficheDebug('Tick='+IntToSTR(Tick)+' signal '+intToSTR(adresse)+' '+intToSTR(octet),clorange);
|
|
||||||
envoi(s); // envoi de la trame et attente Ack
|
|
||||||
// si l'accessoire est un feu et sans raz des signaux, sortir
|
|
||||||
if (acc=feu) and not(Raz_Acc_signaux) then exit;
|
|
||||||
|
|
||||||
|
|
||||||
// si aiguillage, faire une temporisation
|
|
||||||
//if (index_feu(adresse)=0) or (Acc=aig) then
|
|
||||||
if Acc=Aig then
|
|
||||||
begin
|
|
||||||
temps:=aiguillage[adresse].temps;if temps=0 then temps:=4;
|
|
||||||
if portCommOuvert or parSocketLenz then tempo(temps);
|
|
||||||
end;
|
|
||||||
sleep(50);
|
|
||||||
|
|
||||||
// pilotage à 0 pour éteindre le pilotage de la bobine du relais
|
|
||||||
s:=#$52+Char(groupe)+char(fonction or $80); // désactiver la sortie
|
|
||||||
s:=checksum(s);
|
|
||||||
if debug_dec_sig and (acc=feu) then AfficheDebug('Tick='+IntToSTR(Tick)+' signal '+intToSTR(adresse)+' 0',clorange);
|
|
||||||
envoi(s); // envoi de la trame et attente Ack
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
// pilote accessoire en entrée 0->2 1->1
|
// pilote accessoire en entrée 0->2 1->1
|
||||||
procedure pilote_acc01(adresse : integer;octet : byte);
|
procedure pilote_acc01(adresse : integer;octet : byte);
|
||||||
@@ -3486,7 +3431,7 @@ var s,sa,chaine,SOrigine: string;
|
|||||||
begin
|
begin
|
||||||
begin
|
begin
|
||||||
adresse:=StrToINT(copy(s,1,j-1));Delete(s,1,j); // adresse aiguillage
|
adresse:=StrToINT(copy(s,1,j-1));Delete(s,1,j); // adresse aiguillage
|
||||||
if (adresse>0) and (AvecInitAiguillages=1) 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
|
position:=StrToInt(copy(s,1,j-1));Delete(S,1,j);// position aiguillage
|
||||||
@@ -3534,7 +3479,7 @@ begin
|
|||||||
for i:=1 to MaxAcc do
|
for i:=1 to MaxAcc do
|
||||||
begin
|
begin
|
||||||
Aiguillage[i].modele:=0 ; // sans existence
|
Aiguillage[i].modele:=0 ; // sans existence
|
||||||
Aiguillage[i].position:=9; // position inconnue
|
Aiguillage[i].position:=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;
|
||||||
@@ -3664,7 +3609,7 @@ begin
|
|||||||
trouve_init_aig:=true;
|
trouve_init_aig:=true;
|
||||||
inc(nv);
|
inc(nv);
|
||||||
delete(s,i,length(sa));
|
delete(s,i,length(sa));
|
||||||
AvecInitAiguillages:=StrToINT(s);
|
AvecInitAiguillages:=s='1';
|
||||||
end;
|
end;
|
||||||
|
|
||||||
sa:=uppercase(fenetre_ch)+'=';
|
sa:=uppercase(fenetre_ch)+'=';
|
||||||
@@ -4763,9 +4708,9 @@ begin
|
|||||||
if NivDebug=3 then AfficheDebug('44 - éléments non consécutifs: Prec='+intToSTR(prec)+' Actuel='+intTostr(Actuel),clred);
|
if NivDebug=3 then AfficheDebug('44 - éléments non consécutifs: Prec='+intToSTR(prec)+' Actuel='+intTostr(Actuel),clred);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if (Btype>=2) then // aiguillage ou bis ou buttoir
|
if (Btype>=2) then // aiguillage ou buttoir
|
||||||
begin
|
begin
|
||||||
if (aiguillage[Adr].modele=1) and (Btype=2) then // aiguillage normal non bis
|
if (aiguillage[Adr].modele=1) and (Btype=2) then // aiguillage normal
|
||||||
begin
|
begin
|
||||||
// aiguillage pris en pointe
|
// aiguillage pris en pointe
|
||||||
if (aiguillage[adr].Apointe=prec) then
|
if (aiguillage[adr].Apointe=prec) then
|
||||||
@@ -4816,14 +4761,16 @@ begin
|
|||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
if NivDebug=3 then AfficheDebug('135 - aiguillage '+intToSTR(Adr)+' Pris en talon',clyellow);
|
if NivDebug=3 then AfficheDebug('135 - aiguillage '+intToSTR(Adr)+' Pris en talon',clyellow);
|
||||||
if alg=2 then // on demande d'arreter si l'aiguillage en talon est mal positionné
|
if (alg=2) then // on demande d'arreter si l'aiguillage en talon est mal positionné
|
||||||
begin
|
begin
|
||||||
if aiguillage[adr].position=const_droit then
|
if aiguillage[adr].position=const_droit then
|
||||||
begin
|
begin
|
||||||
|
// si TJD (modele=2) sur le précédent, alors substituer avec la 2eme adresse de la TJD
|
||||||
|
if aiguillage[prec].modele=2 then prec:=aiguillage[prec].DDroit;
|
||||||
if prec<>aiguillage[Adr].Adroit then
|
if prec<>aiguillage[Adr].Adroit then
|
||||||
begin
|
begin
|
||||||
if NivDebug=3 then AfficheDebug('135.1 - Aiguillage '+intToSTR(adr)+' mal positionné',clyellow);
|
if NivDebug=3 then AfficheDebug('135.1 - Aiguillage '+intToSTR(adr)+' mal positionné',clyellow);
|
||||||
suivant_alg3:=9998;exit;
|
suivant_alg3:=9998;exit;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
@@ -5155,7 +5102,7 @@ begin
|
|||||||
suivant_alg3:=adr;exit;
|
suivant_alg3:=adr;exit;
|
||||||
end;
|
end;
|
||||||
begin
|
begin
|
||||||
if aiguillage[Adr].position=9 then begin suivant_alg3:=9996;exit;end; // pour échappement
|
if aiguillage[Adr].position=const_inconnu then begin suivant_alg3:=9996;exit;end; // pour échappement
|
||||||
s:='Aiguillage triple '+IntToSTR(Adr)+' : configuration des aiguilles interdite';
|
s:='Aiguillage triple '+IntToSTR(Adr)+' : configuration des aiguilles interdite';
|
||||||
if CDM_connecte then s:=s+': '+IntToSTR(aiguillage[Adr].position);
|
if CDM_connecte then s:=s+': '+IntToSTR(aiguillage[Adr].position);
|
||||||
AfficheDebug(s,clYellow);
|
AfficheDebug(s,clYellow);
|
||||||
@@ -5397,6 +5344,10 @@ begin
|
|||||||
AdrPrec:=el1;TypePrec:=typeDet1;
|
AdrPrec:=el1;TypePrec:=typeDet1;
|
||||||
if j=1 then i1:=IndexBranche_det1+1;
|
if j=1 then i1:=IndexBranche_det1+1;
|
||||||
if j=2 then i1:=IndexBranche_det1-1;
|
if j=2 then i1:=IndexBranche_det1-1;
|
||||||
|
// les suivants dansla branche sont:
|
||||||
|
AdrFonc:=BrancheN[branche_trouve_det1,i1].adresse;
|
||||||
|
typeFonc:=BrancheN[branche_trouve_det1,i1].Btype ;
|
||||||
|
|
||||||
if NivDebug=3 then
|
if NivDebug=3 then
|
||||||
begin
|
begin
|
||||||
s:='Test en ';
|
s:='Test en ';
|
||||||
@@ -5405,17 +5356,17 @@ begin
|
|||||||
AfficheDebug(s,clyellow);
|
AfficheDebug(s,clyellow);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
AdrFonc:=BrancheN[branche_trouve_det1,i1].adresse;
|
|
||||||
typeFonc:=BrancheN[branche_trouve_det1,i1].Btype ;
|
|
||||||
|
|
||||||
|
|
||||||
i:=0;N_Det:=0;
|
i:=0;N_Det:=0;
|
||||||
if AdrFonc<>El2 then // si pas déja trouvé le sens de progression
|
if AdrFonc<>El2 then // si pas déja trouvé le sens de progression
|
||||||
begin
|
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);
|
||||||
Adr:=suivant_alg3(AdrPrec,TypePrec,AdrFonc,TypeFonc,1);
|
if (AdrFonc<>0) or (TypeFonc<>0) then Adr:=suivant_alg3(AdrPrec,TypePrec,AdrFonc,TypeFonc,1) else
|
||||||
|
begin
|
||||||
|
Adr:=9999;
|
||||||
|
end;
|
||||||
|
|
||||||
//AfficheDebug('Sortie Alg3: '+IntToSTR(Adr)+'/'+intToSTR(typeGen),clyellow);
|
//AfficheDebug('Sortie Alg3: '+IntToSTR(Adr)+'/'+intToSTR(typeGen),clyellow);
|
||||||
if TypeGen=1 then inc(N_Det);
|
if TypeGen=1 then inc(N_Det);
|
||||||
if NivDebug=3 then
|
if NivDebug=3 then
|
||||||
@@ -5594,7 +5545,7 @@ begin
|
|||||||
until (sort);
|
until (sort);
|
||||||
// si trouvé un feu ou j=10, les aiguillages sont bien positionnés
|
// si trouvé un feu ou j=10, les aiguillages sont bien positionnés
|
||||||
// si trouvé 9998, aiguillages mal positionnés
|
// si trouvé 9998, aiguillages mal positionnés
|
||||||
if (NivDebug=3) then
|
if (NivDebug>=1) then
|
||||||
begin
|
begin
|
||||||
if (AdrSuiv=9998) then AfficheDebug('Le signal '+intToSTR(adresse)+' doit afficher un carré car l''aiguillage pris en talon '+IntToSTR(actuel)+' est mal positionné',clYellow)
|
if (AdrSuiv=9998) then AfficheDebug('Le signal '+intToSTR(adresse)+' doit afficher un carré car l''aiguillage pris en talon '+IntToSTR(actuel)+' est mal positionné',clYellow)
|
||||||
else AfficheDebug('Le signal '+IntToSTR(adresse)+' ne doit pas être au carré',clYellow);
|
else AfficheDebug('Le signal '+IntToSTR(adresse)+' ne doit pas être au carré',clYellow);
|
||||||
@@ -5851,7 +5802,8 @@ end;
|
|||||||
// adresse=adresse du signal
|
// adresse=adresse du signal
|
||||||
function test_memoire_zones(adresse : integer) : boolean;
|
function test_memoire_zones(adresse : integer) : boolean;
|
||||||
var
|
var
|
||||||
AdrSuiv,prec,TypePrec,TypeActuel,ife,actuel,AdrDet,Etat,AdrFeu,i,j,PresTrain01,PrecInitial : integer;
|
AdrSuiv,prec,TypePrec,TypeActuel,ife,actuel,AdrDet,Etat,AdrFeu,i,j,PresTrain01,PrecInitial,
|
||||||
|
N_Det : integer;
|
||||||
Pres_train,sort : boolean;
|
Pres_train,sort : boolean;
|
||||||
s : string;
|
s : string;
|
||||||
begin
|
begin
|
||||||
@@ -5868,6 +5820,7 @@ begin
|
|||||||
ife:=1; // index feu de 1 à 4 pour explorer les 4 détecteurs d'un feu
|
ife:=1; // index feu de 1 à 4 pour explorer les 4 détecteurs d'un feu
|
||||||
repeat
|
repeat
|
||||||
j:=0;
|
j:=0;
|
||||||
|
N_Det:=0;
|
||||||
if NivDebug=3 then AfficheDebug('Boucle de test feu '+intToSTR(ife)+'/4',clOrange);
|
if NivDebug=3 then AfficheDebug('Boucle de test feu '+intToSTR(ife)+'/4',clOrange);
|
||||||
if (ife=1) then
|
if (ife=1) then
|
||||||
begin
|
begin
|
||||||
@@ -5926,7 +5879,7 @@ begin
|
|||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
AdrSuiv:=suivant_alg3(prec,TypePrec,actuel,TypeActuel,1);
|
AdrSuiv:=suivant_alg3(prec,TypePrec,actuel,TypeActuel,1);
|
||||||
|
if Typegen=1 then inc(N_Det);
|
||||||
prec:=actuel;TypePrec:=TypeActuel;
|
prec:=actuel;TypePrec:=TypeActuel;
|
||||||
actuel:=AdrSuiv;TypeActuel:=typeGen;
|
actuel:=AdrSuiv;TypeActuel:=typeGen;
|
||||||
if AdrSuiv>9990 then
|
if AdrSuiv>9990 then
|
||||||
@@ -5936,7 +5889,7 @@ begin
|
|||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if NivDebug=3 then AfficheDebug('132 - suivant='+IntToSTR(adrsuiv),clYellow);
|
if NivDebug=3 then AfficheDebug('132 - suivant='+IntToSTR(adrsuiv)+'/'+IntToSTR(TypeGen),clYellow);
|
||||||
if actuel=0 then
|
if actuel=0 then
|
||||||
begin
|
begin
|
||||||
// si c'est un buttoir
|
// si c'est un buttoir
|
||||||
@@ -5948,7 +5901,7 @@ begin
|
|||||||
AdrFeu:=0;
|
AdrFeu:=0;
|
||||||
if (TypeActuel=1) then // détecteur
|
if (TypeActuel=1) then // détecteur
|
||||||
begin
|
begin
|
||||||
if (NivDebug=3) and MemZone[PrecInitial][actuel] then AfficheDebug('Présence train de '+intToSTR(PrecInitial)+' à '+intToSTR(actuel),clyellow);
|
if (NivDebug>0) and MemZone[PrecInitial][actuel] then AfficheDebug('Présence train de '+intToSTR(PrecInitial)+' à '+intToSTR(actuel),clyellow);
|
||||||
|
|
||||||
Pres_train:=MemZone[PrecInitial][actuel] or Pres_train; // mémoire de zone
|
Pres_train:=MemZone[PrecInitial][actuel] or Pres_train; // mémoire de zone
|
||||||
if Pres_Train then PresTrain01:=1 else PresTrain01:=0;
|
if Pres_Train then PresTrain01:=1 else PresTrain01:=0;
|
||||||
@@ -5966,8 +5919,8 @@ begin
|
|||||||
if (feux[i].Adr_el_suiv1<>prec) then // le feu est-il dans le bon sens de progression?
|
if (feux[i].Adr_el_suiv1<>prec) then // le feu est-il dans le bon sens de progression?
|
||||||
begin
|
begin
|
||||||
s:='Trouvé feu '+IntToSTR(AdrFeu);
|
s:='Trouvé feu '+IntToSTR(AdrFeu);
|
||||||
if (NivDebug=3) And Pres_Train then AfficheDebug(s+' et sortie proced:Mémoire de zone à 1',clyellow);
|
if (NivDebug>0) And Pres_Train then AfficheDebug(s+' et sortie proced:Mémoire de zone à 1',clyellow);
|
||||||
if (NivDebug=3) And (not(Pres_Train)) then AfficheDebug(s+' et sortie proced:Mémoire de zone à 0',clyellow);
|
if (NivDebug>0) And (not(Pres_Train)) then AfficheDebug(s+' et sortie proced:Mémoire de zone à 0',clyellow);
|
||||||
test_memoire_zones:=Pres_train;exit;
|
test_memoire_zones:=Pres_train;exit;
|
||||||
|
|
||||||
end
|
end
|
||||||
@@ -5987,11 +5940,11 @@ begin
|
|||||||
begin
|
begin
|
||||||
if (NivDebug=3) then AfficheDebug('Trouvé aiguillage '+intToSTR(AdrSuiv),clyellow);
|
if (NivDebug=3) then AfficheDebug('Trouvé aiguillage '+intToSTR(AdrSuiv),clyellow);
|
||||||
end;
|
end;
|
||||||
sort:=(j=10) or (AdrFeu<>0) ;
|
sort:=(j=10) or (AdrFeu<>0) or (N_Det>=Nb_det_dist);
|
||||||
until (sort); // on arrete jusqu'à trouver un signal ou si on va trop loin (10 itérations)
|
until (sort); // on arrete jusqu'à trouver un signal ou si on va trop loin (10 itérations)
|
||||||
inc(ife);
|
inc(ife);
|
||||||
until ife>=5;
|
until ife>=5;
|
||||||
if (NivDebug=3) and (Etat=0) then AfficheDebug('Pas trouvé de signal suivant au '+intToSTR(adresse),clyellow);
|
if (NivDebug>0) and (Etat=0) then AfficheDebug('Pas trouvé de signal suivant au '+intToSTR(adresse),clyellow);
|
||||||
test_memoire_zones:=Pres_train;
|
test_memoire_zones:=Pres_train;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -6127,18 +6080,22 @@ begin
|
|||||||
if (det_initial<>0) then
|
if (det_initial<>0) then
|
||||||
begin
|
begin
|
||||||
DetPrec1:=detecteur_suivant(Adr_El_Suiv,Btype_el_suivant,det_initial,1,2); // 2= algo2 = arret sur aiguillage en talon mal positionné
|
DetPrec1:=detecteur_suivant(Adr_El_Suiv,Btype_el_suivant,det_initial,1,2); // 2= algo2 = arret sur aiguillage en talon mal positionné
|
||||||
|
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
|
||||||
DetPrec2:=detecteur_suivant_El(det_initial,1,DetPrec1,1);
|
if detPrec1<>0 then DetPrec2:=detecteur_suivant_El(det_initial,1,DetPrec1,1) else DetPrec2:=0;
|
||||||
|
if nivdebug=3 then afficheDebug('detPrec2='+intToSTR(DetPrec2),clorange);
|
||||||
if DetPrec2<1024 then
|
if DetPrec2<1024 then
|
||||||
begin
|
begin
|
||||||
DetPrec3:=detecteur_suivant_El(DetPrec1,1,DetPrec2,1);
|
if detPrec2<>0 then DetPrec3:=detecteur_suivant_El(DetPrec1,1,DetPrec2,1) else DetPrec3:=0;
|
||||||
|
if nivdebug=3 then afficheDebug('detPrec3='+intToSTR(DetPrec3),clorange);
|
||||||
if DetPrec3<1024 then
|
if DetPrec3<1024 then
|
||||||
begin
|
begin
|
||||||
DetPrec4:=detecteur_suivant_El(DetPrec2,1,DetPrec3,1);
|
if detPrec3<>0 then DetPrec4:=detecteur_suivant_El(DetPrec2,1,DetPrec3,1) else DetPrec4:=0;
|
||||||
|
if nivdebug=3 then afficheDebug('detPrec4='+intToSTR(DetPrec4),clorange);
|
||||||
if DetPrec4<1024 then
|
if DetPrec4<1024 then
|
||||||
begin
|
begin
|
||||||
if AffSignal or (NivDebug=3) then AfficheDebug('Les détecteurs précédents au feu '+IntToSTR(Adrfeu)+' sont:'+intToSTR(Det_initial)+' '+intToSTR(DetPrec1)+' '+intToSTR(DetPrec2)+' '+intToSTR(DetPrec3)+' '+intToSTR(DetPrec4),clyellow);
|
if AffSignal or (NivDebug>=2) then AfficheDebug('Les détecteurs précédents au feu '+IntToSTR(Adrfeu)+' sont:'+intToSTR(Det_initial)+' '+intToSTR(DetPrec1)+' '+intToSTR(DetPrec2)+' '+intToSTR(DetPrec3)+' '+intToSTR(DetPrec4),clyellow);
|
||||||
PresTrain:=MemZone[DetPrec4,detPrec3] or
|
PresTrain:=MemZone[DetPrec4,detPrec3] or
|
||||||
MemZone[DetPrec3,detPrec2] or MemZone[DetPrec2,detPrec1] or MemZone[DetPrec1,Det_initial] or presTrain ;
|
MemZone[DetPrec3,detPrec2] or MemZone[DetPrec2,detPrec1] or MemZone[DetPrec1,Det_initial] or presTrain ;
|
||||||
if AffSignal or (NivDebug=3) then
|
if AffSignal or (NivDebug=3) then
|
||||||
@@ -6175,7 +6132,7 @@ var i,j,k1,k2,BtypeSuiv,Adr_det,etat,Adr,Aig,Adr_El_Suiv,
|
|||||||
s : string;
|
s : string;
|
||||||
begin
|
begin
|
||||||
s:='Traitement du feu '+intToSTR(Adrfeu)+'------------------------------------';
|
s:='Traitement du feu '+intToSTR(Adrfeu)+'------------------------------------';
|
||||||
//if adrfeu=197 then affsignal:=true else affsignal:=false;
|
|
||||||
if AffSignal then AfficheDebug(s,clOrange);
|
if AffSignal then AfficheDebug(s,clOrange);
|
||||||
i:=index_feu(Adrfeu);
|
i:=index_feu(Adrfeu);
|
||||||
if AdrFeu<>0 then
|
if AdrFeu<>0 then
|
||||||
@@ -6227,6 +6184,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[i].aspect=2) then //or (feux[i].check<>nil) then // si carré violet
|
||||||
begin
|
begin
|
||||||
|
//AfficheDebug('Feux à 2 feux',CLOrange);
|
||||||
// si aiguillage après signal mal positionnées
|
// si aiguillage après signal mal positionnées
|
||||||
if carre_signal(AdrFeu) then
|
if carre_signal(AdrFeu) then
|
||||||
begin
|
begin
|
||||||
@@ -6236,7 +6194,9 @@ begin
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
Maj_Etat_Signal(AdrFeu,blanc);
|
if test_memoire_zones(AdrFeu) then Maj_Etat_Signal(AdrFeu,violet) // test si présence train après signal
|
||||||
|
else Maj_Etat_Signal(AdrFeu,blanc);
|
||||||
|
|
||||||
Envoi_signauxCplx;
|
Envoi_signauxCplx;
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
@@ -6385,6 +6345,16 @@ begin
|
|||||||
//affiche('index2='+IntToSTR(index2_det),clWhite);
|
//affiche('index2='+IntToSTR(index2_det),clWhite);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
// trouve si le détecteur adr est contigu à un buttoir
|
||||||
|
function buttoir_adjacent(adr : integer) : boolean;
|
||||||
|
begin
|
||||||
|
trouve_element(adr,1,1); // branche_trouve IndexBranche_trouve
|
||||||
|
if Branche_trouve=0 then begin buttoir_adjacent:=false;exit;end;
|
||||||
|
buttoir_adjacent:=( (BrancheN[branche_trouve,IndexBranche_trouve+1].Adresse=0) and (BrancheN[branche_trouve,IndexBranche_trouve+1].BType=4) or
|
||||||
|
(BrancheN[branche_trouve,IndexBranche_trouve-1].Adresse=0) and (BrancheN[branche_trouve,IndexBranche_trouve-1].BType=4) )
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
// calcul des zones depuis le tableau des fronts descendants des évènements détecteurs
|
// calcul des zones depuis le tableau des fronts descendants des évènements détecteurs
|
||||||
// transmis dans le tableau Event_det
|
// transmis dans le tableau Event_det
|
||||||
procedure calcul_zones;
|
procedure calcul_zones;
|
||||||
@@ -6494,13 +6464,15 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// créer un train, donc un tableau
|
// Nombre d'éléments à 0 : ici c'est un nouveau train donc créer un train, donc un tableau
|
||||||
if N_Trains>=Max_Trains then
|
if N_Trains>=Max_Trains then
|
||||||
begin
|
begin
|
||||||
Affiche('Erreur nombre de train maximal atteint',clRed);
|
Affiche('Erreur nombre de train maximal atteint',clRed);
|
||||||
end;
|
end;
|
||||||
Inc(N_trains);
|
Inc(N_trains);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// vérifier si le détecteur du nouveau train est associé à un feu vers un buttoir
|
// vérifier si le détecteur du nouveau train est associé à un feu vers un buttoir
|
||||||
for i:=1 to NbreFeux do
|
for i:=1 to NbreFeux do
|
||||||
begin
|
begin
|
||||||
@@ -6515,7 +6487,7 @@ begin
|
|||||||
if TraceListe then Affiche('FD - Le feu '+IntToSTR(AdrFeu)+' est précédé d''un buttoir',clyellow);
|
if TraceListe then Affiche('FD - Le feu '+IntToSTR(AdrFeu)+' est précédé d''un buttoir',clyellow);
|
||||||
MemZone[0,AdrDetFeu]:=false;
|
MemZone[0,AdrDetFeu]:=false;
|
||||||
//NivDebug:=3;
|
//NivDebug:=3;
|
||||||
AffSignal:=true;
|
//AffSignal:=true;
|
||||||
maj_feu(AdrFeu);
|
maj_feu(AdrFeu);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@@ -6523,18 +6495,36 @@ begin
|
|||||||
|
|
||||||
if TraceListe then AfficheDebug('Création Train n°'+intToSTR(i),clyellow);
|
if TraceListe then AfficheDebug('Création Train n°'+intToSTR(i),clyellow);
|
||||||
Formprinc.LabelNbTrains.caption:=IntToSTR(N_trains);
|
Formprinc.LabelNbTrains.caption:=IntToSTR(N_trains);
|
||||||
event_det_train[N_trains].det[1]:=det3;
|
|
||||||
event_det_train[N_trains].NbEl:=1;
|
// si on démarre d'un buttoir
|
||||||
with FormDebug.MemoEvtDet do
|
if buttoir_adjacent(det3) then
|
||||||
begin
|
begin
|
||||||
lines.add('Nouveau Tampon train '+intToStr(N_trains)+'--------');
|
if TraceListe then AfficheDebug('detection démarrage depuis détecteur '+IntToSTR(det3)+' buttoir',clyellow);
|
||||||
lines.add(intToSTR(event_det_train[N_trains].det[1]));
|
event_det_train[N_trains].det[1]:=0;
|
||||||
end;
|
event_det_train[N_trains].det[2]:=det3;
|
||||||
if TraceListe then
|
event_det_train[N_trains].NbEl:=2;
|
||||||
|
with FormDebug.MemoEvtDet do
|
||||||
|
begin
|
||||||
|
lines.add('Nouveau Tampon train '+intToStr(N_Trains)+'--------');
|
||||||
|
lines.add(intToSTR(event_det_train[N_Trains].det[1]));
|
||||||
|
lines.add(intToSTR(event_det_train[N_Trains].det[2]));
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
else
|
||||||
begin
|
begin
|
||||||
AfficheDebug('Nouveau Tampon train '+intToStr(N_trains)+'--------',clyellow);
|
event_det_train[N_trains].det[1]:=det3;
|
||||||
AfficheDebug(intToSTR(event_det_train[N_trains].det[1]),clyellow );
|
event_det_train[N_trains].NbEl:=1;
|
||||||
end;
|
with FormDebug.MemoEvtDet do
|
||||||
|
begin
|
||||||
|
lines.add('Nouveau Tampon train '+intToStr(N_trains)+'--------');
|
||||||
|
lines.add(intToSTR(event_det_train[N_trains].det[1]));
|
||||||
|
end;
|
||||||
|
if TraceListe then
|
||||||
|
begin
|
||||||
|
AfficheDebug('Nouveau Tampon train '+intToStr(N_trains)+'--------',clyellow);
|
||||||
|
AfficheDebug(intToSTR(event_det_train[N_trains].det[1]),clyellow );
|
||||||
|
end;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@@ -6759,7 +6749,7 @@ begin
|
|||||||
begin
|
begin
|
||||||
if aiguillage[i].modele<>0 then
|
if aiguillage[i].modele<>0 then
|
||||||
begin
|
begin
|
||||||
if aiguillage[i].position=9 then
|
if aiguillage[i].position=const_inconnu then
|
||||||
begin
|
begin
|
||||||
Affiche('Attention : position de l''aiguillage '+IntToSTR(i)+' inconnue',clred);
|
Affiche('Attention : position de l''aiguillage '+IntToSTR(i)+' inconnue',clred);
|
||||||
AfficheDebug('Attention : position de l''aiguillage '+IntToSTR(i)+' inconnue',clred);
|
AfficheDebug('Attention : position de l''aiguillage '+IntToSTR(i)+' inconnue',clred);
|
||||||
@@ -6789,18 +6779,18 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
// évènement d'aiguillage
|
// évènement d'aiguillage
|
||||||
procedure Event_Aig(adresse,pos,objet : integer);
|
procedure Event_Aig(adresse,pos : integer);
|
||||||
var s: string;
|
var s: string;
|
||||||
faire_event: boolean;
|
faire_event: boolean;
|
||||||
begin
|
begin
|
||||||
// ------------------- traitement du numéro d'objet -------------------------
|
// ------------------- traitement du numéro d'objet -------------------------
|
||||||
// init objet
|
{ init objet
|
||||||
if aiguillage[adresse].objet=0 then
|
if aiguillage[adresse].objet=0 then
|
||||||
begin
|
begin
|
||||||
aiguillage[adresse].objet:=objet;
|
aiguillage[adresse].objet:=objet;
|
||||||
//affiche('stockage Aiguillage '+intToSTR(adresse)+' objet='+intToSTR(objet),clYellow);
|
//affiche('stockage Aiguillage '+intToSTR(adresse)+' objet='+intToSTR(objet),clYellow);
|
||||||
end;
|
end;
|
||||||
|
}
|
||||||
// ne pas faire l'évaluation si l'ancien état de l'aiguillage est indéterminée (9)
|
// ne pas faire l'évaluation si l'ancien état de l'aiguillage est indéterminée (9)
|
||||||
// car le RUN vient de démarrer
|
// car le RUN vient de démarrer
|
||||||
faire_event:=aiguillage[adresse].position<>9;
|
faire_event:=aiguillage[adresse].position<>9;
|
||||||
@@ -6816,7 +6806,7 @@ begin
|
|||||||
if pos=const_droit then s:=s+' droit' else s:=s+' dévié';
|
if pos=const_droit then s:=s+' droit' else s:=s+' dévié';
|
||||||
if AffAigDet then
|
if AffAigDet then
|
||||||
begin
|
begin
|
||||||
if objet<>0 then s:=s+' objet='+IntToSTR(objet);
|
//if objet<>0 then s:=s+' objet='+IntToSTR(objet);
|
||||||
Affiche(s,clyellow);
|
Affiche(s,clyellow);
|
||||||
AfficheDebug(s,clyellow);
|
AfficheDebug(s,clyellow);
|
||||||
end;
|
end;
|
||||||
@@ -6826,7 +6816,7 @@ begin
|
|||||||
event_det_tick[N_event_tick].tick:=tick;
|
event_det_tick[N_event_tick].tick:=tick;
|
||||||
event_det_tick[N_event_tick].aiguillage:=adresse;
|
event_det_tick[N_event_tick].aiguillage:=adresse;
|
||||||
event_det_tick[N_event_tick].etat:=pos;
|
event_det_tick[N_event_tick].etat:=pos;
|
||||||
event_det_tick[N_event_tick].objet:=objet;
|
//event_det_tick[N_event_tick].objet:=objet;
|
||||||
|
|
||||||
// Mettre à jour le TCO
|
// Mettre à jour le TCO
|
||||||
if AvecTCO then
|
if AvecTCO then
|
||||||
@@ -6838,6 +6828,75 @@ begin
|
|||||||
if faire_event then evalue;
|
if faire_event then evalue;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
// pilotage d'un accessoire (décodeur d'aiguillage, de signal)
|
||||||
|
// octet = 0 ou 1 ou 2
|
||||||
|
// la sortie "octet" est mise à 1 puis à 0
|
||||||
|
// acc = aig ou feu
|
||||||
|
procedure pilote_acc(adresse : integer;octet : byte;Acc : TAccessoire);
|
||||||
|
var groupe,temps : integer ;
|
||||||
|
fonction : byte;
|
||||||
|
s : string;
|
||||||
|
begin
|
||||||
|
//Affiche(IntToSTR(adresse)+' '+intToSTr(octet),clYellow);
|
||||||
|
// pilotage par CDM rail
|
||||||
|
if CDM_connecte then
|
||||||
|
begin
|
||||||
|
//AfficheDebug(intToSTR(adresse),clred);
|
||||||
|
if debug_dec_sig and (acc=feu) then AfficheDebug('Tick='+IntToSTR(Tick)+' signal '+intToSTR(adresse)+' '+intToSTR(octet),clorange);
|
||||||
|
s:=chaine_CDM_Acc(adresse,octet);
|
||||||
|
envoi_CDM(s);
|
||||||
|
if (acc=feu) and not(Raz_Acc_signaux) then exit;
|
||||||
|
if debug_dec_sig and (acc=feu) then AfficheDebug('Tick='+IntToSTR(Tick)+' signal '+intToSTR(adresse)+' 0',clorange);
|
||||||
|
s:=chaine_CDM_Acc(adresse,0);
|
||||||
|
envoi_CDM(s);
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// pilotage par USB ou par éthernet de la centrale
|
||||||
|
|
||||||
|
// Affiche('Accessoire '+intToSTR(adresse),clLime);
|
||||||
|
if (hors_tension2=false) and (portCommOuvert or parSocketLenz) then
|
||||||
|
begin
|
||||||
|
// test si pilotage aiguillage inversé
|
||||||
|
if aiguillage[adresse].inversion=1 then
|
||||||
|
begin
|
||||||
|
if octet=1 then octet:=2 else octet:=1;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if (octet=0) or (octet>2) then exit;
|
||||||
|
//if (octet>2) then exit;
|
||||||
|
groupe:=(adresse-1) div 4;
|
||||||
|
fonction:=((adresse-1) mod 4)*2 + (octet-1);
|
||||||
|
// pilotage à 1
|
||||||
|
s:=#$52+Char(groupe)+char(fonction or $88); // activer la sortie
|
||||||
|
s:=checksum(s);
|
||||||
|
if debug_dec_sig and (acc=feu) then AfficheDebug('Tick='+IntToSTR(Tick)+' signal '+intToSTR(adresse)+' '+intToSTR(octet),clorange);
|
||||||
|
envoi(s); // envoi de la trame et attente Ack
|
||||||
|
// si l'accessoire est un feu et sans raz des signaux, sortir
|
||||||
|
if (acc=feu) and not(Raz_Acc_signaux) then exit;
|
||||||
|
|
||||||
|
|
||||||
|
// si aiguillage, faire une temporisation
|
||||||
|
//if (index_feu(adresse)=0) or (Acc=aig) then
|
||||||
|
if Acc=Aig then
|
||||||
|
begin
|
||||||
|
temps:=aiguillage[adresse].temps;if temps=0 then temps:=4;
|
||||||
|
if portCommOuvert or parSocketLenz then tempo(temps);
|
||||||
|
end;
|
||||||
|
sleep(50);
|
||||||
|
|
||||||
|
// pilotage à 0 pour éteindre le pilotage de la bobine du relais
|
||||||
|
s:=#$52+Char(groupe)+char(fonction or $80); // désactiver la sortie
|
||||||
|
s:=checksum(s);
|
||||||
|
if debug_dec_sig and (acc=feu) then AfficheDebug('Tick='+IntToSTR(Tick)+' signal '+intToSTR(adresse)+' 0',clorange);
|
||||||
|
envoi(s); // envoi de la trame et attente Ack
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// pas de centrale et pas CDM connecté: on change la position de l'aiguillage
|
||||||
|
if acc=aig then event_aig(adresse,octet);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
// le décodage de la rétro est appellée sur une réception d'une trame de la rétrosignalisation de la centrale.
|
// le décodage de la rétro est appellée sur une réception d'une trame de la rétrosignalisation de la centrale.
|
||||||
// On déclenche ensuite les évènements détecteurs ou aiguillages.
|
// On déclenche ensuite les évènements détecteurs ou aiguillages.
|
||||||
@@ -6888,22 +6947,22 @@ begin
|
|||||||
adraig:=((adresse * 4)+1 ); // *4 car N=1, c'est le "poids fort"
|
adraig:=((adresse * 4)+1 ); // *4 car N=1, c'est le "poids fort"
|
||||||
if (valeur and $C)=$8 then
|
if (valeur and $C)=$8 then
|
||||||
begin
|
begin
|
||||||
Event_Aig(adraig+3,const_droit,0);
|
Event_Aig(adraig+3,const_droit);
|
||||||
if traceTrames then begin s:='accessoire '+intToSTR(adraig+3)+'=2';AfficheDebug(s,clYellow);end;
|
if traceTrames then begin s:='accessoire '+intToSTR(adraig+3)+'=2';AfficheDebug(s,clYellow);end;
|
||||||
end;
|
end;
|
||||||
if (valeur and $C)=$4 then
|
if (valeur and $C)=$4 then
|
||||||
begin
|
begin
|
||||||
Event_Aig(adraig+3,const_devie,0);
|
Event_Aig(adraig+3,const_devie);
|
||||||
if traceTrames then begin s:='accessoire '+intToSTR(adraig+3)+'=1';AfficheDebug(s,clYellow);end;
|
if traceTrames then begin s:='accessoire '+intToSTR(adraig+3)+'=1';AfficheDebug(s,clYellow);end;
|
||||||
end;
|
end;
|
||||||
if (valeur and $3)=$2 then
|
if (valeur and $3)=$2 then
|
||||||
begin
|
begin
|
||||||
Event_Aig(adraig+2,const_droit,0);
|
Event_Aig(adraig+2,const_droit);
|
||||||
if traceTrames then begin s:='accessoire '+intToSTR(adraig+2)+'=2';AfficheDebug(s,clYellow);end;
|
if traceTrames then begin s:='accessoire '+intToSTR(adraig+2)+'=2';AfficheDebug(s,clYellow);end;
|
||||||
end;
|
end;
|
||||||
if (valeur and $3)=$1 then
|
if (valeur and $3)=$1 then
|
||||||
begin
|
begin
|
||||||
Event_Aig(adraig+2,const_devie,0);
|
Event_Aig(adraig+2,const_devie);
|
||||||
if traceTrames then begin s:='accessoire '+intToSTR(adraig+2)+'=1';AfficheDebug(s,clYellow);end;
|
if traceTrames then begin s:='accessoire '+intToSTR(adraig+2)+'=1';AfficheDebug(s,clYellow);end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@@ -6944,22 +7003,22 @@ begin
|
|||||||
adraig:=(adresse * 4)+1;
|
adraig:=(adresse * 4)+1;
|
||||||
if (valeur and $C)=$8 then
|
if (valeur and $C)=$8 then
|
||||||
begin
|
begin
|
||||||
Event_Aig(adraig+1,const_droit,0);
|
Event_Aig(adraig+1,const_droit);
|
||||||
if traceTrames then begin s:='accessoire '+intToSTR(adraig+1)+'=2';AfficheDebug(s,clYellow);end;
|
if traceTrames then begin s:='accessoire '+intToSTR(adraig+1)+'=2';AfficheDebug(s,clYellow);end;
|
||||||
end;
|
end;
|
||||||
if (valeur and $C)=$4 then
|
if (valeur and $C)=$4 then
|
||||||
begin
|
begin
|
||||||
Event_Aig(adraig+1,const_devie,0);
|
Event_Aig(adraig+1,const_devie);
|
||||||
if traceTrames then begin s:='accessoire '+intToSTR(adraig+1)+'=1';AfficheDebug(s,clYellow);end;
|
if traceTrames then begin s:='accessoire '+intToSTR(adraig+1)+'=1';AfficheDebug(s,clYellow);end;
|
||||||
end;
|
end;
|
||||||
if (valeur and $3)=$2 then
|
if (valeur and $3)=$2 then
|
||||||
begin
|
begin
|
||||||
Event_Aig(adraig,const_droit,0);
|
Event_Aig(adraig,const_droit);
|
||||||
if traceTrames then begin s:='accessoire '+intToSTR(adraig)+'=2';AfficheDebug(s,clYellow);end;
|
if traceTrames then begin s:='accessoire '+intToSTR(adraig)+'=2';AfficheDebug(s,clYellow);end;
|
||||||
end;
|
end;
|
||||||
if (valeur and $3)=$1 then
|
if (valeur and $3)=$1 then
|
||||||
begin
|
begin
|
||||||
Event_Aig(adraig,const_devie,0);
|
Event_Aig(adraig,const_devie);
|
||||||
if traceTrames then begin s:='accessoire '+intToSTR(adraig)+'=1';AfficheDebug(s,clYellow);end;
|
if traceTrames then begin s:='accessoire '+intToSTR(adraig)+'=1';AfficheDebug(s,clYellow);end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@@ -7621,7 +7680,7 @@ begin
|
|||||||
|
|
||||||
if not(diffusion) then LireunfichierdeCV1.enabled:=true;
|
if not(diffusion) then LireunfichierdeCV1.enabled:=true;
|
||||||
|
|
||||||
// ajoute une image dynamiquement
|
// ajoute les images des feux dynamiquement
|
||||||
for i:=1 to NbreFeux do
|
for i:=1 to NbreFeux do
|
||||||
begin
|
begin
|
||||||
cree_image(i); // et initialisation tableaux signaux
|
cree_image(i); // et initialisation tableaux signaux
|
||||||
@@ -7653,15 +7712,21 @@ begin
|
|||||||
FormTCO.show;
|
FormTCO.show;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
//essai &&&&&&&&&&
|
|
||||||
Affiche('Fin des initialisations',clyellow);
|
Affiche('Fin des initialisations',clyellow);
|
||||||
LabelEtat.Caption:=' ';
|
LabelEtat.Caption:=' ';
|
||||||
Affiche_memoire;
|
Affiche_memoire;
|
||||||
//---------------------------------
|
//---------------------------------
|
||||||
{
|
{
|
||||||
aiguillage[20].position:=const_droit;
|
aiguillage[6].position:=const_devie;
|
||||||
aiguillage[21].position:=const_droit;
|
aiguillage[4].position:=const_droit;
|
||||||
|
aiguillage[3].position:=const_droit;
|
||||||
|
aiguillage[1].position:=const_devie;
|
||||||
|
aiguillage[26].position:=const_droit;
|
||||||
|
aiguillage[28].position:=const_devie;
|
||||||
|
|
||||||
|
if buttoir_adjacent(515) then affiche('oui',clred);
|
||||||
|
|
||||||
|
|
||||||
NivDebug:=3;
|
NivDebug:=3;
|
||||||
FormDebug.show;
|
FormDebug.show;
|
||||||
//i:=Detecteur_suivant_El(591,1,602,1);
|
//i:=Detecteur_suivant_El(591,1,602,1);
|
||||||
@@ -7740,13 +7805,13 @@ begin
|
|||||||
if Tempo_init>0 then dec(Tempo_init);
|
if Tempo_init>0 then dec(Tempo_init);
|
||||||
if (Tempo_init=1) and AvecInit then
|
if (Tempo_init=1) and AvecInit then
|
||||||
begin
|
begin
|
||||||
if not(ConfigNulle) and not(ferme) and (AvecInitAiguillages=1) then
|
if not(ConfigNulle) and not(ferme) and (AvecInitAiguillages) then
|
||||||
begin
|
begin
|
||||||
Affiche('Positionnement des feux',clYellow);
|
Affiche('Positionnement des feux',clYellow);
|
||||||
envoi_signauxCplx; // initialisation des feux
|
envoi_signauxCplx; // initialisation des feux
|
||||||
init_aiguillages; // initialisation des aiguillages
|
init_aiguillages; // initialisation des aiguillages
|
||||||
end;
|
end;
|
||||||
if (AvecInitAiguillages=0) and not(ferme) and (parSocketLenz or portCommOuvert) then
|
if not(AvecInitAiguillages) and not(ferme) and (parSocketLenz or portCommOuvert) then
|
||||||
begin
|
begin
|
||||||
demande_etat_acc; // demande l'état des accessoires (position des aiguillages)
|
demande_etat_acc; // demande l'état des accessoires (position des aiguillages)
|
||||||
end;
|
end;
|
||||||
@@ -7827,9 +7892,9 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if (not(Maj_feux_cours) and (Tempo_chgt_feux=1)) then Maj_feux(); // mise à jour des feux sur chgt aiguillage
|
//if (not(Maj_feux_cours) and (Tempo_chgt_feux=1)) then Maj_feux(); // mise à jour des feux sur chgt aiguillage
|
||||||
|
|
||||||
if (not(Maj_feux_cours) and (Tempo_chgt_feux>0)) then dec(Tempo_chgt_feux);
|
//if (not(Maj_feux_cours) and (Tempo_chgt_feux>0)) then dec(Tempo_chgt_feux);
|
||||||
|
|
||||||
// tempo retombée actionneur
|
// tempo retombée actionneur
|
||||||
if TempoAct<>0 then
|
if TempoAct<>0 then
|
||||||
@@ -7850,13 +7915,7 @@ begin
|
|||||||
if not(MsgSim) then
|
if not(MsgSim) then
|
||||||
begin
|
begin
|
||||||
Affiche('Simulation en cours ',Cyan);MsgSim:=true;
|
Affiche('Simulation en cours ',Cyan);MsgSim:=true;
|
||||||
N_Event_tick:=0;
|
Raz_tout;
|
||||||
N_event_det:=0;
|
|
||||||
N_trains:=0;
|
|
||||||
for i:=1 to Max_Trains do Event_det_Train[i].NbEl:=0;
|
|
||||||
i_simule:=0;
|
|
||||||
FormDebug.MemoEvtDet.Clear;
|
|
||||||
FormDebug.Richedit.Clear;
|
|
||||||
// AffTickSimu:=true;
|
// AffTickSimu:=true;
|
||||||
end;
|
end;
|
||||||
while tick=Tablo_simule[i_simule+1].tick do
|
while tick=Tablo_simule[i_simule+1].tick do
|
||||||
@@ -7876,7 +7935,7 @@ begin
|
|||||||
if Tablo_simule[i_simule].aiguillage<>0 then
|
if Tablo_simule[i_simule].aiguillage<>0 then
|
||||||
begin
|
begin
|
||||||
s:='Simulation '+intToSTR(I_simule)+' Tick='+IntToSTR(tick)+' aig='+intToSTR(Tablo_simule[i_simule].aiguillage)+'='+IntToSTR(Tablo_simule[i_simule].etat);
|
s:='Simulation '+intToSTR(I_simule)+' Tick='+IntToSTR(tick)+' aig='+intToSTR(Tablo_simule[i_simule].aiguillage)+'='+IntToSTR(Tablo_simule[i_simule].etat);
|
||||||
Event_Aig(Tablo_simule[i_simule].Aiguillage,Tablo_simule[i_simule].etat,0); // créer évt aiguillage
|
Event_Aig(Tablo_simule[i_simule].Aiguillage,Tablo_simule[i_simule].etat); // créer évt aiguillage
|
||||||
StaticText.caption:=s;
|
StaticText.caption:=s;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -7892,7 +7951,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// temporisations de démarrage des trains au feux
|
// temporisations de démarrage des trains au feux pas encore au point
|
||||||
if Option_demarrage then
|
if Option_demarrage then
|
||||||
for i:=1 to 1024 do
|
for i:=1 to 1024 do
|
||||||
begin
|
begin
|
||||||
@@ -7925,8 +7984,9 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
// bouton de commande d'un accessoire
|
// bouton de commande d'un accessoire
|
||||||
procedure TFormPrinc.ButtonCommandeClick(Sender: TObject);
|
procedure TFormPrinc.ButtonDroitClick(Sender: TObject);
|
||||||
var adr,valeur,erreur : integer;
|
var adr,erreur : integer;
|
||||||
|
s : string;
|
||||||
begin
|
begin
|
||||||
val(EditAdresse.text,adr,erreur);
|
val(EditAdresse.text,adr,erreur);
|
||||||
if (erreur<>0) or (adr<1) or (adr>2048) then
|
if (erreur<>0) or (adr<1) or (adr>2048) then
|
||||||
@@ -7935,14 +7995,26 @@ begin
|
|||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
val(EditVal.Text,valeur,erreur);
|
pilote_acc(adr,const_droit,aig);
|
||||||
if (erreur<>0) or (valeur<0) or (valeur>255) then
|
s:='accessoire '+IntToSTR(adr)+' droit';
|
||||||
begin
|
Affiche(s,clyellow);
|
||||||
EditVal.text:='1';
|
end;
|
||||||
exit;
|
|
||||||
end;
|
|
||||||
|
|
||||||
pilote_acc(adr,valeur,aig);
|
|
||||||
|
procedure TFormPrinc.ButtonDevieClick(Sender: TObject);
|
||||||
|
var adr,erreur : integer;
|
||||||
|
s : string;
|
||||||
|
begin
|
||||||
|
val(EditAdresse.text,adr,erreur);
|
||||||
|
if (erreur<>0) or (adr<1) or (adr>2048) then
|
||||||
|
begin
|
||||||
|
EditAdresse.text:='1';
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
|
||||||
|
pilote_acc(adr,const_devie,aig);
|
||||||
|
s:='accessoire '+IntToSTR(adr)+' dévié';
|
||||||
|
Affiche(s,clyellow);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TFormPrinc.EditvalEnter(Sender: TObject);
|
procedure TFormPrinc.EditvalEnter(Sender: TObject);
|
||||||
@@ -8120,7 +8192,7 @@ begin
|
|||||||
s:='Aiguillage '+IntToSTR(i)+' : '+intToSTR(aiguillage[i].position);
|
s:='Aiguillage '+IntToSTR(i)+' : '+intToSTR(aiguillage[i].position);
|
||||||
if aiguillage[i].position=const_devie then s:=s+' (dévié)' ;
|
if aiguillage[i].position=const_devie then s:=s+' (dévié)' ;
|
||||||
if aiguillage[i].position=const_droit then s:=s+' (droit)';
|
if aiguillage[i].position=const_droit then s:=s+' (droit)';
|
||||||
if aiguillage[i].position=9 then s:=s+' inconnue';
|
if aiguillage[i].position=const_inconnu then s:=s+' inconnue';
|
||||||
|
|
||||||
objet:=aiguillage[i].objet;
|
objet:=aiguillage[i].objet;
|
||||||
if objet<>0 then s:=s+' objet='+intToSTR(objet);
|
if objet<>0 then s:=s+' objet='+intToSTR(objet);
|
||||||
@@ -8303,7 +8375,7 @@ begin
|
|||||||
begin
|
begin
|
||||||
//Affiche('Normal',clyellow);
|
//Affiche('Normal',clyellow);
|
||||||
if etat=0 then etatAig:=2 else etatAig:=1;
|
if etat=0 then etatAig:=2 else etatAig:=1;
|
||||||
Event_Aig(adr,etatAig,objet);
|
Event_Aig(adr,etatAig);
|
||||||
end;
|
end;
|
||||||
// TJD TJS
|
// TJD TJS
|
||||||
if (aiguillage[adr].modele=2) or (aiguillage[adr].modele=3) then
|
if (aiguillage[adr].modele=2) or (aiguillage[adr].modele=3) then
|
||||||
@@ -8323,8 +8395,8 @@ begin
|
|||||||
adr:=adr2;
|
adr:=adr2;
|
||||||
adr2:=prv;
|
adr2:=prv;
|
||||||
end;
|
end;
|
||||||
Event_Aig(adr,etatAig,objet);
|
Event_Aig(adr,etatAig);
|
||||||
Event_Aig(adr2,etatAig2,objet);
|
Event_Aig(adr2,etatAig2);
|
||||||
end;
|
end;
|
||||||
if aiguillage[adr].modele=4 then // aiguillage triple
|
if aiguillage[adr].modele=4 then // aiguillage triple
|
||||||
begin
|
begin
|
||||||
@@ -8336,8 +8408,8 @@ begin
|
|||||||
adr2:=aiguillage[adr].AdrTriple;
|
adr2:=aiguillage[adr].AdrTriple;
|
||||||
if (etat=0) or (etat=3) then etatAig2:=2;
|
if (etat=0) or (etat=3) then etatAig2:=2;
|
||||||
if etat=2 then etatAig2:=1;
|
if etat=2 then etatAig2:=1;
|
||||||
Event_Aig(adr,etatAig,objet);
|
Event_Aig(adr,etatAig);
|
||||||
Event_Aig(adr2,etatAig2,objet);
|
Event_Aig(adr2,etatAig2);
|
||||||
end;
|
end;
|
||||||
// Tempo_chgt_feux:=10; // demander la mise à jour des feux
|
// Tempo_chgt_feux:=10; // demander la mise à jour des feux
|
||||||
end;
|
end;
|
||||||
@@ -8598,17 +8670,17 @@ var adr,valeur,erreur : integer;
|
|||||||
s : string;
|
s : string;
|
||||||
begin
|
begin
|
||||||
// doc XpressNet page 55
|
// doc XpressNet page 55
|
||||||
val(EditAdresse.text,adr,erreur);
|
val(EditCV.text,adr,erreur);
|
||||||
if (erreur<>0) or (Adr>255) or (Adr<0) then
|
if (erreur<>0) or (Adr>255) or (Adr<0) then
|
||||||
begin
|
begin
|
||||||
EditAdresse.Text:='1';
|
EditCV.Text:='1';
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
val(EditVal.Text,valeur,erreur);
|
val(EditVal.Text,valeur,erreur);
|
||||||
if (erreur<>0) or (valeur<0) or (valeur>255) then
|
if (erreur<>0) or (valeur<0) or (valeur>255) then
|
||||||
begin
|
begin
|
||||||
EditAdresse.text:='1';
|
EditVal.text:='1';
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -8695,10 +8767,10 @@ begin
|
|||||||
sa:='';
|
sa:='';
|
||||||
Affiche('Lecture CV',clyellow);
|
Affiche('Lecture CV',clyellow);
|
||||||
|
|
||||||
val(EditAdresse.Text,cv,erreur);
|
val(EditCV.Text,cv,erreur);
|
||||||
if (erreur<>0) or (cv>255) or (cv<0) then
|
if (erreur<>0) or (cv>255) or (cv<0) then
|
||||||
begin
|
begin
|
||||||
EditAdresse.Text:='1';
|
EditCV.Text:='1';
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
//trace:=true;
|
//trace:=true;
|
||||||
@@ -8904,8 +8976,19 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TFormPrinc.Apropos1Click(Sender: TObject);
|
||||||
|
begin
|
||||||
|
Affiche(' ',clyellow);
|
||||||
|
Affiche('Signaux complexes GL version '+version+' (C) 2020 F1IWQ Gily TDR',clWhite);
|
||||||
|
Affiche('http://cdmrail.free.fr/ForumCDR/viewtopic.php?f=77&t=3906',clWhite);
|
||||||
|
Affiche('https://github.com/f1iwq2/Signaux_complexes_GL',clWhite);
|
||||||
|
Affiche(' ',clyellow);
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|||||||
-8911
File diff suppressed because it is too large
Load Diff
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
+1
-1
@@ -23,7 +23,7 @@ var
|
|||||||
Lance_verif : integer;
|
Lance_verif : integer;
|
||||||
verifVersion,notificationVersion : boolean;
|
verifVersion,notificationVersion : boolean;
|
||||||
|
|
||||||
Const Version='2.3'; // sert à la comparaison de la version publiée
|
Const Version='2.31'; // sert à la comparaison de la version publiée
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ version 2.21 : Param
|
|||||||
Correction d'un bug de la 2.2
|
Correction d'un bug de la 2.2
|
||||||
version 2.3 : Changement de la méthode de réception des trames du protocole IPC de CDM-Rail
|
version 2.3 : Changement de la méthode de réception des trames du protocole IPC de CDM-Rail
|
||||||
Affichage au démarrage des variables manquantes du fichier config-gl.cfg
|
Affichage au démarrage des variables manquantes du fichier config-gl.cfg
|
||||||
|
version 2.31 : Amélioration calcul des routes depuis buttoir
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user