Java Central Station

Gebruikersavatar
reinder
Berichten: 26
Lid geworden op: 02 jan 2023, 23:24
Locatie: Leeuwarden
Contacteer:

Bericht door reinder »

Mooie progressie @fransja!

Mooie verzameling seinen ook al!, stuur je die ook al aan qua seinbeeld op basis van wat achter het sein ligt?
Dat is met sommige seinen best een uitdaging, in elk land werkt het weer net een beetje anders.

Leuk om te zien dat je een andere teken strategie gebruikt, In Traintastic teken ik juist elke keer opnieuw. (Niet het hele bord overigens, alleen het deel dat invalid is. Moet nodig eens testen hoe goed dat performt op een RPi 4.

Heb je ook een "dubbele" bocht tegel? Bij dubbel spoor bocht kan dat handig zijn, anders liggen de sporen zo ver uit elkaar.

Zijn de blokken altijd 3 tegels lang, of kun je ze ook groter maken?

Of het een beter idee is weet ik niet, in Traintastic gebruik ik A en B, waarbij A = West for horizontal blocks, South for vertical blocks en B = East for horizontal blocks, North for vertical blocks..

Leuk dat je ook DCC-EX gaat ondersteunen, ben benieuwd naar je vorderingen.

Reinder

fransja
Berichten: 14
Lid geworden op: 03 sep 2023, 11:27
Locatie: Alblasserdam

Bericht door fransja »

Hallo,
Het is alweer enige tijd geleden dat ik iets heb geplaatst op het forum, bij deze een update van JCS.

Afgelopen weken veel tijd besteed aan de ondersteuning van DCC-EX. Als eerste natuurlijk het Dcc-Ex command station (centrale) gemaakt, en dit aan een proef spoortje aangesloten. Vervolgens een beetje gespeeld met wat op de markt zijnde Throttles op de telefoon om via het netwerk en seriële poort de centrale te bedienen en zo te leren hoe het e.e.a. werkt.

De verschillen in het protocol met wat ik tot nu toe gemaakt heb, (Marklin CAN protocol) zijn enorm, kortom ik moest het een en ander refactoren (herorganiseren).
Als eerste een scherm gemaakt zodat je verschillende centrales kan kiezen.
commandStationScreen.png
commandStationScreen.png (70.37 KiB) 356 keer bekeken

Vervolgens ben ik begonnen met de netwerk implementatie van het DCC-EX protocol.
Het DCC protocol werkt volledig asynchroon. Dit betekend dat als je een bericht (command) stuurt naar de centrale dit "fire en forget" is.
Dit in tegenstelling met het Marklin CAN protocol die op elk commando direct response terug geeft.

DCC-EX geeft uiteindelijk wel een response maar de volgorde waarin en wanneer zijn volgens de maker niet gegarandeerd.
DCC-EX protocol geeft altijd een "echo" van ieder commando als response, dus ook als er via een andere Throttle (client) iets wordt gestuurd, wordt dit naar iedere aangesloten client gestuurd.
Dit is een handige eigenschap. Dit doet bv de Marklin CS 2/3 ook en alle schermen in JCS reageren daar dan dus op.

Enfin vanavond had ik dus het eerste moment dat ik via JCS een locomotief kon laten rijden via de DCC-EX centrale :)
connectToDccEx.png
connectToDccEx.png (179.31 KiB) 356 keer bekeken
JCS kan verbinden met de DCC-EX centrale en kan nu commando's sturen om een loc te bedienen, maar JCS zie ook als er via een andere Throttle een locomotief wordt bediend. Zowel de snelheid, de richting als de functies.

Kortom het eerste begin is er pfff.

Natuurlijk is er nog genoeg te doen:
  • Bedienen via seriële poort
  • Melders
  • Wissels / seinen
  • Metingen
  • Invoeren van Locomotieven en plaatjes
  • Invoeren van Wissels en seinen
  • ...
kortom ik ben nog wel even bezig ;)

Groeten,
Frans
Bouwer van JCS

fransja
Berichten: 14
Lid geworden op: 03 sep 2023, 11:27
Locatie: Alblasserdam

Bericht door fransja »

Marklin Bug...

Hallo allemaal,


Recentelijk heb ik mijn Mobile station WLAN mogen ontvangen en deze geconfigureerd en aangesloten op mijn CS 3.
Nadat de locomotieven zijn geladen kun je deze nu draadloos besturen.
Wat ik zelf een enorm handig ding vindt is de "paddestoel" (geen idee hoe dat heet) achterop, zodat je hem in 1 hand kan houden en besturen.

Een paar weken geleden schreef ik over het op halen van de functie bij de CS 2 en 3 en de verschillen.
En wat scherts mijn verbazing bij het selecteren van de 37298, 1102 RRF G2000 in de MS WLAN geen functies! (of althans maar 4 van de 20).

De 1102 RRF G2000 functies in de CS 3
IMG_5406.jpeg
IMG_5406.jpeg (1015.56 KiB) 335 keer bekeken
Functies 0-7 in de MS WLAN. Alleen dus F7
IMG_5404.jpeg
IMG_5404.jpeg (168.38 KiB) 335 keer bekeken
Functies 8-15 in de MS WLAN. Alleen F10, F13 en F14
IMG_5405.jpeg
IMG_5405.jpeg (171.25 KiB) 335 keer bekeken
Kortom de MS WLAN gebruikt kennelijk op de achtergrond ook de "lokomotives.cs2" file en heeft dus "last" van deze bug.
Geen idee waar je dit bij Marklin kan melden, maar het is ieder geval curieus....

Groeten,

Frans
Bouwer van JCS

fransja
Berichten: 14
Lid geworden op: 03 sep 2023, 11:27
Locatie: Alblasserdam

Bericht door fransja »

Hallo,

Alweer enkele weken geleden dat ik iets het gepost, soms gaat de tijd vreselijk snel (...).
Alle lezers/volges ieder geval dank voor de reacties die ik zo af en toe krijg :)

Ik had het DCC-EX stuk voor het "Command en Control" stuk min of meer ingebouwd, maar bleef ik het idee houden dat het niet helemaal goed zat.
Natuurlijk, de individuele commando's werkten, maar de hele integratie voelde toch niet goed.
Kortom ik loop met het idee in het achterhoofd dat ik in JCS misschien ook andere centrales wil kunnen ondersteunen (al moet ik daar dan wel de beschikking over hebben).

Ik het het tot nu toe alles gebouwd gebaseerd op een Marklin CS-3 dat een redelijk uitgebreide functie set heeft. Bij de implementatie DCC-EX kwam ik er achter dat die welles waar de hoofd zaken kan, maar bv specifieke dingen als het kunnen downloaden van een lok plaatje oid vanuit de centrale niet ondersteund.

Ik ben een rond gaan kijken om het ontwerp te voorzien van een "centrale HAL" (Hardware Abstraction Layer) m.a.w. een laag die op functioneel iedere centrale zou kunnen zijn.
Ik kom tot nu toe op de volgende functionaliteiten (na enig rond kijken):

Verbinding met de centrale, serieel, via netwerk etc
Command en Control, aansturen van locomotieven en accessoires (met verschillende protocollen denk aan MM,DCC,MFX, SX etc).
Feedback, het kunnen uitlezen van sensoren (melders) via een of andere bus (S88, loconet etc.).
Opvragen van de in de centrale bekende locomotieven (roster?)
Opvragen van de in de centrale bekende accessoires (Wissels, seinen)
Opvragen van de locomotief afbeeldingen
Opvragen van de locomotief functies en afbeeldingen
Manueel kunnen opvoeren van locomotieven met evt plaatje
Manueel kunnen opvoeren van locomotief functies met evt plaatje
Manueel kunnen opvoeren van accessoires (wissels en seinen)
Manueel kunnen opvoeren van melders


Zie ik nog iets over het hoofd?

Ik ben ieder geval met een prototype begonnen van een Centrale keuze scherm die toont welke functionaliteiten een centrale heeft zodat de software weet of iets kan of niet kan.
commandStationScreen.png
commandStationScreen.png (58.5 KiB) 311 keer bekeken
Enfin dus een stapje terug om het uiteindelijk beter te krijgen.

Groet,

Frans
Bouwer van JCS

Gebruikersavatar
reinder
Berichten: 26
Lid geworden op: 02 jan 2023, 23:24
Locatie: Leeuwarden
Contacteer:

Bericht door reinder »

Hi @fransja ,

Ja, zn HAL is wel must zodra je meerdere centrales gaat ondersteunen. Ik heb het in Traintastic opgelost door elk protocol/systeem een aantal controllers te geven.

Een Interface (=brug tussen hardware en traintastic) ondersteund een of meerdere Controllers:
- DecoderController - Aansturen van locomotieven
- InputController - Uitlezen van melders
- OutputController - Aansturen van uitgangen/accessory decoders
- IdentificationController - Uitlezen van identificatie sensoren, b.v. RailCOM of LISSY IR.

Die identificatie mist denk ik nog in je lijstje, ik weet niet of Marklin daar een systeem voor heeft, DCC-EX niet iig. LocoNet en ECoS iig wel :)

In mijne mist een generieke manier om lok info op te halen, de ECoS en Marklin CS kunnen dat, dat is nu in Traintastic nog niet echt generiek. Dat zou eigenlijk wel moeten #goedidee

Elke Interface heeft ook een of meerdere IOHandlers, een IOHandler regelt de Seriele of Netwerk communicatie, zodat de rest van de software niet meer hoeft te weten of het nu serieel of netwerk is :)

Dit is overigens versie 2 van Traintastic's HAL, met de eerste versie liep ik vast op wat beperkingen. Zodra je meer hardware gaat ondersteunen kom je er al snel achter dat er toch wel wat verschillen zitten tussen de systemen. Traintastic ondersteund nu 9 soorten: DCC-EX, HSI-88, LocoNet, XpressNet, ECoS, Marklin CS 2/3, Z21, Traintastic DIY en ben bezig met Selectrix.

Reinder

fransja
Berichten: 14
Lid geworden op: 03 sep 2023, 11:27
Locatie: Alblasserdam

Bericht door fransja »

Het is alweer enkele weken geleden dat ik melde dat ik terug naar de tekentafel moest met het ontwerp van JCS.
Het bleek dat ik de programmatuur teveel op de CSen van Marklin had gebaseerd en dat het toevoegen van de, relatief eenvoudige, DCC-EX centrale toch lastiger was dan gedacht.

Dus heb ik de stoute schoenen aangetrokken on het ontwerp zodanig te wijzigen dat het mogelijk is om in de toekomst andere hardware toe te voegen (zou zelf graag een naar de ESU ECOS kijken, maar die heb ik helaas niet, maar als ik er een kan lenen voor een tijdje hou ik me aanbevolen :) ).

Daarvoor heb ik nu een zogenaamde Hardware Abstraction Layer gemaakt in JCS.
Ik heb een "hardware centrale" in de volgende (min of meer) losse delen (functionaliteiten) opgeknipt:
  • [li]Decoder controller; de hardware die het digitale signaal op de rails zet. hier zitten bv de de functies om de locomotieven te besturen. Hier kan er maar 1 van zijn.[/li]
    [li]Accessoire controller; kan accessoires schakelen, denk hierbij aan wissels, seinen, verlichting, etc. Er kunnen er meer dan 1 zijn.[/li]
    [li]Feedback controller; "luistert" naar terugmeldingen, er kunnen er meer dan 1 van zijn.[/li]
@reinder de Identificatie controller heb ik nog even op de "back burner" staan daar ik geen Esos of loco net apparatuur heb om het überhaupt te kunnen testen, maar is wel een zeer valide optie.

Het kan natuurlijk zo zijn dat de aangesloten centrale al deze 3 controllers functioneel implementeert, maar dat hoeft dus niet.

Een centrale kan worden aangesloten via een seriale (USB) of een netwerk verbinding.
Dan kan een controller nog speciale "capaciteiten" ondersteunen, denk hierbij aan bv het downloaden van locomotief afbeeldingen synchroniseren van accessoires, stroom metingen van de rails, etc.

Kortom dit alles kan worden ingesteld op een configuratie scherm van de ondersteunde centrales (nu Marklin CS en DCC-EX).
CommandStationDialog.png
CommandStationDialog.png (81.52 KiB) 229 keer bekeken
Omdat er nu ook centrales kunnen worden gebruikt waar uit je niet de locomotieven en accessoires uit kan importeren moest ik daar dus nieuwe invoer schermen voor maken zodat je dus locomotieven kan importeren uit de centrale of manueel kan invoeren.
LocomotivePrefsMarklin.png
LocomotivePrefsMarklin.png (83.86 KiB) 229 keer bekeken
Dit ook gemaakt voor de accessoires.
AccessoryPrefs.png
AccessoryPrefs.png (67.24 KiB) 229 keer bekeken
Ik had al een zg driver cab of throttle scherm gemaakt (zie vorige post) hier is nu ook een accessoire keyboard aan toegevoegd.
AccessoryKeyboard.png
AccessoryKeyboard.png (38.8 KiB) 229 keer bekeken
Kortom gestage vorderingen, ben nu bezig met het terug meld gedeelte.
Voor de DCC-EX centrale moet ik nog uitzoeken hoe ik dit precies hardware-matig ga aanpakken met bv een S88 ingang.
Voor de CS-2 werkt het al min of meer, voor de CS3 moet ik sinds de update naar software versie 2.5.1 het e.e.a. uitzoeken (lees reverse engineeren) daar die niet meer werkt zoals in de documentatie staat.

Groet,
Frans
Bouwer van JCS

fransja
Berichten: 14
Lid geworden op: 03 sep 2023, 11:27
Locatie: Alblasserdam

Bericht door fransja »

Hallo,

Afgelopen weken verder gewerkt aan mijn software project, of toch niet. Ik kom nu in een stadium dat ik "echt" locomotieven kan laten rijden van uit de software. Echter het is nog niet zover dat ik dat op m'n baan kan doen, vandaar dat ik ben begonnen met de constructie van een test baantje. Hiervoor diep in de berging gedoken om eea aan oude M rails op te halen.
testbaan.png
testbaan.png (26.55 KiB) 157 keer bekeken
Voor de besturing wordt de DCC-EX gebruikt, maar omdat ik ook terugmelders nodig heb en dat, in eerste instantie, het lieft op S88 basis wilde doen, die ik nog had liggen ;).
Heb ik, geïnspireerd door het filmpje van @AlbertG, een HSI-S88 gemaakt.
hsi-s88.png
hsi-s88.png (695.23 KiB) 157 keer bekeken
DCC-EX
dcc-ex.png
dcc-ex.png (464.07 KiB) 157 keer bekeken
Komende tijd het HSI 88 protocol toevoegen aan JCS, dat nu "soepeler" moet gaan daar er een HAL is, dus gelijk een goede test ;).

Testbaantje opgebouwd, en opgepoetst(!) zie hier de test opstelling.
testbaanproto_l.png
testbaanproto_l.png (765.36 KiB) 157 keer bekeken
Het moet nog op een plank worden geschroefd en de bedrading natuurlijk een beetje netter, maar het eea werkt nu.
Ik kan met 2 kleine locomotieven heen en weer rijden :)

De (code) vorderingen zijn te volgen op github, maar kan niet beloven dat het altijd werkt ;)

Groet,

Frans
Bijlagen
testbaanproto_r.png
testbaanproto_r.png (789.24 KiB) 157 keer bekeken
Bouwer van JCS

Momfer
Berichten: 105
Lid geworden op: 10 sep 2021, 21:36
Locatie: Zwolle

Bericht door Momfer »

Mooie stappen! Ik blijf het volgen :)
Groet,
Rico (momfer)

Centrale: DCC-Ex
Besturing: EXRAIL | Traintastic | RocRail | Engine Driver | DecoderPro
Rails: Minitrix / Fleischmann Piccolo
En hier vind je de bouw van mijn kerstbaan

Marcel
Berichten: 56
Lid geworden op: 03 aug 2021, 19:48

Bericht door Marcel »

Van mij krijg je een 👍 vind het geweldig dat je dit kan.
Groeten Marcel V

fransja
Berichten: 14
Lid geworden op: 03 sep 2023, 11:27
Locatie: Alblasserdam

Bericht door fransja »

Testers gezocht!
Met gepaste trots ben ik eindelijk zover gekomen dat ik denk dat het project min of meer bruikbaar is.
Zeker als een Throttle voor DCC-EX.

Wat kan er nu mee:
  • Throttle voor DCC-EX, via de schermen kun je (DCC) locomotieven besturen.
  • Bedienen Wissels en Seinen.
  • Tekenen en tonen Spoorplan.
  • Tonen van Sensor status en bedienen van Wissels via Spoorplan.

Voor terug meldingen heb je een losse HSI-S88 nodig. JCS ondersteund nog niet de Feedback van DCC-EX centrale zelf.

Ik heb een geprobeerd JCS vanaf de download te configureren op een "schone" windows PC.
Daar kwamen nog wel de nodige foutje mee aan het licht, dus dat was een hele goede test ;)

Uiteindelijk heb ik mijn test baan hierin geconfigureerd.
Ik kan in met 2 locomotieven rijden, de 2 wissels bedienen en 8 sensors zien.

De DCC-EX en de HSI-S88 zijn via de seriele poort verbonden met de computer.
view-sensor-and-turnout-status.png
view-sensor-and-turnout-status.png (76.98 KiB) 95 keer bekeken
Ik denk niet dat alle issues er al uit zijn vandaar dat dit dan ook versie 0.0.1 is.
Jullie hulp met testen en of suggesties worden op prijs gesteld!

De files zijn te hier te downloaden
Er is een zip file voor Windows, Max en Linux.
De source code staat hier.

Ik ben ook begonnen met het maken van documentatie. Dat is een hele klus!
Een begin is hier te vinden.
Let op: Niet alles is al beschreven (...).

Om de software te kunnen draaien is een JDK of JRE versie 21 benodigd, hier is uitgelegd dit gaat.

De eerste stappen met JCS staan hier beschreven.

:important: Letop dit is Werk in Uitvoering dus voortschrijdend inzicht kan van toepassing zijn :)

Voor mensen met een Github account [kun je me gelijk een Star geven ;)] kan je hier issues maken.

Voor degenen die willen testen alvast bedankt!

Groet,

Frans
Bouwer van JCS

Plaats reactie

Terug naar “Zelfbouw software”