Doel:€250.00
Donaties:€128.00

Per saldo:€-122.00

Steun ons nu!

Laatst bijgewerkt
op 16-04-2024

Vacature: secretaris bestuur
Algemeen

De stichting

Recente berichten

Vijfhuis (v.h. Frotterdam) door barry1972
Vandaag om 01:52:03
Mijn eerste H0-modeltreinbaan in aanbouw door bigboynl
Vandaag om 01:23:06
Decals voor een Roco 64892 DSG Speisewagen door frits959
Vandaag om 01:22:36
Einde Koemo ballast ??? door Ronald69
Vandaag om 01:14:28
Keerlusmodule Digikeijs DR5013 gaat na willekeurig aantal rondes op kortsluiting door Bert_Apd
Vandaag om 00:57:40
Frans/Belgisch H0e baantje door NS264
Vandaag om 00:44:46
Kleine Baan in H0 (≤ 0.5m²) door NS264
Vandaag om 00:19:08
LS Models 2024 door Albert.H0
Vandaag om 00:17:47
h0 diorama USA “The Paintshops” door Whis
Vandaag om 00:08:34
Ronald en Wanda's "Southern Comfort" swamp layout! door class 37
Vandaag om 00:06:03
Nederland jaren 50 op basis van mijn roots door defender
19 april 2024, 23:05:17
Haandrecht materieel door orientexpress
19 april 2024, 23:02:39
EifelBurgenBahn door Frank 123
19 april 2024, 23:01:42
Mallnitzer Tauernbahnstrecke ÖBB N Spoor door Schachbrett
19 april 2024, 23:00:45
Traintastic - modelbaan besturingssoftware (gratis en open source) door bask185
19 april 2024, 22:27:47
Hengelo in 1981-1982, maar dan anders: Kassenberg in N door raymond erdtsieck
19 april 2024, 22:23:17
Laag-Baarlo door Benelux795
19 april 2024, 22:22:31
Een stukje Odsherreds Jernbane (OHJ) door gdh
19 april 2024, 21:51:42
US diorama in H0 door Wim Vink
19 april 2024, 21:38:59
IC-trein naar Berlijn in model, welke rijtuigen? door Michiel 80
19 april 2024, 20:49:29
Toon hier je nieuwe (model-) spooraanwinst(en)... door johanw
19 april 2024, 20:31:36
La Fabrique (1:87, 0,16m2) door tothebeach
19 april 2024, 20:02:10
Cranicher Altbahn door Arjen52
19 april 2024, 19:47:50
BMB 00-Modulebaan, BMB-Rijdagen en BMB-Deelname aan Beurzen & Evenementen door Hans van de Burgt
19 april 2024, 19:41:34
Van Biervliet/B Models 2019, nieuws van de fabrikant door Sicco Dierdorp
19 april 2024, 18:55:04
Aachenau West door MichielB
19 april 2024, 18:48:39
Jeugdsentiment (show je oude treintjes) door thonis
19 april 2024, 18:36:00
Openen Lima Hondekop door Mispoes
19 april 2024, 17:59:32
Piko 2200 (52686)+ uhlenbrock 76420(?) door Ben
19 april 2024, 16:14:12
Onlangs gespot - gefotografeerd, de foto's door dh3201
19 april 2024, 15:30:48
  

Auteur Topic: Zelf software schrijven  (gelezen 5417 keer)

1op160

  • Offline Offline
  • Berichten: 353
    • 1op160.nl Modelbaan in schaal N
Zelf software schrijven
« Gepost op: 18 oktober 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

Matthijs van Heijningen

  • Offline Offline
  • Berichten: 2356
Re: Zelf software schrijven
« Reactie #1 Gepost op: 18 oktober 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 oktober 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 oktober 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 oktober 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 oktober 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: 10231
  • NS blauw, groen, rood, bruin, grijs en standgroen
    • Plan U op Sleutelspoor
Re: Zelf software schrijven
« Reactie #4 Gepost op: 18 oktober 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 oktober 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: 353
    • 1op160.nl Modelbaan in schaal N
Re: Zelf software schrijven
« Reactie #6 Gepost op: 18 oktober 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

Karst Drenth

  • Offline Offline
  • Berichten: 10231
  • NS blauw, groen, rood, bruin, grijs en standgroen
    • Plan U op Sleutelspoor
Re: Zelf software schrijven
« Reactie #7 Gepost op: 18 oktober 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: 2356
Re: Zelf software schrijven
« Reactie #8 Gepost op: 18 oktober 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: 353
    • 1op160.nl Modelbaan in schaal N
Re: Zelf software schrijven
« Reactie #9 Gepost op: 18 oktober 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

KNed

  • Offline Offline
  • Berichten: 3215
    • nederlof.net
Re: Zelf software schrijven
« Reactie #10 Gepost op: 18 oktober 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 | LGB
Beheerder van: NL in Model | modelspooradressen | Marklin dipswitch

Karst Drenth

  • Offline Offline
  • Berichten: 10231
  • NS blauw, groen, rood, bruin, grijs en standgroen
    • Plan U op Sleutelspoor
Re: Zelf software schrijven
« Reactie #11 Gepost op: 19 oktober 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 oktober 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 oktober 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: 3215
    • nederlof.net
Re: Zelf software schrijven
« Reactie #13 Gepost op: 19 oktober 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 | LGB
Beheerder van: NL in Model | modelspooradressen | Marklin dipswitch

Esperopt

  • Offline Offline
  • Berichten: 2227
  • Sic gorgiamus allos subjectatos nunc
Re: Zelf software schrijven
« Reactie #14 Gepost op: 19 oktober 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.