Compare commits
	
		
			3 Commits
		
	
	
		
			cd2b2ba624
			...
			e7cff6287f
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | e7cff6287f | ||
|  | 7e58804af9 | ||
|  | 4f265e4c79 | 
							
								
								
									
										25
									
								
								src/app/NonBlockingDelay.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								src/app/NonBlockingDelay.cpp
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,25 @@ | |||||||
|  | /**
 | ||||||
|  |  * Author : Anatole SCHRAMM-HENRY | ||||||
|  |  * Created on : 03/04/2022 | ||||||
|  |  * Licence : MIT | ||||||
|  |  *  | ||||||
|  |  * Dead simple object implementing a non blocking delay using the Arduino framework. | ||||||
|  |  */ | ||||||
|  | #include "NonBlockingDelay.h" | ||||||
|  | 
 | ||||||
|  | NonBlockingDelay::NonBlockingDelay(const unsigned long delay, unsigned long tickReference) : _delay(delay), _tickReference(tickReference){} | ||||||
|  | 
 | ||||||
|  | void NonBlockingDelay::reset() | ||||||
|  | { | ||||||
|  |     _tickReference = millis(); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | NonBlockingDelay::operator bool() | ||||||
|  | { | ||||||
|  |     bool isTimeElapsed(millis() - _tickReference > _delay); | ||||||
|  | 
 | ||||||
|  |     if(isTimeElapsed) | ||||||
|  |         reset(); | ||||||
|  | 
 | ||||||
|  |     return isTimeElapsed; | ||||||
|  | } | ||||||
							
								
								
									
										27
									
								
								src/app/NonBlockingDelay.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								src/app/NonBlockingDelay.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,27 @@ | |||||||
|  | /**
 | ||||||
|  |  * Author : Anatole SCHRAMM-HENRY | ||||||
|  |  * Created on : 03/04/2022 | ||||||
|  |  * Licence : MIT | ||||||
|  |  *  | ||||||
|  |  * Dead simple object implementing a non blocking delay using the Arduino framework. | ||||||
|  |  */ | ||||||
|  | #ifndef NONBLOCKINGDELAY_H | ||||||
|  | #define NONBLOCKINGDELAY_H | ||||||
|  | 
 | ||||||
|  | #include <Arduino.h> | ||||||
|  | 
 | ||||||
|  | class NonBlockingDelay | ||||||
|  | { | ||||||
|  |     public: | ||||||
|  |         NonBlockingDelay(const unsigned long delay, unsigned long tickReference = millis()); | ||||||
|  |          | ||||||
|  |         // Manually reset the internal tick reference
 | ||||||
|  |         void reset(); | ||||||
|  |         operator bool(); | ||||||
|  |     protected: | ||||||
|  |     private: | ||||||
|  |         const unsigned long _delay; | ||||||
|  |         unsigned long _tickReference; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | #endif //NONBLOCKINGDELAY_H
 | ||||||
| @ -1,3 +1,10 @@ | |||||||
|  | /**
 | ||||||
|  |  * Author : Anatole SCHRAMM-HENRY | ||||||
|  |  * Created on : 24/02/2019 | ||||||
|  |  * Licence : MIT | ||||||
|  |  *  | ||||||
|  |  * Dead simple object implementing a non blocking delay using the Arduino framework. | ||||||
|  |  */ | ||||||
| #include "definition.h"  | #include "definition.h"  | ||||||
| #include "SAB.h" | #include "SAB.h" | ||||||
| #include "views.h" | #include "views.h" | ||||||
| @ -6,13 +13,15 @@ | |||||||
| #include "CFGDictionary.h" | #include "CFGDictionary.h" | ||||||
| #include "CFGParameterValue.h" | #include "CFGParameterValue.h" | ||||||
| #include "EventHandler.h" | #include "EventHandler.h" | ||||||
|  | #include "NonBlockingDelay.h" | ||||||
| #define DEBUG | #define DEBUG | ||||||
| 
 | 
 | ||||||
| SAB sab; | SAB sab; | ||||||
| EventHandler evHan; | EventHandler evHan; | ||||||
| EventHandler::Event evt; | EventHandler::Event evt; | ||||||
| 
 | 
 | ||||||
| unsigned long currentMs = 0; | NonBlockingDelay dataRefreshNBD(1000); | ||||||
|  | 
 | ||||||
| volatile boolean ioStateChange(false); | volatile boolean ioStateChange(false); | ||||||
| View1Packet v1p = {sab.getRtcManager().getDateTime(), sab.getSdCardManager().getSize(GBYTE), sab.getPowerManager().getPowerInfo(),0, sab.getSoftVersion(), &sab}; | View1Packet v1p = {sab.getRtcManager().getDateTime(), sab.getSdCardManager().getSize(GBYTE), sab.getPowerManager().getPowerInfo(),0, sab.getSoftVersion(), &sab}; | ||||||
| ViewAPPacket vap = {sab.getConnectivityManager().softAPmacAddress(), sab.getConnectivityManager().softAPSSID(), sab.getConnectivityManager().softAPIP(), sab.getConnectivityManager().softAPgetStationNum(), sab.getConnectivityManager().isAPEnabled()}; | ViewAPPacket vap = {sab.getConnectivityManager().softAPmacAddress(), sab.getConnectivityManager().softAPSSID(), sab.getConnectivityManager().softAPIP(), sab.getConnectivityManager().softAPgetStationNum(), sab.getConnectivityManager().isAPEnabled()}; | ||||||
| @ -96,9 +105,8 @@ void setup() | |||||||
| void loop()  | void loop()  | ||||||
| { | { | ||||||
|    |    | ||||||
|   if(millis() - currentMs >= 1000 || ioStateChange) |   if(dataRefreshNBD || ioStateChange) | ||||||
|   { |   { | ||||||
|     currentMs = millis(); |  | ||||||
|     v1p.dateTime = sab.getRtcManager().getDateTime(); |     v1p.dateTime = sab.getRtcManager().getDateTime(); | ||||||
|     v1p.nbViews = sab.getScreenManager().getViewCount(); |     v1p.nbViews = sab.getScreenManager().getViewCount(); | ||||||
|     vap.ipAddr = sab.getConnectivityManager().softAPIP(); |     vap.ipAddr = sab.getConnectivityManager().softAPIP(); | ||||||
|  | |||||||
| @ -38,6 +38,7 @@ | |||||||
| //#define SOFT_VERSION "1.6.6" //Removed useless INIT state that was like the LINE_BREAK state and added '-' as an allowed PARAM and VALUE character
 | //#define SOFT_VERSION "1.6.6" //Removed useless INIT state that was like the LINE_BREAK state and added '-' as an allowed PARAM and VALUE character
 | ||||||
| //#define SOFT_VERSION "1.6.7" //Changed the way we store and return the 3 letter month abbreviation
 | //#define SOFT_VERSION "1.6.7" //Changed the way we store and return the 3 letter month abbreviation
 | ||||||
| //#define SOFT_VERSION "1.6.8" //Finally fixed the random crash issue concerning the servers :)
 | //#define SOFT_VERSION "1.6.8" //Finally fixed the random crash issue concerning the servers :)
 | ||||||
| #define SOFT_VERSION "1.6.9" //Updated the whole app the work with the esp8266 core 3.0.2 version, removed a bunch of warnings, corrected an array index overflow in apiTesterApi function
 | //#define SOFT_VERSION "1.6.9" //Updated the whole app to work with the esp8266 core 3.0.2 version, removed a bunch of warnings, corrected an array index overflow in apiTesterApi function
 | ||||||
|  | #define SOFT_VERSION "1.6.10" //Introduced new class : NonBlockingDelay which is used in the app.ino file.
 | ||||||
| 
 | 
 | ||||||
| #endif //VERSIONS_H
 | #endif //VERSIONS_H
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user