Merge branch 'main' into feat/updated-zwave-net
Some checks failed
Build and Publish / Push Yale Access Backend Docker Image (pull_request) Has been cancelled
Build and Publish / Push Yale Access Frontend Docker Image (pull_request) Has been cancelled
Build and Publish / Build Yale Access Frontend (pull_request) Has been cancelled
Build and Publish / Build Yale Access Backend (pull_request) Has been cancelled

This commit is contained in:
2025-07-18 19:15:05 +10:00

View File

@@ -56,23 +56,33 @@ namespace YaleAccess.Services
// Flag to indicate if the driver is ready to use // Flag to indicate if the driver is ready to use
bool isReady = false; bool isReady = false;
// Message and flag to indicate if there was an error starting the driver
string? message = null;
// Subscribe to the driver ready event // Subscribe to the driver ready event
driver.DriverReady += () => driver.DriverReady += () =>
{ {
isReady = true; isReady = true;
}; };
driver.StartupErrorEvent += (message) => driver.StartupErrorEvent += (error) =>
{ {
throw new Exception(message); message = error;
}; };
// Wait for the driver to be ready // Wait for the driver to be ready
while (!isReady) while (!isReady && message == null)
{ {
// Sleep for a short time to avoid busy waiting
Thread.Sleep(100); Thread.Sleep(100);
} }
// If there was an error starting the driver, throw an exception
if (message != null)
{
throw new Exception($"Failed to start the driver. Error message: {message}");
}
// Get the lock node from the driver // Get the lock node from the driver
lockNode = driver.Controller.Nodes.Get(devicesOptions.YaleLockNodeId); lockNode = driver.Controller.Nodes.Get(devicesOptions.YaleLockNodeId);
} }