remove duplicate code in main\ZgatewayBT.ino (#557)
* merge duplicate code into function setWorBMac * rename setWorBMac to updateWorB * add helper getDeviceByMac * change updateWorB to use helper getDeviceByMac * change isWhite to use helper getDeviceByMac * change isBlack to use helper getDeviceByMac * change isDiscovered to use helper getDeviceByMac * eliminate duplicate devices walk for isWhite, isBlack and isDiscovered check * fix a data corruption race between MQTTtoBT and discovery-functions the ***Discovery functions every time create a new device unless this device is set to white-list before. as a result of this, the devices list contains the same mac multiple times with different flags * eliminate duplicate devices walk for oneWhite check because now we have a utility function 'createOrUpdateDevice' we can globally cache this as a single flag * secure createOrUpdateDevice agains data races on multicore esp32 * fix the concept of the createOrUpdateDevice c / c++ does not allow NULL as function parameter like modern languages * use nkolban Semaphore helper class (already included and used from eos1d3/ESP32_BLE librarie) this makes the semaphore handling more cleaner and readable * merge duplicate code during createDiscovery into new helper createDiscoveryFromList * replace excessive use of ZmqttDiscovery precompiler directive in ble advertised callbacks with dummy functions for a better readability we can remove this because isDiscovered does not do a devices walk anymore * fix build errors found by travis-ci
This commit is contained in:
1 parent
0681d09b41
commit
033a583f0a
4 files changed
+190
-301
No files matched your search
@@ -55,6 +55,10 @@ struct BLEdevice{
|
||||
bool isBlkL;
|
||||
};
|
||||
|
||||
#define device_flags_isDisc 1 << 0
|
||||
#define device_flags_isWhiteL 1 << 1
|
||||
#define device_flags_isBlackL 1 << 2
|
||||
|
||||
struct decompose{
|
||||
char subject[4];
|
||||
int start;
|
||||
|
||||
Reference in new issue
Block a user