WiThrottleServer
Postat: 2016-05-20, 13:14
Jonas Hjelm, Peter Ekelund och jag träffades i Kil och pratade om WiThrottle och Z21:an. Mobilappen WiThrottle för iPhone och mobilappen Engine Driver för Android använder normalt JMRI för att prata med modelljärnvägen men tyvärr finns det en bugg i JMRI som gör att Z21:an går in i programmeringsmode.
För att kunna använda WiThrottle / Engine Driver på våra träffar tillsammans med Z21 har jag tagit fram ett eget program, WiThrottleServer, som ersätter JMRI. Packa upp bifogad fil i valfritt bibliotek och starta filen WiThrottleServer.jar. Jag har lagt in stöd för LoconetOverTCP och UDP-kommunikation med Z21, och tanken är att även lägga till seriekommunikation (LocoBufferUSB).
Jag har hämtat mycket kod från JMRI och eftersom vi inte vet exakt vad som orsakar buggen mellan JMRI och Z21:an så finns det en liten risk att buggen finns även i mitt program, men i så fall bör vi kunna spåra buggen och åtgärda den.
Programmet är i beta-version med risk för diverse buggar men är testad med LoconetOverTCP till JMRI och Digitrax Zephyr. Jag har även lagt in stöd för Z21 över UDP-protokollet men då jag har ingen egen Z21 så någon annan får testa om jag har fått den delen rätt. Ibland verkar inte programmet starta riktigt av någon anledning så starta om programmet i så fall.
När man har ändrat inställningarna så måste man starta om programmet för att ändringarna ska slå igenom. Gör de ändringar som ska göras och klicka sedan i någon annan ruta i dialogrutan. Ändringar sparas när man lämnar textfältet. Och starta sedan om programmet.
Programmet annonserar inte sin IP-adress så som JMRI gör så man måste mata in IP-adressen manuellt. Men har man väl gjort det en gång så är den kvar så man kan välja den nästa gång.
Om appen Withrottle inte klarar välja ett lok så beror det troligen på att WithrottleServer inte har kontakt med Z21:an. Kontrollera i så fall IP-adressen till Z21:an. UDP-porten ska vara 21105 om jag förstått det hela rätt.
De två lok som kommer upp när man väljer ett nytt lok är för närvarande hårdkodade. Det ska ändras i en senare version.
-------
WiThrottleServer har möjlighet att ge apparna som ansluter en lista på tillgängliga lok och programmet kan hämta denna lista antingen från en fil i samma mapp som programmet, locolist.txt, eller genom att ansluta till en web service som kan leverera en loklista.
Programmet LocoManager är en sådan web service som kan leverera en loklista till WiThrottleServer. Fördelen är att man i LocoManager kan lägga till, ta bort och ändra lok, och WiThrottleServer hämtar en aktuell loklista från web service varje gång en WiThrottle-app ansluter. Men för att appen WiThrottle ska se den uppdaterade loklistan måste appen startas om.
Även LocoManager kan läsa en loklista från medlemssidorna på forumet. Exportera loklistan och spara filen i samma mapp som LocoManager och starta sedan programmet så kommer programmet använda denna lista.
Med vänlig hälsning
Daniel
För att kunna använda WiThrottle / Engine Driver på våra träffar tillsammans med Z21 har jag tagit fram ett eget program, WiThrottleServer, som ersätter JMRI. Packa upp bifogad fil i valfritt bibliotek och starta filen WiThrottleServer.jar. Jag har lagt in stöd för LoconetOverTCP och UDP-kommunikation med Z21, och tanken är att även lägga till seriekommunikation (LocoBufferUSB).
Jag har hämtat mycket kod från JMRI och eftersom vi inte vet exakt vad som orsakar buggen mellan JMRI och Z21:an så finns det en liten risk att buggen finns även i mitt program, men i så fall bör vi kunna spåra buggen och åtgärda den.
Programmet är i beta-version med risk för diverse buggar men är testad med LoconetOverTCP till JMRI och Digitrax Zephyr. Jag har även lagt in stöd för Z21 över UDP-protokollet men då jag har ingen egen Z21 så någon annan får testa om jag har fått den delen rätt. Ibland verkar inte programmet starta riktigt av någon anledning så starta om programmet i så fall.
När man har ändrat inställningarna så måste man starta om programmet för att ändringarna ska slå igenom. Gör de ändringar som ska göras och klicka sedan i någon annan ruta i dialogrutan. Ändringar sparas när man lämnar textfältet. Och starta sedan om programmet.
Programmet annonserar inte sin IP-adress så som JMRI gör så man måste mata in IP-adressen manuellt. Men har man väl gjort det en gång så är den kvar så man kan välja den nästa gång.
Om appen Withrottle inte klarar välja ett lok så beror det troligen på att WithrottleServer inte har kontakt med Z21:an. Kontrollera i så fall IP-adressen till Z21:an. UDP-porten ska vara 21105 om jag förstått det hela rätt.
De två lok som kommer upp när man väljer ett nytt lok är för närvarande hårdkodade. Det ska ändras i en senare version.
-------
WiThrottleServer har möjlighet att ge apparna som ansluter en lista på tillgängliga lok och programmet kan hämta denna lista antingen från en fil i samma mapp som programmet, locolist.txt, eller genom att ansluta till en web service som kan leverera en loklista.
Programmet LocoManager är en sådan web service som kan leverera en loklista till WiThrottleServer. Fördelen är att man i LocoManager kan lägga till, ta bort och ändra lok, och WiThrottleServer hämtar en aktuell loklista från web service varje gång en WiThrottle-app ansluter. Men för att appen WiThrottle ska se den uppdaterade loklistan måste appen startas om.
Även LocoManager kan läsa en loklista från medlemssidorna på forumet. Exportera loklistan och spara filen i samma mapp som LocoManager och starta sedan programmet så kommer programmet använda denna lista.
Med vänlig hälsning
Daniel