Doel:€250.00
Donaties:€88.00

Per saldo:€-162.00

Steun ons nu!

Laatst bijgewerkt
op 03-06-2025

Vacature: secretaris bestuur
Algemeen

De stichting

Recente berichten

Vreemd probleem door schipcas
Vandaag om 12:48:01
De bouw van 'Ommelanden' (H0) door Ronald Halma
Vandaag om 12:43:32
Onlangs gespot - gefotografeerd, de foto's door Besselspoor
Vandaag om 12:37:20
Mijn eerste H0-modeltreinbaan in aanbouw door Wim Vink
Vandaag om 12:35:50
Yet Another Servo Decoder door Eric v C
Vandaag om 12:25:27
Spoor- en tramweg parafernalia door Eelco Storm
Vandaag om 12:16:43
Toon hier je (model)treinfoto's door R1954
Vandaag om 12:04:32
Toon hier je nieuwe (model-) spooraanwinst(en)... door Klaas Zondervan
Vandaag om 12:03:00
Roco 290 digtaliseren door Ronald Halma
Vandaag om 11:46:45
Ronald doet de Fork Challenge! door Ronald Halma
Vandaag om 11:40:26
S88n bus splitsen door Dave.......
Vandaag om 11:27:18
Piko 51916 NS 1100 blauw botsneus door spoorijzer
Vandaag om 11:17:51
Hengelo in 1981-1982, maar dan anders: Kassenberg in N door spoorijzer
Vandaag om 09:55:31
Lima IRM pimpen door 008200
Vandaag om 09:21:16
Piko 2025 door Benelux795
Vandaag om 08:44:21
Roco Plan T door grossraumwagen
Vandaag om 08:33:30
Bahnstrecke 5867 door Jelmer
Vandaag om 08:33:24
Rhätische Bahn in 0m; van Filisur naar Stuls door Jelmer
Vandaag om 08:22:47
365 "Het is weekend foto's" door Wim Vink
Vandaag om 08:15:28
20 jaar BNLS door prutser
Vandaag om 08:08:54
Nederland jaren 50 op basis van mijn roots door spoorijzer
Vandaag om 07:47:50
Omnummeren Piko 2901 (BR 186) door Traxx
08 July 2025, 23:15:21
Sfeer op je modelbaan door sneek
08 July 2025, 23:05:29
Interessante youtube filmpjes voor het BNLS Kanaal? door Longtall203
08 July 2025, 22:11:33
Philotrain 3737 rijeigenschappen verbeteren door Mar-Cas
08 July 2025, 21:48:07
Een nieuw begin door bask185
08 July 2025, 20:38:46
BR-18.6 Schaal-0. door FritsT
08 July 2025, 20:06:47
Br 38 Piko Superen. door Vroeger
08 July 2025, 18:46:10
betreft de YD7001 door Ben
08 July 2025, 18:17:43
Artitec DE2 instellingen in Lokpilot 3 .5 MTC decoder door bellejt
08 July 2025, 17:43:37
  

Auteur Topic: Zelf software schrijven  (gelezen 5626 keer)

1op160

  • Offline Offline
  • Berichten: 355
    • 1op160.nl Modelbaan in schaal N
Zelf software schrijven
« Gepost op: 18 October 2007, 22:37:24 »
Ik zal maar direct met de deur inhuis vallen.  ;D
Mijn idee is om zelf een stukje software te schrijven, in eerste instantie om een beetje te proberen...
Maar vooral omdat ik uiteindelijk wil gaan proberen mijn trein vanaf het internet bestuurbaar te maken.
Ik heb een schaal N modelbaan, aangestuurd door een TwinCenter.

Ik heb al een klein begin gemaakt met mijn programmatje en door vanalles te proberen heb ik ondekt met welk commando ik een trein kan laten rijden en stoppen.
Natuurlijk moet ik ook wissels om kunnen zetten en bezetmelders kunnen uitlezen.
Hier heb ik alle de commandos nog voor nodig.
Deze kan ik nergens op internet vinden.
Ik hoop dat er mensen zijn die dit lezen en mij een stukje opweg kunnen helpen.

Ik hoop niet dat er mensen gaan zeggen... waarom zou je dat doen er bestaat al genoeg software...
Dat weet ik... maar ik wil het toch doen omdat ik dat wil  :) er zijn immers ook mensen die zelf boompjes maken terwijl je die ook zo kan kopen bijvoorbeeld.

Als voorbeeld zal ik de code geven die ik nu gebruik om een treintje te laten rijden zodat jullie kunnen zien hoe deze commando's omgebouwd zijn.
In dit geval het commando (hexadecimaal) om loc 1 met licht aan te laten rijden: 80-01-00-4C-F0

80 (weet eigenlijk niet waarom dit ervoor moet staan)
01 (loc adres)
00 (??)
4C (snelheid)
F0 (licht aan)

Dus... kan iemand mij verder helpen met een uitleg over de opbouw van de commando's en of de commando's voor wissels en bezetmelders ?

Alvast heel erg bedankt,

Michel
https://www.1op160.nl - Modelbaan in schaal N
https://www.youtube.com/@1op160/videos - YouTube kanaal
https://cults3d.com/en/users/1op160/3d-models - Cults 3D - 3D print modellen

Matthijs van Heijningen

  • Offline Offline
  • Berichten: 2405
Re: Zelf software schrijven
« Reactie #1 Gepost op: 18 October 2007, 22:49:10 »
Welke programmeertaal gebruik je???

Mij lijkt het ook leuk om zo iets te maken  ;D

mvg,

Matthijs

RoSoft

  • Offline Offline
  • Berichten: 1446
  • Alleen de waarheid ligt in het midden.
Re: Zelf software schrijven
« Reactie #2 Gepost op: 18 October 2007, 22:53:54 »
http://www.uhlenbrock.de/3/0/5/I2E62369-002.apd/P50X.zip

Hierin staat alles wat je nodig hebt.

Mvg
Wim.

PS hier nog een simpel voorbeeld in Visual Basic 6.0
http://people.zeelandnet.nl/rosoft/ProSimpleIB.zip
« Laatst bewerkt op: 18 October 2007, 23:04:22 door Wim Ros »
Marklin Digital 6020/21/27, 6051, Märklin 6021+UHL 63820, Lenz Digital Plus, Intellibox LocoBuffer II, MRDirect, DDW 6604 Booster, VB6.0 Delphi 6.0 Eigen Software: Perrongeluk, RoSoft, PT.

Dave van der Locht

  • Offline Offline
  • Berichten: 1064
Re: Zelf software schrijven
« Reactie #3 Gepost op: 18 October 2007, 23:04:01 »
Zelf ben ik ook met een dergelijk experiment / tijdverdrijf  ;) bezig geweest. Echter op basis van een ander besturingsprincipe en protocol (DDL en SRCP).

En ik ben ook wel benieuwd in welke taal je dit gaat uitvoeren. Zelf heb ik een tijd terug hiermee (met succes) geëxperimenteerd in PHP, maar nog niet voortgezet omdat de uiteindelijke baan nog gebouwd moest worden. Ik had toen enkel een test-ovaaltje.  ;)

Mocht je weinig ervaring hebben met programmeren, dan is PHP wel een ideale taal om te leren. Je kunt er enorm veel mee doen en is redelijk eenvoudig te leren. Zelf ben ik zowel hobby-matig als beroepsmatig regelmatig met deze taal in de weer (en de grote broer waar PHP van is afgeleid). Voor het bouwen van web-applicaties is dit gewoon ideaal.

Groetjes,
Dave
« Laatst bewerkt op: 18 October 2007, 23:08:23 door Dave van der Locht. Reden: Linkje verwijderd, Wim was me voor :-) »
Beter een gat in een trein, dan een trein in je gat.

Karst Drenth

  • Offline Offline
  • Berichten: 10474
  • NS blauw, groen, rood, bruin, grijs en standgroen
    • Plan U op Sleutelspoor
Re: Zelf software schrijven
« Reactie #4 Gepost op: 18 October 2007, 23:07:57 »
Hoi Michel,

Mocht je al iets kunnen op het gebied van Java, .jsp pagina's bij voorbeeld, dan is JMRI mogelijk iets voor je.

En idd, gewoon omdat het leuk is ;)

Grtzz en suc6,

Karst

RoSoft

  • Offline Offline
  • Berichten: 1446
  • Alleen de waarheid ligt in het midden.
Re: Zelf software schrijven
« Reactie #5 Gepost op: 18 October 2007, 23:30:14 »
En als je echt het uiterste uit je Twin-Center wil hebben gebruik dan het LocoNet http://www.digitrax.com/ftp/loconetpersonaledition.pdf

Mvg
Wim.
Marklin Digital 6020/21/27, 6051, Märklin 6021+UHL 63820, Lenz Digital Plus, Intellibox LocoBuffer II, MRDirect, DDW 6604 Booster, VB6.0 Delphi 6.0 Eigen Software: Perrongeluk, RoSoft, PT.

1op160

  • Offline Offline
  • Berichten: 355
    • 1op160.nl Modelbaan in schaal N
Re: Zelf software schrijven
« Reactie #6 Gepost op: 18 October 2007, 23:38:27 »
Bedank voor de snelle reacties...
Meer tips zijn natuurlijk altijd welkom.
Ik ga in elk geval alvast kijken hoever ik hier mee kom.
Voor de mensen die wilde weten in welke taal ik programmeer... C#

Nogmaals bedankt,

Michel
https://www.1op160.nl - Modelbaan in schaal N
https://www.youtube.com/@1op160/videos - YouTube kanaal
https://cults3d.com/en/users/1op160/3d-models - Cults 3D - 3D print modellen

Karst Drenth

  • Offline Offline
  • Berichten: 10474
  • NS blauw, groen, rood, bruin, grijs en standgroen
    • Plan U op Sleutelspoor
Re: Zelf software schrijven
« Reactie #7 Gepost op: 18 October 2007, 23:41:52 »
Citaat van: Michel
...in welke taal ik programmeer... C# ...

Heel goede keus  :P alleen jammer dat er nog niet veel 'treinsoftware' in is geschreven...

Grtzz,

Karst

Matthijs van Heijningen

  • Offline Offline
  • Berichten: 2405
Re: Zelf software schrijven
« Reactie #8 Gepost op: 18 October 2007, 23:44:43 »
Op de hogeschool in utrecht waar ik op zit heb ik nu ook een blok met wat programmeren, alleen kwa programma lopen ze wel wat achter. Wordt nog Delphi 2 gebruikt.

mvg,

Matthijs

1op160

  • Offline Offline
  • Berichten: 355
    • 1op160.nl Modelbaan in schaal N
Re: Zelf software schrijven
« Reactie #9 Gepost op: 18 October 2007, 23:49:34 »
In dit geval het commando (hexadecimaal) om loc 1 met licht aan te laten rijden: 80-01-00-4C-F0

80 (weet eigenlijk niet waarom dit ervoor moet staan)
01 (loc adres)
00 (??)
4C (snelheid)
F0 (licht aan)

Is er trouwens iemand die deze opbouw kan uitleggen ?
En misschien zn zelfde opbouw voor een commando van wissels kent ?

Dank
https://www.1op160.nl - Modelbaan in schaal N
https://www.youtube.com/@1op160/videos - YouTube kanaal
https://cults3d.com/en/users/1op160/3d-models - Cults 3D - 3D print modellen

KNed

  • Offline Offline
  • Berichten: 3366
    • nederlof.net
Re: Zelf software schrijven
« Reactie #10 Gepost op: 18 October 2007, 23:54:11 »
alleen kwa programma lopen ze wel wat achter. Wordt nog Delphi 2 gebruikt.
Hmm, ik zit 9 versies hoger  ;D

Zou het gaan werken in C#?
Ik heb nog niet zo'n beeld bij het aansturen van externe apparaten via een tussenlaag als .Net.

Ik heb zelf ook nog weleens het idee om iets zelf te programmeren. Maar ik heb nu al zoveel eigen software-projectjes die allemaal nog eens af moeten  :-|

Koen
H0: Periode: 1980-heden, vooral NL, 3-rail digitaal
Beheerder van: NL in Model | modelspooradressen | Marklin dipswitch[/u

Karst Drenth

  • Offline Offline
  • Berichten: 10474
  • NS blauw, groen, rood, bruin, grijs en standgroen
    • Plan U op Sleutelspoor
Re: Zelf software schrijven
« Reactie #11 Gepost op: 19 October 2007, 00:01:27 »
Citaat van: KNed
...Zou het gaan werken in C#?
Ik heb nog niet zo'n beeld bij het aansturen van externe apparaten via een tussenlaag als .Net. ....

Zeker weten, ik heb al eens een GPS ontvanger uitgelezen met C#, zowel via USB als via de normale COM poort.

Je PC moet natuurlijk wel krachtig genoeg zijn om het .NET framework voldoende snel te kunnen draaien.

Verder zijn de krachtige MultiThreading faciliteiten van .NET geweldig om een modelbaan besturing te bouwen  :P

Interessant onderwerpje overigens...  :D

Grtzz,

Karst

RoSoft

  • Offline Offline
  • Berichten: 1446
  • Alleen de waarheid ligt in het midden.
Re: Zelf software schrijven
« Reactie #12 Gepost op: 19 October 2007, 00:02:15 »
Is er trouwens iemand die deze opbouw kan uitleggen ?
En misschien zn zelfde opbouw voor een commando van wissels kent ?

Dank

Staat toch in het document wat je aangereikt is, en ook in het voorbeeld programma

Mvg
Wim.

P50Xb (P50X binary) locomotive & turnout control commands.
----------------------------------------------------------

(please read also introduction to P50Xa Lok/turnout cmds!)


*** XLok (080h) - length = 1+4 bytes
Parameters (byte) - please check also P50Xa 'L' cmd:
1st   low byte of Lok address
2nd   high byte of Lok address
3rd   speed (0..127: 0 = Stop, 1 = Stop/Em.Stop)
   N.B. bit #7 is reserved for future use!
4th   this byte has the following format:

   bit#   7     6     5     4     3     2     1     0
       +-----+-----+-----+-----+-----+-----+-----+-----+
       |ChgF |Force| Dir | FL  | F4  | F3  | F2  | F1  |
       +-----+-----+-----+-----+-----+-----+-----+-----+

   where:
      ChgF   set if F1..F4 to be used for setting F1..F4 of
         Lok (otherwise F1..F4 are ignored)
      Force   if set (1), then the XLok command is 'forced'
         even in case of a Lok already controlled by a
         non-PC device
      Dir   Lok direction: 1 = forward, 0 = reverse
      FL   Lok light status: 1 = on, 0 = off
      F4..F1   Lok F4..F1 status (if ChgF is set)

N.B.   Address must be in range 0..9999
   (depending on protocol, not every address is legal!)

Reply:
1st   either 00h (cmd Ok) or error code.

Error/warning codes:
XBADPRM (02h)   illegal parameter value
XNOLSPC (08h)   there is no space in the Lok cmd buffer, please try later!
XNOSLOT (0Bh)   there is no slot available
XBADLNP (0Ch)   Lok# is illegal for this protocol
XLKBUSY (0Dh)   Lok already controlled by another device
XLKHALT (41h)   Command accepted (Lok status updated), but IB in 'Halt' mode!
XLkPOFF (42h)   Command accepted (Lok status updated), but IB in Power Off!


Voor de wissels

*** XTrnt (090h) - length = 1+2 bytes
Parameters (byte):
1st   low byte of Turnout address (A7..A0). Please note: turnout
   address, NOT turnout *decoder* address!
2nd   high byte of Turnout address plus 'color' and status bits:

   bit#   7     6     5     4     3     2     1     0
       +-----+-----+-----+-----+-----+-----+-----+-----+
       |Color| Sts | Res |NoCmd| n.u.| A10 |  A9 |  A8 |
       +-----+-----+-----+-----+-----+-----+-----+-----+

   where:
      Color   1 = closed (green), 0 = thrown (red)
      Sts   turnout status (1 = on, 0 = off)
      Res   set if this turnout is to be reserved
         for exclusive PC control: this would imply
         that non-PC commands to this turnout would
         be discarded by the IB. An event would also
         be generated (please check the XEvent cmd)
      NoCmd   if set then no turnout cmd is actually sent
         to the tracks. Setting this bit allows, e.g.,
         to only set/reset the 'Res' bit of a turnout.
         Besides, if NoCmd is set, not even the internal
         IB status of this turnout is modified.
      n.u.   not currently used (0)
      A10..A8   top address bits of turnout address
Reply:
1st   either 00h (cmd Ok) or error/warning code

Error/warning codes:
XBADPRM (02h)   illegal parameter value
XPWOFF (06h)   Error: the Power is Off!
XNOTSPC (09h)   Error: the fifo for turnout cmds is full, please try later
      Plase note: XNOTSPC was erroneosly described as being
      equal to 07h in P50X_LT.TXT versions up to the 0.93 one.
      Please also note the new XNOISPC reply.
XBADTNP (0Eh)   Error: illegal Turnout address for this protocol
XNOISPC (10h)   Error: the I2C fifo is full, please try later
XLOWTSP (40h)   Warning: the fifo for turnout cmds is 75% full

The IB fifo for turnout cmds can hold up to 16 turnout cmds.
This allows 'parallel' turnout and Lok commands execution.
This fifo also plays a role in avoiding blocking the RS-232 channel in
case of a Power Off.

== A side note ==
If a P50 turnout cmd is sent to the IB while in Power Off, then such a
command would be inserted in the turnout cmd buffer as usual, provided
that the Special Option (SO) #21 is 0 (this would be the IB default).
However, since while in Power Off the turnout buffer is not processed
'from the other side' (no turnout cmds are sent to the tracks),
sooner or later this buffer shall get full - thus eventually blocking
any further PC command to the IB.
If SO #21 is 1, then P50 turnout cmds which are sent by the PC while
the IB is in Power Off are automatically discarded, therefore no
blocking the RS-232 channel can occur.
The default SO #21 value (0) corresponds to what a 6050+Mrk CU would do.


« Laatst bewerkt op: 19 October 2007, 00:07:41 door Wim Ros »
Marklin Digital 6020/21/27, 6051, Märklin 6021+UHL 63820, Lenz Digital Plus, Intellibox LocoBuffer II, MRDirect, DDW 6604 Booster, VB6.0 Delphi 6.0 Eigen Software: Perrongeluk, RoSoft, PT.

KNed

  • Offline Offline
  • Berichten: 3366
    • nederlof.net
Re: Zelf software schrijven
« Reactie #13 Gepost op: 19 October 2007, 00:07:31 »
Zeker weten, ik heb al eens een GPS ontvanger uitgelezen met C#, zowel via USB als via de normale COM poort.

Hmm, interessant. Moet me dan toch is meer verdiepen in die kant van .Net

Koen
H0: Periode: 1980-heden, vooral NL, 3-rail digitaal
Beheerder van: NL in Model | modelspooradressen | Marklin dipswitch[/u

Esperopt

  • Offline Offline
  • Berichten: 2227
  • Sic gorgiamus allos subjectatos nunc
Re: Zelf software schrijven
« Reactie #14 Gepost op: 19 October 2007, 00:21:46 »
Mmm, als ik het document van Wim lees lijkt vbasic of vdbase  het meest voor de hand liggend. Vdbase gaat wel, maar eigenlijk doe ik (beroepsmatig) alles met PLEX. Vreemd genoeg heb ik in m'n vrije tijd meer de behoefte om met m'n modellen bezig te zijn dan om m'n toetsenbord roodgloeiend te tikken. Maar ik ben wel heel benieuwd naar de divere oplossingen. Is het DCC protocol standaard? Want dan zou een programma, met eventueel kleine aanpassingen, voor meerdere interfaces gebruikt kunnen worden.