16 #include <peak/generic/peak_t_callback_manager.hpp> 57 const std::shared_ptr<FirmwareUpdateInformation>& updateInformation, uint32_t estimatedDuration_ms)>;
67 std::function<void(FirmwareUpdateStep updateStep, double progressPercentage)>;
228 uint32_t estimatedDuration_ms,
const char* description,
size_t descriptionSize,
void* context);
229 static void PEAK_CALL_CONV FirmwareUpdateStepProgressChangedCallbackCWrapper(
231 static void PEAK_CALL_CONV FirmwareUpdateStepFinishedCallbackCWrapper(
233 static void PEAK_CALL_CONV FirmwareUpdateFinishedCallbackCWrapper(
void* context);
235 const char* errorDescription,
size_t errorDescriptionSize,
void* context);
239 std::unique_ptr<TCallbackManager<PEAK_FIRMWARE_UPDATE_STARTED_CALLBACK_HANDLE, UpdateStartedCallback>>
240 m_updateStartedCallbackManager;
241 std::unique_ptr<TCallbackManager<PEAK_FIRMWARE_UPDATE_STEP_STARTED_CALLBACK_HANDLE, UpdateStepStartedCallback>>
242 m_updateStepStartedCallbackManager;
245 m_updateStepProgressChangedCallbackManager;
246 std::unique_ptr<TCallbackManager<PEAK_FIRMWARE_UPDATE_STEP_FINISHED_CALLBACK_HANDLE, UpdateStepFinishedCallback>>
247 m_updateStepFinishedCallbackManager;
248 std::unique_ptr<TCallbackManager<PEAK_FIRMWARE_UPDATE_FINISHED_CALLBACK_HANDLE, UpdateFinishedCallback>>
249 m_updateFinishedCallbackManager;
250 std::unique_ptr<TCallbackManager<PEAK_FIRMWARE_UPDATE_FAILED_CALLBACK_HANDLE, UpdateFailedCallback>>
251 m_updateFailedCallbackManager;
267 std::string entryString;
271 entryString =
"CheckPreconditions";
275 entryString =
"AcquireUpdateData";
279 entryString =
"WriteFeature";
283 entryString =
"ExecuteFeature";
287 entryString =
"AssertFeature";
291 entryString =
"UploadFile";
295 entryString =
"ResetDevice";
305 firmwareUpdateProgressObserverHandle);
307 , m_updateStartedCallbackManager()
308 , m_updateStepStartedCallbackManager()
309 , m_updateStepProgressChangedCallbackManager()
310 , m_updateStepFinishedCallbackManager()
311 , m_updateFinishedCallbackManager()
312 , m_updateFailedCallbackManager()
314 m_updateStartedCallbackManager = std::make_unique<
315 TCallbackManager<PEAK_FIRMWARE_UPDATE_STARTED_CALLBACK_HANDLE, UpdateStartedCallback>>(
316 [&](
void* callbackContext) {
317 return QueryNumericFromCInterfaceFunction<PEAK_FIRMWARE_UPDATE_STARTED_CALLBACK_HANDLE>(
320 m_backendHandle, FirmwareUpdateStartedCallbackCWrapper, callbackContext,
321 firmwareUpdateStartedCallbackHandle);
325 CallAndCheckCInterfaceFunction([&] {
327 m_backendHandle, callbackHandle);
330 m_updateStepStartedCallbackManager = std::make_unique<
331 TCallbackManager<PEAK_FIRMWARE_UPDATE_STEP_STARTED_CALLBACK_HANDLE, UpdateStepStartedCallback>>(
332 [&](
void* callbackContext) {
333 return QueryNumericFromCInterfaceFunction<PEAK_FIRMWARE_UPDATE_STEP_STARTED_CALLBACK_HANDLE>(
337 FirmwareUpdateStepStartedCallbackCWrapper, callbackContext,
338 firmwareUpdateStepStartedCallbackHandle);
342 CallAndCheckCInterfaceFunction([&] {
344 m_backendHandle, callbackHandle);
347 m_updateStepProgressChangedCallbackManager = std::make_unique<TCallbackManager<
349 [&](
void* callbackContext) {
350 return QueryNumericFromCInterfaceFunction<PEAK_FIRMWARE_UPDATE_STEP_PROGRESS_CHANGED_CALLBACK_HANDLE>(
351 [&](PEAK_FIRMWARE_UPDATE_STEP_PROGRESS_CHANGED_CALLBACK_HANDLE*
352 firmwareUpdateStepProgressChangedCallbackHandle) {
355 m_backendHandle, FirmwareUpdateStepProgressChangedCallbackCWrapper, callbackContext,
356 firmwareUpdateStepProgressChangedCallbackHandle);
359 [&](PEAK_FIRMWARE_UPDATE_STEP_PROGRESS_CHANGED_CALLBACK_HANDLE callbackHandle) {
360 CallAndCheckCInterfaceFunction([&] {
363 m_backendHandle, callbackHandle);
366 m_updateStepFinishedCallbackManager = std::make_unique<
367 TCallbackManager<PEAK_FIRMWARE_UPDATE_STEP_FINISHED_CALLBACK_HANDLE, UpdateStepFinishedCallback>>(
368 [&](
void* callbackContext) {
369 return QueryNumericFromCInterfaceFunction<PEAK_FIRMWARE_UPDATE_STEP_FINISHED_CALLBACK_HANDLE>(
373 FirmwareUpdateStepFinishedCallbackCWrapper, callbackContext,
374 firmwareUpdateStepFinishedCallbackHandle);
378 CallAndCheckCInterfaceFunction([&] {
380 m_backendHandle, callbackHandle);
383 m_updateFinishedCallbackManager = std::make_unique<
384 TCallbackManager<PEAK_FIRMWARE_UPDATE_FINISHED_CALLBACK_HANDLE, UpdateFinishedCallback>>(
385 [&](
void* callbackContext) {
386 return QueryNumericFromCInterfaceFunction<PEAK_FIRMWARE_UPDATE_FINISHED_CALLBACK_HANDLE>(
389 m_backendHandle, FirmwareUpdateFinishedCallbackCWrapper, callbackContext,
390 firmwareUpdateFinishedCallbackHandle);
394 CallAndCheckCInterfaceFunction([&] {
396 m_backendHandle, callbackHandle);
399 m_updateFailedCallbackManager =
400 std::make_unique<TCallbackManager<PEAK_FIRMWARE_UPDATE_FAILED_CALLBACK_HANDLE, UpdateFailedCallback>>(
401 [&](
void* callbackContext) {
402 return QueryNumericFromCInterfaceFunction<PEAK_FIRMWARE_UPDATE_FAILED_CALLBACK_HANDLE>(
405 m_backendHandle, FirmwareUpdateFailedCallbackCWrapper, callbackContext,
406 firmwareUpdateFailedCallbackHandle);
410 CallAndCheckCInterfaceFunction([&] {
412 m_backendHandle, callbackHandle);
421 m_updateStartedCallbackManager->UnregisterAllCallbacks();
422 m_updateStepStartedCallbackManager->UnregisterAllCallbacks();
423 m_updateStepProgressChangedCallbackManager->UnregisterAllCallbacks();
424 m_updateStepFinishedCallbackManager->UnregisterAllCallbacks();
425 m_updateFinishedCallbackManager->UnregisterAllCallbacks();
426 m_updateFailedCallbackManager->UnregisterAllCallbacks();
443 m_updateStartedCallbackManager->UnregisterCallback(
444 reinterpret_cast<PEAK_FIRMWARE_UPDATE_STARTED_CALLBACK_HANDLE>(callbackHandle));
451 m_updateStepStartedCallbackManager->RegisterCallback(callback));
457 m_updateStepStartedCallbackManager->UnregisterCallback(
458 reinterpret_cast<PEAK_FIRMWARE_UPDATE_STEP_STARTED_CALLBACK_HANDLE>(callbackHandle));
466 m_updateStepProgressChangedCallbackManager->RegisterCallback(callback));
472 m_updateStepProgressChangedCallbackManager->UnregisterCallback(
473 reinterpret_cast<PEAK_FIRMWARE_UPDATE_STEP_PROGRESS_CHANGED_CALLBACK_HANDLE>(callbackHandle));
480 m_updateStepFinishedCallbackManager->RegisterCallback(callback));
486 m_updateStepFinishedCallbackManager->UnregisterCallback(
487 reinterpret_cast<PEAK_FIRMWARE_UPDATE_STEP_FINISHED_CALLBACK_HANDLE>(callbackHandle));
499 m_updateFinishedCallbackManager->UnregisterCallback(
500 reinterpret_cast<PEAK_FIRMWARE_UPDATE_FINISHED_CALLBACK_HANDLE>(callbackHandle));
512 m_updateFailedCallbackManager->UnregisterCallback(
513 reinterpret_cast<PEAK_FIRMWARE_UPDATE_FAILED_CALLBACK_HANDLE>(callbackHandle));
516 inline void PEAK_CALL_CONV FirmwareUpdateProgressObserver::FirmwareUpdateStartedCallbackCWrapper(
521 callback->operator()(
522 std::make_shared<ClassCreator<FirmwareUpdateInformation>>(updateInformation), estimatedDuration_ms);
525 inline void PEAK_CALL_CONV FirmwareUpdateProgressObserver::FirmwareUpdateStepStartedCallbackCWrapper(
527 size_t descriptionSize,
void* context)
531 callback->operator()(
static_cast<FirmwareUpdateStep>(updateStep), estimatedDuration_ms,
532 std::string(description, descriptionSize - 1));
535 inline void PEAK_CALL_CONV FirmwareUpdateProgressObserver::FirmwareUpdateStepProgressChangedCallbackCWrapper(
540 callback->operator()(
static_cast<FirmwareUpdateStep>(updateStep), progressPercentage);
543 inline void PEAK_CALL_CONV FirmwareUpdateProgressObserver::FirmwareUpdateStepFinishedCallbackCWrapper(
551 inline void PEAK_CALL_CONV FirmwareUpdateProgressObserver::FirmwareUpdateFinishedCallbackCWrapper(
void* context)
555 callback->operator()();
558 inline void PEAK_CALL_CONV FirmwareUpdateProgressObserver::FirmwareUpdateFailedCallbackCWrapper(
559 const char* errorDescription,
size_t errorDescriptionSize,
void* context)
563 callback->operator()(std::string(errorDescription, errorDescriptionSize - 1));
UpdateStepProgressChangedCallback * UpdateStepProgressChangedCallbackHandle
Definition: peak_firmware_update_progress_observer.hpp:69
std::function< void(FirmwareUpdateStep updateStep, uint32_t estimatedDuration_ms, const std::string &description)> UpdateStepStartedCallback
Definition: peak_firmware_update_progress_observer.hpp:62
UpdateFinishedCallbackHandle RegisterUpdateFinishedCallback(UpdateFinishedCallback callback)
Registers a callback for signaling a finished update.
Definition: peak_firmware_update_progress_observer.hpp:491
~FirmwareUpdateProgressObserver()
Definition: peak_firmware_update_progress_observer.hpp:417
void UnregisterUpdateStepFinishedCallback(UpdateStepFinishedCallbackHandle callbackHandle)
Unregisters an update step finished callback.
Definition: peak_firmware_update_progress_observer.hpp:483
std::function< void(const std::shared_ptr< FirmwareUpdateInformation > &updateInformation, uint32_t estimatedDuration_ms)> UpdateStartedCallback
Definition: peak_firmware_update_progress_observer.hpp:57
std::function< void(void)> UpdateFinishedCallback
Definition: peak_firmware_update_progress_observer.hpp:75
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_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...
The "peak" namespace directly contains convenience functionality like the DeviceManager as well as th...
Definition: peak_dynamic_loader.h:32
UpdateStartedCallback * UpdateStartedCallbackHandle
Definition: peak_firmware_update_progress_observer.hpp:59
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...
std::string ToString(BufferPayloadType entry)
Definition: peak_buffer.hpp:472
void UnregisterUpdateFinishedCallback(UpdateFinishedCallbackHandle callbackHandle)
Unregisters an update finished callback.
Definition: peak_firmware_update_progress_observer.hpp:496
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_C_API PEAK_FirmwareUpdateProgressObserver_Construct(PEAK_FIRMWARE_UPDATE_PROGRESS_OBSERVER_HANDLE *firmwareUpdateProgressObserverHandle)
Creates a firmware update progress observer.
UpdateStartedCallbackHandle RegisterUpdateStartedCallback(UpdateStartedCallback callback)
Registers a callback for signaling a started update.
Definition: peak_firmware_update_progress_observer.hpp:435
UpdateStepStartedCallbackHandle RegisterUpdateStepStartedCallback(UpdateStepStartedCallback callback)
Registers a callback for signaling a started update step.
Definition: peak_firmware_update_progress_observer.hpp:448
PEAK_FIRMWARE_UPDATE_FINISHED_CALLBACK * PEAK_FIRMWARE_UPDATE_FINISHED_CALLBACK_HANDLE
Definition: peak_backend.h:542
FirmwareUpdateProgressObserver()
Definition: peak_firmware_update_progress_observer.hpp:301
Allows to update the firmware of a device.
Definition: peak_firmware_updater.hpp:45
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...
UpdateStepStartedCallback * UpdateStepStartedCallbackHandle
Definition: peak_firmware_update_progress_observer.hpp:64
void UnregisterUpdateFailedCallback(UpdateFailedCallbackHandle callbackHandle)
Unregisters an update failed callback.
Definition: peak_firmware_update_progress_observer.hpp:509
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...
std::function< void(FirmwareUpdateStep updateStep, double progressPercentage)> UpdateStepProgressChangedCallback
Definition: peak_firmware_update_progress_observer.hpp:67
struct PEAK_FIRMWARE_UPDATE_PROGRESS_OBSERVER * PEAK_FIRMWARE_UPDATE_PROGRESS_OBSERVER_HANDLE
Definition: peak_backend.h:477
void UnregisterUpdateStepProgressChangedCallback(UpdateStepProgressChangedCallbackHandle callbackHandle)
Unregisters an update step progress changed callback.
Definition: peak_firmware_update_progress_observer.hpp:469
PEAK_FIRMWARE_UPDATE_STEP_STARTED_CALLBACK * PEAK_FIRMWARE_UPDATE_STEP_STARTED_CALLBACK_HANDLE
Definition: peak_backend.h:527
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...
UpdateStepFinishedCallback * UpdateStepFinishedCallbackHandle
Definition: peak_firmware_update_progress_observer.hpp:73
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_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_STEP_FINISHED_CALLBACK * PEAK_FIRMWARE_UPDATE_STEP_FINISHED_CALLBACK_HANDLE
Definition: peak_backend.h:538
std::function< void(FirmwareUpdateStep updateStep)> UpdateStepFinishedCallback
Definition: peak_firmware_update_progress_observer.hpp:71
Allows to observe a firmware update process.
Definition: peak_firmware_update_progress_observer.hpp:52
The base class for all exceptions thrown by the library.
Definition: peak_exception.hpp:25
UpdateFailedCallback * UpdateFailedCallbackHandle
Definition: peak_firmware_update_progress_observer.hpp:81
PEAK_C_API PEAK_FirmwareUpdateProgressObserver_Destruct(PEAK_FIRMWARE_UPDATE_PROGRESS_OBSERVER_HANDLE firmwareUpdateProgressObserverHandle)
Destroys the given firmware update progress observer.
FirmwareUpdateStep
The possible firmware update step types.
Definition: peak_firmware_update_progress_observer.hpp:33
#define PEAK_CALL_CONV
Definition: peak_dynamic_loader.h:29
#define PEAK_C_ABI_PREFIX
Definition: peak_dll_defines.h:16
UpdateFailedCallbackHandle RegisterUpdateFailedCallback(UpdateFailedCallback callback)
Registers a callback for signaling a failed update.
Definition: peak_firmware_update_progress_observer.hpp:504
std::function< void(const std::string &errorDescription)> UpdateFailedCallback
Definition: peak_firmware_update_progress_observer.hpp:79
void UnregisterUpdateStepStartedCallback(UpdateStepStartedCallbackHandle callbackHandle)
Unregisters an update step started callback.
Definition: peak_firmware_update_progress_observer.hpp:454
int32_t PEAK_FIRMWARE_UPDATE_STEP
Definition: peak_backend.h:189
UpdateFinishedCallback * UpdateFinishedCallbackHandle
Definition: peak_firmware_update_progress_observer.hpp:77
void UnregisterUpdateStartedCallback(UpdateStartedCallbackHandle callbackHandle)
Unregisters an update started callback.
Definition: peak_firmware_update_progress_observer.hpp:440
struct PEAK_FIRMWARE_UPDATE_INFORMATION * PEAK_FIRMWARE_UPDATE_INFORMATION_HANDLE
Definition: peak_backend.h:473
PEAK_FIRMWARE_UPDATE_STARTED_CALLBACK * PEAK_FIRMWARE_UPDATE_STARTED_CALLBACK_HANDLE
Definition: peak_backend.h:522
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 ...
UpdateStepProgressChangedCallbackHandle RegisterUpdateStepProgressChangedCallback(UpdateStepProgressChangedCallback callback)
Registers a callback for signaling progress in an update step.
Definition: peak_firmware_update_progress_observer.hpp:462
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_FIRMWARE_UPDATE_STEP_PROGRESS_CHANGED_CALLBACK * PEAK_FIRMWARE_UPDATE_STEP_PROGRESS_CHANGED_CALLBACK_HANDLE
Definition: peak_backend.h:533
UpdateStepFinishedCallbackHandle RegisterUpdateStepFinishedCallback(UpdateStepFinishedCallback callback)
Registers a callback for signaling a finished update step.
Definition: peak_firmware_update_progress_observer.hpp:477
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_FAILED_CALLBACK * PEAK_FIRMWARE_UPDATE_FAILED_CALLBACK_HANDLE
Definition: peak_backend.h:547