Verschillen tussen de CS 2 en 3?Inmiddels weer een stukje je verder gewerkt aan JCS. Ik heb een z.g. "Driver Cab" scherm gemaakt, waarmee je een locomotief kunt besturen. JCS haalt automatisch de locomotieven op uit het Central Station, en download ook automatisch de bijbehorende plaatjes. Een tekortkoming van de meeste besturings-software is dat de functie koppen meestal de aanduiding F0 tm Fx hebben en dat je zelf deze van "iconen" kan en mag voorzien. In JCS heb ik het idee om de zelfde iconen te gebruiken als op de CS worden getoond te gebruiken.
Hoe werkt dat dan?Als eerste de locomotieven. In het
CS-2 protocol staat beschreven dat je met het commando "Anfordern Config Data" met als variabele het woord "loks" via CAN de "lokomotive.cs2" file in gezipte vorm terug krijgt. Dit werkt op zowel de CS2 als 3 en wordt bv door een Mobile Station gebruikt om de lijst op te vragen. Enfin na wat heen en weer proberen is dit gelukt en krijg ik keurig de file (btw je kunt deze file ook via http opvragen op http://<cs ip adres>/config/lokomotive.cs2).
Het formaat van deze file is wat curieus, maar staat redelijk omschreven in de
documentatie, enfin lang verhaal kort ik heb nu een lijst van de locomotieven.
In deze file staat in het veld ".icon" (bv:".icon=RRF 272 001-9") de locomotief afbeelding, die kun je vervolgens downloaden via:
CS2: http://<cs2 ip adres>/icons/<icon naam.png>
CS 3: http://<cs3 ip adres>/app/assets/lok/<icon naam.png>
Zie hier de eerste (kleine) verschillen.
FunctiesIn de "lokomotive.cs2" staan de functies van iedere locomotief gespecificeerd als:
Citeer.funktionen
..nr=0
..typ=1
..wert=1
.funktionen
..nr=1
..typ=4
..wert=0
.......
In bovenstaand voorbeeld zijn dat de functies F0 en F1. Het plaatje of icoon van de functie staat verborgen in de velden "typ" en "wert".
"typ" is de aanduiding van het plaatje en "wert" of de functie aan of uit staat.
Als je dit als volgt "vertaald" dan krijg je de URL van het functie icoon op de CS: "
FktIcon_<
a/
i>_<
ge/
we>_
01.png
a en kleur "ge" als wert is 1 (aktief),
i en kleur "we" als wert=0 (inactief) en 01: typ met 1 voorloop 0 plus ".png".
De URL wordt dan http://<cs ip adres>/fcticons/FktIcon_a_ge_01.png.
en
Dit werkt op zowel de CS2 als CS3 voor de meeste "oudere" locomotieven.
Moment functiesFuncties die als een moment zijn geconfigureerd kun je herkennen door dat de waarde in veld "typ" groter is dan 128 en kleiner dan 150. Het juiste plaatje vindt je door er 128 eerst vanaf te trekken (...)
Maar toenZo dacht ik, het werkt en voor de meeste van mijn locomotieven klopte het, maar toen kreeg ik eindelijk, na 18 maanden op mijn bestelling te hebben gewacht, de 37298, 1102 RRF G2000 binnen, zie
https://forum.3rail.nl/index.php?msg=1517564.
Natuurlijk gelijk aan gemeld op de CS3. De locomotive file opnieuw in JCS ingelezen.
Het locomotief plaatje kwam mee, maar de functies waren een desillusie. Van de 16 waren er maar 4 willekeurig over(...) wat blijkt:
Citeer.funktionen
..nr=0
..wert=1
.funktionen
..nr=1
..wert=0
.funktionen
..nr=2
..wert=0
.funktionen
..nr=3
..wert=0
Er is geen "typ" veld(!) meer. Maar op de CS3 worden gewoon de plaatjes getoond...
Enfin verder gezocht en wat blijkt, de CS3 gebruikt intern een JSON file voor de locomotieven en plaatjes. zie http://<cs3 ip adres>/app/api/loks/
Daar staat (ongedocumenteerd) :
Citeer{
"name": "1102 RRF G2000",
"internname": "1102#20RRF#20G2000",
"uid": "0x4017",
"tachomax": 140,
"symbol": 1,
"dectyp": "mfx+",
"icon": "/usr/local/cs3/lokicons/RRF 272 001-9",
"dir": 0,
"speed": 0,
"recent": 179,
"funktionen": [
{
"nr": 0,
"typ": 0,
"fs": 0,
"typ2": 1,
"dauer": 0,
"state": 1,
"isMoment": false,
"icon": "fkticon_a_001"
},
{
"nr": 1,
"typ": 0,
"fs": 0,
"typ2": 48,
"dauer": 0,
"state": 0,
"isMoment": false,
"icon": "fkticon_i_048"
},.....
Kennelijk zijn er dus velden bij gekomen (type2, dauer, state en isMoment). Dankje wel Marklin.
Uiteindelijk is dit veel beter, daar er nu duidelijk is of het een momentele functie betreft of niet. Het functie icoon verwijst naar een ander JSON bestand op de CS3, waar alle functies als SVG zijn opgeslagen (http://<cs3 ip adres>/images/svgSprites/fcticons.json).
Uiteindelijk dit nu ook toegevoegd in JCS en afhankelijk of er een CS2 of 3 wordt herkend gebruikt JCS de ene of de andere methodiek.
OproepNu ben ik erg benieuwd wat er precies gebeurt als je de lok op een
CS2 aanmeld. Mijn eigen CS2 is de H brug kapot, dus kan geen Locomotieven meer inlezen. Als iemand op dit forum beschikt over een werkende CS2 en toevallig ook de 37298, 1102 RRF G2000, heeft ben ik zeer geïnteresseerd in hoe de lok file er uitziet, met name de functies.
Eind resultaatIs te zien in mijn vorige post
Inmiddels nu ook spulletjes voor het fabriceren van een DCC-EX binnen gekregen, zodat ik support hiervoor kan toevoegen.
Groeten,
Frans