diff --git a/IOSTM_CMSIS.cpp b/IOSTM_CMSIS.cpp index b669d07..ce498d4 100644 --- a/IOSTM_CMSIS.cpp +++ b/IOSTM_CMSIS.cpp @@ -369,7 +369,9 @@ void CIO::interrupt() { uint8_t control = MARK_NONE; uint16_t sample = DC_OFFSET; +#if defined(SEND_RSSI_DATA) uint16_t rawRSSI = 0U; +#endif bitband_t eoc = (bitband_t)BITBAND_PERIPH(&ADC1->SR, ADC_SR_EOS_Pos); bitband_t adon = (bitband_t)BITBAND_PERIPH(&ADC1->CR2, ADC_CR2_ADON_Pos); #if defined(SEND_RSSI_DATA) diff --git a/Makefile.CMSIS b/Makefile.CMSIS index a4ee604..3573d6f 100644 --- a/Makefile.CMSIS +++ b/Makefile.CMSIS @@ -65,7 +65,7 @@ COMMON_FLAGS =-mthumb -mlittle-endian -mcpu=$(MCPU) COMMON_FLAGS+= -Wall COMMON_FLAGS+= -I. -I$(CMSISDIR)/Include -I$(CMSISDIR)/Device/ST/STM32F1xx/Include -I$(SYSDIR) COMMON_FLAGS+= $(addprefix -I,$(INCDIR)) -COMMON_FLAGS+= -D$(MCU) +COMMON_FLAGS+= -D$(MCU) -DMADEBYMAKEFILE COMMON_FLAGS+= -Os -flto -ffunction-sections -fdata-sections COMMON_FLAGS+= -g # Assembler flags @@ -91,7 +91,7 @@ DEPENDS:=$(CSRC:%.c=$(OBJDIR)/%.d) $(CXXSRC:%.cpp=$(OBJDIR)/%.d) # Targets .PHONY: all -all: $(DIS) $(HEX) +all: GitVersion.h $(DIS) $(HEX) $(SIZE) $(ELF) .PHONY: program @@ -116,7 +116,7 @@ debug: $(ELF) .PHONY: clean clean: - $(RM) $(OBJ) $(HEX) $(ELF) $(DIS) $(MAP) $(DEPENDS) + $(RM) $(OBJ) $(HEX) $(ELF) $(DIS) $(MAP) $(DEPENDS) GitVersion.h # implicit rules .elf.hex: @@ -149,3 +149,17 @@ $(DIS): $(ELF) # include dependecies -include $(DEPENDS) + +# Export the current git version if the index file exists, else 000... +GitVersion.h: +ifdef SYSTEMROOT + echo #define GITVERSION "0000000" > $@ +else ifdef SystemRoot + echo #define GITVERSION "0000000" > $@ +else +ifneq ("$(wildcard .git/index)","") + echo "#define GITVERSION \"$(shell git rev-parse --short HEAD)\"" > $@ +else + echo "#define GITVERSION \"0000000\"" > $@ +endif +endif diff --git a/P25Defines.h b/P25Defines.h index e4fa287..bb44914 100644 --- a/P25Defines.h +++ b/P25Defines.h @@ -47,6 +47,11 @@ const unsigned int P25_TSDU_FRAME_LENGTH_BITS = P25_TSDU_FRAME_LENGTH_BYTES const unsigned int P25_TSDU_FRAME_LENGTH_SYMBOLS = P25_TSDU_FRAME_LENGTH_BYTES * 4U; const unsigned int P25_TSDU_FRAME_LENGTH_SAMPLES = P25_TSDU_FRAME_LENGTH_SYMBOLS * P25_RADIO_SYMBOL_LENGTH; +const unsigned int P25_PDU_HDR_FRAME_LENGTH_BYTES = 45U; +const unsigned int P25_PDU_HDR_FRAME_LENGTH_BITS = P25_PDU_HDR_FRAME_LENGTH_BYTES * 8U; +const unsigned int P25_PDU_HDR_FRAME_LENGTH_SYMBOLS = P25_PDU_HDR_FRAME_LENGTH_BYTES * 4U; +const unsigned int P25_PDU_HDR_FRAME_LENGTH_SAMPLES = P25_PDU_HDR_FRAME_LENGTH_SYMBOLS * P25_RADIO_SYMBOL_LENGTH; + const unsigned int P25_SYNC_LENGTH_BYTES = 6U; const unsigned int P25_SYNC_LENGTH_BITS = P25_SYNC_LENGTH_BYTES * 8U; const unsigned int P25_SYNC_LENGTH_SYMBOLS = P25_SYNC_LENGTH_BYTES * 4U; diff --git a/P25RX.cpp b/P25RX.cpp index 54d4237..d322db0 100644 --- a/P25RX.cpp +++ b/P25RX.cpp @@ -199,7 +199,19 @@ void CP25RX::processHdr(q15_t sample) serial.writeP25Hdr(frame, P25_HDR_FRAME_LENGTH_BYTES + 1U); } break; - case P25_DUID_TSDU: { + case P25_DUID_PDU: { + calculateLevels(m_hdrSyncPtr, P25_PDU_HDR_FRAME_LENGTH_SYMBOLS); + + DEBUG4("P25RX: sync found in PDU pos/centre/threshold", m_hdrSyncPtr, m_centreVal, m_thresholdVal); + + uint8_t frame[P25_PDU_HDR_FRAME_LENGTH_BYTES + 1U]; + samplesToBits(m_hdrSyncPtr, P25_PDU_HDR_FRAME_LENGTH_SYMBOLS, frame, 8U, m_centreVal, m_thresholdVal); + + frame[0U] = 0x01U; + serial.writeP25Hdr(frame, P25_PDU_HDR_FRAME_LENGTH_BYTES + 1U); + } + break; + case P25_DUID_TSDU: { calculateLevels(m_hdrStartPtr, P25_TSDU_FRAME_LENGTH_SYMBOLS); DEBUG4("P25RX: sync found in TSDU pos/centre/threshold", m_hdrSyncPtr, m_centreVal, m_thresholdVal); diff --git a/SerialPort.cpp b/SerialPort.cpp index 9c47cba..daf9a1e 100644 --- a/SerialPort.cpp +++ b/SerialPort.cpp @@ -103,7 +103,7 @@ const uint8_t MMDVM_DEBUG5 = 0xF5U; const char HARDWARE[] = concat(HW_TYPE, DESCRIPTION, TCXO, GITVERSION); #else #define concat(h, a, b, c, d) h " " a " " b " (Build: " c " " d ")" -const char HARDWARE[] = concat(DESCRIPTION, TCXO, __TIME__, __DATE__); +const char HARDWARE[] = concat(HW_TYPE, DESCRIPTION, TCXO, __TIME__, __DATE__); #endif const uint8_t PROTOCOL_VERSION = 1U; diff --git a/SerialRB.h b/SerialRB.h index ee244d2..7b6b7b9 100644 --- a/SerialRB.h +++ b/SerialRB.h @@ -32,11 +32,7 @@ Boston, MA 02110-1301, USA. #include #endif -#if defined(STM32F105xC) || defined(__MK20DX256__) const uint16_t SERIAL_RINGBUFFER_SIZE = 370U; -#else -const uint16_t SERIAL_RINGBUFFER_SIZE = 1000U; -#endif class CSerialRB { public: