Java Central Station

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

Bericht door fransja »

Hi Reinder,

Dat is inderdaad een leuk idee.
Door jou idee zit ik er nu aan te denken dat ik de virtuele commandos dus ook naar buiten zou kunnen sturen (waardoor JCS een virtueel command station zou kunnen worden)...
Daardoor zou je dus cross technologie kunnen testen (JCS is java en Traintasic is C++) en met verschillende inval hoeken (verschillende auteurs los van elkaar).
Bijvoorbeeld : Ik laat een Traintastic virtuele centrale draaien on de JCS functionaliteit te testen en vice versa.
Ik zie een hoop mogelijkheden ;)

Volgens mij mag dat bij Marklin zonder problemen, maar bij ESU licentie technisch mag het niet om dat je dan voor "server" speelt...

Qua planning komt dit idee wel goed uit daar ik nu na de GUI issues ben begonnen aan de "virtuele CS 3".
Dit omdat ik dat ook al voor de Ecos had gedaan en omdat ik de CS implementatie moet aanpassen aan de gewijzigde HAL.

Welke centrale emuleert die nu?
Ik ondersteun nu CS2/3, ESU Ecos en DCC-EX.

Enfin dat houdt je van de straat :)

Groet,
Frans
Bouwer van JCS

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

Bericht door reinder »

Hi Frans,

De Traintastic simulator emuleert geen centrale, dat doet Traintastic server, dat heb ik er in den beginne direct al ingemaakt.

Het werkt in Traintastic server als volgt, het systeem bestaat grofweg uit drie soorten objecten:
1. De interface, het basis object voor een verbinding met de buiten wereld.
2. Kernel, deze wordt aangemaakt op het moment dat de interface online gaat, hierin wordt het hele protocol afgehandeld op bericht niveau.
3. IOHandler, vertaling van serieel/netwerk etc.naar protocol berichten.

Voor elk systeem: LocoNet/XpressNet/ECoS/Marklin/Z21/DCC-EX etc. is er 1 interface, 1 kernel en 1 of meer IO handlers.
Voor DCC-EX zijn er bijvoorbeeld twee: 1 voor serieel en 1 voor netwerk.

Wat ik in simulatie mode doe is een SimulationIOHandler aan de kernel koppelen, dit is een speciale IO handler die dus het gedrag van een centrale nabootst.

Met de nieuwe Traintastic simulator werkt het als volgt, ik bouw de opstelling hierboven op met zn SimulationIOHandler.
Vanuit de SimulationIOHandler maak ik verbinding (TCP) met Traintastic simulator.
Als er bij de SimulationIOHandler een lok commando binnen komt dat stuur ik een lokcommando naar Traintastic simulator.
Als in Traintastic simulator een trein een sensor triggert dan stuurt die een bericht naar de SimulationIOHandler, die zet dat vervolgens om naar bijvoorbeeld een LocoNet OPC_INPUT_REP, dat gaat naar de LocoNet kernel en dan vervolgt het zn weg door de software.

Hoe kun je hem aan JCS koppelen?
Vanuit je virtuele ECoS maak je verbinding met Traintastic Simulator, op het moment dat je op je virtuele ECoS een lok command binnen krijgt stuur je een bericht naar de simulator.
Als je van de simulator een sensor bericht krijg zet je dat om naar wat JCS wil en dan zou het moeten werken.

Beide Traintastic simulator protocol berichten zijn kleine bineare berichten, zie: https://github.com/traintastic/traintas ... otocol.hpp

Groeten,
Reinder

p.s. hoop dat het beetje duidelijk omschreven is
p.s.2. verwacht dat de work in progess simulator ergens dit weekend in windows installer komt

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

Bericht door reinder »

Hi Frans,

Inmiddels heb ik een Traintastic simulator in de Windows installer zitten, je kan deze vinden op: https://traintastic.org/en-us/download/ ... -simulator

Reinder

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

Bericht door fransja »

Hi Reinder,

Mooi dat het in de installatie zit scheelt weer compileren ;).

Ik ga er mee aan de slag, maar door ziekte van mijn ega zal er wel enige tijd overeen gaan.
Moet dus eerst nog de Marklin implementatie aan de HAL aanpassen en dan ga ik kijken of ik met de Traintastic centrale simulator kan verbinden.
Ik neem aan dat ik het op een Windows "doos" kan draaien en over het netwerk met JCS kan praten, altans dat heb ik nu min of meer in gedachte.

Groet,

Frans
Bouwer van JCS

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

Bericht door reinder »

Hi Frans,

Strekte met de ziekte van je ega! Dat gaat natuurlijk voor.

In de installer ff een vinkje zetten en het zou moeten werken, standaard staat het uit namelijk.
Op het moment luister de simulator alleen op localhost, dat zal ik nog ff instelbaar maken.

Reinder

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

Bericht door fransja »

Hallo,

Het is alweer ruim 6 weken geleden dat ik voor het laatst iets had gepost over de vorderingen met JCS.
Door allerlei (privé) omstandigheden gaat het wat trager, maar er zijn nog steeds vorderingen :) .

Los van mijn privé omstandigheden, ben ik ook begonnen aan groot onderhoud van mijn eigen baan. Ben hier de bekabeling van de sensoren etc aan het vervangen, zodat ik fouten uit het verleden nu elimineer, maar dat de baan straks ook door meerdere centrales bestuurd kan worden (het is nu heel erg Marklin specifiek).

Daardoor kan ik naar de toekomst toe JCS verder ontwikkelen, doordat ik meer mogelijkheden heb dan op m’n testbaan.

Huidige stand van zaken
Druk bezig met het testen van de HAL.
Bij het toevoegen van de USU ECoS bleek dat ik nog (te)veel Marklin CS specifieke code in de HAL had zitten.
Bij het toevoege van de ESU ECoS heb ik die al min of meer verplaats, maar dit moet nog wel allemaal getest worden.
Dit proces is nog steeds gaande. Ook bezig met het zoveel mogelijk automatiseren en toevoegen van testcases.

Bij het testen kwam toen ook naar boven de de GUI nogal traag werd bij gebruik van meer dan 100 tegels, dit probleem lijkt nu eindelijk opgelost (zie vorige post).
De Marklin CS code ben ik, naar aanleiding van de leermomenten die ik bij het toevoegen van de ESU ECoS tegenkwam, aan het herschrijven, refactoren.
Inmiddels is en nu ook een virtuele Marklin connectie mogelijk, maar de Marklin CS heeft net iets andere mogelijkheden als de ESU ECoS.

Ook ben ik begonnen met het implementeren van het gebruik van het toetsenbord bij het editen van de layout en Automatisch gebruik.
Dit waren suggesties van testers / gebruikers en daarom voor mij waardevol.

Door het toevoegen van de toetsenbord functies ben ik ook weer gaan na denken over de layout van de schermen, zodat daar ook een aantal wijzigingen worden gerealiseerd waardoor het geheel en stuk logischer aan het worden is.

Een andere belangrijke wijziging, die toch meer code aanpassingen vraagt dan gedacht, is het reageren op wijziging in de setup.
Denk hier bijvoorbeeld aan het toevoegen van een nieuwe locomotief of Accessoire, het wijzigen of toevoegen van de layout.

Tot nu toe moest je JCS opnieuw starten voordat de wijziging van kracht werd. Dat is straks niet meer nodig.
Verder is er door de DCC-EX gemeenschap een grote update uitgebracht, zodat ik daar ook nog een aantal zaken moet aanpassen.

Ik ben ook aan het onderzoeken of ik JCS kan koppelen met Traintastic, zodat ik gebruik kan maken van de simulator

Enfin zo blijf je bezig ;)

Wordt vervolgt…
Bouwer van JCS

Plaats reactie

Terug naar “Zelfbouw software”