Hallo alle,
es geht weiter, zwar nicht mit neuem Code, sondern mit den Testergebnissen des bestehenden.
Getestet habe ich mit einem modifizierten dtcltiny als srcp-Client.
MM1 und MM2 sehen mit der Analysesoftware ordentlich aus, und die entsprechend angesteuerten Loks arbeiten korrekt.
DCC ist laut Analysesoftware OK, ein etwas angestaubter LoPi1 im Prüfstand lässt sich steuern.
Programmierung im Hauptgleismodus sieht laut Analyse im Bytemodus (Schreiben 0x22 ins CV 32) so aus:
1
2
3
4
5
6
7
8
9
10
2142 ms: DCC Pr.15, Daten: c0 1e 80 5e(OK) L 30 FG1:0
2154 ms: DCC Pr.51, Daten: c0 1e a0 7e(OK) L 30 FG2B:0
* 2163 ms: DCC Pr.15, Daten: 1e ec 1f 22 cf(OK) K 30 POM CV = 32, WRI 22
2173 ms: DCC Pr.15, Daten: ff 00 ff(OK) *IDLE*
* 2185 ms: DCC Pr.15, Daten: 1e ec 1f 22 cf(OK) K 30 POM CV = 32, WRI 22
2195 ms: MFX A07:5 Ping an Decoder 0x1E240 +0011+
2222 ms: MFX A07:0 Such mit 0 Bits von Id-Maske 0x0 +0011+
2249 ms: DCC Pr.15, Daten: 01 40 41(OK) K 1 S+D:R 0
und hier noch der Bitmodus (Setzen von Bit 3 im CV 29):
1
2
3
4
5
6
7
8
9
2382 ms: DCC Pr.15, Daten: c0 1e 80 5e(OK) L 30 FG1:0
2394 ms: DCC Pr.51, Daten: c0 1e a0 7e(OK) L 30 FG2B:0
* 2403 ms: DCC Pr.15, Daten: 1e e8 1c fb 11(OK) K 30 POM CV = 29, BIT 3 WRI 1
2414 ms: DCC Pr.15, Daten: ff 00 ff(OK) *IDLE*
* 2420 ms: DCC Pr.15, Daten: 1e e8 1c fb 11(OK) K 30 POM CV = 29, BIT 3 WRI 1
2430 ms: DCC Pr.15, Daten: 01 40 41(OK) K 1 S+D:R 0
2438 ms: DCC Pr.15, Daten: ff 00 ff(OK) *IDLE*
Probleme bereitet dagegen der Programmiergleismodus, der zwar im Protokoll definiert ist, aber z.B. eine Auswertung zum Ansteuern eines Umschalters noch nie im srcpd realisiert war. Zusätzlich ist die Paketerzeugung für die Untermodi im basrcpd noch nicht von UART auf SPI umgestellt.
Die Parameterprüfung könnte auch noch besser sein, so führt z.B. ein BIT auf 7 zu setzen zu einem OK, ebenso das 9te von 8 zu modifizieren!
mfx ist ewas aufwändiger zu testen, da es normalerweise von srcp-Clients nicht unterstützt wird, und die Anmelde-HW für das Projekt noch nicht definiert ist.
Hier die Adresszuweisung (5) für einen mfx-Decoder:
1
2
3
4
5
6
7
8
9
10
11
12
13
3812 ms: DCC Pr.15, Daten: 01 40 41(OK) K 1 S+D:R 0
3821 ms: MFX A07:5 V3:0 F16:0
3828 ms: MFX A07:5 V3:0 F16:0
3839 ms: MM1 A= 60, F=0, D= 0 <REP> <REP> <REP>
3867 ms: MFX A07:5 Ping an Decoder 0x1E240 +0011+
* 3894 ms: MFX A07:0 Neue Adresse 5 fuer Decoder mit Id 0x1E240
* 3903 ms: MFX A07:0 Neue Adresse 5 fuer Decoder mit Id 0x1E240
3913 ms: MFX A07:0 Such mit 0 Bits von Id-Maske 0x0 +0011+
3944 ms: MM2 A= 16, F=0, D= 0, X=13 R <REP>
3958 ms: MM2 A= 16, F=0, D= 0, X= 4 F2 aus <REP>
3972 ms: DCC Pr.15, Daten: c0 1e 40 9e(OK) L 30 S+D:R 0
und noch die Fahrbefehle an ihn:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1838 ms: DCC Pr.15, Daten: 01 40 41(OK) K 1 S+D:R 0
1854 ms: MM1 A= 60, F=0, D= 0 <REP> <REP> <REP>
* 1882 ms: MFX A07:5 V7:3 F16:0
* 1890 ms: MFX A07:5 V7:3 F16:0
1898 ms: MFX A07:5 Ping an Decoder 0x1E240 +0011+
1924 ms: MFX A07:0 Such mit 0 Bits von Id-Maske 0x0 +0011+
* 1952 ms: MFX A07:5 V7:3 F16:0
* 1960 ms: MFX A07:5 V7:3 F16:0
* 1968 ms: MFX A07:5 V7:4 F16:0
* 1975 ms: MFX A07:5 V7:4 F16:0
1986 ms: MM2 A= 16, F=0, D= 0, X=13 R <REP>
2000 ms: MM2 A= 16, F=0, D= 0, X= 3 F1 aus <REP>
2014 ms: DCC Pr.15, Daten: c0 1e 40 9e(OK) L 30 S+D:R 0
Ob das periodische Wiederholen der Adresszuweisung alle 11s durch den Server sinnvoll ist? Im Decoder kann das je nach Speichertechnologie und Intelligenz der Speicherroutine auch zu schneller Zellalterung führen.
Gruß
Rainer