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
|
||||||
|
|||||||
BIN
UnitConfig.dcu
BIN
UnitConfig.dcu
Binary file not shown.
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
BIN
UnitDebug.dcu
BIN
UnitDebug.dcu
Binary file not shown.
106
UnitDebug.dfm
106
UnitDebug.dfm
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
BIN
UnitPrinc.dcu
BIN
UnitPrinc.dcu
Binary file not shown.
206
UnitPrinc.dfm
206
UnitPrinc.dfm
@@ -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
|
||||||
|
|||||||
417
UnitPrinc.pas
417
UnitPrinc.pas
@@ -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
|
||||||
//initialisation aiguillages
|
//initialisation aiguillages
|
||||||
repeat
|
repeat
|
||||||
s:=lit_ligne;
|
s:=lit_ligne;
|
||||||
j:=pos(',',s);
|
j:=pos(',',s);
|
||||||
if j>1 then
|
if j>1 then
|
||||||
begin
|
begin
|
||||||
@@ -3534,7 +3479,7 @@ begin
|
|||||||
trouve_fenetre:=false;
|
trouve_fenetre:=false;
|
||||||
trouve_verif_version:=false;
|
trouve_verif_version:=false;
|
||||||
trouve_Fonte:=false;
|
trouve_Fonte:=false;
|
||||||
|
|
||||||
Nb_Det_Dist:=3;
|
Nb_Det_Dist:=3;
|
||||||
// initialisation des aiguillages avec des valeurs par défaut
|
// initialisation des aiguillages avec des valeurs par défaut
|
||||||
for i:=1 to MaxAcc do
|
for i:=1 to MaxAcc do
|
||||||
@@ -3664,7 +3609,7 @@ begin
|
|||||||
|
|
||||||
// avec ou sans initialisation des aiguillages
|
// avec ou sans initialisation des aiguillages
|
||||||
sa:=uppercase(INIT_AIG_ch)+'=';
|
sa:=uppercase(INIT_AIG_ch)+'=';
|
||||||
i:=pos(sa,s);
|
i:=pos(sa,s);
|
||||||
if i<>0 then
|
if i<>0 then
|
||||||
begin
|
begin
|
||||||
trouve_init_aig:=true;
|
trouve_init_aig:=true;
|
||||||
@@ -4763,9 +4708,9 @@ begin
|
|||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
goto recommence;
|
goto recommence;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Affiche('44 - éléments non consécutifs: Prec='+intToSTR(prec)+' Actuel='+intTostr(Actuel),clred);
|
Affiche('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);
|
if NivDebug=3 then AfficheDebug('44 - éléments non consécutifs: Prec='+intToSTR(prec)+' Actuel='+intTostr(Actuel),clred);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -4816,14 +4761,16 @@ begin
|
|||||||
if A='Z' then TypeEl:=1 else TypeEL:=2; //TypeEL=(1=détécteur 2=aig 3=aig Bis)
|
if A='Z' then TypeEl:=1 else TypeEL:=2; //TypeEL=(1=détécteur 2=aig 3=aig Bis)
|
||||||
trouve_element(adr,TypeEl,1); // branche_trouve IndexBranche_trouve
|
trouve_element(adr,TypeEl,1); // branche_trouve IndexBranche_trouve
|
||||||
typeGen:=BrancheN[branche_trouve,IndexBranche_trouve].Btype;
|
typeGen:=BrancheN[branche_trouve,IndexBranche_trouve].Btype;
|
||||||
suivant_alg3:=adr;exit;
|
suivant_alg3:=adr;exit;
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
begin
|
||||||
|
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 alg=2 then // on demande d'arreter si l'aiguillage en talon est mal positionné
|
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
|
// 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 aiguillage[prec].modele=2 then prec:=aiguillage[prec].DDroit;
|
||||||
if prec<>aiguillage[Adr].Adroit then
|
if prec<>aiguillage[Adr].Adroit then
|
||||||
@@ -5155,7 +5102,7 @@ begin
|
|||||||
if NivDebug=3 then AfficheDebug('Aiguillage triple dévié2 (à droite)',clYellow);
|
if NivDebug=3 then AfficheDebug('Aiguillage triple dévié2 (à droite)',clYellow);
|
||||||
A:=aiguillage[Adr].Adevie2B;
|
A:=aiguillage[Adr].Adevie2B;
|
||||||
Adr:=aiguillage[Adr].Adevie2;
|
Adr:=aiguillage[Adr].Adevie2;
|
||||||
if A='Z' then TypeEl:=1 else TypeEL:=2; //TypeEL=(1=détécteur 2=aig 3=aig Bis)
|
if A='Z' then TypeEl:=1 else TypeEL:=2; //TypeEL=(1=détécteur 2=aig 3=aig Bis)
|
||||||
trouve_element(Adr,TypeEl,1); // branche_trouve IndexBranche_trouve
|
trouve_element(Adr,TypeEl,1); // branche_trouve IndexBranche_trouve
|
||||||
typeGen:=BrancheN[branche_trouve,IndexBranche_trouve].BType;
|
typeGen:=BrancheN[branche_trouve,IndexBranche_trouve].BType;
|
||||||
suivant_alg3:=adr;exit;
|
suivant_alg3:=adr;exit;
|
||||||
@@ -5397,6 +5344,10 @@ begin
|
|||||||
j:=1; // J=1 test en incrément J=2 test en décrément
|
j:=1; // J=1 test en incrément J=2 test en décrément
|
||||||
|
|
||||||
// étape 1 : trouver le sens de progression (en incrément ou en décrément)
|
// étape 1 : trouver le sens de progression (en incrément ou en décrément)
|
||||||
|
|
||||||
|
repeat
|
||||||
|
//préparer les variables
|
||||||
|
AdrPrec:=el1;TypePrec:=typeDet1;
|
||||||
if j=1 then i1:=IndexBranche_det1+1;
|
if j=1 then i1:=IndexBranche_det1+1;
|
||||||
if j=2 then i1:=IndexBranche_det1-1;
|
if j=2 then i1:=IndexBranche_det1-1;
|
||||||
// les suivants dansla branche sont:
|
// les suivants dansla branche sont:
|
||||||
@@ -5405,17 +5356,17 @@ begin
|
|||||||
|
|
||||||
if NivDebug=3 then
|
if NivDebug=3 then
|
||||||
begin
|
begin
|
||||||
s:='Test en ';
|
|
||||||
if (j=1) then s:=s+'incrément ' else s:=s+'décrément ';
|
|
||||||
s:=s+'- départ depuis élément '+IntToSTR(el1)+' trouvé en index='+intToSTR(IndexBranche_det1)+' Branche='+intToSTR(branche_trouve_det1);
|
|
||||||
AfficheDebug(s,clyellow);
|
|
||||||
s:='Test en ';
|
s:='Test en ';
|
||||||
if (j=1) then s:=s+'incrément ' else s:=s+'décrément ';
|
if (j=1) then s:=s+'incrément ' else s:=s+'décrément ';
|
||||||
s:=s+'- départ depuis élément '+IntToSTR(el1)+' trouvé en index='+intToSTR(IndexBranche_det1)+' Branche='+intToSTR(branche_trouve_det1);
|
s:=s+'- départ depuis élément '+IntToSTR(el1)+' trouvé en index='+intToSTR(IndexBranche_det1)+' Branche='+intToSTR(branche_trouve_det1);
|
||||||
AfficheDebug(s,clyellow);
|
AfficheDebug(s,clyellow);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
i:=0;N_Det:=0;
|
i:=0;N_Det:=0;
|
||||||
|
if AdrFonc<>El2 then // si pas déja trouvé le sens de progression
|
||||||
|
begin
|
||||||
|
repeat
|
||||||
|
//AfficheDebug('Engage '+IntToSTR(AdrPrec)+','+IntToSTR(typePrec)+'/'+IntToSTR(AdrFonc)+','+IntToSTR(typeFonc),clyellow);
|
||||||
if nivDebug=3 then AfficheDebug('i='+IntToSTR(i)+' NDet='+IntToSTR(N_det),clyellow);
|
if nivDebug=3 then AfficheDebug('i='+IntToSTR(i)+' NDet='+IntToSTR(N_det),clyellow);
|
||||||
if (AdrFonc<>0) or (TypeFonc<>0) then Adr:=suivant_alg3(AdrPrec,TypePrec,AdrFonc,TypeFonc,1) else
|
if (AdrFonc<>0) or (TypeFonc<>0) then Adr:=suivant_alg3(AdrPrec,TypePrec,AdrFonc,TypeFonc,1) else
|
||||||
begin
|
begin
|
||||||
@@ -5594,7 +5545,7 @@ begin
|
|||||||
if (AdrSuiv>500) then
|
if (AdrSuiv>500) then
|
||||||
begin
|
begin
|
||||||
AdrFeu:=index_feu_det(AdrSuiv);
|
AdrFeu:=index_feu_det(AdrSuiv);
|
||||||
//Affiche(IntToSTR(AdrFeu),clOrange);
|
//Affiche(IntToSTR(AdrFeu),clOrange);
|
||||||
end;
|
end;
|
||||||
sort:=(j=10) or (AdrFeu<>0) or (AdrSuiv=9998) or (AdrSuiv=0); // arret si aiguillage en talon ou buttoir
|
sort:=(j=10) or (AdrFeu<>0) or (AdrSuiv=9998) or (AdrSuiv=0); // arret si aiguillage en talon ou buttoir
|
||||||
until (sort);
|
until (sort);
|
||||||
@@ -5851,7 +5802,8 @@ end;
|
|||||||
pilote_direction(Adr,i);
|
pilote_direction(Adr,i);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// renvoie vrai si une mémoire de zone est occupée du signal courant au signal suivant
|
// renvoie vrai si une mémoire de zone est occupée du signal courant au signal suivant
|
||||||
// adresse=adresse du signal
|
// adresse=adresse du signal
|
||||||
function test_memoire_zones(adresse : integer) : boolean;
|
function test_memoire_zones(adresse : integer) : boolean;
|
||||||
@@ -5868,6 +5820,7 @@ begin
|
|||||||
Affiche('Erreur 650 - feu non trouvé',clred);
|
Affiche('Erreur 650 - feu non trouvé',clred);
|
||||||
AfficheDebug('Erreur 650 - feu non trouvé',clred);
|
AfficheDebug('Erreur 650 - feu non trouvé',clred);
|
||||||
test_memoire_zones:=false;
|
test_memoire_zones:=false;
|
||||||
|
end;
|
||||||
|
|
||||||
Pres_train:=FALSE;
|
Pres_train:=FALSE;
|
||||||
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
|
||||||
@@ -5926,7 +5879,7 @@ begin
|
|||||||
// et chaîner mémoire de zone
|
// et chaîner mémoire de zone
|
||||||
if (j=1) and (Typeactuel=1) then // si détecteur
|
if (j=1) and (Typeactuel=1) then // si détecteur
|
||||||
begin
|
begin
|
||||||
Pres_train:=MemZone[Prec,actuel];
|
Pres_train:=MemZone[Prec,actuel];
|
||||||
if Pres_Train and (NivDebug=3) then Affiche('Présence train de '+intToSTR(prec)+' à '+intToSTR(actuel),clyellow);
|
if Pres_Train and (NivDebug=3) then Affiche('Présence train de '+intToSTR(prec)+' à '+intToSTR(actuel),clyellow);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@@ -5936,7 +5889,7 @@ begin
|
|||||||
prec:=actuel;TypePrec:=TypeActuel;
|
prec:=actuel;TypePrec:=TypeActuel;
|
||||||
actuel:=AdrSuiv;TypeActuel:=typeGen;
|
actuel:=AdrSuiv;TypeActuel:=typeGen;
|
||||||
if AdrSuiv>9990 then
|
if AdrSuiv>9990 then
|
||||||
begin
|
begin
|
||||||
test_memoire_zones:=false;exit;
|
test_memoire_zones:=false;exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -5948,7 +5901,7 @@ begin
|
|||||||
// si c'est un buttoir
|
// si c'est un buttoir
|
||||||
test_memoire_zones:=false;
|
test_memoire_zones:=false;
|
||||||
if NivDebug=3 then AfficheDebug('sortie car buttoir',clyellow);
|
if NivDebug=3 then AfficheDebug('sortie car buttoir',clyellow);
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
// si le suivant est un détecteur ; contrôler mémoire de zone et comporte t-il un signal?
|
// si le suivant est un détecteur ; contrôler mémoire de zone et comporte t-il un signal?
|
||||||
AdrFeu:=0;
|
AdrFeu:=0;
|
||||||
@@ -5966,8 +5919,8 @@ begin
|
|||||||
if (AdrFeu=adresse) then // si on ne reboucle sur le même signal dont on cherche le suivant
|
if (AdrFeu=adresse) then // si on ne reboucle sur le même signal dont on cherche le suivant
|
||||||
begin
|
begin
|
||||||
AdrFeu:=0;j:=10; // on ne trouve pas de suivant
|
AdrFeu:=0;j:=10; // on ne trouve pas de suivant
|
||||||
end;
|
end;
|
||||||
if (AdrFeu<>0) then // si l'adresse est <>0
|
if (AdrFeu<>0) then // si l'adresse est <>0
|
||||||
begin
|
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
|
||||||
@@ -5987,11 +5940,11 @@ begin
|
|||||||
begin
|
begin
|
||||||
//if (traceDet) {sprintf(Affiche,"Trouvé détecteur %d mais sans signal\r\n",AdrSuiv,Etat);Display(Affiche);
|
//if (traceDet) {sprintf(Affiche,"Trouvé détecteur %d mais sans signal\r\n",AdrSuiv,Etat);Display(Affiche);
|
||||||
AdrFeu:=0;
|
AdrFeu:=0;
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
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) or (N_Det>=Nb_det_dist);
|
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)
|
||||||
@@ -6127,18 +6080,22 @@ begin
|
|||||||
begin
|
begin
|
||||||
det_initial:=feux[i].Adr_det4;Adr_El_Suiv:=feux[i].Adr_el_suiv4;
|
det_initial:=feux[i].Adr_det4;Adr_El_Suiv:=feux[i].Adr_el_suiv4;
|
||||||
if feux[i].Btype_suiv4=1 then Btype_el_suivant:=1;
|
if feux[i].Btype_suiv4=1 then Btype_el_suivant:=1;
|
||||||
|
if feux[i].Btype_suiv4=2 then Btype_el_suivant:=2;
|
||||||
if feux[i].Btype_suiv4=4 then Btype_el_suivant:=2;
|
if feux[i].Btype_suiv4=4 then Btype_el_suivant:=2;
|
||||||
if feux[i].Btype_suiv4=4 then Btype_el_suivant:=2;
|
end;
|
||||||
end;
|
if (det_initial<>0) then
|
||||||
|
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 nivdebug=3 then afficheDebug('detPrec1='+intToSTR(DetPrec1),clorange);
|
||||||
DetPrec1:=detecteur_suivant(Adr_El_Suiv,Btype_el_suivant,det_initial,1,2); // 2= algo2 = arret sur aiguillage en talon mal positionné
|
if DetPrec1<1024 then // route bloquée par aiguillage mal positionné
|
||||||
|
begin
|
||||||
if detPrec1<>0 then DetPrec2:=detecteur_suivant_El(det_initial,1,DetPrec1,1) else DetPrec2:=0;
|
if detPrec1<>0 then DetPrec2:=detecteur_suivant_El(det_initial,1,DetPrec1,1) else DetPrec2:=0;
|
||||||
if nivdebug=3 then afficheDebug('detPrec2='+intToSTR(DetPrec2),clorange);
|
if nivdebug=3 then afficheDebug('detPrec2='+intToSTR(DetPrec2),clorange);
|
||||||
DetPrec2:=detecteur_suivant_El(det_initial,1,DetPrec1,1);
|
if DetPrec2<1024 then
|
||||||
|
begin
|
||||||
if detPrec2<>0 then DetPrec3:=detecteur_suivant_El(DetPrec1,1,DetPrec2,1) else DetPrec3:=0;
|
if detPrec2<>0 then DetPrec3:=detecteur_suivant_El(DetPrec1,1,DetPrec2,1) else DetPrec3:=0;
|
||||||
if nivdebug=3 then afficheDebug('detPrec3='+intToSTR(DetPrec3),clorange);
|
if nivdebug=3 then afficheDebug('detPrec3='+intToSTR(DetPrec3),clorange);
|
||||||
DetPrec3:=detecteur_suivant_El(DetPrec1,1,DetPrec2,1);
|
if DetPrec3<1024 then
|
||||||
begin
|
begin
|
||||||
if detPrec3<>0 then DetPrec4:=detecteur_suivant_El(DetPrec2,1,DetPrec3,1) else DetPrec4:=0;
|
if detPrec3<>0 then DetPrec4:=detecteur_suivant_El(DetPrec2,1,DetPrec3,1) else DetPrec4:=0;
|
||||||
if nivdebug=3 then afficheDebug('detPrec4='+intToSTR(DetPrec4),clorange);
|
if nivdebug=3 then afficheDebug('detPrec4='+intToSTR(DetPrec4),clorange);
|
||||||
@@ -6175,7 +6132,7 @@ var i,j,k1,k2,BtypeSuiv,Adr_det,etat,Adr,Aig,Adr_El_Suiv,
|
|||||||
// mise à jour de l'état d'un feu en fontion de son environnement et affiche le feu
|
// mise à jour de l'état d'un feu en fontion de son environnement et affiche le feu
|
||||||
procedure Maj_Feu(Adrfeu : integer);
|
procedure Maj_Feu(Adrfeu : integer);
|
||||||
var i,j,k1,k2,BtypeSuiv,Adr_det,etat,Adr,Aig,Adr_El_Suiv,
|
var i,j,k1,k2,BtypeSuiv,Adr_det,etat,Adr,Aig,Adr_El_Suiv,
|
||||||
Btype_el_suivant,det_initial,bt,el_suiv,modele : integer ;
|
Btype_el_suivant,det_initial,bt,el_suiv,modele : integer ;
|
||||||
PresTrain,Aff_semaphore,car : boolean;
|
PresTrain,Aff_semaphore,car : boolean;
|
||||||
code,combine : word;
|
code,combine : word;
|
||||||
s : string;
|
s : string;
|
||||||
@@ -6227,6 +6184,7 @@ begin
|
|||||||
Maj_Etat_Signal(AdrFeu,blanc) else Maj_Etat_Signal(AdrFeu,violet);
|
Maj_Etat_Signal(AdrFeu,blanc) else Maj_Etat_Signal(AdrFeu,violet);
|
||||||
envoi_LEB(AdrFeu);
|
envoi_LEB(AdrFeu);
|
||||||
exit;
|
exit;
|
||||||
|
end;
|
||||||
}
|
}
|
||||||
|
|
||||||
// signal à 2 feux = carré violet+blanc
|
// signal à 2 feux = carré violet+blanc
|
||||||
@@ -6236,7 +6194,9 @@ begin
|
|||||||
// 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
|
||||||
Maj_Etat_Signal(AdrFeu,violet);
|
Maj_Etat_Signal(AdrFeu,violet);
|
||||||
|
Envoi_signauxCplx;
|
||||||
|
exit;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
@@ -6385,6 +6345,16 @@ begin
|
|||||||
//affiche(inttostr(ai+1),clOrange);
|
//affiche(inttostr(ai+1),clOrange);
|
||||||
|
|
||||||
//affiche('------------------------',clWhite);
|
//affiche('------------------------',clWhite);
|
||||||
|
recherche;
|
||||||
|
//affiche('------------------------',clGreen);
|
||||||
|
if trouve then index2_det:=i else index2_det:=0;
|
||||||
|
//affiche('index2='+IntToSTR(index2_det),clWhite);
|
||||||
|
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;
|
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
|
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) )
|
(BrancheN[branche_trouve,IndexBranche_trouve-1].Adresse=0) and (BrancheN[branche_trouve,IndexBranche_trouve-1].BType=4) )
|
||||||
@@ -6494,13 +6464,15 @@ begin
|
|||||||
AfficheDebug('Nouveau Tampon train '+intToStr(i)+'--------',clyellow);
|
AfficheDebug('Nouveau Tampon train '+intToStr(i)+'--------',clyellow);
|
||||||
AfficheDebug(intToSTR(event_det_train[i].det[1]),clyellow );
|
AfficheDebug(intToSTR(event_det_train[i].det[1]),clyellow );
|
||||||
AfficheDebug(intToSTR(event_det_train[i].det[2]),clyellow );
|
AfficheDebug(intToSTR(event_det_train[i].det[2]),clyellow );
|
||||||
end;
|
end;
|
||||||
exit; // sortir absolument
|
exit; // sortir absolument
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// Nombre d'éléments à 0 : ici c'est un nouveau train donc 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
|
||||||
|
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);
|
||||||
@@ -6515,7 +6487,7 @@ begin
|
|||||||
if (AdrDetFeu=Det3) and (feux[i].aspect<10) then
|
if (AdrDetFeu=Det3) and (feux[i].aspect<10) then
|
||||||
begin
|
begin
|
||||||
AdrSuiv:=Feux[i].Adr_el_suiv1;TypeSuiv:=Feux[i].Btype_suiv1;
|
AdrSuiv:=Feux[i].Adr_el_suiv1;TypeSuiv:=Feux[i].Btype_suiv1;
|
||||||
AdrPrec:=detecteur_suivant(AdrSuiv,typeSuiv,AdrDetFeu,1,1) ; // détecteur précédent le feu ; algo 1
|
AdrPrec:=detecteur_suivant(AdrSuiv,typeSuiv,AdrDetFeu,1,1) ; // détecteur précédent le feu ; algo 1
|
||||||
if AdrPrec=0 then
|
if AdrPrec=0 then
|
||||||
begin
|
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);
|
||||||
@@ -6523,18 +6495,36 @@ begin
|
|||||||
//NivDebug:=3;
|
//NivDebug:=3;
|
||||||
//AffSignal:=true;
|
//AffSignal:=true;
|
||||||
maj_feu(AdrFeu);
|
maj_feu(AdrFeu);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
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
|
||||||
|
if buttoir_adjacent(det3) then
|
||||||
|
begin
|
||||||
|
if TraceListe then AfficheDebug('detection démarrage depuis détecteur '+IntToSTR(det3)+' buttoir',clyellow);
|
||||||
|
event_det_train[N_trains].det[1]:=0;
|
||||||
|
event_det_train[N_trains].det[2]:=det3;
|
||||||
|
event_det_train[N_trains].NbEl:=2;
|
||||||
|
with FormDebug.MemoEvtDet do
|
||||||
|
begin
|
||||||
lines.add('Nouveau Tampon train '+intToStr(N_Trains)+'--------');
|
lines.add('Nouveau Tampon train '+intToStr(N_Trains)+'--------');
|
||||||
begin
|
lines.add(intToSTR(event_det_train[N_Trains].det[1]));
|
||||||
lines.add('Nouveau Tampon train '+intToStr(N_trains)+'--------');
|
lines.add(intToSTR(event_det_train[N_Trains].det[2]));
|
||||||
lines.add(intToSTR(event_det_train[N_trains].det[1]));
|
end;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
event_det_train[N_trains].det[1]:=det3;
|
||||||
|
event_det_train[N_trains].NbEl:=1;
|
||||||
|
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
|
if TraceListe then
|
||||||
begin
|
begin
|
||||||
AfficheDebug('Nouveau Tampon train '+intToStr(N_trains)+'--------',clyellow);
|
AfficheDebug('Nouveau Tampon train '+intToStr(N_trains)+'--------',clyellow);
|
||||||
@@ -6759,7 +6749,7 @@ begin
|
|||||||
inc(N_event_det);
|
inc(N_event_det);
|
||||||
event_det[N_event_det]:=Adresse;
|
event_det[N_event_det]:=Adresse;
|
||||||
// vérification de la connaissance de la position de tous les aiguillages au premier évènement FD détecteur
|
// vérification de la connaissance de la position de tous les aiguillages au premier évènement FD détecteur
|
||||||
if not(PremierFD) then
|
if not(PremierFD) then
|
||||||
begin
|
begin
|
||||||
for i:=1 to MaxAiguillage do
|
for i:=1 to MaxAiguillage do
|
||||||
begin
|
begin
|
||||||
@@ -6789,18 +6779,18 @@ begin
|
|||||||
|
|
||||||
// Mettre à jour le TCO
|
// Mettre à jour le TCO
|
||||||
if AvecTCO then
|
if AvecTCO then
|
||||||
begin
|
begin
|
||||||
formTCO.Maj_TCO(Adresse);
|
formTCO.Maj_TCO(Adresse);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// évènement d'aiguillage
|
// évènement d'aiguillage
|
||||||
procedure Event_Aig(adresse,pos : 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;
|
||||||
@@ -6816,7 +6806,7 @@ begin
|
|||||||
if (N_Event_tick>=Max_Event_det_tick) then
|
if (N_Event_tick>=Max_Event_det_tick) then
|
||||||
begin
|
begin
|
||||||
N_Event_tick:=0;
|
N_Event_tick:=0;
|
||||||
Affiche('Raz Evts détecteurs',clLime);
|
Affiche('Raz Evts détecteurs',clLime);
|
||||||
end;
|
end;
|
||||||
s:='Tick='+IntToSTR(tick)+' Evt Aig '+intToSTR(adresse)+'='+intToSTR(pos);
|
s:='Tick='+IntToSTR(tick)+' Evt Aig '+intToSTR(adresse)+'='+intToSTR(pos);
|
||||||
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é';
|
||||||
@@ -6826,7 +6816,7 @@ begin
|
|||||||
Affiche(s,clyellow);
|
Affiche(s,clyellow);
|
||||||
AfficheDebug(s,clyellow);
|
AfficheDebug(s,clyellow);
|
||||||
end;
|
end;
|
||||||
FormDebug.MemoEvtDet.lines.add(s) ;
|
FormDebug.MemoEvtDet.lines.add(s) ;
|
||||||
if (n_Event_tick mod 10) =0 then affiche_memoire;
|
if (n_Event_tick mod 10) =0 then affiche_memoire;
|
||||||
inc(N_Event_tick);
|
inc(N_Event_tick);
|
||||||
event_det_tick[N_event_tick].tick:=tick;
|
event_det_tick[N_event_tick].tick:=tick;
|
||||||
@@ -6838,6 +6828,75 @@ begin
|
|||||||
if AvecTCO then
|
if AvecTCO then
|
||||||
begin
|
begin
|
||||||
formTCO.Maj_TCO(Adresse);
|
formTCO.Maj_TCO(Adresse);
|
||||||
|
end;
|
||||||
|
|
||||||
|
// l'évaluation des routes est à faire selon conditions
|
||||||
|
if faire_event then evalue;
|
||||||
|
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;
|
end;
|
||||||
|
|
||||||
// pas de centrale et pas CDM connecté: on change la position de l'aiguillage
|
// pas de centrale et pas CDM connecté: on change la position de l'aiguillage
|
||||||
@@ -6888,22 +6947,22 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// état de l'aiguillage
|
// état de l'aiguillage
|
||||||
if bitsITT=$00 then // module d'aiguillages, N=1
|
if bitsITT=$00 then // module d'aiguillages, N=1
|
||||||
begin
|
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);
|
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);
|
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);
|
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;
|
||||||
@@ -6944,22 +7003,22 @@ begin
|
|||||||
Event_detecteur(i,(valeur and $1) = $1,'');
|
Event_detecteur(i,(valeur and $1) = $1,'');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end;
|
end;
|
||||||
if bitsITT=$00 then // module d'aiguillages
|
if bitsITT=$00 then // module d'aiguillages
|
||||||
begin
|
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);
|
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);
|
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);
|
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;
|
||||||
@@ -7621,7 +7680,7 @@ begin
|
|||||||
ButtonLitCV.Enabled:=false;
|
ButtonLitCV.Enabled:=false;
|
||||||
LireunfichierdeCV1.enabled:=false;
|
LireunfichierdeCV1.enabled:=false;
|
||||||
end ;
|
end ;
|
||||||
|
|
||||||
// Initialisation des images des signaux
|
// Initialisation des images des signaux
|
||||||
NbreImagePLigne:=Formprinc.ScrollBox1.Width div (largImg+5);
|
NbreImagePLigne:=Formprinc.ScrollBox1.Width div (largImg+5);
|
||||||
|
|
||||||
@@ -7653,15 +7712,21 @@ begin
|
|||||||
|
|
||||||
// TCO
|
// TCO
|
||||||
if avectco then
|
if avectco then
|
||||||
begin
|
|
||||||
begin
|
begin
|
||||||
//créée la fenêtre TCO non modale
|
//créée la fenêtre TCO non modale
|
||||||
FormTCO:=TformTCO.Create(nil);
|
FormTCO:=TformTCO.Create(nil);
|
||||||
FormTCO.show;
|
FormTCO.show;
|
||||||
end;
|
end;
|
||||||
//essai &&&&&&&&&&
|
|
||||||
Affiche('Fin des initialisations',clyellow);
|
Affiche('Fin des initialisations',clyellow);
|
||||||
LabelEtat.Caption:=' ';
|
LabelEtat.Caption:=' ';
|
||||||
|
Affiche_memoire;
|
||||||
|
//---------------------------------
|
||||||
|
{
|
||||||
|
aiguillage[6].position:=const_devie;
|
||||||
|
aiguillage[4].position:=const_droit;
|
||||||
|
aiguillage[3].position:=const_droit;
|
||||||
|
aiguillage[1].position:=const_devie;
|
||||||
aiguillage[26].position:=const_droit;
|
aiguillage[26].position:=const_droit;
|
||||||
aiguillage[28].position:=const_devie;
|
aiguillage[28].position:=const_devie;
|
||||||
|
|
||||||
@@ -7740,13 +7805,13 @@ begin
|
|||||||
var index,aspect,i,a,x,y,x0,y0,Bimage,adresse,TailleX,TailleY,orientation : integer;
|
var index,aspect,i,a,x,y,x0,y0,Bimage,adresse,TailleX,TailleY,orientation : integer;
|
||||||
imageFeu : Timage;
|
imageFeu : Timage;
|
||||||
frx,fry : real;
|
frx,fry : real;
|
||||||
s : string;
|
s : string;
|
||||||
begin
|
begin
|
||||||
inc(tick);
|
inc(tick);
|
||||||
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
|
||||||
@@ -7827,9 +7892,9 @@ begin
|
|||||||
begin
|
begin
|
||||||
a:=EtatsignalCplx[0];
|
a:=EtatsignalCplx[0];
|
||||||
if TestBit(a,jaune_cli) or TestBit(a,ral_60) or
|
if TestBit(a,jaune_cli) or TestBit(a,ral_60) or
|
||||||
TestBit(a,rappel_60) or testBit(a,semaphore_cli) or
|
TestBit(a,rappel_60) or testBit(a,semaphore_cli) or
|
||||||
testBit(a,vert_cli) or testbit(a,blanc_cli) then
|
testBit(a,vert_cli) or testbit(a,blanc_cli) then
|
||||||
Dessine_feu_pilote; // dessiner le feu en fonction du bit "clignotant"
|
Dessine_feu_pilote; // dessiner le feu en fonction du bit "clignotant"
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -7850,13 +7915,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
//simulation
|
//simulation
|
||||||
if (index_simule<>0) then
|
|
||||||
begin
|
|
||||||
if not(MsgSim) then
|
|
||||||
begin
|
|
||||||
Affiche('Simulation en cours ',Cyan);MsgSim:=true;
|
|
||||||
N_Event_tick:=0;
|
|
||||||
if (index_simule<>0) then
|
if (index_simule<>0) then
|
||||||
begin
|
begin
|
||||||
if not(MsgSim) then
|
if not(MsgSim) then
|
||||||
@@ -7876,7 +7935,7 @@ begin
|
|||||||
s:='Simulation '+intToSTR(I_simule)+' Tick='+IntToSTR(tick)+' det='+intToSTR(Tablo_simule[i_simule].detecteur)+'='+IntToSTR(Tablo_simule[i_simule].etat);
|
s:='Simulation '+intToSTR(I_simule)+' Tick='+IntToSTR(tick)+' det='+intToSTR(Tablo_simule[i_simule].detecteur)+'='+IntToSTR(Tablo_simule[i_simule].etat);
|
||||||
Event_Detecteur(Tablo_simule[i_simule].detecteur, Tablo_simule[i_simule].etat=1,''); // créer évt détecteur
|
Event_Detecteur(Tablo_simule[i_simule].detecteur, Tablo_simule[i_simule].etat=1,''); // créer évt détecteur
|
||||||
StaticText.caption:=s;
|
StaticText.caption:=s;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// evt aiguillage ?
|
// evt aiguillage ?
|
||||||
if Tablo_simule[i_simule].aiguillage<>0 then
|
if Tablo_simule[i_simule].aiguillage<>0 then
|
||||||
@@ -7892,7 +7951,7 @@ begin
|
|||||||
begin
|
begin
|
||||||
Index_Simule:=0; // fin de simulation
|
Index_Simule:=0; // fin de simulation
|
||||||
I_Simule:=0;
|
I_Simule:=0;
|
||||||
MsgSim:=false;
|
MsgSim:=false;
|
||||||
Affiche('Fin de simulation',Cyan);
|
Affiche('Fin de simulation',Cyan);
|
||||||
StaticText.caption:='';
|
StaticText.caption:='';
|
||||||
end;
|
end;
|
||||||
@@ -7925,8 +7984,9 @@ begin
|
|||||||
procedure TFormPrinc.BoutVersionClick(Sender: TObject);
|
procedure TFormPrinc.BoutVersionClick(Sender: TObject);
|
||||||
var s : string;
|
var s : string;
|
||||||
begin
|
begin
|
||||||
s:=#$f0;
|
s:=#$f0;
|
||||||
s:=checksum(s);
|
s:=checksum(s);
|
||||||
|
envoi(s);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// bouton de commande d'un accessoire
|
// bouton de commande d'un accessoire
|
||||||
@@ -7935,14 +7995,26 @@ begin
|
|||||||
s : string;
|
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
|
||||||
begin
|
begin
|
||||||
EditAdresse.text:='1';
|
EditAdresse.text:='1';
|
||||||
exit;
|
exit;
|
||||||
end;
|
|
||||||
|
|
||||||
end;
|
end;
|
||||||
if (erreur<>0) or (valeur<0) or (valeur>255) then
|
|
||||||
|
pilote_acc(adr,const_droit,aig);
|
||||||
|
s:='accessoire '+IntToSTR(adr)+' droit';
|
||||||
|
Affiche(s,clyellow);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
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;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -8120,7 +8192,7 @@ begin
|
|||||||
begin
|
begin
|
||||||
for i:=1 to MaxAcc do
|
for i:=1 to MaxAcc do
|
||||||
begin
|
begin
|
||||||
model:=aiguillage[i].modele ;
|
model:=aiguillage[i].modele ;
|
||||||
if model<>0 then
|
if model<>0 then
|
||||||
begin
|
begin
|
||||||
s:='Aiguillage '+IntToSTR(i)+' : '+intToSTR(aiguillage[i].position);
|
s:='Aiguillage '+IntToSTR(i)+' : '+intToSTR(aiguillage[i].position);
|
||||||
@@ -8303,7 +8375,7 @@ begin
|
|||||||
|
|
||||||
//Affiche('Aig '+inttostr(adr)+' pos='+IntToSTR(etat),clyellow);
|
//Affiche('Aig '+inttostr(adr)+' pos='+IntToSTR(etat),clyellow);
|
||||||
//Affiche(commandeCDM,clyellow);
|
//Affiche(commandeCDM,clyellow);
|
||||||
|
|
||||||
// aiguillage normal
|
// aiguillage normal
|
||||||
if aiguillage[adr].modele=1 then
|
if aiguillage[adr].modele=1 then
|
||||||
begin
|
begin
|
||||||
@@ -8323,8 +8395,8 @@ begin
|
|||||||
0 : begin etatAig:=2;EtatAig2:=2;end;
|
0 : begin etatAig:=2;EtatAig2:=2;end;
|
||||||
end;
|
end;
|
||||||
if (aiguillage[adr].inversionCDM=1) or (aiguillage[adr2].inversionCDM=1) then
|
if (aiguillage[adr].inversionCDM=1) or (aiguillage[adr2].inversionCDM=1) then
|
||||||
begin
|
begin
|
||||||
//Affiche('inverse',clyellow);
|
//Affiche('inverse',clyellow);
|
||||||
prv:=adr;
|
prv:=adr;
|
||||||
adr:=adr2;
|
adr:=adr2;
|
||||||
adr2:=prv;
|
adr2:=prv;
|
||||||
@@ -8336,8 +8408,8 @@ begin
|
|||||||
begin
|
begin
|
||||||
//Affiche('Triple',clyellow);
|
//Affiche('Triple',clyellow);
|
||||||
// état de l'aiguillage 1
|
// état de l'aiguillage 1
|
||||||
if (etat=0) or (etat=2) then etatAig:=2;
|
if (etat=0) or (etat=2) then etatAig:=2;
|
||||||
if etat=3 then etatAig:=1;
|
if etat=3 then etatAig:=1;
|
||||||
// état de l'aiguillage 2
|
// état de l'aiguillage 2
|
||||||
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;
|
||||||
@@ -8598,17 +8670,17 @@ var adr,valeur,erreur : integer;
|
|||||||
begin
|
begin
|
||||||
FormSimulation.showModal;
|
FormSimulation.showModal;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TFormPrinc.ButtonEcrCVClick(Sender: TObject);
|
procedure TFormPrinc.ButtonEcrCVClick(Sender: TObject);
|
||||||
var adr,valeur,erreur : integer;
|
var adr,valeur,erreur : integer;
|
||||||
s : string;
|
s : string;
|
||||||
begin
|
begin
|
||||||
// doc XpressNet page 55
|
// doc XpressNet page 55
|
||||||
val(EditCV.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
|
||||||
EditCV.Text:='1';
|
EditCV.Text:='1';
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
val(EditVal.Text,valeur,erreur);
|
val(EditVal.Text,valeur,erreur);
|
||||||
@@ -8695,10 +8767,10 @@ begin
|
|||||||
fte : textfile;
|
fte : textfile;
|
||||||
i,cv,valeur,erreur : integer;
|
i,cv,valeur,erreur : integer;
|
||||||
begin
|
begin
|
||||||
s:=GetCurrentDir;
|
s:=GetCurrentDir;
|
||||||
//s:='C:\Program Files (x86)\Borland\Delphi7\Projects\Signaux_complexes_GL';
|
//s:='C:\Program Files (x86)\Borland\Delphi7\Projects\Signaux_complexes_GL';
|
||||||
N_Cv:=0; // nombre de CV recus à 0
|
N_Cv:=0; // nombre de CV recus à 0
|
||||||
sa:='';
|
sa:='';
|
||||||
Affiche('Lecture CV',clyellow);
|
Affiche('Lecture CV',clyellow);
|
||||||
|
|
||||||
val(EditCV.Text,cv,erreur);
|
val(EditCV.Text,cv,erreur);
|
||||||
@@ -8904,8 +8976,19 @@ begin
|
|||||||
Etat:=Feux[i].EtatSignal;
|
Etat:=Feux[i].EtatSignal;
|
||||||
s:='Feu '+IntToSTR(Adr)+' Etat=';
|
s:='Feu '+IntToSTR(Adr)+' Etat=';
|
||||||
code_to_aspect(Etat,aspect,combine);
|
code_to_aspect(Etat,aspect,combine);
|
||||||
|
s:=s+IntToSTR(etat)+'='+EtatSign[aspect]+' '+EtatSign[combine];
|
||||||
|
Affiche(s,clYellow);
|
||||||
|
|
||||||
|
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('http://cdmrail.free.fr/ForumCDR/viewtopic.php?f=77&t=3906',clWhite);
|
||||||
Affiche('https://github.com/f1iwq2/Signaux_complexes_GL',clWhite);
|
Affiche('https://github.com/f1iwq2/Signaux_complexes_GL',clWhite);
|
||||||
Affiche(' ',clyellow);
|
Affiche(' ',clyellow);
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
|||||||
8911
UnitPrinc.~pas
8911
UnitPrinc.~pas
File diff suppressed because it is too large
Load Diff
BIN
UnitSimule.dcu
BIN
UnitSimule.dcu
Binary file not shown.
BIN
UnitTCO.dcu
BIN
UnitTCO.dcu
Binary file not shown.
Binary file not shown.
@@ -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