diff --git a/.gitignore b/.gitignore index f1260a1..690a1f9 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ MMDVMHost *.VC.db .vs *.ambe +GitVersion.h diff --git a/ISSUES.txt b/ISSUES.txt index 9c136d8..5bf6d41 100644 --- a/ISSUES.txt +++ b/ISSUES.txt @@ -2,6 +2,10 @@ D-Star: No obvious issues. DMR: There is an issue where transmitted data (text messages) isn’t picked up as reliably from an MMDVM than (say) a Hytera repeater. In order to address this, I need to see a trace from a Hytera repeater transmitting text, both from cold (no tx) and when already running. The DMRRX receiver from the DV4RX code in my GitHub repository would do the job, provided you have a DV4mini and a repeater within range. +Timeouts aren't handled cleany, i.e. the repeater should go off transmit rather than stay on. + +It seems like there is a need to add some idle frames at the beginning of a DMO transmission in order allow older DMR radios to wake up. + YSF: There is an issue that need addressing: The data sent to aprs.fi from southern hemisphere users isn’t always correct. Maybe the GPS format used by YSF still has some secrets to reveal. P25: No obvious issues. diff --git a/MMDVMHost.cpp b/MMDVMHost.cpp index cea5c9b..d360992 100644 --- a/MMDVMHost.cpp +++ b/MMDVMHost.cpp @@ -33,6 +33,7 @@ #include "LCDproc.h" #include "Thread.h" #include "Log.h" +#include "GitVersion.h" #if defined(HD44780) #include "HD44780.h" @@ -73,7 +74,7 @@ static void sigHandler(int signum) const char* HEADER1 = "This software is for use on amateur radio networks only,"; const char* HEADER2 = "it is to be used for educational purposes only. Its use on"; const char* HEADER3 = "commercial networks is strictly prohibited."; -const char* HEADER4 = "Copyright(C) 2015, 2016 by Jonathan Naylor, G4KLX and others"; +const char* HEADER4 = "Copyright(C) 2015-2017 by Jonathan Naylor, G4KLX and others"; int main(int argc, char** argv) { @@ -235,6 +236,7 @@ int CMMDVMHost::run() LogInfo(HEADER4); LogMessage("MMDVMHost-%s is starting", VERSION); + LogMessage("Built %s %s (GitID #%.7s)", __TIME__, __DATE__, gitversion); readParams(); diff --git a/MMDVMHost.vcxproj b/MMDVMHost.vcxproj index 1c9a25e..ea4eb81 100644 --- a/MMDVMHost.vcxproj +++ b/MMDVMHost.vcxproj @@ -108,6 +108,12 @@ true kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;ws2_32.lib;%(AdditionalDependencies) + + "$(ProjectDir)prebuild.cmd" $(ProjectDir) + + + prebuild.cmd generates GitVersion.h from git refs heads master + diff --git a/Makefile b/Makefile index f180e2d..90346af 100644 --- a/Makefile +++ b/Makefile @@ -15,12 +15,19 @@ OBJECTS = \ all: MMDVMHost -MMDVMHost: $(OBJECTS) +MMDVMHost: GitVersion.h $(OBJECTS) $(CXX) $(OBJECTS) $(CFLAGS) $(LIBS) -o MMDVMHost %.o: %.cpp $(CXX) $(CFLAGS) -c -o $@ $< clean: - $(RM) MMDVMHost *.o *.d *.bak *~ - + $(RM) MMDVMHost *.o *.d *.bak *~ GitVersion.h + +# Export the current git version if the index file exists, else 000... +GitVersion.h: +ifneq ("$(wildcard .git/index)","") + echo "const char *gitversion = \"$(shell git rev-parse HEAD)\";" > $@ +else + echo "const char *gitversion = \"0000000000000000000000000000000000000000\";" > $@ +endif diff --git a/Makefile.Pi b/Makefile.Pi index 0734d47..3ac85ad 100644 --- a/Makefile.Pi +++ b/Makefile.Pi @@ -15,12 +15,19 @@ OBJECTS = \ all: MMDVMHost -MMDVMHost: $(OBJECTS) +MMDVMHost: GitVersion.h $(OBJECTS) $(CXX) $(OBJECTS) $(CFLAGS) $(LIBS) -o MMDVMHost %.o: %.cpp $(CXX) $(CFLAGS) -c -o $@ $< clean: - $(RM) MMDVMHost *.o *.d *.bak *~ - + $(RM) MMDVMHost *.o *.d *.bak *~ GitVersion.h + +# Export the current git version if the index file exists, else 000... +GitVersion.h: +ifneq ("$(wildcard .git/index)","") + echo "const char *gitversion = \"$(shell git rev-parse HEAD)\";" > $@ +else + echo "const char *gitversion = \"0000000000000000000000000000000000000000\";" > $@ +endif diff --git a/Makefile.Pi.Adafruit b/Makefile.Pi.Adafruit index bbe5dfe..816f5ad 100644 --- a/Makefile.Pi.Adafruit +++ b/Makefile.Pi.Adafruit @@ -15,12 +15,19 @@ OBJECTS = \ all: MMDVMHost -MMDVMHost: $(OBJECTS) +MMDVMHost: GitVersion.h $(OBJECTS) $(CXX) $(OBJECTS) $(CFLAGS) $(LIBS) -o MMDVMHost %.o: %.cpp $(CXX) $(CFLAGS) -c -o $@ $< clean: - $(RM) MMDVMHost *.o *.d *.bak *~ - + $(RM) MMDVMHost *.o *.d *.bak *~ GitVersion.h + +# Export the current git version if the index file exists, else 000... +GitVersion.h: +ifneq ("$(wildcard .git/index)","") + echo "const char *gitversion = \"$(shell git rev-parse HEAD)\";" > $@ +else + echo "const char *gitversion = \"0000000000000000000000000000000000000000\";" > $@ +endif diff --git a/Makefile.Pi.HD44780 b/Makefile.Pi.HD44780 index a4b9c97..13b5688 100644 --- a/Makefile.Pi.HD44780 +++ b/Makefile.Pi.HD44780 @@ -15,12 +15,19 @@ OBJECTS = \ all: MMDVMHost -MMDVMHost: $(OBJECTS) +MMDVMHost: GitVersion.h $(OBJECTS) $(CXX) $(OBJECTS) $(CFLAGS) $(LIBS) -o MMDVMHost %.o: %.cpp $(CXX) $(CFLAGS) -c -o $@ $< clean: - $(RM) MMDVMHost *.o *.d *.bak *~ - + $(RM) MMDVMHost *.o *.d *.bak *~ GitVersion.h + +# Export the current git version if the index file exists, else 000... +GitVersion.h: +ifneq ("$(wildcard .git/index)","") + echo "const char *gitversion = \"$(shell git rev-parse HEAD)\";" > $@ +else + echo "const char *gitversion = \"0000000000000000000000000000000000000000\";" > $@ +endif diff --git a/Makefile.Pi.OLED b/Makefile.Pi.OLED index 167c739..000de85 100644 --- a/Makefile.Pi.OLED +++ b/Makefile.Pi.OLED @@ -15,12 +15,19 @@ OBJECTS = \ all: MMDVMHost -MMDVMHost: $(OBJECTS) +MMDVMHost: GitVersion.h $(OBJECTS) $(CXX) $(OBJECTS) $(CFLAGS) $(LIBS) -o MMDVMHost %.o: %.cpp $(CXX) $(CFLAGS) -c -o $@ $< clean: - $(RM) MMDVMHost *.o *.d *.bak *~ - + $(RM) MMDVMHost *.o *.d *.bak *~ GitVersion.h + +# Export the current git version if the index file exists, else 000... +GitVersion.h: +ifneq ("$(wildcard .git/index)","") + echo "const char *gitversion = \"$(shell git rev-parse HEAD)\";" > $@ +else + echo "const char *gitversion = \"0000000000000000000000000000000000000000\";" > $@ +endif diff --git a/Makefile.Pi.PCF8574 b/Makefile.Pi.PCF8574 index e5df3a5..9164dab 100644 --- a/Makefile.Pi.PCF8574 +++ b/Makefile.Pi.PCF8574 @@ -15,11 +15,19 @@ OBJECTS = \ all: MMDVMHost -MMDVMHost: $(OBJECTS) +MMDVMHost: GitVersion.h $(OBJECTS) $(CXX) $(OBJECTS) $(CFLAGS) $(LIBS) -o MMDVMHost %.o: %.cpp $(CXX) $(CFLAGS) -c -o $@ $< clean: - $(RM) MMDVMHost *.o *.d *.bak *~ + $(RM) MMDVMHost *.o *.d *.bak *~ GitVersion.h + +# Export the current git version if the index file exists, else 000... +GitVersion.h: +ifneq ("$(wildcard .git/index)","") + echo "const char *gitversion = \"$(shell git rev-parse HEAD)\";" > $@ +else + echo "const char *gitversion = \"0000000000000000000000000000000000000000\";" > $@ +endif diff --git a/Makefile.Solaris b/Makefile.Solaris index a2c74ac..7136c1a 100644 --- a/Makefile.Solaris +++ b/Makefile.Solaris @@ -15,12 +15,19 @@ OBJECTS = \ all: MMDVMHost -MMDVMHost: $(OBJECTS) +MMDVMHost: GitVersion.h $(OBJECTS) $(CXX) $(OBJECTS) $(CFLAGS) $(LIBS) -o MMDVMHost %.o: %.cpp $(CXX) $(CFLAGS) -c -o $@ $< clean: - $(RM) MMDVMHost *.o *.d *.bak *~ - + $(RM) MMDVMHost *.o *.d *.bak *~ GitVersion.h + +# Export the current git version if the index file exists, else 000... +GitVersion.h: +ifneq ("$(wildcard .git/index)","") + echo "const char *gitversion = \"$(shell git rev-parse HEAD)\";" > $@ +else + echo "const char *gitversion = \"0000000000000000000000000000000000000000\";" > $@ +endif diff --git a/prebuild.cmd b/prebuild.cmd new file mode 100644 index 0000000..2dc5f9d --- /dev/null +++ b/prebuild.cmd @@ -0,0 +1,38 @@ +@echo off +REM This pre-build file is for MSVS VC++. It parses the git master hash and +REM converts it into GitVersion.h for compiling into builds. [George M1GEO] + +cd %1 +setlocal enabledelayedexpansion +set HEADFILE=.git\HEAD +set HASHFILE=0 +if exist %HEADFILE% ( + for /F "tokens=4 delims=/:" %%a in ('type %HEADFILE%') do set HEADBRANCH=%%a + set HASHFILE=.git\refs\heads\!HEADBRANCH! + echo Found Git HEAD file: %HEADFILE% + echo Git HEAD branch: !HEADBRANCH! + echo Git HASH file: !HASHFILE! + call :USEHASH +) else ( + echo No head file :( + call :USENULL +) + +goto :EOF + +:USENULL +set GITHASH=0000000000000000000000000000000000000000 +goto :WRITEGITVERSIONHEADER + +:USEHASH +for /f %%i in ('type !HASHFILE!') do set GITHASH=%%i +goto :WRITEGITVERSIONHEADER + +:WRITEGITVERSIONHEADER +echo // File contains Git commit ID SHA1 present at buildtime (prebuild.cmd) > GitVersion.h +echo const char *gitversion = "%GITHASH%"; >> GitVersion.h +echo Current Git HASH: %GITHASH% +goto :FINISHED + +:FINISHED +echo GitVersion.h written...