Initial commit

This commit is contained in:
f1iwq2
2020-01-20 19:09:57 +01:00
commit 045a37cce4
33 changed files with 14418 additions and 0 deletions

2
.gitattributes vendored Normal file
View File

@@ -0,0 +1,2 @@
# Auto detect text files and perform LF normalization
* text=auto

BIN
2feux.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
3feux.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
4feux.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
5feux.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
7feux.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
9feux.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

11
Desinstall.bat Normal file
View File

@@ -0,0 +1,11 @@
@echo off
echo ce script est a executer en mode
echo administrateur (exécuter en tant qu'administrateur)
echo enregistrement du composant TMScomm32
regsvr32 -u mscomm32.ocx
echo enregistrement de la licence du composant
regedit -u vbctrls.reg
pause

42
Signaux_complexes_GL.cfg Normal file
View File

@@ -0,0 +1,42 @@
-$A8
-$B-
-$C+
-$D+
-$E-
-$F-
-$G+
-$H+
-$I+
-$J-
-$K-
-$L+
-$M-
-$N+
-$O-
-$P+
-$Q-
-$R-
-$S-
-$T-
-$U-
-$V+
-$W-
-$X+
-$YD
-$Z1
-cg
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-H+
-W+
-M
-$M16384,1048576
-K$00400000
-LE"c:\program files\borland\delphi7\Projects\Bpl"
-LN"c:\program files\borland\delphi7\Projects\Bpl"
-U"c:\program files\borland\delphi7\Lib\Debug"
-O"c:\program files\borland\delphi7\Lib\Debug"
-I"c:\program files\borland\delphi7\Lib\Debug"
-R"c:\program files\borland\delphi7\Lib\Debug"
-w-UNSAFE_TYPE
-w-UNSAFE_CODE
-w-UNSAFE_CAST

138
Signaux_complexes_GL.dof Normal file
View File

@@ -0,0 +1,138 @@
[FileVersion]
Version=7.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=0
K=0
L=1
M=0
N=1
O=0
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]
OutputDir=
UnitOutputDir=
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=$(DELPHI)\Lib\Debug
Packages=vcl;rtl;vclx;VclSmp;vclshlctrls
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=1
MajorVer=1
MinorVer=0
Release=0
Build=2
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=1036
CodePage=1252
[Version Info Keys]
CompanyName=
FileDescription=
FileVersion=1.0.0.2
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
[HistoryLists\hlSearchPath]
Count=1
Item0=$(DELPHI)\Lib\Debug

14
Signaux_complexes_GL.dpr Normal file
View File

@@ -0,0 +1,14 @@
program Signaux_complexes_GL;
uses
Forms,
UnitPrinc in 'UnitPrinc.pas' {FormPrinc},
UnitDebug in 'UnitDebug.pas' {FormDebug};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TFormPrinc, FormPrinc);
Application.Run;
end.

BIN
Signaux_complexes_GL.exe Normal file

Binary file not shown.

BIN
Signaux_complexes_GL.res Normal file

Binary file not shown.

BIN
UnitDebug.dcu Normal file

Binary file not shown.

120
UnitDebug.dfm Normal file
View File

@@ -0,0 +1,120 @@
object FormDebug: TFormDebug
Left = 404
Top = 33
BorderStyle = bsSingle
Caption = 'FormDebug'
ClientHeight = 639
ClientWidth = 759
Color = clWhite
TransparentColorValue = clTeal
Font.Charset = DEFAULT_CHARSET
Font.Color = clWhite
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
Position = poMainFormCenter
OnClose = FormClose
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 456
Top = 52
Width = 108
Height = 13
Caption = 'Niveau du Debug (0-3)'
Color = clWhite
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlue
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentColor = False
ParentFont = False
end
object Label2: TLabel
Left = 448
Top = 12
Width = 131
Height = 18
Caption = 'Fen'#234'tre de d'#233'bug'
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'Arial'
Font.Style = [fsBold, fsItalic]
ParentFont = False
end
object Label3: TLabel
Left = 448
Top = 84
Width = 265
Height = 209
AutoSize = False
Caption = 'Label3'
Color = clGray
Font.Charset = ANSI_CHARSET
Font.Color = clWindow
Font.Height = -16
Font.Name = 'Arial Narrow'
Font.Style = []
ParentColor = False
ParentFont = False
WordWrap = True
end
object EditNivDebug: TEdit
Left = 576
Top = 52
Width = 73
Height = 21
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlue
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
TabOrder = 0
Text = 'EditNivDebug'
OnKeyPress = EditNivDebugKeyPress
end
object MemoEvtDet: TMemo
Left = 452
Top = 300
Width = 181
Height = 281
Color = clBlack
Font.Charset = DEFAULT_CHARSET
Font.Color = clYellow
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
Lines.Strings = (
'Tableau des '#233'v'#232'nements d'#233'tecteurs')
ParentFont = False
TabOrder = 1
end
object ButtonEcrLog: TButton
Left = 456
Top = 596
Width = 97
Height = 25
Caption = 'Ecrire le log'
TabOrder = 2
OnClick = ButtonEcrLogClick
end
object MemoDebug: TMemo
Left = 0
Top = 0
Width = 433
Height = 625
Lines.Strings = (
'MemoDebug')
ScrollBars = ssVertical
TabOrder = 3
end
object SaveDialog: TSaveDialog
Left = 616
Top = 16
end
end

93
UnitDebug.pas Normal file
View File

@@ -0,0 +1,93 @@
unit UnitDebug;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls ,UnitPrinc, ComCtrls;
type
TFormDebug = class(TForm)
EditNivDebug: TEdit;
Label1: TLabel;
MemoEvtDet: TMemo;
Label2: TLabel;
SaveDialog: TSaveDialog;
ButtonEcrLog: TButton;
Label3: TLabel;
MemoDebug: TMemo;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure ButtonEcrLogClick(Sender: TObject);
procedure EditNivDebugKeyPress(Sender: TObject; var Key: Char);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
FormDebug: TFormDebug;
implementation
{$R *.dfm}
procedure TFormDebug.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//Action := TCloseAction.caNone;
//DebugOuv:=False;
//NivDebug:=0;
end;
procedure TFormDebug.FormCreate(Sender: TObject);
var s: string;
begin
EditNivDebug.Text:='0';
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+' afficher des informations plus ou moins détaillées.';
Label3.caption:=s;
MemoDebug.color:=$33;
MemoDebug.clear;
end;
procedure TFormDebug.ButtonEcrLogClick(Sender: TObject);
var s : string;
i : integer;
fte : textFile;
begin
s:=GetCurrentDir;
SaveDialog.InitialDir:=s;
if SaveDialog.Execute then
begin
s:=SaveDialog.FileName;
assignFile(fte,s);
rewrite(fte);
writeln(fte,s);
with MemoDebug do
for i:=1 to Lines.Count do
begin
writeln(fte,Lines[i]);
end;
closefile(fte);
end;
end;
procedure TFormDebug.EditNivDebugKeyPress(Sender: TObject; var Key: Char);
var i,e : integer;
begin
if ord(Key) = VK_RETURN then
begin
Key := #0; // prevent beeping
val(EditNivDebug.text,i,e);
if e=0 then
begin
if (i>=0) and (i<=3) then NivDebug:=i
else EditNivDebug.text:='3';
end
else EditNivDebug.text:='0';
end;
end;
end.

120
UnitDebug.~dfm Normal file
View File

@@ -0,0 +1,120 @@
object FormDebug: TFormDebug
Left = 402
Top = 33
BorderStyle = bsSingle
Caption = 'FormDebug'
ClientHeight = 639
ClientWidth = 759
Color = clWhite
TransparentColorValue = clTeal
Font.Charset = DEFAULT_CHARSET
Font.Color = clWhite
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
Position = poMainFormCenter
OnClose = FormClose
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 456
Top = 52
Width = 108
Height = 13
Caption = 'Niveau du Debug (0-3)'
Color = clWhite
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlue
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentColor = False
ParentFont = False
end
object Label2: TLabel
Left = 448
Top = 12
Width = 131
Height = 18
Caption = 'Fen'#234'tre de d'#233'bug'
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'Arial'
Font.Style = [fsBold, fsItalic]
ParentFont = False
end
object Label3: TLabel
Left = 456
Top = 84
Width = 265
Height = 209
AutoSize = False
Caption = 'Label3'
Color = clGray
Font.Charset = ANSI_CHARSET
Font.Color = clWindow
Font.Height = -16
Font.Name = 'Arial Narrow'
Font.Style = []
ParentColor = False
ParentFont = False
WordWrap = True
end
object EditNivDebug: TEdit
Left = 576
Top = 52
Width = 73
Height = 21
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlue
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
TabOrder = 0
Text = 'EditNivDebug'
OnKeyPress = EditNivDebugKeyPress
end
object MemoEvtDet: TMemo
Left = 456
Top = 308
Width = 209
Height = 281
Color = clBlack
Font.Charset = DEFAULT_CHARSET
Font.Color = clYellow
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
Lines.Strings = (
'Tableau des '#233'v'#232'nements d'#233'tecteurs')
ParentFont = False
TabOrder = 1
end
object ButtonEcrLog: TButton
Left = 456
Top = 596
Width = 97
Height = 25
Caption = 'Ecrire le log'
TabOrder = 2
OnClick = ButtonEcrLogClick
end
object RichEditDebug: TRichEdit
Left = 0
Top = 0
Width = 433
Height = 633
Color = clMaroon
Lines.Strings = (
'RichEditDebug')
TabOrder = 3
end
object SaveDialog: TSaveDialog
Left = 616
Top = 16
end
end

91
UnitDebug.~pas Normal file
View File

@@ -0,0 +1,91 @@
unit UnitDebug;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls ,UnitPrinc, ComCtrls;
type
TFormDebug = class(TForm)
EditNivDebug: TEdit;
Label1: TLabel;
MemoEvtDet: TMemo;
Label2: TLabel;
SaveDialog: TSaveDialog;
ButtonEcrLog: TButton;
Label3: TLabel;
RichEditDebug: TRichEdit;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure ButtonEcrLogClick(Sender: TObject);
procedure EditNivDebugKeyPress(Sender: TObject; var Key: Char);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
FormDebug: TFormDebug;
implementation
{$R *.dfm}
procedure TFormDebug.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//Action := TCloseAction.caNone;
//DebugOuv:=False;
//NivDebug:=0;
end;
procedure TFormDebug.FormCreate(Sender: TObject);
var s: string;
begin
EditNivDebug.Text:='0';
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+' afficher des informations plus ou moins détaillées.';
Label3.caption:=s;
end;
procedure TFormDebug.ButtonEcrLogClick(Sender: TObject);
var s : string;
i : integer;
fte : textFile;
begin
s:=GetCurrentDir;
SaveDialog.InitialDir:=s;
if SaveDialog.Execute then
begin
s:=SaveDialog.FileName;
assignFile(fte,s);
rewrite(fte);
writeln(fte,s);
with RichEdit1 do
for i:=1 to Lines.Count do
begin
writeln(fte,Lines[i]);
end;
closefile(fte);
end;
end;
procedure TFormDebug.EditNivDebugKeyPress(Sender: TObject; var Key: Char);
var i,e : integer;
begin
if ord(Key) = VK_RETURN then
begin
Key := #0; // prevent beeping
val(EditNivDebug.text,i,e);
if e=0 then
begin
if (i>=0) and (i<=3) then NivDebug:=i
else EditNivDebug.text:='3';
end
else EditNivDebug.text:='0';
end;
end;
end.

BIN
UnitPrinc.dcu Normal file

Binary file not shown.

1037
UnitPrinc.dfm Normal file

File diff suppressed because it is too large Load Diff

5520
UnitPrinc.pas Normal file

File diff suppressed because it is too large Load Diff

1037
UnitPrinc.~dfm Normal file

File diff suppressed because it is too large Load Diff

5520
UnitPrinc.~pas Normal file

File diff suppressed because it is too large Load Diff

16
VBCTRLS.REG Normal file
View File

@@ -0,0 +1,16 @@
REGEDIT
HKEY_CLASSES_ROOT\Licenses = Licensing: Copying the keys may be a violation of established copyrights.
// The 16 bit and 32-bit OCX Professional license follows:
HKEY_CLASSES_ROOT\Licenses\DB4C0D00-400B-101B-A3C9-08002B2F49FB = mgkgtgnnmnmninigthkgogggvmkhinjggnvm
// The 32 bit OCX Professional license follows:
HKEY_CLASSES_ROOT\Licenses\7BC20EDC-4A42-101B-A3C9-08002B2F49FB = gifblihbhiiihbciocfbkifbqcfcdiebbiqh
// spin32 DB key
// anibtn DB key
// gauge 7B key
// grid DB key
// keysta DB key
// msoutl DB key
// threed DB key

81
client-GL.cfg Normal file
View File

@@ -0,0 +1,81 @@
/******************************************
/ fichier de configuration de client-GL.log
/ gily - f1iwq - 2018
/******************************************
/ ce programme permet de commander les signaux complexes avec ou sans
/ CDM rail. Il a trois modes de fonctionnement:
/
/ Mode 1 = sans CDM rail. Le programme ne gère que la centrale LENZ ou compatible.
/ Il faut connecter le PC en USB ou par éthernet à la centrale (nécessite l'interface LI100 ETH)
/
/ Mode 2 = Avec CDM rail, ce programme doit être connecté au réseau par l'interface
/ ethernet ; CDM est connecté par USB, et dans ce cas,
/ mettre 0 dans le numéro de port COM (inutilisé) ainsi que la variable avec ou sans initialisation
/ des aiguillages à 0.
/
/ Mode 3 = Avec CDM Rail, ce programme connecté au réseau par l'interface Ethernet et CDM
/ Rail est connecté au réseau par l'USB.
/
/
/ Taille de la fonte de la fenêtre
16
/
/ Adresse IP V4 du PC sur lequel s'execute CDM : port
127.0.0.1:9999
/
/ Adresse IP V4 de l'interface LI-USB Ethernet : port
/ par défaut le port est 5550
/ ne pas connecter le port ou mettre 0 si on travaille avec l'interface USB
192.168.1.23:5550
/
/ port COM de l'adresse USB de l'interface LI100
/ attention de 1 à 9 - Si le port de l'interface USB LI100 >9, il faut le changer
/ manuellement dans le gestionnaire des périphériques
/ mettre 0 si inutilisée ou si CDM est utilisé en parallèle de ce programme (car CDM utilise la liaison USB)
/ Le programme ne tentera pas de se connecter à la centrale si CDM rail est détécté
/
3
/
/ Avec (1) ou sans (0) initialisation des aiguillages au démarrage selon le tableau ci après
0
/
/ Valeurs des initialisations des aiguillages au démarrage -----------------------------------------------
/ @ aiguillage, position 1=dévié 2=droit, temporisation de manoeuvre en 1/10eme de seconde ,
/ 0=pilotage normal 1=pilotage inversé
/ une position différente de 1 ou 2 sera à 1. Une temporisation de 0 sera à 5.
/ la liste doit être terminée par 0,0,0
1,2,3,0
2,2,3,0
3,2,3,0
4,2,3,0
5,1,3,0
6,2,3,0
7,1,3,0
8,2,3,0
9,2,3,0
10,2,3,0
11,2,3,0
12,1,3,0
13,1,3,0
14,1,3,0
15,1,3,0
16,1,4,0
17,1,3,0
18,2,4,0
19,1,4,0
20,2,4,0
21,2,3,0
22,1,3,0
23,1,3,0
24,1,3,0
25,1,3,0
26,2,3,0
27,2,3,0
28,2,3,0
29,2,3,0
30,2,3,0
31,1,3,0
32,1,3,0
0,0,0,0
/

41
client-GL.~cfg Normal file
View File

@@ -0,0 +1,41 @@
/******************************************
/ fichier de configuration de client-GL.log
/ gily - f1iwq - 2018
/******************************************
/ ce programme permet de commander les signaux complexes avec ou sans
/ CDM rail. Il a trois modes de fonctionnement:
/
/ Mode 1 = sans CDM rail. Le programme ne gère que la centrale LENZ ou compatible.
/ Il faut connecter le PC en USB ou par éthernet à la centrale (nécessite l'interface LI100 ETH)
/
/ Mode 2 = Avec CDM rail, ce programme doit être connecté au réseau par l'interface
/ ethernet ; CDM est connecté par USB, et dans ce cas,
/ mettre 0 dans le numéro de port COM (inutilisé) ainsi que la variable avec ou sans initialisation
/ des aiguillages à 0.
/
/ Mode 3 = Avec CDM Rail, ce programme connecté au réseau par l'interface Ethernet et CDM
/ Rail est connecté au réseau par l'USB.
/
/
/ Taille de la fonte de la fenêtre
16
/
/ Adresse IP V4 du PC sur lequel s'execute CDM : port
127.0.0.1:9999
/
/ Adresse IP V4 de l'interface LI-USB Ethernet : port
/ par défaut le port est 5550
/ ne pas connecter le port ou mettre 0 si on travaille avec l'interface USB
192.168.1.23:5550
/
/ port COM de l'adresse USB de l'interface LI100
/ attention de 1 à 9 - Si le port de l'interface USB LI100 >9, il faut le changer
/ manuellement dans le gestionnaire des périphériques
/ mettre 0 si inutilisée ou si CDM est utilisé en parallèle de ce programme (car CDM utilise la liaison USB)
/ Le programme ne tentera pas de se connecter à la centrale si CDM rail est détécté (
/
3
/
/ Avec (1) ou sans (0) initialisation des aiguillages au démarrage selon le tableau ci après
1
/

112
config.cfg Normal file
View File

@@ -0,0 +1,112 @@
/******************************************
/ fichier de configuration de signaux complexes
/ cap de bouheyre avec signaux - 2018
/****************************************
/ Sans Log=0 / Avec Log=1 : génère un fichier log
Log=0
/ Affichage du débug du calcul des routes, et enregistrement dans le log si la variable précédente est à 1
TraceDet=0
/ si 1 envoie un 0 après le pilotage des décodeurs LEB
RazSignaux=0
/
/ modélisation des aiguillages : détermine les éléments connectés aux 3 branches des aiguilles (Pointe, Droit, Dévié (S)
/ adresse d'aiguillage[B],P=élément vers pointe D=élément vers Droit, S=élément vers dévié
/ B pour adresse d'aiguillage déja utilisée
/ Elément = détecteur (valeur uniquement numérique) ou aiguillage (adresse [TRI,TJS,TJD]+branche de connexion (P S ou D)
/ Exemples : 1,P518,D523,S3P signifie : définition de l'aiguillage @1 : sur pointe relié au détecteur 518
/ sur Droit relié au détecteur 518
/ sur Dévié, relié à l'aiguillage 3 en pointe
/ Voir la documentation des signaux complexes pour une description complete
/ S'il n'y a pas de détecteur connecté à une branche d'aiguillage, mettre 0.
1,P2P,D3P,S1BS
1B,P553,D16P,S1S
2,P1P,D4P,S2BS
2B,P521,D16D,S2S
3,P1D,D522,S5BP
4,P2D,D554,S6BP
5,P9P,S15P,D5BS
5B,P3S,S5D,D545
6,P10P,S546,D6BS
6B,P4S,D545,S6D
7,P15S,D566,S565
8,P20P,D566,S565
9,P5P,D530,S17P
10,P6P,D530,S18P
13,P17S,D563,S564
14,P18S,D563,S564
15,P5S,D546,S7P
16,P1BD,S16BS,D2BD
16B,P0,S16S,D557
17,P9S,D531,S13P
18,P10S,D562,S14P
20,P8P,D547,S0
21,P25P,S537,D23S
22,P24P,S561,D25S
23,P569,S21D,D538
24,P22P,S26P,D513
25,P21P,S22D,D570
26,P24S,S515,D514
28,P30P,S29P,D570
29,P28S,D516,S31P
30,P28P,D32S,S539
31TRI,27,P28S,D518,S0,S2-517
32,P571,D538,S30D
0
//
/ modélisation du réseau par branche
/ 1 ligne par branche - le sens de parcours de la description n'a pas d'importance.
/ Chaque ligne (branche) doit comporter au moins un détecteur et au moins aiguillage
/ @ détecteur A=@aiguillage
/ chaque ligne doit commencer par un aiguillage et se terminer par un aiguillage
/ Terminer par les brances par 0
/ Exemple : 519 est un détecteur - A2 est l'aiguillage 2 - A1B est l'aiguillage 1bis
/
/ rouge - jaune
A20,547,561,A22,A24,A26,515,518,A31,A29,A28,A30,539,522,A3,A1,A2,A4,A6B,545,A5B,A3
A26,514,517,A31
A26,515,518,A31
A24,513,516,A29
/grande boucle extérieure départ de couche rouge: de 569 à 569
A23,538,A32,571,553,A1B,A16,A2B,521,569,A23
/ grande boucle intérieure
A21,A25,570,A28
A4,554,537,A21
/ couche jaune
A10,530,A9,A5,A15,546,A6
A18,562,531,A17
A14,563,A13
A14,564,A13
/
A7,565,A8
A7,566,A8
A16B,557,0
0
/
/ liste des signaux
/ la liste doit être terminée par une adresse à 0
/ forme : 2=2 feux(carré violet/blanc) / 3=3 feux / 4=4 feux (carré) / 5=5 feux (carré + blanc)
/ 7=7 feux (carré+blanc + ralentissement / 9=9 feux (blanc ou violet + rappel ralentissement)
/ type de décodeur : 0=feu virtuel 1=digital Bahn 2=CDF 3=LDT 4=LEB
/ l'énumération des détecteurs ne nécessite pas de parenthèses si il est seul, mais il faut des parenthèses si
/ le signal concerne plusieurs voies (donc détecteurs)
/ Notation de chaque ligne:
/ adresse de base du signal, forme, réserve, type de décodeur [, (détecteur,..detecteur , élément suivant ..) ,
/ avec ou sans demande de verrouillage du feu au carré (0 ou 1)]
161,4,0,4,(538,A32),0
169,9,0,4,(539,A30),0,
177,9,0,4,(569,A23),0
185,4,0,4,(570,A25),0
193,4,0,4,(516,A29),0
201,2,0,4,(517,31TRI,518,31TRI),0
209,9,0,4,(561,547),0
217,2,0,4,(514,A26,515,A26),0
225,9,0,4,(516,A29),0
233,4,0,4,(547,A20),0
1001,3,0,0,(537,554),0
1003,3,0,0,(553,A1B),0
1005,3,0,0,(571,553),0
1007,3,0,0,(554,A4),0
1009,3,0,0,(522,539),0
1011,3,0,0,(521,569),0
1013,3,0,0,(565,A7),0
0

112
config.~cfg Normal file
View File

@@ -0,0 +1,112 @@
/******************************************
/ fichier de configuration de signaux complexes
/ cap de bouheyre avec signaux - 2018
/****************************************
/ Sans Log=0 / Avec Log=1 : génère un fichier log
Log=0
/ Affichage du débug du calcul des routes, et enregistrement dans le log si la variable précédente est à 1
TraceDet=0
/ si 1 envoie un 0 après le pilotage des décodeurs LEB
RazSignaux=0
/
/ modélisation des aiguillages : détermine les éléments connectés aux 3 branches des aiguilles (Pointe, Droit, Dévié (S)
/ adresse d'aiguillage[B],P=élément vers pointe D=élément vers Droit, S=élément vers dévié
/ B pour adresse d'aiguillage déja utilisée
/ Elément = détecteur (valeur uniquement numérique) ou aiguillage (adresse [TRI,TJS,TJD]+branche de connexion (P S ou D)
/ Exemples : 1,P518,D523,S3P signifie : définition de l'aiguillage @1 : sur pointe relié au détecteur 518
/ sur Droit relié au détecteur 518
/ sur Dévié, relié à l'aiguillage 3 en pointe
/ Voir la documentation des signaux complexes pour une description complete
/ S'il n'y a pas de détecteur connecté à une branche d'aiguillage, mettre 0.
1,P2P,D3P,S1BS
1B,P553,D16P,S1S
2,P1P,D4P,S2BS
2B,P521,D16D,S2S
3,P1D,D522,S5BP
4,P2D,D554,S6BP
5,P9P,S15P,D5BS
5B,P3S,S5D,D545
6,P10P,S546,D6BS
6B,P4S,D545,S6D
7,P15S,D566,S565
8,P20P,D566,S565
9,P5P,D530,S17P
10,P6P,D530,S18P
13,P17S,D563,S564
14,P18S,D563,S564
15,P5S,D546,S7P
16,P1BD,S16BS,D2BD
16B,P0,S16S,D557
17,P9S,D531,S13P
18,P10S,D562,S14P
20,P8P,D547,S0
21,P25P,S537,D23S
22,P24P,S561,D25S
23,P569,S21D,D538
24,P22P,S26P,D513
25,P21P,S22D,D570
26,P24S,S515,D514
28,P30P,S29P,D570
29,P28S,D516,S31P
30,P28P,D32S,S539
31TRI,27,P28S,D518,S0,S2-517
32,P571,D538,S30D
0
//
/ modélisation du réseau par branche
/ 1 ligne par branche - le sens de parcours de la description n'a pas d'importance.
/ Chaque ligne (branche) doit comporter au moins un détecteur et au moins aiguillage
/ @ détecteur A=@aiguillage
/ chaque ligne doit commencer par un aiguillage et se terminer par un aiguillage
/ Terminer par les brances par 0
/ Exemple : 519 est un détecteur - A2 est l'aiguillage 2 - A1B est l'aiguillage 1bis
/
/ rouge - jaune
A20,547,561,A22,A24,A26,515,518,A31,A29,A28,A30,539,522,A3,A1,A2,A4,A6B,545,A5B,A3
A26,514,517,A31
A26,515,518,A31
A24,513,516,A29
/grande boucle extérieure départ de couche rouge: de 569 à 569
A23,538,A32,571,553,A1B,A16,A2B,521,569,A23
/ grande boucle intérieure
A21,A25,570,A28
A4,554,537,A21
/ couche jaune
A10,530,A9,A5,A15,546,A6
A18,562,531,A17
A14,563,A13
A14,564,A13
/
A7,565,A8
A7,566,A8
A16B,557,0
0
/
/ liste des signaux
/ la liste doit être terminée par une adresse à 0
/ forme : 2=2 feux(carré violet/blanc) / 3=3 feux / 4=4 feux (carré) / 5=5 feux (carré + blanc)
/ 7=7 feux (carré+blanc + ralentissement / 9=9 feux (blanc ou violet + rappel ralentissement)
/ type de décodeur : 0=feu virtuel 1=digital Bahn 2=CDF 3=LDT 4=LEB
/ l'énumération des détecteurs ne nécessite pas de parenthèses si il est seul, mais il faut des parenthèses si
/ le signal concerne plusieurs voies (donc détecteurs)
/ Notation de chaque ligne:
/ adresse de base du signal, forme, réserve, type de décodeur [, (détecteur,..detecteur , élément suivant ..) ,
/ avec ou sans demande de verrouillage du feu au carré (0 ou 1)]
161,4,0,4,(538,A32),0
169,9,0,4,(539,A30),0,
177,9,0,4,(569,A23),0
185,4,0,4,(570,A25),0
193,4,0,4,(516,A29),0
201,2,0,4,(517,31TRI,518,31TRI),0
209,9,0,4,(561,547),0
217,2,0,4,(514,A26,515,A26),0
225,9,0,4,(516,A29),0
233,4,0,4,(547,A20),0
1001,3,0,0,(537,554),0
1003,3,0,0,(553,A1B),0
1005,3,0,0,(571,553),0
1007,3,0,0,(554,A4),0
1009,3,0,0,(522,539),0
1011,3,0,0,(521,569),0
1013,3,0,0,(565,A7),0
0

158
config.~~cfg Normal file
View File

@@ -0,0 +1,158 @@
/******************************************
/ fichier de configuration de comm_lenz
/ gily - f1iwq - 2018
/******************************************
/ ce programme permet de commander les signaux complexes avec ou sans
/ CDM rail. Avec CDM rail, ce programme doit être connecté au réseau par l'interface
/ ethernet (nécessite l'interface LI100 ETH) ; CDM est connecté par USB, et dans ce cas,
/ mettre 0 dans le numéro de port COM (inutilisé) ainsi que la variable avec ou sans initialisation
/ des aiguillages à 0.
/
/ Adresse IP V4 de l'interface LI-USB Ethernet : port
/ ne pas connecter le port ou mettre 0 si on travaille avec l'interface USB
192.168.1.23:5550
/
/ port COM de l'adresse USB de l'interface LI100
/ attention de 1 à 9 - Si le port de l'interface USB LI100 >9, il faut le changer
/ manuellement dans le gestionnaire des périphériques
/ mettre 0 si inutilisée ou si CDM est utilisé en parallèle de ce programme (car CDM utilise la liaison USB)
/4
4
/
/ dernière adresse d'aiguillages du réseau. Si 0, 80 sera utilisé.
32
/ Avec (1) ou sans (0) initialisation des aiguillages au démarrage selon le tableau ci après
1
/ Valeurs des initialisations des aiguillages au démarrage -----------------------------------------------
/ @ aiguillage, position 1=dévié 2=droit, temporisation de manoeuvre en 1/10eme de seconde ,
/ 0=pilotage normal 1=pilotage inversé
/ une position différente de 1 ou 2 sera à 1. Une temporisation de 0 sera à 5.
/ la liste doit être terminée par 0,0,0
1,2,3,0
2,2,3,0
3,2,3,0
4,1,3,0
5,1,3,0
6,1,3,0
7,1,3,0
8,2,3,0
9,2,3,0
10,2,3,0
11,2,3,0
12,1,3,0
13,1,3,0
14,1,3,0
15,1,3,0
16,1,4,0
17,1,3,0
18,2,4,0
19,1,4,0
20,2,4,0
21,2,3,0
22,2,3,0
23,1,3,0
24,1,3,0
25,1,3,0
26,2,3,0
27,2,3,0
28,2,3,0
29,2,3,0
30,2,3,0
31,1,3,0
32,1,3,0
0,0,0,0
/
/ liste des adresses des signaux et leur forme, pour affichage de l'image correspondante ,
/ avec ou sans bouton de commande pour le feu blanc, type de décodeur.
/ la liste doit être terminée par une adresse à 0
/ adresse de base du signal, forme, avec ou sans bouton de commande du feu blanc, type de décodeur
/ forme : 2=2 feux(carré violet/blanc) / 3=3 feux / 4=4 feux / 5=5 feux (carré + blanc ou violet)
/ 7=7 feux (blanc ou violet + ralentissement / 9=9 feux (blanc ou violet + rappel ralentissement)
/ type de décodeur : 1=digital Bahn 2=CDF 3=LDT
/
176,7,0,1
190,7,0,1
204,9,0,1
218,7,0,1
232,2,1,1
260,9,1,1
274,3,0,1
288,7,0,1
302,9,0,1
316,7,1,1
330,7,0,1
344,9,0,1
358,9,0,1
392,3,0,1
420,7,0,1
448,7,0,1
462,9,0,1
476,9,0,1
600,7,0,1
0,0
/
/ modélisation des aiguillages : détermine les éléments connectés aux 3 branches des aiguilles (Pointe, Droit, Dévié (S)
/ adresse d'aiguillage,P=élément vers pointe D=élément vers Droit, S=élément vers dévié.
/ Elément = détecteur (valeur uniquement numérique) ou aiguillage (adresse+branche de connexion (P S ou D)
/ Exemple : 1,P518,D523,S3P signifie : définition de l'aiguillage @1 : sur pointe relié au détecteur 518
/ sur Droit relié au détecteur 518
/ sur Dévié, relié à l'aiguillage 3 en pointe
/ Pour une TJD : 26TJD,D[28S,529],S[28D,530]
/ D[ ] : éléments connectés à la TJD en position D (droite), le 1er est l'adresse de la 2eme TJD et sa position
/ S[ ] : éléments connectés à la TJD en position S (déviée) , le 2eme est l'élément extérieur à la TJD
/
/ S'il n'y a pas de détecteur connecté à une branche d'aiguillage, mettre 0.
1,P518,D523,S3P
2,P12S,S5S,D519
3,P1S,S5D,D4P
4,P3D,S514,D6S
5,P515,S2S,D3S
6,P516,S4D,D0
7,P527,S520,D519
8,P527,S522,D521
9,P526,S515,D513
10,P19P,S528,D29P
11,P18P,D30D,S525
12,P517,D20S,S2P
17,P525,D535,S528
18,P11P,S517,D23P
19,P10P,S518,D22P
20,P520,D21P,S12D
21,P20D,S28D,D28D
22,P19D,S538,D537
23,P18D,S534,D538
24,P538,S533,D32S
25,P31S,D529,S27P
26TJD,D[28S,529],S[28D,530]
27,P25S,D530,S537
28TJD,D[26S,21S],S[26D,21D]
29,P10D,S30S,D513
30,P524,S29D,D11D
31,P534,S25P,D0
32,P22S,S24D,D0
0
//
/ modélisation du réseau par branche
/ 1 ligne par branche - le sens de parcours de la branche est arbitraire.
/ Chaque ligne (branche) doit commmencer et finir par un détecteur
/ @ détecteur A=@aiguillage
/ Terminer par 0
/ Exemple : 519 est un détecteur - A2 est l'aiguillage 2
/
519,A2,A12,517,A18,A11,A30,524,521,A8,527,A7,519
527,A7,520,A20,A12,517
518,A1,A3,A4,514,522,A8,527
523,526,A9,513,A29,A10,A19,518,A1,523
526,A9,515,A5,A2,A12,517
517,A18,A11,525,A17,528,A10,A19,518
525,A17,535,533,A24,538,A23,A18,A11,A30,524
520,A20,A21,A28,A26,530,A27,A25,A31,534,A23,A18,A11,A30,524
520,A20,A21,A28,A26,529,A25,A31,534,A23,A18,A11,A30,524
513,A29,A10,A19,A22,537,A27,A25,A31,534
513,A29,A10,A19,A22,A32,A24,538
0

109
configgily.cfg Normal file
View File

@@ -0,0 +1,109 @@
/******************************************
/ fichier de configuration de signaux_complexes
/ gily - f1iwq - 2018
/******************************************
/ Sans Log=0 / Avec Log=1 : génère un fichier log
Log=0
/ Affichage du débug du calcul des routes, et enregistrement dans le log si la variable précédente est à 1
TraceDet=0
/ Envoie un 0 après le pilotage des décodeurs LEB
RazSignaux=0
/
/ modélisation des aiguillages : détermine les éléments connectés aux 3 branches des aiguilles (Pointe, Droit, Dévié (S)
/ adresse d'aiguillage,P=élément vers pointe D=élément vers Droit, S=élément vers dévié.
/ [60 ou 30 dans le cas d'un aiguillage en position déviée qui doit être fanchie à 30 ou 60]
/ Elément = détecteur (valeur uniquement numérique) ou aiguillage (adresse+branche de connexion (P S ou D)
/ Exemple : 1,P518,D523,S3P signifie : définition de l'aiguillage @1 : sur pointe relié au détecteur 518
/ sur Droit relié au détecteur 518
/ sur Dévié, relié à l'aiguillage 3 en pointe
/ Pour une TJD : 26TJD,D530,S529,P28
/ P désigne l'autre adresse de la TJD
/ Aiguillage triple
/
/ S'il n'y a pas de détecteur connecté à une branche d'aiguillage, mettre 0.
1,P518,S3P,D523,30
2,P12S,S5S,D519
3,P1S,S5D,D4P
4,P3D,S514,D6S
5,P515,S2S,D3S
6,P516,S4D,D0
7,P527,S520,D519
8,P527,S522,D521
9,P526,S515,D513,60
10,P19P,S528,D29P,30
11,P18P,D30D,S525
12,P517,D20S,S2P
17,P525,D535,S528
18,P11P,S517,D23P
19,P10P,S531,D22P
20,P520,D21P,S12D
21,P20D,S28D,D28D
22,P19D,S538,D537
23,P18D,S534,D538
24,P538,S533,D32S
25,P31S,D529,S27P
26TJD,D530,S529,P28
28TJD,D21D,S21S,P26
27,P25S,D530,S537
29,P10D,S30S,D513,60
30,P524,S29D,D11D
31,P534,S25P,D0
32,P22S,S24D,D0
0
//
/ modélisation du réseau par branche
/ 1 ligne par branche - le sens de parcours de la branche est arbitraire.
/ Chaque ligne (branche) doit commmencer et finir par un aiguillage
/ Une ligne qui finit par un 0 signifie un heurtoir
/ @ détecteur A=@aiguillage
/ Terminer par 0
/ Exemple : 519 est un détecteur - A2 est l'aiguillage 2
/
A2,A12,517,A18,A11,A30,524,521,A8,527,A7,519,A2
A7,520,A20,A12
A1,A3,A4,514,522,A8
A1,523,526,A9,513,A29,A10,A19,531,518,A1
A9,515,A5
A11,525,A17,528,A10
A17,535,533,A24,538,A23
A7,520,A20,A21,A28,A26,530,A27,A25,A31,534,A23,A18
A26,529,A25
A22,537,A27
A22,A32,A24
A6,516,0
A31,0
0
/ liste des adresses des signaux et leur forme, pour affichage de l'image correspondante ,
/ avec ou sans bouton de commande pour le feu blanc, type de décodeur.
/ la liste doit être terminée par une adresse à 0
/ forme : 2=2 feux(carré violet/blanc) / 3=3 feux / 4=4 feux / 5=5 feux (carré + blanc ou violet)
/ 7=7 feux (blanc ou violet + ralentissement / 9=9 feux (blanc ou violet + rappel ralentissement)
/ type de décodeur : 1=digital Bahn 2=CDF 3=LDT 4=LEB
/ Notation de chaque ligne:
/ adresse de base du signal, forme, avec ou sans bouton de commande du feu blanc, type de décodeur [, détecteur (det2, det3, ...) , élément suivant ,
/ avec ou sans demande de verrouillage du feu au carré]
176,7,0,1,(520,A20),1
190,7,0,1,(523,526),1
204,9,0,1,(527,A7),1
218,7,0,1,(525,A17),1
232,2,1,1,(516,A6),1
260,9,1,1,(518,A1),1
274,3,0,1,(524,521),1
288,7,0,1,(522,A8),1
302,9,0,1,(526,A9),1
316,7,1,1,(515,A5),1
330,7,0,1,(519,A2),1
344,9,0,1,(528,A10),1
358,9,0,1,(517,A18),1
392,3,0,1,(535,533),1
420,7,0,1,(529,A25,530,A27,537,A27),1
448,7,0,1,(533,A24),1
462,9,0,1,(513,A29),1
476,9,0,1,(538,A23),1
497,9,0,4,(531,A19),1
600,7,0,1,(521,A8),1
0
/

22
install.bat Normal file
View File

@@ -0,0 +1,22 @@
@echo off
echo ce script est a executer en mode
echo administrateur (exécuter en tant qu'administrateur)
echo enregistrement du composant TMScomm32
regsvr32 %~dp0mscomm32.ocx
rem détermine si OS 32 ou 64 bits
Set _os_bitness=64
IF %PROCESSOR_ARCHITECTURE% == x86 (
IF NOT DEFINED PROCESSOR_ARCHITEW6432 Set _os_bitness=32
)
Echo systeme %_os_bitness% bits
echo copie du composant mscomm32 dans windows
if %_os_bitness%==64 copy %~dp0mscomm32.ocx c:\windows\sysWOW64
if %_os_bitness%==32 copy %~dp0mscomm32.ocx c:\windows\system32
echo enregistrement de la licence du composant
regedit -s %~dp0vbctrls.reg
pause

22
install2.bat Normal file
View File

@@ -0,0 +1,22 @@
@echo off
echo ce script est a executer en mode
echo administrateur (exécuter en tant qu'administrateur)
echo enregistrement du composant TMScomm32
regsvr32 mscomm32.ocx
rem détermine si OS 32 ou 64 bits
Set _os_bitness=64
IF %PROCESSOR_ARCHITECTURE% == x86 (
IF NOT DEFINED PROCESSOR_ARCHITEW6432 Set _os_bitness=32
)
Echo systeme %_os_bitness% bits
echo copie du composant mscomm32 dans windows
if %_os_bitness%==64 copy mscomm32.ocx c:\windows\sysWOW64
if %_os_bitness%==32 copy mscomm32.ocx c:\windows\system32
echo enregistrement de la licence du composant
regedit -s vbctrls.reg
pause

BIN
mscomm32.ocx Normal file

Binary file not shown.