diff --git a/1train.txt b/1train.txt deleted file mode 100644 index 370502b..0000000 --- a/1train.txt +++ /dev/null @@ -1,251 +0,0 @@ -1 Tick=283 Det=521=0 -2 Tick=283 Det=521=0 -3 Tick=283 Det=524=0 -4 Tick=283 Det=531=0 -5 Tick=283 Det=518=0 -6 Tick=283 Det=518=0 -7 Tick=283 Det=519=0 -8 Tick=283 Det=523=0 -9 Tick=283 Det=526=0 -10 Tick=283 Det=527=0 -11 Tick=283 Det=526=0 -12 Tick=283 Det=523=0 -13 Tick=283 Det=513=1 -14 Tick=283 Det=524=0 -15 Tick=283 Det=515=0 -16 Tick=283 Det=514=0 -17 Tick=283 Det=516=1 -18 Tick=283 Det=516=1 -19 Tick=283 Det=515=0 -20 Tick=283 Det=525=0 -21 Tick=283 Det=528=0 -22 Tick=283 Det=528=0 -23 Tick=283 Det=522=0 -24 Tick=283 Det=514=0 -25 Tick=283 Det=522=0 -26 Tick=283 Det=519=0 -27 Tick=283 Det=527=0 -28 Tick=283 Det=531=0 -29 Tick=283 Det=525=0 -30 Tick=283 Det=535=0 -31 Tick=283 Det=535=0 -32 Tick=283 Det=535=0 -33 Tick=283 Det=535=0 -34 Tick=284 Det=534=0 -35 Tick=284 Det=534=0 -36 Tick=284 Det=533=0 -37 Tick=284 Det=533=0 -38 Tick=284 Det=520=1 -39 Tick=284 Det=520=1 -40 Tick=284 Det=517=0 -41 Tick=284 Det=517=0 -42 Tick=284 Det=538=1 -43 Tick=284 Det=538=1 -44 Tick=284 Det=529=0 -45 Tick=284 Det=529=0 -46 Tick=284 Det=530=0 -47 Tick=284 Det=530=0 -48 Tick=284 Det=537=0 -49 Tick=284 Det=537=0 -50 Tick=284 Det=513=1 -51 Tick=285 Det=518=0 -52 Tick=285 Det=518=0 -53 Tick=285 Det=519=1 -54 Tick=285 Det=519=1 -55 Tick=285 Det=520=0 -56 Tick=285 Det=520=0 -57 Tick=285 Det=517=0 -58 Tick=285 Det=517=0 -59 Tick=297 Det=518=0 -60 Tick=297 Det=518=0 -61 Tick=297 Det=519=0 -62 Tick=297 Det=519=0 -63 Tick=297 Det=520=0 -64 Tick=297 Det=520=0 -65 Tick=297 Det=517=0 -66 Tick=297 Det=517=0 -67 Tick=354 Det=513=0 -68 Tick=354 Det=515=0 -69 Tick=354 Det=514=0 -70 Tick=354 Det=516=1 -71 Tick=354 Det=516=1 -72 Tick=354 Det=515=0 -73 Tick=354 Det=514=0 -74 Tick=354 Det=513=0 -75 Tick=381 Det=531=1 -76 Tick=381 Det=531=1 -77 Tick=381 Det=529=0 -78 Tick=381 Det=529=0 -79 Tick=381 Det=530=0 -80 Tick=381 Det=530=0 -81 Tick=385 Det=531=0 -82 Tick=385 Det=529=0 -83 Tick=385 Det=529=0 -84 Tick=385 Det=530=0 -85 Tick=385 Det=530=0 -86 Tick=390 Det=518=1 -87 Tick=390 Det=518=1 -88 Tick=390 Det=519=0 -89 Tick=390 Det=519=0 -90 Tick=390 Det=520=0 -91 Tick=390 Det=520=0 -92 Tick=390 Det=517=0 -93 Tick=390 Det=517=0 -94 Tick=399 Det=531=0 -95 Tick=417 Det=518=1 -96 Tick=417 Det=518=1 -97 Tick=417 Det=519=1 -98 Tick=417 Det=519=1 -99 Tick=417 Det=520=0 -100 Tick=417 Det=520=0 -101 Tick=417 Det=517=0 -102 Tick=417 Det=517=0 -103 Tick=419 Det=518=0 -104 Tick=419 Det=519=1 -105 Tick=419 Det=519=1 -106 Tick=419 Det=520=0 -107 Tick=419 Det=520=0 -108 Tick=419 Det=517=0 -109 Tick=419 Det=517=0 -110 Tick=423 Det=518=0 -111 Tick=423 Det=518=0 -112 Tick=423 Det=519=0 -113 Tick=423 Det=519=0 -114 Tick=423 Det=520=0 -115 Tick=423 Det=520=0 -116 Tick=423 Det=517=0 -117 Tick=423 Det=517=0 -118 Tick=439 Det=518=0 -119 Tick=442 Det=521=0 -120 Tick=442 Det=521=0 -121 Tick=442 Det=524=0 -122 Tick=442 Det=523=1 -123 Tick=442 Det=523=1 -124 Tick=442 Det=524=0 -125 Tick=442 Det=522=0 -126 Tick=442 Det=522=0 -127 Tick=479 Det=521=0 -128 Tick=479 Det=521=0 -129 Tick=479 Det=524=0 -130 Tick=479 Det=523=0 -131 Tick=479 Det=524=0 -132 Tick=479 Det=522=0 -133 Tick=479 Det=522=0 -134 Tick=482 Det=526=1 -135 Tick=482 Det=527=0 -136 Tick=482 Det=526=1 -137 Tick=482 Det=525=0 -138 Tick=482 Det=528=0 -139 Tick=482 Det=528=0 -140 Tick=482 Det=527=0 -141 Tick=482 Det=525=0 -142 Tick=493 Det=523=0 -143 Tick=521 Det=527=0 -144 Tick=521 Det=526=0 -145 Tick=521 Det=525=0 -146 Tick=521 Det=528=0 -147 Tick=521 Det=528=0 -148 Tick=521 Det=527=0 -149 Tick=521 Det=525=0 -150 Tick=534 Det=526=0 -151 Tick=583 Det=513=1 -152 Tick=583 Det=515=0 -153 Tick=583 Det=514=0 -154 Tick=583 Det=516=1 -155 Tick=583 Det=516=1 -156 Tick=583 Det=515=0 -157 Tick=583 Det=514=0 -158 Tick=583 Det=513=1 -159 Tick=607 Det=515=0 -160 Tick=607 Det=514=0 -161 Tick=607 Det=516=1 -162 Tick=607 Det=516=1 -163 Tick=607 Det=515=0 -164 Tick=607 Det=514=0 -165 Tick=607 Det=513=0 -166 Tick=618 Det=513=0 -167 Tick=631 Det=531=1 -168 Tick=631 Det=531=1 -169 Tick=631 Det=529=0 -170 Tick=631 Det=529=0 -171 Tick=631 Det=530=0 -172 Tick=631 Det=530=0 -173 Tick=636 Det=531=0 -174 Tick=636 Det=529=0 -175 Tick=636 Det=529=0 -176 Tick=636 Det=530=0 -177 Tick=636 Det=530=0 -178 Tick=640 Det=518=1 -179 Tick=640 Det=518=1 -180 Tick=640 Det=519=0 -181 Tick=640 Det=519=0 -182 Tick=640 Det=520=0 -183 Tick=640 Det=520=0 -184 Tick=640 Det=517=0 -185 Tick=640 Det=517=0 -186 Tick=645 Det=531=0 -187 Tick=668 Det=518=1 -188 Tick=668 Det=518=1 -189 Tick=668 Det=519=1 -190 Tick=668 Det=519=1 -191 Tick=668 Det=520=0 -192 Tick=668 Det=520=0 -193 Tick=668 Det=517=0 -194 Tick=668 Det=517=0 -195 Tick=670 Det=518=0 -196 Tick=670 Det=519=1 -197 Tick=670 Det=519=1 -198 Tick=670 Det=520=0 -199 Tick=670 Det=520=0 -200 Tick=670 Det=517=0 -201 Tick=670 Det=517=0 -202 Tick=672 Det=518=0 -203 Tick=672 Det=518=0 -204 Tick=672 Det=519=0 -205 Tick=672 Det=519=0 -206 Tick=672 Det=520=0 -207 Tick=672 Det=520=0 -208 Tick=672 Det=517=0 -209 Tick=672 Det=517=0 -210 Tick=690 Det=518=0 -211 Tick=692 Det=521=0 -212 Tick=692 Det=521=0 -213 Tick=692 Det=524=0 -214 Tick=692 Det=523=1 -215 Tick=692 Det=523=1 -216 Tick=692 Det=524=0 -217 Tick=692 Det=522=0 -218 Tick=692 Det=522=0 -219 Tick=730 Det=521=0 -220 Tick=730 Det=521=0 -221 Tick=730 Det=524=0 -222 Tick=730 Det=523=0 -223 Tick=730 Det=524=0 -224 Tick=730 Det=522=0 -225 Tick=730 Det=522=0 -226 Tick=733 Det=526=1 -227 Tick=733 Det=527=0 -228 Tick=733 Det=526=1 -229 Tick=733 Det=525=0 -230 Tick=733 Det=528=0 -231 Tick=733 Det=528=0 -232 Tick=733 Det=527=0 -233 Tick=733 Det=525=0 -234 Tick=744 Det=523=0 -235 Tick=772 Det=527=0 -236 Tick=772 Det=526=0 -237 Tick=772 Det=525=0 -238 Tick=772 Det=528=0 -239 Tick=772 Det=528=0 -240 Tick=772 Det=527=0 -241 Tick=772 Det=525=0 -242 Tick=785 Det=526=0 -243 Tick=857 Det=513=1 -244 Tick=857 Det=515=0 -245 Tick=857 Det=514=0 -246 Tick=857 Det=516=1 -247 Tick=857 Det=516=1 -248 Tick=857 Det=515=0 -249 Tick=857 Det=514=0 -250 Tick=857 Det=513=1 - diff --git a/2 trains.txt b/2 trains.txt deleted file mode 100644 index 19bccf4..0000000 --- a/2 trains.txt +++ /dev/null @@ -1,61 +0,0 @@ -départ depuis 2 trains en 523 et 526 - 1 Tick=370 Det=523=1 BB - 2 Tick=370 Det=526=1 CC en tete - 3 Tick=370 Det=516=1 TGV en garage - 4 Tick=371 Det=520=1 ??? -------------------------------- - 5 Tick=505 Det=526=0 CC quitte - 6 Tick=550 Det=523=0 BB quitte - 7 Tick=559 Det=526=1 BB arrive - 8 Tick=578 Det=513=1 CC arrive - 9 Tick=606 Det=513=0 CC quitte -10 Tick=638 Det=531=1 CC arrive -11 Tick=638 Det=526=0 BB quitte -12 Tick=643 Det=531=0 CC quitte -13 Tick=649 Det=518=1 CC arrive -14 Tick=649 Det=520=0 ??? -15 Tick=685 Det=518=0 CC quitte -16 Tick=712 Det=513=1 BB arrive -17 Tick=716 Det=523=1 CC arrive -18 Tick=730 Det=513=0 BB quitte -19 Tick=766 Det=531=1 BB arrive -20 Tick=766 Det=523=0 CC quitte -21 Tick=774 Det=531=0 BB quitte -22 Tick=774 Det=526=1 CC arrive -23 Tick=779 Det=518=1 BB arrive -24 Tick=809 Det=518=0 BB quitte -25 Tick=819 Det=526=0 CC quitte -26 Tick=839 Det=523=1 BB arrive -27 Tick=871 Det=523=0 BB quitte -28 Tick=876 Det=526=1 BB arrive -29 Tick=933 Det=513=1 CC arrive -trains arretés - BB CC -1 523 1 -2 526 1 -5 526 0 -6 523 0 -7 526 1 -8 513 1 -9 513 0 -10 531 1 -11 526 0 -12 531 0 -13 518 1 -14 520??? -15 518 0 -16 513 1 -17 523 1 -18 513 0 -19 531 1 -20 523 0 -21 531 0 -22 526 1 -23 518 1 -24 518 0 -25 526 0 -26 523 1 -27 523 0 -28 526 1 -29 513 1 - diff --git a/ConfigGenerale.cfg b/ConfigGenerale.cfg index 553f03d..f0d65f0 100644 --- a/ConfigGenerale.cfg +++ b/ConfigGenerale.cfg @@ -172,7 +172,7 @@ A32,0 1002,9,0,0,(534,A31),0 0 [section_act] -815,1,CC406526,F2,400 +815,1,CC406526,F2,400,CC406526 813,1,CC406526,A613,2,Z 830,1,ZZ406526,A613,2,Z (815,830),(820,840),PN(121+,121-) diff --git a/Notice d'utilisation des signaux_complexes_GL_V3.81.pdf b/Notice d'utilisation des signaux_complexes_GL_V3.82.pdf similarity index 77% rename from Notice d'utilisation des signaux_complexes_GL_V3.81.pdf rename to Notice d'utilisation des signaux_complexes_GL_V3.82.pdf index d166c67..3545a81 100644 Binary files a/Notice d'utilisation des signaux_complexes_GL_V3.81.pdf and b/Notice d'utilisation des signaux_complexes_GL_V3.82.pdf differ diff --git a/Signaux_complexes_GL.cfg b/Signaux_complexes_GL.cfg index fb83b3c..69e7fa7 100644 --- a/Signaux_complexes_GL.cfg +++ b/Signaux_complexes_GL.cfg @@ -6,7 +6,7 @@ -$F- -$G+ -$H+ --$I- +-$I+ -$J- -$K- -$L+ diff --git a/Signaux_complexes_GL.dof b/Signaux_complexes_GL.dof index 7b7024b..490e277 100644 --- a/Signaux_complexes_GL.dof +++ b/Signaux_complexes_GL.dof @@ -9,7 +9,7 @@ E=0 F=0 G=1 H=1 -I=0 +I=1 J=0 K=0 L=1 diff --git a/Signaux_complexes_GL.dpr b/Signaux_complexes_GL.dpr index 348ec90..91aa10c 100644 --- a/Signaux_complexes_GL.dpr +++ b/Signaux_complexes_GL.dpr @@ -10,7 +10,8 @@ uses UnitTCO in 'UnitTCO.pas' {FormTCO}, UnitConfig in 'UnitConfig.pas' {FormConfig}, UnitConfigTCO in 'UnitConfigTCO.pas' {FormConfigTCO}, - UnitSR in 'UnitSR.pas' {FormSR}; + UnitSR in 'UnitSR.pas' {FormSR}, + Unit_Pilote_aig in 'Unit_Pilote_aig.pas' {FormAig}; {$R *.res} @@ -24,5 +25,6 @@ begin Application.CreateForm(TFormConfigTCO, FormConfigTCO); Application.CreateForm(TFormVersion, FormVersion); Application.CreateForm(TFormSR, FormSR); + Application.CreateForm(TFormAig, FormAig); Application.Run; end. diff --git a/UnitConfig.dcu b/UnitConfig.dcu index 719e451..63abe98 100644 Binary files a/UnitConfig.dcu and b/UnitConfig.dcu differ diff --git a/UnitConfig.dfm b/UnitConfig.dfm index 5a4975b..d9d666a 100644 --- a/UnitConfig.dfm +++ b/UnitConfig.dfm @@ -1,6 +1,6 @@ object FormConfig: TFormConfig - Left = 384 - Top = 136 + Left = 281 + Top = 138 Hint = 'Modifie les fichiers de configuration selon les s'#233'lections chois' + 'ies' @@ -1578,7 +1578,7 @@ object FormConfig: TFormConfig Top = 8 Width = 633 Height = 497 - ActivePage = TabSheetSig + ActivePage = TabSheetAct Font.Charset = DEFAULT_CHARSET Font.Color = clBlack Font.Height = -11 @@ -3383,11 +3383,11 @@ object FormConfig: TFormConfig Caption = #224 end object LabelTrain: TLabel - Left = 56 + Left = 16 Top = 110 - Width = 24 + Width = 49 Height = 13 - Caption = 'Train' + Caption = 'Train D'#233'cl' end object EditAct: TEdit Left = 72 @@ -3407,18 +3407,18 @@ object FormConfig: TFormConfig TabOrder = 1 OnChange = EditEtatActionneurChange end - object EditTrain: TEdit - Left = 88 + object EditTrainDecl: TEdit + Left = 72 Top = 108 - Width = 105 + Width = 129 Height = 21 Hint = - 'Train pour lequel la condition s'#39'applique (mettre X pour tous le' + - 's trains)' + 'Train d'#233'clencheur pour lequel la condition s'#39'applique (mettre X ' + + 'pour tous les trains)' ParentShowHint = False ShowHint = True TabOrder = 2 - OnChange = EditTrainChange + OnChange = EditTrainDeclChange end object RadioGroup1: TRadioGroup Left = 8 @@ -3459,19 +3459,19 @@ object FormConfig: TFormConfig Left = 8 Top = 160 Width = 209 - Height = 97 + Height = 96 Caption = 'Action ' TabOrder = 1 object LabelTempo: TLabel Left = 48 - Top = 52 + Top = 44 Width = 55 Height = 13 Caption = 'Tempo (ms)' end object LabelFonction: TLabel Left = 24 - Top = 22 + Top = 18 Width = 80 Height = 13 Alignment = taRightJustify @@ -3494,10 +3494,10 @@ object FormConfig: TFormConfig Caption = 'Nom du fichier son:' end object SpeedButtonJoue: TSpeedButton - Left = 40 - Top = 56 - Width = 41 - Height = 33 + Left = 64 + Top = 88 + Width = 25 + Height = 25 Flat = True Glyph.Data = { 4E010000424D4E010000000000003E0000002800000022000000220000000100 @@ -3514,10 +3514,10 @@ object FormConfig: TFormConfig OnClick = SpeedButtonJoueClick end object SpeedButtonCharger: TSpeedButton - Left = 136 - Top = 60 - Width = 41 - Height = 30 + Left = 120 + Top = 88 + Width = 25 + Height = 26 Flat = True Glyph.Data = { BA060000424DBA06000000000000360400002800000019000000170000000100 @@ -3576,9 +3576,16 @@ object FormConfig: TFormConfig 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000} OnClick = SpeedButtonChargerClick end + object Label42: TLabel + Left = 16 + Top = 68 + Width = 49 + Height = 13 + Caption = 'Train Dest' + end object EditTempo: TEdit Left = 112 - Top = 46 + Top = 38 Width = 33 Height = 21 TabOrder = 0 @@ -3595,7 +3602,7 @@ object FormConfig: TFormConfig end object EditFonctionAccess: TEdit Left = 112 - Top = 18 + Top = 14 Width = 25 Height = 21 Hint = 'Num'#233'ro de fonction du d'#233'codeur du train (0 '#224' 12 ou 28)' @@ -3606,26 +3613,37 @@ object FormConfig: TFormConfig end object EditEtatFoncSortie: TEdit Left = 160 - Top = 18 + Top = 14 Width = 25 Height = 21 TabOrder = 3 OnChange = EditEtatFoncSortieChange end object EditSon: TEdit - Left = 8 + Left = 32 Top = 64 - Width = 177 + Width = 161 Height = 21 TabOrder = 4 OnChange = EditSonChange end + object EditTrainDest: TEdit + Left = 72 + Top = 64 + Width = 129 + Height = 21 + Hint = 'Train destinataire de la fonction F' + ParentShowHint = False + ShowHint = True + TabOrder = 5 + OnChange = EditTrainDestChange + end end object ButtonTestAct: TButton Left = 64 - Top = 264 + Top = 266 Width = 89 - Height = 25 + Height = 20 Hint = 'Test de l'#39'actionneur/d'#233'tecteur en mode RUN' Caption = 'Test actionneur' ParentShowHint = False diff --git a/UnitConfig.pas b/UnitConfig.pas index c3bddc5..a488a31 100644 --- a/UnitConfig.pas +++ b/UnitConfig.pas @@ -194,7 +194,7 @@ type EditEtatActionneur: TEdit; Label30: TLabel; LabelTrain: TLabel; - EditTrain: TEdit; + EditTrainDecl: TEdit; GroupBox19: TGroupBox; LabelTempo: TLabel; EditTempo: TEdit; @@ -249,6 +249,8 @@ type OpenDialogSon: TOpenDialog; SpeedButtonCharger: TSpeedButton; LabelNumBranche: TLabel; + EditTrainDest: TEdit; + Label42: TLabel; procedure ButtonAppliquerEtFermerClick(Sender: TObject); procedure FormActivate(Sender: TObject); procedure FormCreate(Sender: TObject); @@ -265,7 +267,7 @@ type procedure RichActMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure EditEtatActionneurChange(Sender: TObject); - procedure EditTrainChange(Sender: TObject); + procedure EditTrainDeclChange(Sender: TObject); procedure EditFonctionAccessChange(Sender: TObject); procedure EditEtatFoncSortieChange(Sender: TObject); procedure EditTempoChange(Sender: TObject); @@ -349,6 +351,7 @@ type procedure SpeedButtonChargerClick(Sender: TObject); procedure RichBrancheKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure EditTrainDestChange(Sender: TObject); private { Déclarations privées } public @@ -1062,17 +1065,19 @@ begin if Tablo_Actionneur[i].loco then - s:=s+','+IntToSTR(Tablo_Actionneur[i].Etat)+','+Tablo_Actionneur[i].train+',F'+IntToSTR(Tablo_Actionneur[i].fonction)+','+intToSTR(Tablo_Actionneur[i].tempo); + s:=s+','+IntToSTR(Tablo_Actionneur[i].Etat)+','+Tablo_Actionneur[i].trainDecl+',F'+ + IntToSTR(Tablo_Actionneur[i].fonction)+','+intToSTR(Tablo_Actionneur[i].tempo)+ + ','+Tablo_Actionneur[i].trainDest; if Tablo_Actionneur[i].act then begin - s:=s+','+IntToSTR(Tablo_Actionneur[i].Etat)+','+Tablo_Actionneur[i].train+ + s:=s+','+IntToSTR(Tablo_Actionneur[i].Etat)+','+Tablo_Actionneur[i].trainDecl+ ',A'+IntToSTR(Tablo_Actionneur[i].accessoire)+','+intToSTR(Tablo_Actionneur[i].sortie)+','; if Tablo_Actionneur[i].Raz then s:=s+'Z' else s:=s+'S'; end; if Tablo_Actionneur[i].son then - s:=s+','+IntToSTR(Tablo_Actionneur[i].Etat)+','+Tablo_Actionneur[i].train+',"'+Tablo_Actionneur[i].FichierSon+'"'; + s:=s+','+IntToSTR(Tablo_Actionneur[i].Etat)+','+Tablo_Actionneur[i].trainDecl+',"'+Tablo_Actionneur[i].FichierSon+'"'; encode_act_loc_son:=s; end; @@ -1358,7 +1363,8 @@ begin // raz des actionneurs for i:=1 to maxTablo_act do begin - Tablo_actionneur[i].train:=''; + Tablo_actionneur[i].trainDecl:=''; + Tablo_actionneur[i].trainDest:=''; Tablo_actionneur[i].etat:=0; Tablo_actionneur[i].adresse:=0; Tablo_actionneur[i].adresse2:=0; @@ -1407,7 +1413,7 @@ begin Tablo_actionneur[maxTablo_act].det:=sa[erreur]='Z'; delete(sa,1,erreur); s:=sa; - end; + end; end; // vérifier si F ou A ou " au 4eme champ @@ -1432,7 +1438,7 @@ begin Delete(s,1,erreur); i:=pos(',',s); - Tablo_actionneur[maxTablo_act].train:=copy(s,1,i-1); + Tablo_actionneur[maxTablo_act].trainDecl:=copy(s,1,i-1); Delete(s,1,i); i:=pos('"',s); @@ -1458,7 +1464,7 @@ begin Delete(s,1,erreur); i:=pos(',',s); - Tablo_actionneur[maxTablo_act].train:=copy(s,1,i-1); + Tablo_actionneur[maxTablo_act].trainDecl:=copy(s,1,i-1); Delete(s,1,i); i:=pos('A',s); @@ -1491,7 +1497,7 @@ begin end; if length(sa)>1 then if (sa[1]='F') then - // -----------------loco + // -----------------fonction loco begin Tablo_actionneur[maxtablo_act].act:=false; Tablo_actionneur[maxtablo_act].loco:=true; @@ -1506,7 +1512,7 @@ begin Delete(s,1,erreur); i:=pos(',',s); - Tablo_actionneur[maxTablo_act].train:=copy(s,1,i-1); + Tablo_actionneur[maxTablo_act].trainDecl:=copy(s,1,i-1); Delete(s,1,i); i:=pos('F',s); @@ -1516,19 +1522,26 @@ begin val(s,j,erreur); Tablo_actionneur[maxTablo_act].Fonction:=j; - i:=pos(',',s); + i:=pos(',',s);// champ tempo if i<>0 then begin Delete(S,1,i); val(s,j,erreur); Tablo_actionneur[maxTablo_act].Tempo:=j; + i:=pos(',',s); // champ train dest + if i=0 then tablo_actionneur[maxTablo_act].TrainDest:=tablo_actionneur[maxTablo_act].TrainDecl + else + begin + tablo_actionneur[maxTablo_act].TrainDest:=copy(s,i+1,length(s)-i); + end; + inc(maxTablo_act); end; end; s:='';i:=0; end; end; - + // Passage à niveau if (pos('PN',s)<>0) then begin @@ -2994,6 +3007,8 @@ begin SpeedButtonCharger.Visible:=false; EditFonctionAccess.Visible:=true; LabelNomSon.Visible:=false; + editTrainDest.Visible:=true; + label42.Visible:=true; end; end; @@ -3018,6 +3033,8 @@ begin SpeedButtonCharger.Visible:=false; EditFonctionAccess.Visible:=true; LabelNomSon.Visible:=false; + editTrainDest.Visible:=false; + label42.Visible:=false; end; end; @@ -3047,6 +3064,8 @@ begin GroupBoxAct.Visible:=true; GroupBoxPN.Visible:=false; + editTrainDest.Visible:=false; + label42.Visible:=false; end; end; @@ -3224,12 +3243,12 @@ begin begin if typ=0 then begin - EditTrain.Visible:=true ; + EditTrainDecl.Visible:=true ; LabelTrain.Visible:=true ; end else begin - EditTrain.Visible:=false; + EditTrainDecl.Visible:=false; LabelTrain.Visible:=false; end; end; @@ -3261,7 +3280,7 @@ begin etatAct:=Tablo_actionneur[i].etat; Adresse:=Tablo_actionneur[i].adresse; - s2:=Tablo_actionneur[i].train; + s2:=Tablo_actionneur[i].trainDecl; trainsauve:=s2; tempo:=tablo_actionneur[i].Tempo; with formconfig do @@ -3271,7 +3290,8 @@ begin EditAct.text:=adr; EditAct2.Text:=inttostr(Tablo_actionneur[i].adresse2); editEtatActionneur.Text:=IntToSTR(etatAct); - EditTrain.Text:=s2; + EditTrainDecl.Text:=s2; + EditTrainDest.Text:=Tablo_actionneur[i].trainDest; editFonctionAccess.Text:=intToSTR(fonction); editTempo.Text:=intToSTR(tempo); end; @@ -3299,7 +3319,7 @@ begin etatAct:=Tablo_actionneur[i].etat ; Adresse:=Tablo_actionneur[i].adresse; sortie:=Tablo_actionneur[i].sortie; - s2:=Tablo_actionneur[i].train; + s2:=Tablo_actionneur[i].trainDecl; trainsauve:=s2; tempo:=tablo_actionneur[i].Tempo; with formconfig do @@ -3308,7 +3328,7 @@ begin EditAct.text:=adr; EditAct2.Text:=inttostr(Tablo_actionneur[i].adresse2); CheckRaz.Checked:=Tablo_actionneur[i].Raz; - EditTrain.Text:=s2; + EditTrainDecl.Text:=s2; EditEtatActionneur.Text:=IntToSTR(etatAct); editFonctionAccess.Text:=intToSTR(Access); editEtatFoncSortie.Text:=intToSTR(sortie); @@ -3337,7 +3357,7 @@ begin etatAct:=Tablo_actionneur[i].etat ; Adresse:=Tablo_actionneur[i].adresse; - s2:=Tablo_actionneur[i].train; + s2:=Tablo_actionneur[i].trainDecl; trainsauve:=s2; s:=Tablo_actionneur[i].FichierSon; with formconfig do @@ -3346,7 +3366,7 @@ begin EditAct.text:=adr; EditAct2.Text:=inttostr(Tablo_actionneur[i].adresse2); //CheckRaz.Checked:=Tablo_actionneur[i].Raz; - EditTrain.Text:=s2; + EditTrainDecl.Text:=s2; EditSon.Text:=s; EditEtatActionneur.Text:=IntToSTR(etatAct); end; @@ -3414,7 +3434,7 @@ begin begin editAct.Text:=''; EditEtatActionneur.Text:=''; - EditTrain.Text:=''; + EditTrainDecl.Text:=''; EditFonctionAccess.Text:=''; EditEtatFoncSortie.Text:=''; EditTempo.Text:=''; @@ -4404,29 +4424,53 @@ begin end; end; -procedure TFormConfig.EditTrainChange(Sender: TObject); +procedure TFormConfig.EditTrainDeclChange(Sender: TObject); var s,train : string; begin if clicliste then exit; - if affevt then affiche('Evt Edit Train Change',clyellow); + if affevt then affiche('Evt Edit TrainDecl Change',clyellow); if FormConfig.PageControl.ActivePage=FormConfig.TabSheetAct then with Formconfig do - begin + begin if radioButtonLoc.Checked or RadioButtonAccess.Checked then begin - train:=editTrain.Text; + train:=EditTrainDecl.Text; if train='' then begin LabelInfo.caption:='Erreur train';exit end else LabelInfo.caption:=' '; - - tablo_actionneur[ligneClicAct+1].train:=train; + + tablo_actionneur[ligneClicAct+1].trainDecl:=train; s:=encode_act_loc_son(ligneClicAct+1); RichAct.Lines[ligneClicAct]:=s; end; end; end; +procedure TFormConfig.EditTrainDestChange(Sender: TObject); +var s,train : string; +begin + if clicliste then exit; + if affevt then affiche('Evt Edit TrainDest Change',clyellow); + if FormConfig.PageControl.ActivePage=FormConfig.TabSheetAct then + with Formconfig do + begin + if radioButtonLoc.Checked then + begin + train:=EditTrainDest.Text; + if train='' then + begin + LabelInfo.caption:='Erreur train';exit + end else LabelInfo.caption:=' '; + + tablo_actionneur[ligneClicAct+1].trainDest:=train; + s:=encode_act_loc_son(ligneClicAct+1); + RichAct.Lines[ligneClicAct]:=s; + end; + end; + +end; + procedure TFormConfig.EditSonChange(Sender: TObject); var s,fichier : string; @@ -4755,7 +4799,7 @@ begin Tablo_actionneur[i].adresse:=champ ; val(editEtatActionneur.Text,champ,erreur); Tablo_actionneur[i].etat:=champ; - Tablo_actionneur[i].train:=editTrain.Text; + Tablo_actionneur[i].trainDecl:=EditTrainDecl.Text; val(editFonctionAccess.Text,champ,erreur); Tablo_actionneur[i].fonction:=champ; val(editEtatFoncSortie.Text,champ,erreur); @@ -4785,7 +4829,7 @@ begin Tablo_actionneur[i].adresse:=champ ; val(editEtatActionneur.Text,champ,erreur); Tablo_actionneur[i].etat:=champ; - Tablo_actionneur[i].train:=editTrain.Text; + Tablo_actionneur[i].trainDecl:=EditTrainDecl.Text; val(editFonctionAccess.Text,champ,erreur); Tablo_actionneur[i].fonction:=champ; val(editEtatFoncSortie.Text,champ,erreur); @@ -4817,7 +4861,7 @@ begin Tablo_actionneur[i].adresse:=champ ; val(editEtatActionneur.Text,champ,erreur); Tablo_actionneur[i].etat:=champ; - Tablo_actionneur[i].train:=editTrain.Text; + Tablo_actionneur[i].trainDecl:=EditTrainDecl.Text; val(editFonctionAccess.Text,champ,erreur); Tablo_actionneur[i].fonction:=champ; val(editEtatFoncSortie.Text,champ,erreur); @@ -6933,7 +6977,6 @@ end; procedure TFormConfig.ButtonTestActClick(Sender: TObject); Var Adr,adr2,erreur,etat : integer; - train : string; begin etat:=0; val(EditEtatActionneur.Text,Etat,erreur); @@ -6941,8 +6984,7 @@ begin val(EditAct2.Text,Adr2,erreur); if erreur=0 then begin - train:=EditTrain.Text; - Event_act(adr,adr2,etat,train); + Event_act(adr,adr2,etat,'X'); end; end; @@ -6956,17 +6998,17 @@ begin Tablo_Actionneur[i].typActMemZone:=0; LabelActionneur.Caption:='Actionneur DétecteurZ'; editAct2.Visible:=false; - EditTrain.Visible:=true; + EditTrainDecl.Visible:=true; LabelTrain.Visible:=true; - Tablo_Actionneur[i].train:=trainSauve; - EditTrain.Text:=trainSauve; + Tablo_Actionneur[i].trainDecl:=trainSauve; + EditTrainDecl.Text:=trainSauve; val(editact.Text,champ,erreur); Tablo_actionneur[i].adresse:=champ ; val(editEtatActionneur.Text,champ,erreur); Tablo_actionneur[i].etat:=champ; - Tablo_actionneur[i].train:=editTrain.Text; + Tablo_actionneur[i].trainDecl:=EditTrainDecl.Text; val(editFonctionAccess.Text,champ,erreur); Tablo_actionneur[i].fonction:=champ; val(editEtatFoncSortie.Text,champ,erreur); @@ -6989,12 +7031,12 @@ begin if AffEvt then Affiche('RadioBoutonZones '+IntToSTR(i),clyellow); Tablo_Actionneur[i].typActMemZone:=1; LabelActionneur.Caption:='Mémoire de Zone'; - EditTrain.Visible:=false; + EditTrainDecl.Visible:=false; LabelTrain.Visible:=false; editAct2.Visible:=true; //editact.Text:=intToSTR(Tablo_actionneur[i].adresse2); - Tablo_actionneur[i].train:='X'; + Tablo_actionneur[i].trainDecl:='X'; val(editact.Text,champ,erreur); Tablo_actionneur[i].adresse:=champ ; val(editEtatActionneur.Text,champ,erreur); @@ -7092,11 +7134,6 @@ end; begin - - - - - end. diff --git a/UnitDebug.dcu b/UnitDebug.dcu index 65e9f44..6b2f9a9 100644 Binary files a/UnitDebug.dcu and b/UnitDebug.dcu differ diff --git a/UnitPrinc.dcu b/UnitPrinc.dcu index a824b1a..6d51f94 100644 Binary files a/UnitPrinc.dcu and b/UnitPrinc.dcu differ diff --git a/UnitPrinc.dfm b/UnitPrinc.dfm index e4206cc..f2f33ba 100644 --- a/UnitPrinc.dfm +++ b/UnitPrinc.dfm @@ -1,6 +1,6 @@ object FormPrinc: TFormPrinc - Left = 15 - Top = 195 + Left = 10 + Top = 259 Width = 1213 Height = 664 Caption = 'Client TCP-IP CDM Rail ou USB - syst'#232'me LENZ' diff --git a/UnitPrinc.pas b/UnitPrinc.pas index 632bd65..f24aa31 100644 --- a/UnitPrinc.pas +++ b/UnitPrinc.pas @@ -354,7 +354,7 @@ var typActMemZone : integer; // 0=actioneur 1=MemZone Raz : boolean; det : boolean; // désigne un détecteur - FichierSon,train : string; + FichierSon,trainDecl,TrainDest : string; end; KeyInputs: array of TInput; @@ -436,7 +436,7 @@ function PresTrainPrec(Adresse : integer) : boolean; function cond_carre(adresse : integer) : boolean; function carre_signal(adresse : integer) : boolean; procedure Event_Detecteur(Adresse : integer;etat : boolean;train : string); -procedure Event_act(adr,adr2,etat : integer;train : string); +procedure Event_act(adr,adr2,etat : integer;trainDecl : string); function verif_UniSemaf(adresse,UniSem : integer) : integer; function Select_dessin_feu(TypeFeu : integer) : TBitmap; procedure cree_image(rang : integer); @@ -2040,10 +2040,11 @@ begin if index<>0 then begin i:=0; + // trouve l'index dans la configuration du feu correspondant à son état demandé repeat inc(i); until (feux[index].SR[i].sortie1=etat) or (feux[index].SR[i].sortie0=etat) or (i=8); - + if (feux[index].SR[i].sortie1=etat) then begin //affiche('trouvé en sortie1 index '+IntToSTR(i),clyellow); @@ -2251,7 +2252,7 @@ begin carre : pilote_acc(adresse+1,2,feu); end; end; - // 51=carré + blanc + // 51=carré + blanc if modele=51 then begin case aspect of @@ -2294,7 +2295,7 @@ begin end; if combine=ral_30 then pilote_acc(adresse+1,2,feu); end; - // 72=VJR + carré + ralentissement 30 + // 72=VJR + carré + ralentissement 30 if modele=72 then begin case aspect of @@ -2308,7 +2309,7 @@ begin end; if combine=ral_30 then pilote_acc(adresse+2,1,feu); end; - // 73=VJR + carré + ralentissement 60 + // 73=VJR + carré + ralentissement 60 if modele=73 then begin case aspect of @@ -2322,7 +2323,7 @@ begin end; if combine=ral_60 then pilote_acc(adresse+2,1,feu); end; - // 91=VJR + carré + rappel 30 + // 91=VJR + carré + rappel 30 if modele=91 then begin case aspect of @@ -2337,7 +2338,7 @@ begin if combine=rappel_30 then pilote_acc(adresse+2,1,feu); end; - // 92=VJR + carré + rappel 60 + // 92=VJR + carré + rappel 60 if modele=92 then begin case aspect of @@ -2352,7 +2353,7 @@ begin if combine=rappel_60 then pilote_acc(adresse+2,1,feu); end; - // 93=VJR + carré + ral30 + rappel 30 + // 93=VJR + carré + ral30 + rappel 30 if modele=93 then begin if combine=16 then //pas de sig combinée @@ -2370,7 +2371,7 @@ begin if (aspect=jaune) and (combine=rappel_30) then pilote_acc(adresse+3,1,feu); end; - // 94=VJR + carré + ral60 + rappel60 + // 94=VJR + carré + ral60 + rappel60 if modele=94 then begin if combine=16 then @@ -2388,7 +2389,7 @@ begin if (aspect=jaune) and (combine=rappel_60) then pilote_acc(adresse+3,1,feu); end; - // 95=VJR + carré + ral30 + rappel 60 + // 95=VJR + carré + ral30 + rappel 60 if modele=95 then begin if combine=16 then @@ -2405,7 +2406,7 @@ begin if combine=rappel_60 then pilote_acc(adresse+2,2,feu); if (aspect=jaune) and (combine=rappel_60) then pilote_acc(adresse+3,1,feu); end; - // 96=VJR + blanc + carré + ral30 + rappel30 + // 96=VJR + blanc + carré + ral30 + rappel30 if modele=96 then begin if combine=16 then @@ -2425,7 +2426,7 @@ begin if (aspect=jaune) and (combine=rappel_30) then pilote_acc(adresse+3,1,feu); end; - // 97=VJR + blanc + carré + ral30 + rappel60 + // 97=VJR + blanc + carré + ral30 + rappel60 if modele=97 then begin if combine=16 then @@ -2738,20 +2739,20 @@ begin end; 2 : // mode 2: plus de 4 feux begin - if (aspect=semaphore) then begin pilote_acc(adresse+2,1,feu);sleep(tempo_Feu);pilote_acc(adresse,1,feu);end; - if (aspect=vert) then begin pilote_acc(adresse+2,1,feu);sleep(tempo_Feu);pilote_acc(adresse,2,feu);end; - if (aspect=carre) then begin pilote_acc(adresse+2,1,feu);sleep(tempo_Feu);pilote_acc(adresse+1,1,feu);end; - if (aspect=jaune) then begin pilote_acc(adresse+2,1,feu);sleep(tempo_Feu);pilote_acc(adresse+1,2,feu);end; - if (aspect=violet) then begin pilote_acc(adresse+2,2,feu);sleep(tempo_Feu);pilote_acc(adresse,1,feu);end; - if (aspect=blanc) then begin pilote_acc(adresse+2,2,feu);sleep(tempo_Feu);pilote_acc(adresse,2,feu);end; - if (aspect=semaphore) then begin pilote_acc(adresse+2,2,feu);sleep(tempo_Feu);pilote_acc(adresse+1,1,feu);end; - if (combine=aspect8) then begin pilote_acc(adresse+2,2,feu);sleep(tempo_Feu);pilote_acc(adresse+1,2,feu);end; + if (aspect=semaphore) then begin pilote_acc(adresse+2,1,feu);sleep(tempo_Feu);pilote_acc(adresse,1,feu);end; + if (aspect=vert) then begin pilote_acc(adresse+2,1,feu);sleep(tempo_Feu);pilote_acc(adresse,2,feu);end; + if (aspect=carre) then begin pilote_acc(adresse+2,1,feu);sleep(tempo_Feu);pilote_acc(adresse+1,1,feu);end; + if (aspect=jaune) then begin pilote_acc(adresse+2,1,feu);sleep(tempo_Feu);pilote_acc(adresse+1,2,feu);end; + if (aspect=violet) then begin pilote_acc(adresse+2,2,feu);sleep(tempo_Feu);pilote_acc(adresse,1,feu);end; + if (aspect=blanc) then begin pilote_acc(adresse+2,2,feu);sleep(tempo_Feu);pilote_acc(adresse,2,feu);end; + if (aspect=semaphore) then begin pilote_acc(adresse+2,2,feu);sleep(tempo_Feu);pilote_acc(adresse+1,1,feu);end; + if (combine=aspect8) then begin pilote_acc(adresse+2,2,feu);sleep(tempo_Feu);pilote_acc(adresse+1,2,feu);end; if (combine=ral_60_jaune_cli) then begin pilote_acc(adresse+3,1,feu);sleep(tempo_Feu);pilote_acc(adresse,1,feu);end; // demande groupe 3 - if (aspect=vert_cli) then begin pilote_acc(adresse+3,1,feu);sleep(tempo_Feu);pilote_acc(adresse,2,feu);end; // demande groupe 3 - if (combine=Disque_D) then begin pilote_acc(adresse+3,1,feu);sleep(tempo_Feu);pilote_acc(adresse+1,1,feu);end;// demande groupe 3 - if (aspect=jaune_cli) then begin pilote_acc(adresse+3,1,feu);sleep(tempo_Feu);pilote_acc(adresse+1,2,feu);end; - if (combine=ral_30) then begin pilote_acc(adresse+3,2,feu);sleep(tempo_Feu);pilote_acc(adresse,1,feu);end; - if (combine=ral_60) then begin pilote_acc(adresse+3,2,feu);sleep(tempo_Feu);pilote_acc(adresse,2,feu);end; + if (aspect=vert_cli) then begin pilote_acc(adresse+3,1,feu);sleep(tempo_Feu);pilote_acc(adresse,2,feu);end; // demande groupe 3 + if (combine=Disque_D) then begin pilote_acc(adresse+3,1,feu);sleep(tempo_Feu);pilote_acc(adresse+1,1,feu);end;// demande groupe 3 + if (aspect=jaune_cli) then begin pilote_acc(adresse+3,1,feu);sleep(tempo_Feu);pilote_acc(adresse+1,2,feu);end; + if (combine=ral_30) then begin pilote_acc(adresse+3,2,feu);sleep(tempo_Feu);pilote_acc(adresse,1,feu);end; + if (combine=ral_60) then begin pilote_acc(adresse+3,2,feu);sleep(tempo_Feu);pilote_acc(adresse,2,feu);end; if (combine=rappel_30) then begin pilote_acc(adresse+3,2,feu);sleep(tempo_Feu);pilote_acc(adresse+1,1,feu);end; if (combine=rappel_60) then begin pilote_acc(adresse+3,2,feu);sleep(tempo_Feu);pilote_acc(adresse+1,2,feu);end; end; @@ -5375,8 +5376,8 @@ begin begin MemZone[det2,det3]:=FALSE; // efface zone précédente MemZone[det3,AdrSuiv]:=TRUE; // valide la nouvelle zone - event_act(det2,det3,0,'X'); // désactivation zone - event_act(det3,AdrSuiv,1,'X'); // activation zone + event_act(det2,det3,0,''); // désactivation zone + event_act(det3,AdrSuiv,1,''); // activation zone end else Affiche('Erreur 740 : Adresse détecteur trop élevé',clred); @@ -5549,9 +5550,9 @@ end; // traitement des évènements actionneurs -procedure Event_act(adr,adr2,etat : integer;train : string); +procedure Event_act(adr,adr2,etat : integer;trainDecl : string); var i,v,va,etatAct,Af,Ao,Access,sortie : integer; - s,st : string; + s,st,trainDest : string; presTrain_PN,adresseOk : boolean; Ts : TAccessoire; begin @@ -5561,7 +5562,7 @@ begin for i:=1 to maxTablo_act do begin - s:=Tablo_actionneur[i].train; + s:=Tablo_actionneur[i].trainDecl; etatAct:=Tablo_actionneur[i].etat ; adresseok:=(Tablo_actionneur[i].adresse=adr) ; @@ -5581,31 +5582,32 @@ begin end; // actionneur pour fonction train - if adresseOk and (Tablo_actionneur[i].loco) and ((s=train) or (s='X') or (train='X')) and (etatAct=etat) then + if adresseOk and (Tablo_actionneur[i].loco) and ((s=trainDecl) or (s='X') or (trainDecl='X')) and (etatAct=etat) then begin - Affiche(st+' Train='+train+' F'+IntToSTR(Tablo_actionneur[i].fonction)+':'+intToSTR(etat),clyellow); + trainDest:=Tablo_actionneur[i].trainDest; + Affiche(st+' TrainDecl='+trainDecl+' TrainDest='+trainDest+' F'+IntToSTR(Tablo_actionneur[i].fonction)+':'+intToSTR(etat),clyellow); // exécution de la fonction F vers CDM - envoie_fonction_CDM(Tablo_actionneur[i].fonction,etat,train); + envoie_fonction_CDM(Tablo_actionneur[i].fonction,etat,trainDest); tablo_actionneur[i].TempoCourante:=tablo_actionneur[i].Tempo div 100; end; // actionneur pour accessoire - if adresseOk and (Tablo_actionneur[i].act) and ((s=train) or (s='X') or (train='X')) and (etatAct=etat) then + if adresseOk and (Tablo_actionneur[i].act) and ((s=trainDecl) or (s='X') or (trainDecl='X')) and (etatAct=etat) then begin access:=Tablo_actionneur[i].accessoire; sortie:=Tablo_actionneur[i].sortie; - Affiche(st+' Train='+train+' Accessoire '+IntToSTR(access)+':'+intToSTR(sortie),clyellow); + Affiche(st+' Train='+trainDecl+' Accessoire '+IntToSTR(access)+':'+intToSTR(sortie),clyellow); // exécution la fonction accessoire vers CDM if Tablo_actionneur[i].RAZ then Ts:=aigP else Ts:=Feu; pilote_acc(access,sortie,Ts); // sans RAZ end; // actionneur pour son - if adresseOk and (Tablo_actionneur[i].Son) and ((s=train) or (s='X') or (train='X')) and (etatAct=etat) + if adresseOk and (Tablo_actionneur[i].Son) and ((s=trainDecl) or (s='X') or (trainDecl='X')) and (etatAct=etat) then begin - Affiche(st+' Train='+train+' son '+Tablo_actionneur[i].FichierSon,clyellow); + Affiche(st+' Train='+trainDecl+' son '+Tablo_actionneur[i].FichierSon,clyellow); PlaySound(pchar(Tablo_actionneur[i].FichierSon),0,SND_ASYNC); end; end; @@ -6965,8 +6967,8 @@ begin if Tablo_actionneur[i].TempoCourante=0 then begin A:=Tablo_actionneur[i].adresse; - s:=Tablo_actionneur[i].train; - Affiche('Actionneur '+intToSTR(a)+' F'+IntToSTR(Tablo_actionneur[i].fonction)+':0',clyellow); + s:=Tablo_actionneur[i].trainDest; + Affiche('Actionneur '+intToSTR(a)+' TrainDest='+s+' F'+IntToSTR(Tablo_actionneur[i].fonction)+':0',clyellow); envoie_fonction_CDM(Tablo_actionneur[i].fonction,0,s); end; end; @@ -7370,29 +7372,14 @@ begin { trame_CDM:='S-R-14-0004-CMDACC-__ACK|000|S-E-14-5162-CMDACC-ST_DT|052|05|NAME=2756;OBJ=2756;AD=518;TRAIN=CC406526;STATE=1;'; trame_cdm:=trame_cdm+'S-E-14-5163-CMDACC-ST_DT|049|05|NAME=2757;OBJ=2757;AD=518;TRAIN=_NONE;STATE=1;'; - trame_cdm:=trame_cdm+'S-E-14-5164-CMDACC-ST_DT|049|05|NAME=2758;OBJ=2758;AD=519;TRAIN=_NONE;STATE=0;'; - trame_cdm:=trame_cdm+'S-E-14-5165-CMDACC-ST_DT|049|05|NAME=2759;OBJ=2759;AD=519;TRAIN=_NONE;STATE=0'; - trame_cdm:=trame_cdm+'S-E-14-5166-CMDACC-ST_DT|049|05|NAME=7060;OBJ=7060;AD=520;TRAIN=_NONE;STATE=0'; - trame_cdm:=trame_cdm+'S-E-14-5167-CMDACC-ST_DT|051|05|NAME=7061;OBJ=7061;AD=520;TRAIN=BB25531;STATE=0'; - trame_cdm:=trame_cdm+'S-E-14-5168-CMDACC-ST_DT|049|05|NAME=7057;OBJ=7057;AD=517;TRAIN=_NONE;STATE=0'; - trame_cdm:=trame_cdm+'S-E-14-5169-CMDACC-ST_DT|049|05|NAME=7058;OBJ=7058;AD=517;TRAIN=_NONE;STATE=0'; - - trame_cdm:='S-R-07-0002-DSCTRN-__ACK|000|S-C-07-1369-DSCTRN-SPEED|030|03|NAME=BB25531;AD=1;TMAX=120;S-C-07-1370-DSCTRN-SPEED|026|03|NAME=TGV;AD=2;TMAX=120;' ; - trame_cdm:=trame_cdm+'S-C-07-1371-DSCTRN-SPEED|030|03|NAME=BB16024;AD=3;TMAX=120;' ; - trame_cdm:=trame_cdm+'S-C-07-1372-DSCTRN-SPEED|031|03|NAME=CC406526;AD=4;TMAX=120;' ; trame_cdm:=trame_cdm+'S-C-07-1373-DSCTRN-SPEED|029|03|NAME=CAMERA;AD=6;TMAX=120;' ; trame_cdm:=trame_cdm+'S-C-07-1374-DSCTRN-__END|000|' ; + S-R-01-0004-CMDTRN-__ERR|048|03|ERR=300;SEV=2;MSG=Throttle_By_Name_Not_Found; } //affiche(trame_cdm,clLime); residuCDM:=''; AckCDM:=trame_CDM<>''; - {if pos('ACK',trame_CDM)=0 then - begin - if pos('ERR=200',trame_CDM)<>0 then Affiche('Erreur CDM : réseau non chargé',clred); - if pos('ERR=500',trame_CDM)<>0 then Affiche('Erreur CDM : serveur DCC non lancé',clred); - end; - } k:=0; repeat {// inutile de vérifier les numéros de trames, elles peuvent ne pas être envoyées dans l'ordre!! @@ -7491,19 +7478,22 @@ begin Delete(trame_CDM,1,i); //Affiche('long chaine param='+intToSTR(long),clyellow); - if long=0 then - begin - //if debugTrames then Affiche('Longueur nulle',clYellow); - if pos('ACK',trame_cdm)<>0 then Ack_cdm:=true; - delete(trame_cdm,1,j); - goto reprise; - end; + if long=0 then + begin + //if debugTrames then Affiche('Longueur nulle',clYellow); + if pos('ACK',trame_cdm)<>0 then Ack_cdm:=true; + delete(trame_cdm,1,j); + goto reprise; + end; posERR:=pos('_ERR',commandeCDM); if posErr<>0 then begin - if pos('ERR=200',commandeCDM)<>0 then Affiche('Erreur CDM : réseau non chargé',clred); - //if pos('ERR=500',commandeCDM)<>0 then Affiche('Erreur CDM : serveur DCC non lancé',clred); + if pos('ERR=200',commandeCDM)<>0 then s:='Erreur CDM : réseau non chargé '; + if pos('ERR=500',commandeCDM)<>0 then s:='Erreur CDM : serveur DCC non lancé '; + if pos('ERR=300',commandeCDM)<>0 then s:='Erreur CDM : train non trouvé '; + j:=pos('MSG=',commandeCDM);if j<>0 then s:=s+copy(commandeCDM,j,i-j); + Affiche(s,clred); delete(commandeCDM,1,i); end; @@ -8059,29 +8049,30 @@ begin Affiche('Codification interne des actionneurs',Cyan); for i:=1 to maxTablo_act do begin - s:=Tablo_actionneur[i].train; + s:=Tablo_actionneur[i].trainDecl; etatAct:=Tablo_actionneur[i].etat ; AdrAct:=Tablo_actionneur[i].adresse; - s2:=Tablo_actionneur[i].train; + s2:=Tablo_actionneur[i].trainDecl; acc:=Tablo_actionneur[i].accessoire; sortie:=Tablo_actionneur[i].sortie; fonction:=Tablo_actionneur[i].fonction; son:=Tablo_actionneur[i].son; Mem:=Tablo_actionneur[i].typActMemZone=1; - + if Mem then s:='Mem '+intToSTR(adrAct)+' '+inttostr(Tablo_actionneur[i].Adresse2) else s:=intToSTR(adrAct); - + if (s2<>'') then begin if fonction<>0 then - s:='FonctionF Déclencheur='+s+' :'+intToSTR(etatAct)+' Train='+s2+' F'+IntToSTR(fonction)+ + s:='FonctionF Déclencheur='+s+' :'+intToSTR(etatAct)+' TrainDécl='+s2+' TrainDest='+Tablo_actionneur[i].TrainDest+' F'+IntToSTR(fonction)+ ' Temporisation='+intToSTR(tablo_actionneur[i].Tempo); if acc<>0 then - s:='Accessoire Déclencheur='+s+' :'+intToSTR(etatAct)+' Train='+s2+' A'+IntToSTR(acc)+ + s:='Accessoire Déclencheur='+s+' :'+intToSTR(etatAct)+' TrainDécl='+s2+' A'+IntToSTR(acc)+ ' sortie='+intToSTR(sortie); if son then - s:='Son Déclencheur='+s+' :'+intToSTR(etatAct)+' Train='+s2+' Fichier:'+ Tablo_actionneur[i].FichierSon; + s:='Son Déclencheur='+s+' :'+intToSTR(etatAct)+' TrainDécl='+s2+ + ' Fichier:'+Tablo_actionneur[i].FichierSon; Affiche(s,clYellow); end; diff --git a/UnitSR.dcu b/UnitSR.dcu index ece9cc9..c897165 100644 Binary files a/UnitSR.dcu and b/UnitSR.dcu differ diff --git a/verif_version.dcu b/verif_version.dcu index 851391a..c0aaf52 100644 Binary files a/verif_version.dcu and b/verif_version.dcu differ diff --git a/verif_version.pas b/verif_version.pas index fcee918..5aa1b79 100644 --- a/verif_version.pas +++ b/verif_version.pas @@ -23,7 +23,7 @@ var Lance_verif : integer; verifVersion,notificationVersion : boolean; -Const Version='3.81'; // sert à la comparaison de la version publiée +Const Version='3.82'; // sert à la comparaison de la version publiée SousVersion=' '; // en cas d'absence de sous version mettre un espace implementation diff --git a/versions.txt b/versions.txt index ac8786e..efb04af 100644 --- a/versions.txt +++ b/versions.txt @@ -89,8 +89,8 @@ version 3.8 : Possibilit Gestion des fonctions F de train de F0 à F28 en mode autonome. version 3.81 : Pilotage des TJD depuis le TCO. Améliorations diverses dans le TCO. - - +version 3.82 : Application d'un train destinataire pour les actionneurs de fonctions F. +