summaryrefslogtreecommitdiff
path: root/AT91SAM7S256/Source/BtTest.inc
diff options
context:
space:
mode:
authorNicolas Schodet2021-09-28 22:24:47 +0200
committerNicolas Schodet2021-09-28 22:56:53 +0200
commit95f27877c886c7ef263e90ad494748733744fce8 (patch)
tree2c2d6844cdd3109ccf7bebb7326fb0e47a538c79 /AT91SAM7S256/Source/BtTest.inc
parent97335845c390f180228cc2806341d34409d78535 (diff)
Change the versioning scheme to use a third number
NXT Improved firmware will now use a x.y.z version numbering scheme. The current version is 1.29.0 and the next one will be 1.29.1. Previously, the commit hash was included in the custom version. This is replaced with a build date corresponding to the newest git commit, unless the SOURCE_DATE_EPOCH environment variable is defined, in which case it will be used as build date. When out of git, if no SOURCE_DATE_EPOCH is defined, it will fall back to the current date. The weird date parsing code in BtTest is gone.
Diffstat (limited to 'AT91SAM7S256/Source/BtTest.inc')
-rw-r--r--AT91SAM7S256/Source/BtTest.inc70
1 files changed, 11 insertions, 59 deletions
diff --git a/AT91SAM7S256/Source/BtTest.inc b/AT91SAM7S256/Source/BtTest.inc
index f879e20..65575af 100644
--- a/AT91SAM7S256/Source/BtTest.inc
+++ b/AT91SAM7S256/Source/BtTest.inc
@@ -2,6 +2,10 @@
//#define TESTPRG // If defined the test program will be included
+#ifndef BUILD_DATE
+# define BUILD_DATE ""
+#endif
+
#ifdef TESTPRG
#include "Test1.txt"
#include "Test2.txt"
@@ -9,69 +13,17 @@
extern void BtIo(void);
-const char BUILD_DATE[] = __DATE__;
-const char BUILD_TIME[] = __TIME__;
-
-const char MONTH[] = "JanFebMarAprMayJunJulAugSepOctNovDec";
-
void GetProtocolVersion(UBYTE *String)
{
- UWORD Tmp;
-
- Tmp = FIRMWAREVERSION & 0x00FF;
-
- if (Tmp < 100)
- {
-#ifdef CUSTOM_FIRMWAREVERSION
- int pad = (sizeof (CUSTOM_FIRMWAREVERSION) - 1) > 7 ? 1 : 1 + 7 - (sizeof (CUSTOM_FIRMWAREVERSION) - 1);
- sprintf((char*)String,"FW %*u.%02ui-%.7s", pad, (FIRMWAREVERSION >> 8) & 0x00FF,Tmp & 0x00FF, CUSTOM_FIRMWAREVERSION);
-#else
- sprintf((char*)String,"FW %3u.%02u",(FIRMWAREVERSION >> 8) & 0x00FF,Tmp & 0x00FF);
-#endif
- }
- else
- {
- sprintf((char*)String,"FW Hex %2X.%02X",(FIRMWAREVERSION >> 8) & 0x00FF,Tmp & 0x00FF);
- }
+ char Tmp[DISPLAYLINE_LENGTH + 1];
+ snprintf(Tmp, sizeof(Tmp), "%d.%d.%d", (FIRMWAREVERSION >> 8) & 0xFF, FIRMWAREVERSION & 0xFF, FIRMWAREPATCH);
+ snprintf((char*)String, DISPLAYLINE_LENGTH + 1, "FWi %*s", DISPLAYLINE_LENGTH - 4, Tmp);
}
void GetARMBuild(UBYTE *String)
{
- UWORD Tmp;
- UWORD Lng;
- char String1[4];
- char String2[4];
-
- String1[0] = BUILD_DATE[4];
- String1[1] = BUILD_DATE[5];
- String1[2] = 0;
-
- Tmp = (UWORD)atoi(String1);
- Lng = 0;
- Lng += sprintf((char*)&String[Lng],"BUILD ");
- Lng += sprintf((char*)&String[Lng],"%02u",Tmp);
-
- String1[0] = BUILD_DATE[0];
- String1[1] = BUILD_DATE[1];
- String1[2] = BUILD_DATE[2];
- String1[3] = 0;
- String2[3] = 0;
-
- Tmp = 0;
- do
- {
- String2[0] = MONTH[0 + 3 * Tmp];
- String2[1] = MONTH[1 + 3 * Tmp];
- String2[2] = MONTH[2 + 3 * Tmp];
- Tmp++;
- }
- while ((Tmp < 12) && (strcmp(String1,String2) != 0));
-
- Lng += sprintf((char*)&String[Lng],"%02u",Tmp);
- Lng += sprintf((char*)&String[Lng],"%c%c",BUILD_DATE[9],BUILD_DATE[10]);
- Lng += sprintf((char*)&String[Lng],"%c%c",BUILD_TIME[0],BUILD_TIME[1]);
- Lng += sprintf((char*)&String[Lng],"%c%c",BUILD_TIME[3],BUILD_TIME[4]);
+ snprintf((char*)String, DISPLAYLINE_LENGTH + 1, "%s", BUILD_DATE);
}
@@ -261,9 +213,9 @@ UBYTE TestPrg(UBYTE Dummy)
case SYSTEM_INIT :
{
GetProtocolVersion(TxtBuffer[0]);
- GetAVRBuild(TxtBuffer[1]);
- GetBC4Build(TxtBuffer[2]);
- GetARMBuild(TxtBuffer[3]);
+ GetARMBuild(TxtBuffer[1]);
+ GetAVRBuild(TxtBuffer[2]);
+ GetBC4Build(TxtBuffer[3]);
GetBC4Address(TxtBuffer[4]);
pMapDisplay->pTextLines[TEXTLINE_3] = (UBYTE*)TxtBuffer[0];