Nieuws: Hou zondag 24 november 2019 vrij in je agenda! Dan is de jaarlijkse 3railforum gastendag! Lees er meer over in de aankondiging!
+  3railforum
|-+  Modelbaanbesturing & Software
| |-+  Digitale Besturing Overige Merken
| | |-+  Loconet terugmelding initiele status
0 leden en 1 gast bekijken dit topic. « vorige volgende »
Pagina's: [1]   Omlaag

Auteur Topic: Loconet terugmelding initiele status  (gelezen 5918 keer)

xanderb

  • Gast
Loconet terugmelding initiele status
« Gepost op: woensdag 15 april 2009, 09:30:25 »

Het loconet protocol is beschreven hoe je veranderingen aan terugmelders kan uitlezen. Mijn vraag is hoe lees je de initiele status uit? Dus i.p.v. naar het event luisteren een commando geven om events te laten genereren. Dit kan ik niet vinden in document van Digitrax.

Met vriendelijke groeten

Xander Berkhout
Gelogd

karst.drenth

  • Toffe Gast
  • Offline Offline
  • Lid sinds: 2009
Re:Loconet terugmelding initiele status
« Reactie #1 Gepost op: woensdag 15 april 2009, 14:35:10 »

Hoi Xander,

Dit zul je ook niet gaan vinden, het commando bestaat namelijk niet ;)

Sommige modules sturen hun initieele status bij 'power-on' andere kun je instellen dat te doen, weer andere helemaal niet... Het is dus m.a.w. aan de maker dit in te vullen.

Volgens het protocol hoeft er helemaal niets gestuurd te worden tijdens power-up.

Grtzz,

Karst

P.S. Digitrax zelf heeft iets in zijn eigen decoders ingebouwd, waarmee via een DCC !! commando, de module bewogen wordt om z'n data prijs te geven...
Gelogd

xanderb

  • Gast
Re:Loconet terugmelding initiele status
« Reactie #2 Gepost op: woensdag 15 april 2009, 14:54:49 »

Bedankt voor je reactie.

Baal er wel van. :x

Hoe kan je dan ooit met terugmelders werken. Behalve dan door ze na elke sessie op te slaan en hopen dat er niets veranderd is? Koploper en TrainController werken toch ook met Loconet? De nieuwe Intellibox Basic en II hebben alleen nog maar Loconet. Hoe werkt het daar?

Met vriendelijke groeten,

Xander Berkhout


Gelogd

karst.drenth

  • Toffe Gast
  • Offline Offline
  • Lid sinds: 2009
Re:Loconet terugmelding initiele status
« Reactie #3 Gepost op: woensdag 15 april 2009, 16:43:39 »

Hoi,

Beiden werken met z.g. transities. Dwz de overgangen van bezet naar vrij en omgekeerd worden gedetecteerd door de hardware en geevalueerd door de software.

Statische bezetmelding wordt volgens mij door geen enkel commercieel pakket als zodanig gebruikt.

Grtzz,

Karst
Gelogd

xanderb

  • Gast
Re:Loconet terugmelding initiele status
« Reactie #4 Gepost op: woensdag 15 april 2009, 16:51:48 »

Hoi Karst,

Dat snap ik wel, maar ik wil bij het opstarten van m'n programma zien welke blokken bezet zijn. Als er geen transitie (=overgang) plaatsvindt weet ik dus niet wat de status is. Of denk ik verkeerd? Ik heb alles al gemaakt alleen als ik een wagon op de baan zet voordat ik m'n programma opstart weet ik dat gewoon niet. Dat is met de IB, ECoS en Marklin 6051 allemaal geen probleem.

Met vriendelijke groeten

Xander Berkhout
Gelogd

karst.drenth

  • Toffe Gast
  • Offline Offline
  • Lid sinds: 2009
Re:Loconet terugmelding initiele status
« Reactie #5 Gepost op: woensdag 15 april 2009, 17:00:11 »

Koploper onthoud in ieder geval de standen.

Ik zal eens kijken of ik die speciale DCC string kan vinden die Digitrax gebruikt. Wellicht reageert daar je IB ook op ???

( Ik neem tenminste aan dat je nu met een IB werkt... )

Grtzz,

Karst
Gelogd

pahasoft

  • Gast
Re:Loconet terugmelding initiele status
« Reactie #6 Gepost op: woensdag 15 april 2009, 18:44:55 »

Hoi,

Beiden werken met z.g. transities. Dwz de overgangen van bezet naar vrij en omgekeerd worden gedetecteerd door de hardware en geevalueerd door de software.

Statische bezetmelding wordt volgens mij door geen enkel commercieel pakket als zodanig gebruikt.

Grtzz,

Karst
Karst,

Hoe goed ken jij commerciele en freeware pakketten? Graag had ik ook de initiele status kunnen uitlezen. Het is altijd prettig als je weet bij start welke bezetmelders reeds bezet zijn. Volgens mij is er een freeware pakket welke hier wel gebruik van maakt.
Save van die stand werkt alleen maar als je dan in de tijd dat de Pc niet actief is ook niets veranderd op je baan.

Ik vind dat zelf ook echt een gemis bij Loconet.

Mvg,
Paul.
Gelogd

xanderb

  • Gast
Re:Loconet terugmelding initiele status
« Reactie #7 Gepost op: woensdag 15 april 2009, 21:29:44 »

Hoi Paul,

Bedankt voor je meeleven. Ik begrijp dat bij Koploper je het dus ook niet ideaal kon oplossen. Ik heb nog van alles geprobeerd door zelf valse meldingen te sturen die dan door de melder gecorrigeerd worden. Lijkt allemaal niks uit te halen.

Hallo Karst,

Dat DCC commando staat wel in de Digitrax handleiding, maar hoe verstuur je dat met Loconet.  Ik snap die a,b,c,d niet helemaal. Heb wel al van alles geprobeerd. Ben natuurlijk nog niet echt een DCC man (Märklin) al leer ik snel bij.

Groeten

Xander

Gelogd

karst.drenth

  • Toffe Gast
  • Offline Offline
  • Lid sinds: 2009
Re:Loconet terugmelding initiele status
« Reactie #8 Gepost op: woensdag 15 april 2009, 21:55:30 »

Hoi Paul  :D

1 heel aardig, een aantal redelijk  :)

En... idd dat andere freeware pakket JMRI vergeten. Die zelfs op source niveau ;)

Ik ben het met je eens dat het een gemis in het LocoNet protocol is.

Het gekke van het hele verhaal is, dat er wel een commando: OPC_SW_STATE is om wisselstanden op te vragen...  :?

Om de Digitrax modules DS54 hun inputstate te 'ontfutselen', schtijft Digitrax in hun LocoNet specs:

Citaat
Stationary Interrogate Command:
The DCC packet <sync>,<1011-1111>,<1100-D c b a> <ecb>is an Interrogation for all DS54's. This causes a 2 LocoNet <B1> messages encoding both Output state and Input state, for each sensor adr a/b/c encodes.
Interrogate LocoNet Switch adr is <SW2>=<0,0,a,1-0,1,1,1>, <SW1>= <0,1,1,1-1,0,c,b>
This is generated by DCS100 at power ON, and scans all 8 inputs of all DS54's.

Dit packet kan met de LocoNet OPC_IMM_PACKET verzonden worden.

dus: 0xED, 0x0B, 0x7F, 0x01, < high bits 1..5 >, 0xBF, 0xF0 + adres, < checksum >, 0x00, 0x00, <CHK>

Wat het resultaat is, ik weet het niet. Heb hier geen modules die daar op antwoorden...

Grtzz,

Karst
Gelogd

xanderb

  • Gast
Re:Loconet terugmelding initiele status
« Reactie #9 Gepost op: donderdag 16 april 2009, 16:00:02 »

Een idee:
Wat gebeurt er normaal bij Loconet als de stroom eraf gaat (door Stop) en daarna weer aan gaat. In principe zouden de terugmelders die bezet zijn daarna een niet bezet status door moeten geven en als er weer stroom staat (Go) dan zouden ze weer bezet worden dus een overgang.
Ik gebruik een Intellibox met S88 terugmelders dus die zal deze informatie wel niet doorgeven en vergelijken met de stand voordat de stroom eraf gaat, maar in de S88 monitor stand zie ik voordat ik op Go druk even alles uit zijn.
Wat nu als ik zelf events genereer voor alle bezetmeldingen die het programma kent, zodat de IB hetzelfde denkt als het programma en dan even Stop en daarna Go.

Ga het vanavond even proberen.

Xander
Gelogd

xanderb

  • Gast
Re:Loconet terugmelding initiele status
« Reactie #10 Gepost op: vrijdag 17 april 2009, 11:37:44 »

Niet gelukt. Dan toch maar die DCC string proberen.

Karst,

Wat is High bits 1..5 en 0xF0 + adres ? en het verschil tussen checksum en CHK?

0xED, 0x0B, 0x7F, 0x01, < high bits 1..5 >, 0xBF, 0xF0 + adres, < checksum >, 0x00, 0x00, <CHK>

Waarschijnlijk is <checksum> voor het DCC packet en CKK voor het Loconet pakket. Ik weet nog niks van DCC paketten.
Heb je suggesties voor further reading.

Mvgr

Xander
Gelogd

Sprinter

  • Stamgast
  • Offline Offline
  • Lid sinds: 2006
    • Perrongeluk
Re:Loconet terugmelding initiele status
« Reactie #11 Gepost op: vrijdag 17 april 2009, 20:36:01 »

Je kunt bij de IB/TC het geheugen uitlezen van de s88. Dus na power up.

For ScanCounter = 0 To 127
    'ID1 = 49  'I'
    'ID2 = 42  'B'
    'cc = &HED Xor &HF Xor &H1 Xor ID1 Xor ID2 Xor &H13 Xor ScanCounter
    Temp = Chr$(&HED) + Chr$(&HF) + Chr$(&H1) + Chr$(ID1) + Chr$(ID2) + Chr$(&H13) + Chr$(&H0) + Chr$(ScanCounter) + Chr(&H0) + Chr(&H0) + Chr(&H0) + Chr(&H0) + Chr(&H0) + Chr(&H0)
    SendLocoNet (Temp)
Next

Gelogd
Alleen de waarheid ligt in het midden....

Sprinter

  • Stamgast
  • Offline Offline
  • Lid sinds: 2006
    • Perrongeluk
Re:Loconet terugmelding initiele status
« Reactie #12 Gepost op: vrijdag 17 april 2009, 21:02:25 »


Hoe goed ken jij commerciele en freeware pakketten? Graag had ik ook de initiele status kunnen uitlezen. Het is altijd prettig als je weet bij start welke bezetmelders reeds bezet zijn. Volgens mij is er een freeware pakket welke hier wel gebruik van maakt.
Save van die stand werkt alleen maar als je dan in de tijd dat de Pc niet actief is ook niets veranderd op je baan.

Ik vind dat zelf ook echt een gemis bij Loconet.

Mvg,
Paul.

En hoe goed ken jij je eigen programma??  Volgens mij heb jij dit er zelf op aanwijzen ingezet.
Gelogd
Alleen de waarheid ligt in het midden....

pahasoft

  • Gast
Re:Loconet terugmelding initiele status
« Reactie #13 Gepost op: vrijdag 17 april 2009, 21:13:28 »

Grappig,

Niet dus. Loconet is er ingekomen door jouw bemoeienis, want zelf had ik het al lang opgegeven. Dit staat ook in handleiding genoemd.
Er is prive tijdens de inbouwtijd ook heel veel gebeurd (zeker niet plezierig!). Ik hou wel mijn hart vast voor het gehele loconet verhaal. Of bij iedere digitale centale de oplossing werkt? Geen idee!

Mvg,
Paul.
Gelogd

Gerard

  • Forum Moderator
  • *****
  • Offline Offline
  • Lid sinds: 2006
  • intentionally left blank
Re:Loconet terugmelding initiele status
« Reactie #14 Gepost op: vrijdag 17 april 2009, 22:59:01 »

Draadje is geschoond, ik hoop dat we nu gewoon weer on-topic kunnen blijven.
Gelogd
You ain't much if you ain't Dutch :wink:.
   
Driehoven - CJAG-lid

Sprinter

  • Stamgast
  • Offline Offline
  • Lid sinds: 2006
    • Perrongeluk
Re:Loconet terugmelding initiele status
« Reactie #15 Gepost op: zaterdag 18 april 2009, 00:07:16 »

Nee, Paul dat werkt niet bij alle centrales, dat werkt alleen bij centrales met ID1 = 49 en ID2 = 42
Dit stukje LocoNet-protocol is dus specifiek voor Uhlenbrock.
Door Slot 0 op te vragen krijg je gegevens binnen, daarin staat met welke centrale jij verbonden bent. En aan de hand daarvan kun je diverse handelingen wel of niet uitvoeren.
Weet je het nog??!!
Gelogd
Alleen de waarheid ligt in het midden....

xanderb

  • Gast
Re:Loconet terugmelding initiele status
« Reactie #16 Gepost op: maandag 20 april 2009, 00:11:36 »

Wim,

Bedankt voor de informatie. Ik ga het proberen, want ik heb een IB IR. Hopelijk werkt het ook goed voor de nieuwe IB Basic, IB COM en IB 2.

Ik neem aan dat de reactie is dat er events worden gegenereerd met INPUT_REP die alle sensors meld of moet ik nog meer doen?

Met vriendelijke groeten

Xander Berkhout
Gelogd

Sprinter

  • Stamgast
  • Offline Offline
  • Lid sinds: 2006
    • Perrongeluk
Re:Loconet terugmelding initiele status
« Reactie #17 Gepost op: maandag 20 april 2009, 01:43:40 »

Nee, daar komt een <OPC_PEER_XFER> op terug. Met daarin de gegevens van 1 complete S88 module.
Gelogd
Alleen de waarheid ligt in het midden....

xanderb

  • Gast
Re:Loconet terugmelding initiele status
« Reactie #18 Gepost op: dinsdag 21 april 2009, 11:43:30 »

Wim,

1e vraag: Heb je nog informatie hoe dat terugkomt in PEER_XFER. Zijn deze S88 modules dan 8 of 16 bits en in welke velden komen ze dan terug? Ik ga het wel proberen, maar voor het geval ik er niet uit kom.

2e vraag: Hoe zou ik het moeten oplossen bij een Dgitrax centrale?

Alvast bedankt

Xander
Gelogd

Sprinter

  • Stamgast
  • Offline Offline
  • Lid sinds: 2006
    • Perrongeluk
Re:Loconet terugmelding initiele status
« Reactie #19 Gepost op: dinsdag 21 april 2009, 15:29:23 »

Xander,

op je IB via menu en knopje 3 kiezen voor de S88 monitor, en kijken wat er terugkomt als loconet info. Diverse meldingen geven op een S88 melder.

Een S88 is altijd 16 contacten. S=Signal 8 + 8 =16 kortweg s88


Bij digitrax los je het op met de info die Karst je gaf.

Gelogd
Alleen de waarheid ligt in het midden....

xanderb

  • Gast
Re:Loconet terugmelding initiele status
« Reactie #20 Gepost op: donderdag 23 april 2009, 21:43:00 »

Wim,

Ik heb het geprobeerd en het lukt wel met trial en error. Ik heb wel het idee dat er oneigenlijk gebruikt gemaakt wordt van de specificaties. Een PEER_XFRE zou 8 bytes moeten hebben en een lengte van 16, maar ik krijg er 15. Het ID is nu 49 4b i.p.v. 49 42.  Van de 11 weet ik niet wat het is, daarna komen in bit 5,6 de hoogste bits van de twee laatste bytes (voor de checksum) die een mask zijn voor de S88 bits. Daartussen zit nog een onbekende 7f 7f 00 00.

PEER_XFER (15) :  e5 0f 00 49 4b 11 26 00 7f 7f 00 00 00 0d 2d
PEER_XFER (15) :  e5 0f 00 49 4b 11 66 01 7f 7f 00 00 01 6b 0b
PEER_XFER (15) :  e5 0f 00 49 4b 11 66 02 7f 7f 00 00 45 6d 4a
PEER_XFER (15) :  e5 0f 00 49 4b 11 06 03 7f 7f 00 00 66 70 15

Kortom een special PEER_XFER.

Kan jij hier nog meer licht op werpen, waarom en hoe. Ik kan nu niet echt checken of ik dit wil processen, omdat het ID anders is dan bij het sturen.

Groeten

Xander
Gelogd

Sprinter

  • Stamgast
  • Offline Offline
  • Lid sinds: 2006
    • Perrongeluk
Re:Loconet terugmelding initiele status
« Reactie #21 Gepost op: donderdag 23 april 2009, 23:09:50 »

Ik heb je toch al verteld dat het een speciaal IB loconet is.

Staat in de specificaties van Uhlenbrock.

Met &H1 vraag je informatie op uit de KPU van de IB.

49 4B geeft aan dat de informatie uit de KPU komt, de users interface van de IB is dat.

*** IB-related LocoNet messages:

There are a few LocoNet messages which have been defined by us (Uhlenbrock
Elektronik GmbH) for use with our devices. The IB uses these messages for
various purposes. We document here their general structure as well as the
content in case of messages which pertain to the control of LN-mode.

The general structure is:
Opcode   OPC_PEER_XFER (0E5h) - for replies (or 'spontaneous messages')
   OPC_IMM_PACKET (0EDh) - for messages which expect a reply
length   15 bytes (0Fh)
12 message data bytes
Checksum

format of data bytes:
SRC, DSTL, DSTH,
ReqId,
PXCT1, D1, D2, D3, D4, D5, D6, D7

SRC   0 = master, 1 = KPU, 2 = DAISY, 3 = TB or FRED
        4 = IB-Switch, 5 = LocoNet modules
   70h..7Eh = reserved

DSTL/H   destination (addressed) device, 0/0 = broadcast
   "I"/"B" = Intellibox (SPU: the 'main' CPU of the Intellibox)
   "I"/"K" = Intellibox (KPU: the 'user interface' CPU of the Intellibox)
   0..15/"T" = Twin-Box
   "I"/"S" = IB-Switch
   "D"/"Y" = DAISY throttle

PXCT1   0, D7.7, D6.7, D5.7, D4.7, D3.7, D2.7, D1.7

ReqId   this byte is used in order to tell the type of the message, hence
   also to tell what D1..D7 do hold.

In case of LN-mode related messages, ReqId has the decimal value 46 (2Eh):

   46 = used for configuring/terminating PC access to LocoNet through the
        RS-232 interface of the IB.
        This msg is sent by a non-SPU device with 0EDh header and SRC=1.
        The reply to this msg is an OPC_LONG_ACK msg (LACK).
        The SPU automatically sends this msg with 0E5h header and SRC=0
      when the RS-232 LocoNet mode is activated by P50Xa cmd.
        DSTL/H always hold the value 'I'/'B'.
        D1 holds the cmd. Currently defined cmds are:

        0:   ask RS-232 'LocoNet' mode driver version #
      The version # is reported as LACK code, the 1st sw release
      featuring LN-mode (SPU vers. 1.500) reports a LACK code of 01h.

        1:   set value of 'tx flags'
      D2   the value of the 'tx flags':
         Bit #0: set (1) if the SPU will also "see" this msg
            (local echo), reset (0) if the SPU will
            not "see" this msg: it will "only" be
            seen by LocoNet devices other than the SPU.
         Bit #1: set (1) if normal priority (non sensor),
            reset (0) if high priority (sensor)
         These two flags default to the 'set' status.
         Bits #2..7: please do not use (leave them at 0)
      D3..D7   (not currently used)

        2: terminate 'LocoNet mode' of the IB RS-232 interface and
      start mixed P50+P50X mode
      D2   must hold the value 'P' (50h)
      D3..D7   (not currently used)
      After sending the 'LACK Ok' reply, the IB shall also
      send <CR> + ']' (0Dh, 5Dh) to the RS-232/PC (i.e., the
      typical 'end of cmd reply' for P50Xa cmd replies.

        3: set # of stop bits
      D2   1 or 2 stop bits
      D3..D7   (not currently used)
      N.B.: this is a _temporary_ change to the IB RS-232
            configuration. The # of stop bits shall revert
            to the value specified by SO #5 at the next IB
            reset or at the next RS-232 configuration change
            (per menus, i.e. per SO's).

        The reply is either 'LACK Ok' or 'LACK fail' (except for
        the 0 and 2 cmds, of course).


Mvg
Wim.

Gelogd
Alleen de waarheid ligt in het midden....

xanderb

  • Gast
Re:Loconet terugmelding initiele status
« Reactie #22 Gepost op: zondag 26 april 2009, 17:35:09 »

Hallo Wim,

Weer erg bedankt. Nu begrijp ik het. Zijn deze Uhlenbrock specificaties ergens te vinden of is wat je net geschreven hebt alles? Ik zou graag een linkje ontvangen.

Ik heb in Dortmund een Loconet terugmelder 63350 gekocht en zag dat het ook mogelijk is om door een magneetartikel adres te schakelen (report) deze melder een event genereert voor al zijn ingangen. Is dat gangbaar in Loconet land? Ik vraag dat omdat dat ook werkt zonder IB? Ik snap die andere regel van Karst namelijk nog niet met die a,b,c,D.

Laatste vraag: IB Basic en II werken via USB. Nu heb ik begrepen dat deze een seriele poort simuleren, maar dan zonder flow control. Klopt dat. Is dat niet raar? :shock:

Met vriendelijke groeten

Xander
Gelogd

Sprinter

  • Stamgast
  • Offline Offline
  • Lid sinds: 2006
    • Perrongeluk
Re:Loconet terugmelding initiele status
« Reactie #23 Gepost op: zondag 26 april 2009, 23:14:54 »

Xander,  krijg ik zo meteen 10% van je omzet? Of blijft het bij een dank je wel. Vergeet je ook niet om DigiTrax zometeen een deel van je omzet te betalen.

Gelogd
Alleen de waarheid ligt in het midden....

Sprinter

  • Stamgast
  • Offline Offline
  • Lid sinds: 2006
    • Perrongeluk
Re:Loconet terugmelding initiele status
« Reactie #24 Gepost op: maandag 27 april 2009, 21:46:11 »

Xander,

Als je software maakt voor een bepaald protocol, en je hebt niet alle informatie naar jouw idee, schrijf dan de fabrikant aan. Dat is wat wij ook altijd doen. Dan krijg je alle informatie netjes opgestuurd. In het LocoNet document van Digitrax staat hoe je aan het complete LocoNet protocol kunt komen. Krijg je ook gelijk te horen of je het mag gebruiken, of wat de condities zijn waaronder je het mag gebruiken.

Voor het IB/TC deel schrijf je Uhlenbrock aan.
Als je een bepaald deel dan niet begrijpt dan kunnen we altijd een poging doen om het uit te leggen.

Gelogd
Alleen de waarheid ligt in het midden....
 

Powered by MySQL Powered by PHP SMF 2.0.15 | SMF © 2014, Simple Machines Valid XHTML 1.0! Valid CSS!
Pagina opgebouwd in 0.822 seconden met 22 queries.