2 #ifndef __dccCommanderNMRA_H__ 3 #define __dccCommanderNMRA_H__ 8 #ifndef NO_DCCCOMMANDERNMRA 13 #define DccCommanderNMRA DccCommanderNMRAClass::GetCurrent() 17 typedef void(*DccAccDecoderPacket)(
int address,
boolean activate, uint8_t data);
20 #define DCCID(id) ((id) % 10000) 21 #define DCCACTIVATION(id) ((uint8_t)((id) / 10000)) 22 #define DCCINT(id, acc) ((acc) * 10000UL + (id)) 88 unsigned long lastDccId;
89 unsigned long lastEventDate;
90 boolean raiseEventOnActivation;
92 int raiseEventDebounceDelay;
110 void beginByPin(
int inManufacturerId,
int inVersionId,
int interruptNumber,
boolean inInterruptMonitor =
false,
boolean inRocoMode =
false);
117 void RaiseEventWhen(
boolean inRaiseEventOnActivation,
int inRaiseEventDebounceDelay = 200);
124 unsigned long loop();
139 static void CheckLastReception(uint16_t inBoardAddr, uint8_t inOutputPair, uint8_t inDirection, uint8_t inOutputPower);
147 if (pDccCommander == NULL)
150 return *(DccCommanderNMRAClass::pDccCommander);
153 #ifdef COMMANDERS_DEBUG_MODE 159 #define PRINT_EVENT_DCC(id, type, data) DccCommanderNMRA.printEvent(id, type, data); 161 #define PRINT_EVENT_DCC(id, type, data) 163 #ifdef COMMANDERS_PRINT_COMMANDERS static DccCommanderNMRAClass & GetCurrent()
static void CheckLastReception(uint16_t inBoardAddr, uint8_t inOutputPair, uint8_t inDirection, uint8_t inOutputPower)
static void DccAccessoryDecoderPacket(int address, boolean activate, uint8_t data)
static void SetAccessoryDecoderPacketHandler(DccAccDecoderPacket func)
void RaiseEventWhen(boolean inRaiseEventOnActivation, int inRaiseEventDebounceDelay = 200)
static void printEvent(unsigned long inId, COMMANDERS_EVENT_TYPE inEventType, int inEventData)
unsigned long GetLastDccId()
void beginByPin(int inManufacturerId, int inVersionId, int interruptNumber, boolean inInterruptMonitor = false, boolean inRocoMode = false)