diff --git a/Src/ax25.c b/Src/ax25.c
index f82a6d7..d179701 100644
--- a/Src/ax25.c
+++ b/Src/ax25.c
@@ -25,6 +25,7 @@ along with VP-Digi. If not, see .
#include
#include
#include "drivers/systick.h"
+#include "digipeater.h"
struct Ax25ProtoConfig Ax25Config;
@@ -197,7 +198,7 @@ void Ax25TxKiss(uint8_t *buf, uint16_t len)
if(end == len) //no frame end marker found
return;
Ax25WriteTxFrame(&buf[i + 2], end - (i + 2)); //skip modem number and send frame
- //DigiStoreDeDupe(&buf[i + 2], end - (i + 2));
+ DigiStoreDeDupe(&buf[i + 2], end - (i + 2));
i = end; //move pointer to the next byte if there are more consecutive frames
}
}
diff --git a/Src/digipeater.c b/Src/digipeater.c
index ba63fae..88f6446 100644
--- a/Src/digipeater.c
+++ b/Src/digipeater.c
@@ -322,7 +322,7 @@ void DigiDigipeat(uint8_t *frame, uint16_t len)
//calculate frame "hash"
uint32_t hash = Crc32(CRC32_INIT, frame, 14); //use destination and source address, skip path
- hash = Crc32(hash, &frame[t + 1], len - t); //continue through all remaining data
+ hash = Crc32(hash, &frame[t + 1], len - t - 1); //continue through all remaining data
if(DigiConfig.viscous) //viscous-delay enabled on any slot
{
@@ -461,7 +461,7 @@ void DigiStoreDeDupe(uint8_t *buf, uint16_t size)
deDupeCount %= DEDUPE_SIZE;
deDupe[deDupeCount].hash = hash;
- deDupe[deDupeCount].timeLimit = SysTickGet() + (DigiConfig.dupeTime * 10 / SYSTICK_INTERVAL);
+ deDupe[deDupeCount].timeLimit = SysTickGet() + (DigiConfig.dupeTime * 1000 / SYSTICK_INTERVAL);
deDupeCount++;
}