From e12f345baefd1741410609dbc0b0359a9fd62fa1 Mon Sep 17 00:00:00 2001 From: Thomas Watson Date: Mon, 5 Aug 2024 11:04:32 -0500 Subject: [PATCH] AP_DroneCAN: DNA_Server: make lower level database tasks private All the higher level database operations need to be locked for the whole duration of the operation, so nobody should be using the lower-level tasks or raw read/write functions. We can also remove the locks from them. The database can now safely be used by multiple servers. --- libraries/AP_DroneCAN/AP_DroneCAN_DNA_Server.cpp | 2 -- libraries/AP_DroneCAN/AP_DroneCAN_DNA_Server.h | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/libraries/AP_DroneCAN/AP_DroneCAN_DNA_Server.cpp b/libraries/AP_DroneCAN/AP_DroneCAN_DNA_Server.cpp index 0564248d87..c36693ef43 100644 --- a/libraries/AP_DroneCAN/AP_DroneCAN_DNA_Server.cpp +++ b/libraries/AP_DroneCAN/AP_DroneCAN_DNA_Server.cpp @@ -74,7 +74,6 @@ void AP_DroneCAN_DNA_Server::Database::readNodeData(NodeData &data, uint8_t node return; } - WITH_SEMAPHORE(sem); storage->read_block(&data, NODEDATA_LOC(node_id), sizeof(struct NodeData)); } @@ -85,7 +84,6 @@ void AP_DroneCAN_DNA_Server::Database::writeNodeData(const NodeData &data, uint8 return; } - WITH_SEMAPHORE(sem); storage->write_block(NODEDATA_LOC(node_id), &data, sizeof(struct NodeData)); } diff --git a/libraries/AP_DroneCAN/AP_DroneCAN_DNA_Server.h b/libraries/AP_DroneCAN/AP_DroneCAN_DNA_Server.h index 6b24c3d673..b6223cddf3 100644 --- a/libraries/AP_DroneCAN/AP_DroneCAN_DNA_Server.h +++ b/libraries/AP_DroneCAN/AP_DroneCAN_DNA_Server.h @@ -47,6 +47,7 @@ class AP_DroneCAN_DNA_Server // handle the allocation message. returns the new node ID. uint8_t handleAllocation(uint8_t node_id, const uint8_t unique_id[]); + private: //Generates 6Byte long hash from the specified unique_id void getHash(NodeData &node_data, const uint8_t unique_id[], uint8_t size) const; @@ -62,7 +63,6 @@ class AP_DroneCAN_DNA_Server //Finds next available free Node, starting from preferred NodeID uint8_t findFreeNodeID(uint8_t preferred); - private: //Look in the storage and check if there's a valid Server Record there bool isValidNodeDataAvailable(uint8_t node_id);