3838//
3939//
4040
41- // Release version and date
42- // To fit in 16bit for lora version number we have some limits here:
43- // VERSION_MAJOR = 0..15, VERSION_MINOR = 0..255, VERSION_PATCH = 0..15.
44- #define VERSION_MAJOR 1
45- #define VERSION_MINOR 12
46- #define VERSION_PATCH 0
47- // Date is in format "YYYY-MM-DD".
48- #define VERSION_DATE " 2020-01-18"
49-
5041// Fix Parameters
5142// Values for Serial_Print_Mode to configure Serial (USB) output mode. DON'T TOUCH!
5243#define Serial_None 0 // No Serial output
8071
8172// Includes
8273// ====================================================================================================================================
74+ #include " version.h"
8375#include " userdefines.h"
8476#include < Arduino.h>
8577#include < U8x8lib.h>
@@ -258,7 +250,6 @@ const char *Serial_Logging_Body = "%10d %15d %10f %9f %9d %8d %9d %9f %9f";
258250const char *Serial_One_Minute_Log_Header = " %4s %10s %29s" ;
259251const char *Serial_One_Minute_Log_Body = " %4d %10d %29d" ;
260252const char *Serial_Logging_Name = " Simple Multi-Geiger" ;
261- char revString[25 ];
262253unsigned int lora_software_version;
263254const char *dashes = " -------------------------------------------------------------------------------------------------" ;
264255int Serial_Print_Mode = SERIAL_DEBUG;
@@ -419,13 +410,12 @@ void setup() {
419410 // just for fun
420411 log (INFO, " Let's go!" );
421412
422- // build revString
423- sprintf (revString, " V%d.%d.%d %s" , VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH, VERSION_DATE);
424-
425413 #if SEND2LORA
426- // build LoRa software version
427- lora_software_version = (VERSION_MAJOR << 12 ) + (VERSION_MINOR << 4 ) + VERSION_PATCH;
414+ int major, minor, patch;
415+ sscanf (VERSION_STR, " V%d.%d.%d" , &major, &minor, &patch);
416+ lora_software_version = (major << 12 ) + (minor << 4 ) + patch;
428417 #endif
418+
429419 // Check, if we have a BME280 connected:
430420 haveBME280 = bme.begin (BME280_ADDRESS);
431421 if (haveBME280 == 0 ) {
@@ -460,7 +450,7 @@ void setup() {
460450
461451 if (Serial_Print_Mode == Serial_Logging) {
462452 log (INFO, dashes);
463- log (INFO, " %s, Version %s" , Serial_Logging_Name, revString );
453+ log (INFO, " %s, Version %s" , Serial_Logging_Name, VERSION_STR );
464454 log (INFO, dashes);
465455 log (INFO, Serial_Logging_Header,
466456 " GMC_counts" , " Time_difference" , " Count_Rate" , " Dose_Rate" , " HV Pulses" , " Accu_GMC" , " Accu_Time" , " Accu_Rate" , " Accu_Dose" );
@@ -471,7 +461,7 @@ void setup() {
471461
472462 if (Serial_Print_Mode == Serial_One_Minute_Log) {
473463 log (INFO, dashes);
474- log (INFO, " %s, Version %s" , Serial_Logging_Name, revString );
464+ log (INFO, " %s, Version %s" , Serial_Logging_Name, VERSION_STR );
475465 log (INFO, dashes);
476466 log (INFO, Serial_One_Minute_Log_Header,
477467 " Time" , " Count_Rate" , " Counts" );
@@ -482,7 +472,7 @@ void setup() {
482472
483473 if (Serial_Print_Mode == Serial_Statistics_Log) {
484474 log (INFO, dashes);
485- log (INFO, " %s, Version %s" , Serial_Logging_Name, revString );
475+ log (INFO, " %s, Version %s" , Serial_Logging_Name, VERSION_STR );
486476 log (INFO, dashes);
487477 log (INFO, " Time between two impacts" );
488478 log (INFO, " [usec]" );
@@ -762,13 +752,13 @@ void DisplayStartscreen(void) {
762752 u8x8.drawString (0 , 2 , " Geiger-" );
763753 u8x8.drawString (0 , 3 , " Counter" );
764754 u8x8.drawString (0 , 4 , " Version:" );
765- sprintf (line, " %d.%d.%d " , VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH);
755+ snprintf (line, 9 , " %s " , VERSION_STR); // 8 chars + \0 termination
766756 u8x8.drawString (0 , 5 , line);
767757 #else
768758 u8x8.setFont (u8x8_font_7x14_1x2_f);
769759 u8x8.println (" Geiger-Counter" );
770760 u8x8.println (" ==============" );
771- sprintf (line, " V%d.%d.%d " , VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH);
761+ snprintf (line, 15 , " %s " , VERSION_STR); // 14 chars + \0 termination
772762 u8x8.setCursor (7 - strlen (line) / 2 , 4 );
773763 u8x8.print (line);
774764 u8x8.setCursor (1 , 6 );
@@ -905,7 +895,7 @@ String buildhttpHeaderandBodySBM(HTTPClient *head, unsigned int hvpulses, unsign
905895 tubetype = tubetype.substring (10 );
906896 String valuetype = (addname ? tubetype + " _" : " " );
907897 valuetype += " counts_per_minute" ;
908- String body = " {\" software_version\" :\" " + String (revString ) + " \" ,\" sensordatavalues\" :[" ;
898+ String body = " {\" software_version\" :\" " + String (VERSION_STR ) + " \" ,\" sensordatavalues\" :[" ;
909899 body += " {\" value_type\" :\" " + valuetype + " \" ,\" value\" :\" " + current_cpm + " \" }" ;
910900 body += " ,{\" value_type\" :\" hv_pulses\" ,\" value\" :\" " + String (hvpulses) + " \" }" ;
911901 body += " ,{\" value_type\" :\" counts\" ,\" value\" :\" " + String (GMC_counts_2send) + " \" }" ;
@@ -930,7 +920,7 @@ String buildhttpHeaderandBodyBME(HTTPClient *head, boolean addname, bool debug)
930920 humi += " humidity" ;
931921 String press = (addname ? " BME280_" : " " );
932922 press += " pressure" ;
933- String body = " {\" software_version\" :\" " + String (revString ) + " \" ,\" sensordatavalues\" :[\
923+ String body = " {\" software_version\" :\" " + String (VERSION_STR ) + " \" ,\" sensordatavalues\" :[\
934924{\" value_type\" :\" " + temp + " \" ,\" value\" :\" " + String (bme_temperature, 2 ) + " \" },\
935925{\" value_type\" :\" " + humi + " \" ,\" value\" :\" " + String (bme_humidity, 2 ) + " \" },\
936926{\" value_type\" :\" " + press + " \" ,\" value\" :\" " + String (bme_pressure, 2 ) + " \" }\
0 commit comments