| 
														
															@@ -1,7 +1,7 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 // 1-channel LoRa Gateway for ESP8266 
														 | 
														
														 | 
														
															 // 1-channel LoRa Gateway for ESP8266 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 // Copyright (c) 2016, 2017, 2018, 2019 Maarten Westenberg version for ESP8266 
														 | 
														
														 | 
														
															 // Copyright (c) 2016, 2017, 2018, 2019 Maarten Westenberg version for ESP8266 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-// Version 6.1.1		 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-// Date: 2019-11-06	 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+// Version 6.1.3		 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+// Date: 2019-11-20	 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 // 
														 | 
														
														 | 
														
															 // 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 // 	based on work done by Thomas Telkamp for Raspberry PI 1ch gateway 
														 | 
														
														 | 
														
															 // 	based on work done by Thomas Telkamp for Raspberry PI 1ch gateway 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 //	and many others. 
														 | 
														
														 | 
														
															 //	and many others. 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -51,6 +51,7 @@ int initConfig(struct espGwayConfig *c) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	(*c).hop = false; 
														 | 
														
														 | 
														
															 	(*c).hop = false; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	(*c).expert = false; 
														 | 
														
														 | 
														
															 	(*c).expert = false; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	(*c).txDelay = 0;					// First Value without saving is 0; 
														 | 
														
														 | 
														
															 	(*c).txDelay = 0;					// First Value without saving is 0; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	(*c).trusted = 1; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -211,6 +212,10 @@ int readConfig(const char *fn, struct espGwayConfig *c) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			id_print(id, val); 
														 | 
														
														 | 
														
															 			id_print(id, val); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			(*c).txDelay = (int32_t) val.toInt(); 
														 | 
														
														 | 
														
															 			(*c).txDelay = (int32_t) val.toInt(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		} 
														 | 
														
														 | 
														
															 		} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		else if (id == "TRUSTED") {								// TRUSTED setting 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			id_print(id, val); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			(*c).trusted= (int32_t) val.toInt(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		else { 
														 | 
														
														 | 
														
															 		else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 #if _DUSB>=1 
														 | 
														
														 | 
														
															 #if _DUSB>=1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			Serial.print(F("readConfig:: tries++")); 
														 | 
														
														 | 
														
															 			Serial.print(F("readConfig:: tries++")); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -266,6 +271,9 @@ int writeGwayCfg(const char *fn) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 // ---------------------------------------------------------------------------- 
														 | 
														
														 | 
														
															 // ---------------------------------------------------------------------------- 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 int writeConfig(const char *fn, struct espGwayConfig *c) { 
														 | 
														
														 | 
														
															 int writeConfig(const char *fn, struct espGwayConfig *c) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	// Assuming the cibfug file is the first we write... 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	// If it is not there we should format first. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	// NOTE: Do not format for other files! 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	if (!SPIFFS.exists(fn)) { 
														 | 
														
														 | 
														
															 	if (!SPIFFS.exists(fn)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		Serial.print("WARNING:: writeConfig, file not exists, formatting "); 
														 | 
														
														 | 
														
															 		Serial.print("WARNING:: writeConfig, file not exists, formatting "); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		SPIFFS.format(); 
														 | 
														
														 | 
														
															 		SPIFFS.format(); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -274,7 +282,7 @@ int writeConfig(const char *fn, struct espGwayConfig *c) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	} 
														 | 
														
														 | 
														
															 	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	File f = SPIFFS.open(fn, "w"); 
														 | 
														
														 | 
														
															 	File f = SPIFFS.open(fn, "w"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	if (!f) { 
														 | 
														
														 | 
														
															 	if (!f) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		Serial.print("ERROR:: writeConfig, open file="); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		Serial.print("writeConfig: ERROR open file="); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		Serial.print(fn); 
														 | 
														
														 | 
														
															 		Serial.print(fn); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		Serial.println(); 
														 | 
														
														 | 
														
															 		Serial.println(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		return(-1); 
														 | 
														
														 | 
														
															 		return(-1); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -303,6 +311,7 @@ int writeConfig(const char *fn, struct espGwayConfig *c) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	f.print("FILENO");  f.print('='); f.print((*c).logFileNo); f.print('\n'); 
														 | 
														
														 | 
														
															 	f.print("FILENO");  f.print('='); f.print((*c).logFileNo); f.print('\n'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	f.print("FILENUM");  f.print('='); f.print((*c).logFileNum); f.print('\n'); 
														 | 
														
														 | 
														
															 	f.print("FILENUM");  f.print('='); f.print((*c).logFileNum); f.print('\n'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	f.print("DELAY");  f.print('='); f.print((*c).txDelay); f.print('\n'); 
														 | 
														
														 | 
														
															 	f.print("DELAY");  f.print('='); f.print((*c).txDelay); f.print('\n'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	f.print("TRUSTED");  f.print('='); f.print((*c).trusted); f.print('\n'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	f.print("EXPERT");  f.print('='); f.print((*c).expert); f.print('\n'); 
														 | 
														
														 | 
														
															 	f.print("EXPERT");  f.print('='); f.print((*c).expert); f.print('\n'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	 
														 | 
														
														 | 
														
															 	 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	f.close(); 
														 | 
														
														 | 
														
															 	f.close(); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -446,12 +455,89 @@ void printLog() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 #if _SEENMAX>0 
														 | 
														
														 | 
														
															 #if _SEENMAX>0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 // ---------------------------------------------------------------------------- 
														 | 
														
														 | 
														
															 // ---------------------------------------------------------------------------- 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-// writeSeen 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-// - Once every few messages, update the SPIFFS file and write the array. 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+// readSeen 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+// This function read the stored information from writeSeen. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 // 
														 | 
														
														 | 
														
															 // 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+// Parameters: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+// Return: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 // ---------------------------------------------------------------------------- 
														 | 
														
														 | 
														
															 // ---------------------------------------------------------------------------- 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-int writeSeen(struct nodeSeen *listSeen) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+int readSeen(const char *fn, struct nodeSeen *listSeen) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	int i; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	if (!SPIFFS.exists(fn)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+#if _DUSB>=1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		Serial.print("WARNING:: readSeen, history file not exists "); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+#endif 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		initSeen(listSeen);		// XXX make all initial declarations here if config vars need to have a value 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		Serial.println(fn); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		return(-1); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	File f = SPIFFS.open(fn, "r"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	if (!f) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		Serial.print("readConfig:: ERROR open file="); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		Serial.print(fn); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		Serial.println(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		return(-1); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	for (i=0; i<_SEENMAX; i++) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		String val; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		if (!f.available()) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+#if _DUSB>=1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			Serial.println(F("readSeen:: No more info left in file")); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+#endif 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		val=f.readStringUntil('\t'); listSeen[i].timSeen = (uint32_t) val.toInt(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		val=f.readStringUntil('\t');  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					listSeen[i].idSeen = (uint32_t) val.toInt(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					//listSeen[i].idSeen = strtoul(val, val.length()+1, 10); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		val=f.readStringUntil('\n'); listSeen[i].sfSeen = (uint8_t) val.toInt(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	f.close(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+#if _DUSB>=1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	printSeen(listSeen); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+#endif 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+// ---------------------------------------------------------------------------- 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+// writeSeen 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+// Once every few messages, update the SPIFFS file and write the array. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+// Parameters: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+// - fn contains the filename to write 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+// - listSeen contains the _SEENMAX array of list structures  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+// Return values: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+// - return 1 on success 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+// ---------------------------------------------------------------------------- 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+int writeSeen(const char *fn, struct nodeSeen *listSeen) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	int i; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	if (!SPIFFS.exists(fn)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+#if _DUSB>=1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		Serial.print("WARNING:: writeSeen, file not exists, formatting "); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+#endif 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		initSeen(listSeen);		// XXX make all initial declarations here if config vars need to have a value 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		Serial.println(fn); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	File f = SPIFFS.open(fn, "w"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	if (!f) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		Serial.print("writeConfig:: ERROR open file="); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		Serial.print(fn); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		Serial.println(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		return(-1); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	for (i=0; i<_SEENMAX; i++) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			unsigned long timSeen; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			f.print(listSeen[i].timSeen);		f.print('\t'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			// Typecast to long to avoid errors in unsigned conversion. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			f.print((long) listSeen[i].idSeen);		f.print('\t'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			//f.print(listSeen[i].datSeen);		f.print('\t'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			//f.print(listSeen[i].chanSeen);	f.print('\t'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			//f.print(listSeen[i].rssiSeen);	f.print('\t'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			f.print(listSeen[i].sfSeen);		f.print('\n');		 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	f.close(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	return(1); 
														 | 
														
														 | 
														
															 	return(1); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -460,16 +546,10 @@ int writeSeen(struct nodeSeen *listSeen) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 // - Once every few messages, update the SPIFFS file and write the array. 
														 | 
														
														 | 
														
															 // - Once every few messages, update the SPIFFS file and write the array. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 // ---------------------------------------------------------------------------- 
														 | 
														
														 | 
														
															 // ---------------------------------------------------------------------------- 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 int printSeen(struct nodeSeen *listSeen) { 
														 | 
														
														 | 
														
															 int printSeen(struct nodeSeen *listSeen) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-#if _DUSB>=1 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	if (( debug>=0 ) && ( pdebug & P_MAIN )) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		Serial.print(F("printSeen:: print list")); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		Serial.println(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-#endif 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     int i; 
														 | 
														
														 | 
														
															     int i; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 #if _DUSB>=1 
														 | 
														
														 | 
														
															 #if _DUSB>=1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	if (( debug>=0 ) && ( pdebug & P_MAIN )) { 
														 | 
														
														 | 
														
															 	if (( debug>=0 ) && ( pdebug & P_MAIN )) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		Serial.println(F("printSeen:: ")); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		for (i=0; i<_SEENMAX; i++) { 
														 | 
														
														 | 
														
															 		for (i=0; i<_SEENMAX; i++) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			if (listSeen[i].idSeen != 0) { 
														 | 
														
														 | 
														
															 			if (listSeen[i].idSeen != 0) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				String response; 
														 | 
														
														 | 
														
															 				String response; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -504,18 +584,16 @@ int addSeen(struct nodeSeen *listSeen, uint32_t idSeen, uint8_t sfSeen, unsigned 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	 
														 | 
														
														 | 
														
															 	 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 //	( message[4]<<24 | message[3]<<16 | message[2]<<8 | message[1] ) 
														 | 
														
														 | 
														
															 //	( message[4]<<24 | message[3]<<16 | message[2]<<8 | message[1] ) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	 
														 | 
														
														 | 
														
															 	 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-#if _DUSB>=1 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+#if _DUSB>=2 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	if (( debug>=1 ) && ( pdebug & P_MAIN )) { 
														 | 
														
														 | 
														
															 	if (( debug>=1 ) && ( pdebug & P_MAIN )) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		Serial.print(F("addSeen:: ")); 
														 | 
														
														 | 
														
															 		Serial.print(F("addSeen:: ")); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 //		Serial.print(F(" listSeen[0]=")); 
														 | 
														
														 | 
														
															 //		Serial.print(F(" listSeen[0]=")); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 //		Serial.print(listSeen[0].idSeen,HEX); 
														 | 
														
														 | 
														
															 //		Serial.print(listSeen[0].idSeen,HEX); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 //		Serial.print(F(", ")); 
														 | 
														
														 | 
														
															 //		Serial.print(F(", ")); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		Serial.print(F("tim=")); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		Serial.print(timSeen); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		Serial.print(F(", idSeen=")); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		Serial.print(idSeen,HEX); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		Serial.print(F(", sfSeen=")); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		Serial.print(sfSeen,HEX); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		Serial.print(F("tim="));		Serial.print(timSeen); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		Serial.print(F(", idSeen="));	Serial.print(idSeen,HEX); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		Serial.print(F(", sfSeen="));	Serial.print(sfSeen,HEX); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		Serial.println(); 
														 | 
														
														 | 
														
															 		Serial.println(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	} 
														 | 
														
														 | 
														
															 	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 #endif 
														 | 
														
														 | 
														
															 #endif 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -524,32 +602,37 @@ int addSeen(struct nodeSeen *listSeen, uint32_t idSeen, uint8_t sfSeen, unsigned 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		if ((listSeen[i].idSeen==idSeen) || 
														 | 
														
														 | 
														
															 		if ((listSeen[i].idSeen==idSeen) || 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			(listSeen[i].idSeen==0)) 
														 | 
														
														 | 
														
															 			(listSeen[i].idSeen==0)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		{ 
														 | 
														
														 | 
														
															 		{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+#if _DUSB>=2 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			if (( debug>=0 ) && ( pdebug & P_MAIN )) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+				Serial.print(F("addSeen:: index=")); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+				Serial.print(i); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+#endif 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			listSeen[i].idSeen = idSeen; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			listSeen[i].sfSeen |= sfSeen; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			listSeen[i].timSeen = timSeen; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			writeSeen(_SEENFILE, listSeen); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			break; 
														 | 
														
														 | 
														
															 			break; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		} 
														 | 
														
														 | 
														
															 		} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	} 
														 | 
														
														 | 
														
															 	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	 
														 | 
														
														 | 
														
															 	 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	if (i>=_SEENMAX) { 
														 | 
														
														 | 
														
															 	if (i>=_SEENMAX) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 #if _DUSB>=1 
														 | 
														
														 | 
														
															 #if _DUSB>=1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	if (( debug>=0 ) && ( pdebug & P_MAIN )) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		Serial.print(F("addSeen:: exit=0, index=")); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		Serial.println(i); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		if (( debug>=0 ) && ( pdebug & P_MAIN )) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			Serial.print(F("addSeen:: exit=0, index=")); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			Serial.println(i); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 #endif 
														 | 
														
														 | 
														
															 #endif 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		return(0); 
														 | 
														
														 | 
														
															 		return(0); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	} 
														 | 
														
														 | 
														
															 	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-#if _DUSB>=2 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	if (( debug>=0 ) && ( pdebug & P_MAIN )) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		Serial.print(F("addSeen:: index=")); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		Serial.print(i); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-#endif 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	listSeen[i].idSeen = idSeen; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	listSeen[i].sfSeen |= sfSeen; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	listSeen[i].timSeen = timSeen; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	 
														 | 
														
														 | 
														
															 	 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	return(1); 
														 | 
														
														 | 
														
															 	return(1); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 // ---------------------------------------------------------------------------- 
														 | 
														
														 | 
														
															 // ---------------------------------------------------------------------------- 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 // initSeen 
														 | 
														
														 | 
														
															 // initSeen 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 // Init the lisrScreen array 
														 | 
														
														 | 
														
															 // Init the lisrScreen array 
														 |