BeneluxSpoor.net forum
Wat zijn we aan het bouwen? => Al het andere! => Topic gestart door: fransja op 28 September 2024, 14:22:57
-
Hallo,
Middels deze wil ik wat vertellen over een project waar ik al een aantal jaren mee bezig ben, "Java Central Station".
Een open-source software project om een besturings- programma te maken.
Waarschijnlijk zul je je nu afvragen waarom? Want er zijn al diverse systemen op de markt.
De enige reden is: "for the fun" !
En natuurlijk om te leren en te inspireren.
Ik zie op dit forum diverse technische onderwerpen voorbij komen, dus bijdeze mijn bijdrage ;).
Ik heb nog even getwijfeld of het onder "Digitaal" moest komen, maar om dat het toch grotendeels "bouwen" is maar in deze rubriek.
Bij de "buren" heb ik een draadje (https://forum.3rail.nl/index.php?topic=92602.0) waar ik de vorderingen van dit project bespreek. reden dat ik ooit bij de "buren" (https://forum.3rail.nl/index.php?topic=92602.0) begonnen ben was is om dat ik zelf met Marklin rijdt.
Besturings- software is "rij systeem" en schaal onafhankelijk, vandaar dat ik nu ook op dit forum iets plaats.
Andere reden is dat ik, zelf denk, dat de Software nu in een zodanige staat is gekomen dat ik op zoek ben naar mensen die dit eens zouden willen uitproberen (testen), zodat ik daar weer van kan leren en het kan verbeteren ;).
JCS (https://github.com/fransjacobs/model-railway) is een project in de programmeertaal Java. Het is ooit een begonnen omdat ik het wilde uitzoeken of ik met een Marklin Central Station zou kunnen communiceren en wat daar dan voor nodig is.
Dit is uiteindelijk een beetje uit de hand gelopen ;)
Wat ik ik to nu toe gemaakt:
- Support voor Marklin CS 2/3
- Support voor DCC-EX
- Support voor HSI-S88
- Invoer Scherm voor layout
- Throttle Scherm om met locomotive manueel te rijden
- Monitor scherm om gemakkelijk uit te zoeken welke melder(s) er geactiveerd worden
- Keyboard scherm om accessoires direct aan testuren
- Automatisch vinden van rijwegen van Blok naar Blok
- Weer geven van de status van locomotieven en accessoires, ook als deze op de centrale worden bedient
- ...
Vervolgens ben ik gefascineerd geraakt over hoe je een (schematische) plattegrond van een baan omgezet kan worden in rijwegen waar treinen automatisch kunnen rijden. Dus heb een scherm gemaakt waarin je de plattegrond van de baan kan tekenen en vervolgen algoritmes gemaakt, zodat de plattegrond, automatisch, wordt omgezet in rijwegen. Het moge duidelijk zijn dat dit een hele zoek tocht was en nog steeds is :)
Inmiddels ben ik aangeland bij de 2e release van JCS (https://github.com/fransjacobs/model-railway) Versie 0.0.2 (https://github.com/fransjacobs/model-railway/releases/tag/V0.0.2) Deze versie kan rudimentair automatisch rijden.
Ik heb veel getest op mijn test layout.
(https://images.beneluxspoor.net/bnls_2024/TestLayoutSideBySide-66f7f5e79ab98.png) (https://images.beneluxspoor.net/bnls_2024/TestLayoutSideBySide-66f7f5e79ab98.png)
En inmiddels kan ik nu ook m'n eigen baan laten rijden. Weliswaar nog niet met allerlei speciale features als speciale routes en toestemmingen, dienstregelingen, enz. Maar dat het nu rijdt met 4 treinen geeft al erg veel voldoening.
Natuurlijk is het nog niet af, en ook nog niet zo geavanceerd als de verkrijgbare programma's, maar je leert er wel veel van en je kan zelf zien hoe het is gemaakt, zie https://github.com/fransjacobs/model-railway (https://github.com/fransjacobs/model-railway)
Dus als je na het lezen van dit verhaal het eens zou willen proberen graag.
Ik heb wat documentatie gemaakt in het Nederlands:
- Setup Guide voor JCS (https://github.com/fransjacobs/model-railway/blob/master/JCS_SETUP_NL.md)
- Rijden met JCS (https://github.com/fransjacobs/model-railway/blob/master/DRIVING_NL.md)
De software is te downloaden (https://github.com/fransjacobs/model-railway/releases/tag/V0.0.2) voor Windows, Linux, Mac OS en als universele jar file.
Zelf bouwen kan en mag natuurlijk ook zie https://github.com/fransjacobs/model-railway/blob/master/BUILDING.md (https://github.com/fransjacobs/model-railway/blob/master/BUILDING.md).
Als je een github account hebt en je vindt dit leuk mag je me altijd een ster geven ;)
Volgende stap is (naast het fixen van bugs) is het toevoegen van support voor de ESU Ecos, ben sinds kort in het bezit gekomen van een 2e hands Ecos 50000 voor dit doel.
Groet,
Frans
-
Ik begon te lezen en dacht; Java! Indonesië! Helaas had ik het mis ;D ;)
Interessant project, succes (y)
-
Hallo,
Het is alweer enige tijd geleden dat ik iets heb gepost over mijn JCS project.
In mij laatste post had ik al vermeld dat ik in het bezit ben gekomen van een ESU EoS 50000. Ik ben nu bezig met het implementeren van het protocol. Ik heb inmiddels verbinding met de ECoS.
Daar deze ECoS (inmiddels) 2 strepen in het scherm heeft (als iemand weet waar ik een vervangend scherm zou kunnen krijgen, graag).
(https://images.beneluxspoor.net/bnls_2024/Ecos50000-673640b3d296e.png) (https://images.beneluxspoor.net/bnls_2024/Ecos50000-673640b3d296e.png)
Ik heb bedacht ik dat het "leuk" zou zijn dat JCS een ingebouwde VNC viewer krijgt (ook handig voor de Marklin CS3) dus ben ik daar mee begonnen en zie hier het eerste resultaat.
(https://images.beneluxspoor.net/bnls_2024/jcs-esu-vnc-viewer-673640e86784d.png) (https://images.beneluxspoor.net/bnls_2024/jcs-esu-vnc-viewer-673640e86784d.png)
Toen ik deze VNC viewer aan het bouwen was en tijdens reverse engineering van het protocol kwam ik er achter dat ESU Ecos MDNS (http://"https://en.wikipedia.org/wiki/Multicast_DNS") ondersteund.
Voor die genen die dit niets zegt, MDNS is een methodiek om apparaten op je netwerk automatisch te vinden. Dus heb ik dit ook ingebouwd. JCS vindt nu de ECoS automatisch, je hoeft het ip-adres niet in te voeren.
Het enige is dat ze in het zelfde netwerk segment moeten zitten, maar dat is bij de meeste thuis netwerken meestal wel het geval.
Wat bleek verder, ook de Marklin CS 3 ondersteund dit :) (al had ik automatisch vinden van het CS-3 ip-adres al op de "Marklin" manier geïmplementeerd).
Het protocol van de ESU is compleet anders als bij Marklin. Heb inmiddels "first light"
(https://images.beneluxspoor.net/bnls_2024/jcs-esu-ecos-first-light-6736417d9249e.png) (https://images.beneluxspoor.net/bnls_2024/jcs-esu-ecos-first-light-6736417d9249e.png)
Ik kan nu het ECoS basis object uitlezen, krijg door hoeveel terugmeld modules er zijn geconfigureerd en krijg nu de terugmeldingen binnen. Kan ook de rail spanning aan en uit zetten en krijg events binnen als de rail spanning op de ECoS zelf wordt in of uitgeschakeld.
Ga nu beginnen aan het Locomotief gedeelte.
Ik moet binnen JCS wel het e.e.a. aanpassen om het ook met de ECoS te laten werken. Helaas blijkt de HAL (http://"https://forum.3rail.nl/index.php?msg=1530728") nog niet abstract genoeg, maar het wordt er dus uiteindelijk alleen maar beter van.
Tot zo ver de vorderingen. Zo als altijd is dit ook te volgen op github (http://"https://github.com/fransjacobs/model-railway/tree/84-add-hardware-support-for-esu-ecos?tab=readme-ov-file").
BTW heb je een github account laat een ster achter ;)
Wordt vervolgd,
Frans
-
Je linkje naar je GitHub-omgeving werkt niet.
Ik denk dat het hier: https://github.com/fransjacobs/model-railway moet zijn?
-
Leuk project.
Vervangend scherm voor de ECoS natuurlijk bij ESU te verkrijgen. Mogelijk kun je ook iets bij 'de Ali expressen' vinden.
-
Dank voor deze correctie ik had het niet gezien maar inderdaad het is https://github.com/fransjacobs/model-railway