16#include <peak/generic/peak_t_callback_manager.hpp>
57 const std::shared_ptr<FirmwareUpdateInformation>& updateInformation, uint32_t estimatedDuration_ms)>;
62 FirmwareUpdateStep updateStep, uint32_t estimatedDuration_ms,
const std::string& description)>;
239 uint32_t estimatedDuration_ms,
const char* description,
size_t descriptionSize,
void* context);
240 static void PEAK_CALL_CONV FirmwareUpdateStepProgressChangedCallbackCWrapper(
242 static void PEAK_CALL_CONV FirmwareUpdateStepFinishedCallbackCWrapper(
244 static void PEAK_CALL_CONV FirmwareUpdateFinishedCallbackCWrapper(
void* context);
246 const char* errorDescription,
size_t errorDescriptionSize,
void* context);
250 std::unique_ptr<TCallbackManager<PEAK_FIRMWARE_UPDATE_STARTED_CALLBACK_HANDLE, UpdateStartedCallback>>
251 m_updateStartedCallbackManager;
252 std::unique_ptr<TCallbackManager<PEAK_FIRMWARE_UPDATE_STEP_STARTED_CALLBACK_HANDLE, UpdateStepStartedCallback>>
253 m_updateStepStartedCallbackManager;
256 m_updateStepProgressChangedCallbackManager;
257 std::unique_ptr<TCallbackManager<PEAK_FIRMWARE_UPDATE_STEP_FINISHED_CALLBACK_HANDLE, UpdateStepFinishedCallback>>
258 m_updateStepFinishedCallbackManager;
259 std::unique_ptr<TCallbackManager<PEAK_FIRMWARE_UPDATE_FINISHED_CALLBACK_HANDLE, UpdateFinishedCallback>>
260 m_updateFinishedCallbackManager;
261 std::unique_ptr<TCallbackManager<PEAK_FIRMWARE_UPDATE_FAILED_CALLBACK_HANDLE, UpdateFailedCallback>>
262 m_updateFailedCallbackManager;
278 std::string entryString;
282 entryString =
"CheckPreconditions";
286 entryString =
"AcquireUpdateData";
290 entryString =
"WriteFeature";
294 entryString =
"ExecuteFeature";
298 entryString =
"AssertFeature";
302 entryString =
"UploadFile";
306 entryString =
"ResetDevice";
316 firmwareUpdateProgressObserverHandle);
318 , m_updateStartedCallbackManager()
319 , m_updateStepStartedCallbackManager()
320 , m_updateStepProgressChangedCallbackManager()
321 , m_updateStepFinishedCallbackManager()
322 , m_updateFinishedCallbackManager()
323 , m_updateFailedCallbackManager()
325 m_updateStartedCallbackManager = std::make_unique<
326 TCallbackManager<PEAK_FIRMWARE_UPDATE_STARTED_CALLBACK_HANDLE, UpdateStartedCallback>>(
327 [&](
void* callbackContext) {
328 return QueryNumericFromCInterfaceFunction<PEAK_FIRMWARE_UPDATE_STARTED_CALLBACK_HANDLE>(
331 m_backendHandle, FirmwareUpdateStartedCallbackCWrapper, callbackContext,
332 firmwareUpdateStartedCallbackHandle);
336 CallAndCheckCInterfaceFunction([&] {
338 m_backendHandle, callbackHandle);
341 m_updateStepStartedCallbackManager = std::make_unique<
342 TCallbackManager<PEAK_FIRMWARE_UPDATE_STEP_STARTED_CALLBACK_HANDLE, UpdateStepStartedCallback>>(
343 [&](
void* callbackContext) {
344 return QueryNumericFromCInterfaceFunction<PEAK_FIRMWARE_UPDATE_STEP_STARTED_CALLBACK_HANDLE>(
348 FirmwareUpdateStepStartedCallbackCWrapper, callbackContext,
349 firmwareUpdateStepStartedCallbackHandle);
353 CallAndCheckCInterfaceFunction([&] {
355 m_backendHandle, callbackHandle);
358 m_updateStepProgressChangedCallbackManager = std::make_unique<TCallbackManager<
360 [&](
void* callbackContext) {
361 return QueryNumericFromCInterfaceFunction<PEAK_FIRMWARE_UPDATE_STEP_PROGRESS_CHANGED_CALLBACK_HANDLE>(
363 firmwareUpdateStepProgressChangedCallbackHandle) {
366 m_backendHandle, FirmwareUpdateStepProgressChangedCallbackCWrapper, callbackContext,
367 firmwareUpdateStepProgressChangedCallbackHandle);
371 CallAndCheckCInterfaceFunction([&] {
374 m_backendHandle, callbackHandle);
377 m_updateStepFinishedCallbackManager = std::make_unique<
378 TCallbackManager<PEAK_FIRMWARE_UPDATE_STEP_FINISHED_CALLBACK_HANDLE, UpdateStepFinishedCallback>>(
379 [&](
void* callbackContext) {
380 return QueryNumericFromCInterfaceFunction<PEAK_FIRMWARE_UPDATE_STEP_FINISHED_CALLBACK_HANDLE>(
384 FirmwareUpdateStepFinishedCallbackCWrapper, callbackContext,
385 firmwareUpdateStepFinishedCallbackHandle);
389 CallAndCheckCInterfaceFunction([&] {
391 m_backendHandle, callbackHandle);
394 m_updateFinishedCallbackManager = std::make_unique<
395 TCallbackManager<PEAK_FIRMWARE_UPDATE_FINISHED_CALLBACK_HANDLE, UpdateFinishedCallback>>(
396 [&](
void* callbackContext) {
397 return QueryNumericFromCInterfaceFunction<PEAK_FIRMWARE_UPDATE_FINISHED_CALLBACK_HANDLE>(
400 m_backendHandle, FirmwareUpdateFinishedCallbackCWrapper, callbackContext,
401 firmwareUpdateFinishedCallbackHandle);
405 CallAndCheckCInterfaceFunction([&] {
407 m_backendHandle, callbackHandle);
410 m_updateFailedCallbackManager =
411 std::make_unique<TCallbackManager<PEAK_FIRMWARE_UPDATE_FAILED_CALLBACK_HANDLE, UpdateFailedCallback>>(
412 [&](
void* callbackContext) {
413 return QueryNumericFromCInterfaceFunction<PEAK_FIRMWARE_UPDATE_FAILED_CALLBACK_HANDLE>(
416 m_backendHandle, FirmwareUpdateFailedCallbackCWrapper, callbackContext,
417 firmwareUpdateFailedCallbackHandle);
421 CallAndCheckCInterfaceFunction([&] {
423 m_backendHandle, callbackHandle);
432 m_updateStartedCallbackManager->UnregisterAllCallbacks();
433 m_updateStepStartedCallbackManager->UnregisterAllCallbacks();
434 m_updateStepProgressChangedCallbackManager->UnregisterAllCallbacks();
435 m_updateStepFinishedCallbackManager->UnregisterAllCallbacks();
436 m_updateFinishedCallbackManager->UnregisterAllCallbacks();
437 m_updateFailedCallbackManager->UnregisterAllCallbacks();
454 m_updateStartedCallbackManager->UnregisterCallback(
462 m_updateStepStartedCallbackManager->RegisterCallback(callback));
468 m_updateStepStartedCallbackManager->UnregisterCallback(
477 m_updateStepProgressChangedCallbackManager->RegisterCallback(callback));
483 m_updateStepProgressChangedCallbackManager->UnregisterCallback(
491 m_updateStepFinishedCallbackManager->RegisterCallback(callback));
497 m_updateStepFinishedCallbackManager->UnregisterCallback(
510 m_updateFinishedCallbackManager->UnregisterCallback(
523 m_updateFailedCallbackManager->UnregisterCallback(
527inline void PEAK_CALL_CONV FirmwareUpdateProgressObserver::FirmwareUpdateStartedCallbackCWrapper(
532 callback->operator()(
533 std::make_shared<ClassCreator<FirmwareUpdateInformation>>(updateInformation), estimatedDuration_ms);
536inline void PEAK_CALL_CONV FirmwareUpdateProgressObserver::FirmwareUpdateStepStartedCallbackCWrapper(
538 size_t descriptionSize,
void* context)
542 callback->operator()(
static_cast<FirmwareUpdateStep>(updateStep), estimatedDuration_ms,
543 std::string(description, descriptionSize - 1));
546inline void PEAK_CALL_CONV FirmwareUpdateProgressObserver::FirmwareUpdateStepProgressChangedCallbackCWrapper(
551 callback->operator()(
static_cast<FirmwareUpdateStep>(updateStep), progressPercentage);
554inline void PEAK_CALL_CONV FirmwareUpdateProgressObserver::FirmwareUpdateStepFinishedCallbackCWrapper(
562inline void PEAK_CALL_CONV FirmwareUpdateProgressObserver::FirmwareUpdateFinishedCallbackCWrapper(
void* context)
566 callback->operator()();
569inline void PEAK_CALL_CONV FirmwareUpdateProgressObserver::FirmwareUpdateFailedCallbackCWrapper(
570 const char* errorDescription,
size_t errorDescriptionSize,
void* context)
574 callback->operator()(std::string(errorDescription, errorDescriptionSize - 1));
The base class for all exceptions thrown by the library.
Definition peak_exception.hpp:26
Allows to observe a firmware update process.
Definition peak_firmware_update_progress_observer.hpp:53
~FirmwareUpdateProgressObserver()
Definition peak_firmware_update_progress_observer.hpp:428
UpdateStepFinishedCallbackHandle RegisterUpdateStepFinishedCallback(UpdateStepFinishedCallback callback)
Registers a callback for signaling a finished update step.
Definition peak_firmware_update_progress_observer.hpp:488
void UnregisterUpdateStepProgressChangedCallback(UpdateStepProgressChangedCallbackHandle callbackHandle)
Unregisters an update step progress changed callback.
Definition peak_firmware_update_progress_observer.hpp:480
FirmwareUpdateProgressObserver(const FirmwareUpdateProgressObserver &other)=delete
UpdateFailedCallbackHandle RegisterUpdateFailedCallback(UpdateFailedCallback callback)
Registers a callback for signaling a failed update.
Definition peak_firmware_update_progress_observer.hpp:515
UpdateStepStartedCallbackHandle RegisterUpdateStepStartedCallback(UpdateStepStartedCallback callback)
Registers a callback for signaling a started update step.
Definition peak_firmware_update_progress_observer.hpp:459
FirmwareUpdateProgressObserver(FirmwareUpdateProgressObserver &&other)=delete
UpdateStepProgressChangedCallbackHandle RegisterUpdateStepProgressChangedCallback(UpdateStepProgressChangedCallback callback)
Registers a callback for signaling progress in an update step.
Definition peak_firmware_update_progress_observer.hpp:473
UpdateStepFinishedCallback * UpdateStepFinishedCallbackHandle
Definition peak_firmware_update_progress_observer.hpp:73
std::function< void(FirmwareUpdateStep updateStep, double progressPercentage)> UpdateStepProgressChangedCallback
Definition peak_firmware_update_progress_observer.hpp:67
std::function< void(void)> UpdateFinishedCallback
Definition peak_firmware_update_progress_observer.hpp:75
void UnregisterUpdateFailedCallback(UpdateFailedCallbackHandle callbackHandle)
Unregisters an update failed callback.
Definition peak_firmware_update_progress_observer.hpp:520
std::function< void(FirmwareUpdateStep updateStep, uint32_t estimatedDuration_ms, const std::string &description)> UpdateStepStartedCallback
Definition peak_firmware_update_progress_observer.hpp:62
void UnregisterUpdateStepStartedCallback(UpdateStepStartedCallbackHandle callbackHandle)
Unregisters an update step started callback.
Definition peak_firmware_update_progress_observer.hpp:465
UpdateFinishedCallbackHandle RegisterUpdateFinishedCallback(UpdateFinishedCallback callback)
Registers a callback for signaling a finished update.
Definition peak_firmware_update_progress_observer.hpp:502
std::function< void(FirmwareUpdateStep updateStep)> UpdateStepFinishedCallback
Definition peak_firmware_update_progress_observer.hpp:71
UpdateStartedCallback * UpdateStartedCallbackHandle
Definition peak_firmware_update_progress_observer.hpp:59
FirmwareUpdateProgressObserver & operator=(FirmwareUpdateProgressObserver &&other)=delete
UpdateStepProgressChangedCallback * UpdateStepProgressChangedCallbackHandle
Definition peak_firmware_update_progress_observer.hpp:69
UpdateStartedCallbackHandle RegisterUpdateStartedCallback(UpdateStartedCallback callback)
Registers a callback for signaling a started update.
Definition peak_firmware_update_progress_observer.hpp:446
std::function< void(const std::shared_ptr< FirmwareUpdateInformation > &updateInformation, uint32_t estimatedDuration_ms)> UpdateStartedCallback
Definition peak_firmware_update_progress_observer.hpp:57
void UnregisterUpdateFinishedCallback(UpdateFinishedCallbackHandle callbackHandle)
Unregisters an update finished callback.
Definition peak_firmware_update_progress_observer.hpp:507
UpdateFailedCallback * UpdateFailedCallbackHandle
Definition peak_firmware_update_progress_observer.hpp:81
FirmwareUpdateProgressObserver & operator=(const FirmwareUpdateProgressObserver &other)=delete
UpdateFinishedCallback * UpdateFinishedCallbackHandle
Definition peak_firmware_update_progress_observer.hpp:77
FirmwareUpdateProgressObserver()
Definition peak_firmware_update_progress_observer.hpp:312
std::function< void(const std::string &errorDescription)> UpdateFailedCallback
Definition peak_firmware_update_progress_observer.hpp:79
void UnregisterUpdateStartedCallback(UpdateStartedCallbackHandle callbackHandle)
Unregisters an update started callback.
Definition peak_firmware_update_progress_observer.hpp:451
UpdateStepStartedCallback * UpdateStepStartedCallbackHandle
Definition peak_firmware_update_progress_observer.hpp:64
void UnregisterUpdateStepFinishedCallback(UpdateStepFinishedCallbackHandle callbackHandle)
Unregisters an update step finished callback.
Definition peak_firmware_update_progress_observer.hpp:494
Allows to update the firmware of a device.
Definition peak_firmware_updater.hpp:46
FirmwareUpdateStep
The possible firmware update step types.
Definition peak_firmware_update_progress_observer.hpp:34
The "peak" namespace directly contains convenience functionality like the DeviceManager as well as th...
Definition peak_dynamic_loader.h:32
PEAK_C_API PEAK_FirmwareUpdateProgressObserver_RegisterUpdateFinishedCallback(PEAK_FIRMWARE_UPDATE_PROGRESS_OBSERVER_HANDLE firmwareUpdateProgressObserverHandle, PEAK_FIRMWARE_UPDATE_FINISHED_CALLBACK callback, void *callbackContext, PEAK_FIRMWARE_UPDATE_FINISHED_CALLBACK_HANDLE *callbackHandle)
Registers a callback signaling a finished update at the given firmware update progress observer.
PEAK_C_API PEAK_FirmwareUpdateProgressObserver_RegisterUpdateStepFinishedCallback(PEAK_FIRMWARE_UPDATE_PROGRESS_OBSERVER_HANDLE firmwareUpdateProgressObserverHandle, PEAK_FIRMWARE_UPDATE_STEP_FINISHED_CALLBACK callback, void *callbackContext, PEAK_FIRMWARE_UPDATE_STEP_FINISHED_CALLBACK_HANDLE *callbackHandle)
Registers a callback signaling a finished update step at the given firmware update progress observer.
PEAK_C_API PEAK_FirmwareUpdateProgressObserver_UnregisterUpdateStartedCallback(PEAK_FIRMWARE_UPDATE_PROGRESS_OBSERVER_HANDLE firmwareUpdateProgressObserverHandle, PEAK_FIRMWARE_UPDATE_STARTED_CALLBACK_HANDLE callbackHandle)
Unregisters the update started callback with the given handle from the given firmware update progress...
PEAK_C_API PEAK_FirmwareUpdateProgressObserver_UnregisterUpdateFinishedCallback(PEAK_FIRMWARE_UPDATE_PROGRESS_OBSERVER_HANDLE firmwareUpdateProgressObserverHandle, PEAK_FIRMWARE_UPDATE_FINISHED_CALLBACK_HANDLE callbackHandle)
Unregisters the update finished callback with the given handle from the given firmware update progres...
PEAK_FIRMWARE_UPDATE_STARTED_CALLBACK * PEAK_FIRMWARE_UPDATE_STARTED_CALLBACK_HANDLE
Definition peak_backend.h:574
PEAK_C_API PEAK_FirmwareUpdateProgressObserver_RegisterUpdateFailedCallback(PEAK_FIRMWARE_UPDATE_PROGRESS_OBSERVER_HANDLE firmwareUpdateProgressObserverHandle, PEAK_FIRMWARE_UPDATE_FAILED_CALLBACK callback, void *callbackContext, PEAK_FIRMWARE_UPDATE_FAILED_CALLBACK_HANDLE *callbackHandle)
Registers a callback signaling a failed update at the given firmware update progress observer.
PEAK_C_API PEAK_FirmwareUpdateProgressObserver_RegisterUpdateStartedCallback(PEAK_FIRMWARE_UPDATE_PROGRESS_OBSERVER_HANDLE firmwareUpdateProgressObserverHandle, PEAK_FIRMWARE_UPDATE_STARTED_CALLBACK callback, void *callbackContext, PEAK_FIRMWARE_UPDATE_STARTED_CALLBACK_HANDLE *callbackHandle)
Registers a callback signaling a started update at the given firmware update progress observer.
PEAK_FIRMWARE_UPDATE_FINISHED_CALLBACK * PEAK_FIRMWARE_UPDATE_FINISHED_CALLBACK_HANDLE
Definition peak_backend.h:594
struct PEAK_FIRMWARE_UPDATE_PROGRESS_OBSERVER * PEAK_FIRMWARE_UPDATE_PROGRESS_OBSERVER_HANDLE
Definition peak_backend.h:479
PEAK_C_API PEAK_FirmwareUpdateProgressObserver_UnregisterUpdateStepProgressChangedCallback(PEAK_FIRMWARE_UPDATE_PROGRESS_OBSERVER_HANDLE firmwareUpdateProgressObserverHandle, PEAK_FIRMWARE_UPDATE_STEP_PROGRESS_CHANGED_CALLBACK_HANDLE callbackHandle)
Unregisters the update step progress changed callback with the given handle from the given firmware u...
PEAK_FIRMWARE_UPDATE_STEP_PROGRESS_CHANGED_CALLBACK * PEAK_FIRMWARE_UPDATE_STEP_PROGRESS_CHANGED_CALLBACK_HANDLE
Definition peak_backend.h:585
PEAK_C_API PEAK_FirmwareUpdateProgressObserver_Destruct(PEAK_FIRMWARE_UPDATE_PROGRESS_OBSERVER_HANDLE firmwareUpdateProgressObserverHandle)
Destroys the given firmware update progress observer.
struct PEAK_FIRMWARE_UPDATE_INFORMATION * PEAK_FIRMWARE_UPDATE_INFORMATION_HANDLE
Definition peak_backend.h:475
PEAK_C_API PEAK_FirmwareUpdateProgressObserver_Construct(PEAK_FIRMWARE_UPDATE_PROGRESS_OBSERVER_HANDLE *firmwareUpdateProgressObserverHandle)
Creates a firmware update progress observer.
PEAK_C_API PEAK_FirmwareUpdateProgressObserver_UnregisterUpdateStepFinishedCallback(PEAK_FIRMWARE_UPDATE_PROGRESS_OBSERVER_HANDLE firmwareUpdateProgressObserverHandle, PEAK_FIRMWARE_UPDATE_STEP_FINISHED_CALLBACK_HANDLE callbackHandle)
Unregisters the update step finished callback with the given handle from the given firmware update pr...
PEAK_C_API PEAK_FirmwareUpdateProgressObserver_RegisterUpdateStepStartedCallback(PEAK_FIRMWARE_UPDATE_PROGRESS_OBSERVER_HANDLE firmwareUpdateProgressObserverHandle, PEAK_FIRMWARE_UPDATE_STEP_STARTED_CALLBACK callback, void *callbackContext, PEAK_FIRMWARE_UPDATE_STEP_STARTED_CALLBACK_HANDLE *callbackHandle)
Registers a callback signaling a started update step at the given firmware update progress observer.
PEAK_FIRMWARE_UPDATE_FAILED_CALLBACK * PEAK_FIRMWARE_UPDATE_FAILED_CALLBACK_HANDLE
Definition peak_backend.h:599
int32_t PEAK_FIRMWARE_UPDATE_STEP
Definition peak_backend.h:189
PEAK_C_API PEAK_FirmwareUpdateProgressObserver_UnregisterUpdateFailedCallback(PEAK_FIRMWARE_UPDATE_PROGRESS_OBSERVER_HANDLE firmwareUpdateProgressObserverHandle, PEAK_FIRMWARE_UPDATE_FAILED_CALLBACK_HANDLE callbackHandle)
Unregisters the update failed callback with the given handle from the given firmware update progress ...
PEAK_FIRMWARE_UPDATE_STEP_STARTED_CALLBACK * PEAK_FIRMWARE_UPDATE_STEP_STARTED_CALLBACK_HANDLE
Definition peak_backend.h:579
PEAK_C_API PEAK_FirmwareUpdateProgressObserver_RegisterUpdateStepProgressChangedCallback(PEAK_FIRMWARE_UPDATE_PROGRESS_OBSERVER_HANDLE firmwareUpdateProgressObserverHandle, PEAK_FIRMWARE_UPDATE_STEP_PROGRESS_CHANGED_CALLBACK callback, void *callbackContext, PEAK_FIRMWARE_UPDATE_STEP_PROGRESS_CHANGED_CALLBACK_HANDLE *callbackHandle)
Registers a callback signaling a progress change within an update step at the given firmware update p...
PEAK_C_API PEAK_FirmwareUpdateProgressObserver_UnregisterUpdateStepStartedCallback(PEAK_FIRMWARE_UPDATE_PROGRESS_OBSERVER_HANDLE firmwareUpdateProgressObserverHandle, PEAK_FIRMWARE_UPDATE_STEP_STARTED_CALLBACK_HANDLE callbackHandle)
Unregisters the update step started callback with the given handle from the given firmware update pro...
PEAK_FIRMWARE_UPDATE_STEP_FINISHED_CALLBACK * PEAK_FIRMWARE_UPDATE_STEP_FINISHED_CALLBACK_HANDLE
Definition peak_backend.h:590
#define PEAK_C_ABI_PREFIX
Definition peak_dll_defines.h:16
#define PEAK_CALL_CONV
Definition peak_dynamic_loader.h:29