Heb je de DR4088LN wel geconfigureerd op de juiste adressen?Mvg Johan
En heb je Karst zijn advies nu al een keer opgevolgd door JMRI te installeren en met de Loconet monitor te kijken wat er gebeurd?
Wat wellicht makkelijk is bij het debuggen, is om ook zo'n USB <> Lnet interface te gebruiken zodat je redelijk makkelijk kan zien wat je nu precies uitstuurt
#include "LocoNet.h" // alle 7 loconet bestanden, moeten in je folder staanconst int LNtxPin = 7 ; lnMsg *LnPacket; void setup(){ LocoNet.init(LNtxPin); Serial.begin(115200);}void loop(){ LnPacket = LocoNet.receive() ; if( LnPacket ) { // zelf afhandelen/verwerken van berichten byte len = (LnPacket->data[0] >> 5) & 0b11 ; // bericht lengte bits byte beginByte = 1 ; if( len == 0 ) len = 2; // verwerk lengte bits naar bericht lengte else if( len == 1 ) len = 4 ; else if( len == 2 ) len = 6 ; else if( len == 3 ) { len = LnPacket->data[1] ; beginByte = 2 ; } // lengte ligt in byte 1 // hier print ik alle bytes in Hex, Dec en Bin Serial.print("\r\nRaw HEX "); for( beginByte = 0 ; beginByte < len ; beginByte ++ ) { b = LnPacket -> data[beginByte] ; Serial.write(' ') ; Serial.print( b,HEX ) ; } Serial.print("\r\nRaw DEC "); for( beginByte = 0 ; beginByte < len ; beginByte ++ ) { b = LnPacket -> data[beginByte] ; Serial.write(' ') ; Serial.print( b) ; } Serial.print("\r\nRaw BIN "); for( beginByte = 0 ; beginByte < len ; beginByte ++ ) { b = LnPacket -> data[beginByte] ; Serial.write(' ') ; Serial.print( b, BIN) ; } // custom verwerking byte OPCODE = LnPacket->data[0] ; switch( OPCODE ) { defaut: Serial.println(F("Unknown OPCODE")) ; break ; case OPC_SW_REQ: Serial.println(F("Request switch ")); // doe iets met het bericht, break ; // case some_opcode: etc } // library functie, triggert callbacks naar notifySwitchRequest, notifySensor en notifyPower LocoNet.processSwitchSensorMessage( LnPacket ) ; }}// call back functies, aangeroepen vanuit 'processSwitchSensorMessage()'void notifySwitchRequest( uint16_t Address, uint8_t Output, uint8_t Direction ){}void notifySensor( uint16_t Address, uint8_t State ) // terugmelders{}void notifyPower( uint8_t State ) // main power{}
Dit moet volgens mij wel werken .Code: [Selecteer] for( beginByte = 0 ; beginByte < len ; beginByte ++ ) { b = LnPacket -> data[beginByte] ; Serial.write(' ') ; Serial.print( b) ; }
for( beginByte = 0 ; beginByte < len ; beginByte ++ ) { b = LnPacket -> data[beginByte] ; Serial.write(' ') ; Serial.print( b) ; }
byte b = LnPacket -> data[ beginByte ] ;
De vraag is nu alleen of dat gewoon niet mogelijk is via WLAN.Of is er een setting waarmee dat aan/uit kan.