tanner87661 / IoTTStick

This is the support repository for the IoTT Stick, port modules and hat devices
31 stars 16 forks source link

Direction of travel for DCC++ wrong #17

Closed habazut closed 2 years ago

habazut commented 2 years ago

I think you got the direction of travel for the DCC++ command wrong. In DCC++ 1 is forward and 0 is reverse I know. In Loconet 1is reverse and 0 is forward I think.

So line 389 in IoTT_SerInjector.cpp should be something like:

sprintf(txMsg, "<t 1 %i %i %i>", cabAddr, transmitQueue[hlpQuePtr].lnData[4], !((transmitQueue[hlpQuePtr].lnData[5] & 0x20))>>5); //[4]: SPD, [5]:DIRF

Then I don't know if you got the speed steps right for DCC++ as in DCC++ the speed steps are from 0 to 126 and -1 is emergency stop. Does that match wit inData[4]?

Regards, Harald.

tanner87661 commented 2 years ago

Hi Harald

Thanks for the bug report. I will look into it. Most likely you are right about the direction flag.

The speed steps is on the open issue list as well. I also need to implement proper conversion when LocoNet is using 14 or 28 speed step mode.

Best wishes

Hans