Deze status zie ik wel veranderen op het display van het Twin-Center.Maar komt niet door via Loconet.
Of een vergelijkbaar apparaat zodat ik de S88 direct op Loconet kan aansluiten
Nog een reden om niet aan S88 te beginnen
Elke DR4088LN moet volstaan
;=======OPC_INPUT_REP 0xB2 ; General SENSOR Input codes NO; <0xB2>, <IN1>, <IN2>, <CHK><IN1> =<0,A6,A5,A4- A3,A2,A1,A0>, 7 ls adr bits. A1,A0 select 1 of 4 inputs pairs in a DS54<IN2> =<0,X,I,L- A10,A9,A8,A7> Report/status bits and 4 MS adr bits."I"=0 for DS54 "aux" inputs and 1 for "switch" inputs mapped to 4K SENSOR space.(This is effectively a least significant adr bit when using DS54 input configuration)"L"=0 for input SENSOR now 0V (LO) , 1 for Input sensor >=+6V (HI)"X"=1, control bit , 0 is RESERVED for future!
Is er iemand die toevallig een goede documentatie weet te vinden van de hexadecimale codes die ik ontvang via Loconet ?Ik had zelf deze pagina gevonden: https://wiki.rocrail.net/doku.php?id=loconet:ln-pe-enMaar er zal vast ergens betere documentatie zijn.
De one-and-only official documentatie is deze: https://www.digitrax.com/static/apps/cms/media/documents/loconet/loconetpersonaledition.pdf
Heeft iemand ervaring met data sturen naar loconet over TCP?
Misschien heeft iemand de code voor het opvragen van een S88 module of het omzetten van een wissel ?
LN_STATUS LocoNetClass::requestSwitch( uint16_t Address, uint8_t Output, uint8_t Direction ){ uint8_t AddrH = (--Address >> 7) & 0x0F ; uint8_t AddrL = Address & 0x7F ; if( Output ) AddrH |= OPC_SW_REQ_OUT ; // 0x10 if( Direction ) AddrH |= OPC_SW_REQ_DIR ; // 0x20 return send( OPC_SW_REQ, AddrL, AddrH ) ;}
;========OPC_SW_REQ 0xB0 ;REQ SWITCH function NO;<0xB0>,<SW1>,<SW2>,<CHK> REQ SWITCH function<SW1> =<0,A6,A5,A4- A3,A2,A1,A0>, 7 ls adr bits. A1,A0 select 1 of 4 input pairs in a DS54<SW2> =<0,0,DIR,ON- A10,A9,A8,A7> Control bits and 4 MS adr bits.,DIR=1 for Closed,/GREEN, =0 for Thrown/RED,ON=1 for Output ON, =0 FOR output OFF,Immediate response of <0xB4><30><00> if command failed, otherwise no response
Heeft iemand ervaring met data sturen naar loconet over TCP?Welke data ik ook stuur, het antwoord is altijd "SENT ERROR Message not supported".Zelfs als ik data stuur die ik ook voorbij zie komen in de stream wanneer ik iets doe met het Twin-Center.Misschien heeft iemand de code voor het opvragen van een S88 module of het omzetten van een wissel ?
- Not me, ik doe eigenlijk nooit wat met ethernet achtige dingen.- Ik dacht altijd dat loconet over TCP niet heel veel anders zou zijn? - Maar ik me daar echt nooit in verdiept verder - Dat werkt waarschijnlijk ook met dat JMRI.
'send' plakt er nog een checksum aan vast.
Je hebt twee soorten LocoNet over TCP/IP1. Het oeroude, text gebaseerde LBServer protocol. ==> https://loconetovertcp.sourceforge.net/Protocol/LoconetOverTcp.html2. Het door mij ontwikkelde LocoNet Binary. ==> Is gelijk aan het "rauwe" LocoNet protocol zoals beschreven in de LocoNet PE. Maar dan via een TCP/IP socket ipv een USB/COM poort.@1 wordt ondersteund door o.a. YD7001, Uhlenbrock WLAN interface, JMRI@2 wordt ondersteund door YD7001.
messageToSend = "SEND B0 01 10"