13#include <peak/generic/peak_t_callback_manager.hpp>
56 const std::shared_ptr<FirmwareUpdateInformation>& updateInformation, uint32_t estimatedDuration_ms)>;
61 FirmwareUpdateStep updateStep, uint32_t estimatedDuration_ms,
const std::string& description)>;
239 static void PEAK_CALL_CONV FirmwareUpdateStartedCallbackCWrapper(
242 uint32_t estimatedDuration_ms,
const char* description,
size_t descriptionSize,
void* context);
243 static void PEAK_CALL_CONV FirmwareUpdateStepProgressChangedCallbackCWrapper(
245 static void PEAK_CALL_CONV FirmwareUpdateStepFinishedCallbackCWrapper(
247 static void PEAK_CALL_CONV FirmwareUpdateFinishedCallbackCWrapper(
void* context);
248 static void PEAK_CALL_CONV FirmwareUpdateFailedCallbackCWrapper(
249 const char* errorDescription,
size_t errorDescriptionSize,
void* context);
253 std::unique_ptr<TCallbackManager<PEAK_FIRMWARE_UPDATE_STARTED_CALLBACK_HANDLE, UpdateStartedCallback>>
254 m_updateStartedCallbackManager;
255 std::unique_ptr<TCallbackManager<PEAK_FIRMWARE_UPDATE_STEP_STARTED_CALLBACK_HANDLE, UpdateStepStartedCallback>>
256 m_updateStepStartedCallbackManager;
259 m_updateStepProgressChangedCallbackManager;
260 std::unique_ptr<TCallbackManager<PEAK_FIRMWARE_UPDATE_STEP_FINISHED_CALLBACK_HANDLE, UpdateStepFinishedCallback>>
261 m_updateStepFinishedCallbackManager;
262 std::unique_ptr<TCallbackManager<PEAK_FIRMWARE_UPDATE_FINISHED_CALLBACK_HANDLE, UpdateFinishedCallback>>
263 m_updateFinishedCallbackManager;
264 std::unique_ptr<TCallbackManager<PEAK_FIRMWARE_UPDATE_FAILED_CALLBACK_HANDLE, UpdateFailedCallback>>
265 m_updateFailedCallbackManager;
281 std::string entryString;
285 entryString =
"CheckPreconditions";
289 entryString =
"AcquireUpdateData";
293 entryString =
"WriteFeature";
297 entryString =
"ExecuteFeature";
301 entryString =
"AssertFeature";
305 entryString =
"UploadFile";
309 entryString =
"ResetDevice";
319 firmwareUpdateProgressObserverHandle);
321 , m_updateStartedCallbackManager()
322 , m_updateStepStartedCallbackManager()
323 , m_updateStepProgressChangedCallbackManager()
324 , m_updateStepFinishedCallbackManager()
325 , m_updateFinishedCallbackManager()
326 , m_updateFailedCallbackManager()
328 m_updateStartedCallbackManager = std::make_unique<
329 TCallbackManager<PEAK_FIRMWARE_UPDATE_STARTED_CALLBACK_HANDLE, UpdateStartedCallback>>(
330 [&](
void* callbackContext) {
331 return QueryNumericFromCInterfaceFunction<PEAK_FIRMWARE_UPDATE_STARTED_CALLBACK_HANDLE>(
334 m_backendHandle, FirmwareUpdateStartedCallbackCWrapper, callbackContext,
335 firmwareUpdateStartedCallbackHandle);
339 CallAndCheckCInterfaceFunction([&] {
341 m_backendHandle, callbackHandle);
344 m_updateStepStartedCallbackManager = std::make_unique<
345 TCallbackManager<PEAK_FIRMWARE_UPDATE_STEP_STARTED_CALLBACK_HANDLE, UpdateStepStartedCallback>>(
346 [&](
void* callbackContext) {
347 return QueryNumericFromCInterfaceFunction<PEAK_FIRMWARE_UPDATE_STEP_STARTED_CALLBACK_HANDLE>(
351 FirmwareUpdateStepStartedCallbackCWrapper, callbackContext,
352 firmwareUpdateStepStartedCallbackHandle);
356 CallAndCheckCInterfaceFunction([&] {
358 m_backendHandle, callbackHandle);
361 m_updateStepProgressChangedCallbackManager = std::make_unique<TCallbackManager<
363 [&](
void* callbackContext) {
364 return QueryNumericFromCInterfaceFunction<PEAK_FIRMWARE_UPDATE_STEP_PROGRESS_CHANGED_CALLBACK_HANDLE>(
366 firmwareUpdateStepProgressChangedCallbackHandle) {
369 m_backendHandle, FirmwareUpdateStepProgressChangedCallbackCWrapper, callbackContext,
370 firmwareUpdateStepProgressChangedCallbackHandle);
374 CallAndCheckCInterfaceFunction([&] {
377 m_backendHandle, callbackHandle);
380 m_updateStepFinishedCallbackManager = std::make_unique<
381 TCallbackManager<PEAK_FIRMWARE_UPDATE_STEP_FINISHED_CALLBACK_HANDLE, UpdateStepFinishedCallback>>(
382 [&](
void* callbackContext) {
383 return QueryNumericFromCInterfaceFunction<PEAK_FIRMWARE_UPDATE_STEP_FINISHED_CALLBACK_HANDLE>(
387 FirmwareUpdateStepFinishedCallbackCWrapper, callbackContext,
388 firmwareUpdateStepFinishedCallbackHandle);
392 CallAndCheckCInterfaceFunction([&] {
394 m_backendHandle, callbackHandle);
397 m_updateFinishedCallbackManager = std::make_unique<
398 TCallbackManager<PEAK_FIRMWARE_UPDATE_FINISHED_CALLBACK_HANDLE, UpdateFinishedCallback>>(
399 [&](
void* callbackContext) {
400 return QueryNumericFromCInterfaceFunction<PEAK_FIRMWARE_UPDATE_FINISHED_CALLBACK_HANDLE>(
403 m_backendHandle, FirmwareUpdateFinishedCallbackCWrapper, callbackContext,
404 firmwareUpdateFinishedCallbackHandle);
408 CallAndCheckCInterfaceFunction([&] {
410 m_backendHandle, callbackHandle);
413 m_updateFailedCallbackManager =
414 std::make_unique<TCallbackManager<PEAK_FIRMWARE_UPDATE_FAILED_CALLBACK_HANDLE, UpdateFailedCallback>>(
415 [&](
void* callbackContext) {
416 return QueryNumericFromCInterfaceFunction<PEAK_FIRMWARE_UPDATE_FAILED_CALLBACK_HANDLE>(
419 m_backendHandle, FirmwareUpdateFailedCallbackCWrapper, callbackContext,
420 firmwareUpdateFailedCallbackHandle);
424 CallAndCheckCInterfaceFunction([&] {
426 m_backendHandle, callbackHandle);
435 m_updateStartedCallbackManager->UnregisterAllCallbacks();
436 m_updateStepStartedCallbackManager->UnregisterAllCallbacks();
437 m_updateStepProgressChangedCallbackManager->UnregisterAllCallbacks();
438 m_updateStepFinishedCallbackManager->UnregisterAllCallbacks();
439 m_updateFinishedCallbackManager->UnregisterAllCallbacks();
440 m_updateFailedCallbackManager->UnregisterAllCallbacks();
457 m_updateStartedCallbackManager->UnregisterCallback(
465 m_updateStepStartedCallbackManager->RegisterCallback(callback));
471 m_updateStepStartedCallbackManager->UnregisterCallback(
480 m_updateStepProgressChangedCallbackManager->RegisterCallback(callback));
486 m_updateStepProgressChangedCallbackManager->UnregisterCallback(
494 m_updateStepFinishedCallbackManager->RegisterCallback(callback));
500 m_updateStepFinishedCallbackManager->UnregisterCallback(
513 m_updateFinishedCallbackManager->UnregisterCallback(
526 m_updateFailedCallbackManager->UnregisterCallback(
530inline void PEAK_CALL_CONV FirmwareUpdateProgressObserver::FirmwareUpdateStartedCallbackCWrapper(
535 callback->operator()(
536 std::make_shared<ClassCreator<FirmwareUpdateInformation>>(updateInformation), estimatedDuration_ms);
539inline void PEAK_CALL_CONV FirmwareUpdateProgressObserver::FirmwareUpdateStepStartedCallbackCWrapper(
541 size_t descriptionSize,
void* context)
545 callback->operator()(
static_cast<FirmwareUpdateStep>(updateStep), estimatedDuration_ms,
546 std::string(description, descriptionSize - 1));
549inline void PEAK_CALL_CONV FirmwareUpdateProgressObserver::FirmwareUpdateStepProgressChangedCallbackCWrapper(
554 callback->operator()(
static_cast<FirmwareUpdateStep>(updateStep), progressPercentage);
557inline void PEAK_CALL_CONV FirmwareUpdateProgressObserver::FirmwareUpdateStepFinishedCallbackCWrapper(
565inline void PEAK_CALL_CONV FirmwareUpdateProgressObserver::FirmwareUpdateFinishedCallbackCWrapper(
void* context)
569 callback->operator()();
572inline void PEAK_CALL_CONV FirmwareUpdateProgressObserver::FirmwareUpdateFailedCallbackCWrapper(
573 const char* errorDescription,
size_t errorDescriptionSize,
void* context)
577 callback->operator()(std::string(errorDescription, errorDescriptionSize - 1));
The base class for all exceptions thrown by the library.
Definition peak_exception.hpp:24
~FirmwareUpdateProgressObserver()
Definition peak_firmware_update_progress_observer.hpp:431
UpdateStepFinishedCallbackHandle RegisterUpdateStepFinishedCallback(UpdateStepFinishedCallback callback)
Registers a callback for signaling a finished update step.
Definition peak_firmware_update_progress_observer.hpp:491
void UnregisterUpdateStepProgressChangedCallback(UpdateStepProgressChangedCallbackHandle callbackHandle)
Unregisters an update step progress changed callback.
Definition peak_firmware_update_progress_observer.hpp:483
FirmwareUpdateProgressObserver(const FirmwareUpdateProgressObserver &other)=delete
UpdateFailedCallbackHandle RegisterUpdateFailedCallback(UpdateFailedCallback callback)
Registers a callback for signaling a failed update.
Definition peak_firmware_update_progress_observer.hpp:518
UpdateStepStartedCallbackHandle RegisterUpdateStepStartedCallback(UpdateStepStartedCallback callback)
Registers a callback for signaling a started update step.
Definition peak_firmware_update_progress_observer.hpp:462
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:476
UpdateStepFinishedCallback * UpdateStepFinishedCallbackHandle
Definition peak_firmware_update_progress_observer.hpp:72
std::function< void(void)> UpdateFinishedCallback
Definition peak_firmware_update_progress_observer.hpp:74
void UnregisterUpdateFailedCallback(UpdateFailedCallbackHandle callbackHandle)
Unregisters an update failed callback.
Definition peak_firmware_update_progress_observer.hpp:523
void UnregisterUpdateStepStartedCallback(UpdateStepStartedCallbackHandle callbackHandle)
Unregisters an update step started callback.
Definition peak_firmware_update_progress_observer.hpp:468
UpdateFinishedCallbackHandle RegisterUpdateFinishedCallback(UpdateFinishedCallback callback)
Registers a callback for signaling a finished update.
Definition peak_firmware_update_progress_observer.hpp:505
std::function< void(FirmwareUpdateStep updateStep)> UpdateStepFinishedCallback
Definition peak_firmware_update_progress_observer.hpp:70
UpdateStartedCallback * UpdateStartedCallbackHandle
Definition peak_firmware_update_progress_observer.hpp:58
FirmwareUpdateProgressObserver & operator=(FirmwareUpdateProgressObserver &&other)=delete
UpdateStepProgressChangedCallback * UpdateStepProgressChangedCallbackHandle
Definition peak_firmware_update_progress_observer.hpp:68
UpdateStartedCallbackHandle RegisterUpdateStartedCallback(UpdateStartedCallback callback)
Registers a callback for signaling a started update.
Definition peak_firmware_update_progress_observer.hpp:449
void UnregisterUpdateFinishedCallback(UpdateFinishedCallbackHandle callbackHandle)
Unregisters an update finished callback.
Definition peak_firmware_update_progress_observer.hpp:510
std::function< void(FirmwareUpdateStep updateStep, double progressPercentage)> UpdateStepProgressChangedCallback
Definition peak_firmware_update_progress_observer.hpp:65
UpdateFailedCallback * UpdateFailedCallbackHandle
Definition peak_firmware_update_progress_observer.hpp:80
std::function< void( const std::shared_ptr< FirmwareUpdateInformation > &updateInformation, uint32_t estimatedDuration_ms)> UpdateStartedCallback
Definition peak_firmware_update_progress_observer.hpp:55
FirmwareUpdateProgressObserver & operator=(const FirmwareUpdateProgressObserver &other)=delete
UpdateFinishedCallback * UpdateFinishedCallbackHandle
Definition peak_firmware_update_progress_observer.hpp:76
FirmwareUpdateProgressObserver()
Definition peak_firmware_update_progress_observer.hpp:315
friend class FirmwareUpdater
Definition peak_firmware_update_progress_observer.hpp:267
std::function< void(const std::string &errorDescription)> UpdateFailedCallback
Definition peak_firmware_update_progress_observer.hpp:78
void UnregisterUpdateStartedCallback(UpdateStartedCallbackHandle callbackHandle)
Unregisters an update started callback.
Definition peak_firmware_update_progress_observer.hpp:454
UpdateStepStartedCallback * UpdateStepStartedCallbackHandle
Definition peak_firmware_update_progress_observer.hpp:63
void UnregisterUpdateStepFinishedCallback(UpdateStepFinishedCallbackHandle callbackHandle)
Unregisters an update step finished callback.
Definition peak_firmware_update_progress_observer.hpp:497
std::function< void( FirmwareUpdateStep updateStep, uint32_t estimatedDuration_ms, const std::string &description)> UpdateStepStartedCallback
Definition peak_firmware_update_progress_observer.hpp:60
FirmwareUpdateStep
The possible firmware update step types.
Definition peak_firmware_update_progress_observer.hpp:32
@ WriteFeature
Definition peak_firmware_update_progress_observer.hpp:35
@ AcquireUpdateData
Definition peak_firmware_update_progress_observer.hpp:34
@ ResetDevice
Definition peak_firmware_update_progress_observer.hpp:39
@ ExecuteFeature
Definition peak_firmware_update_progress_observer.hpp:36
@ CheckPreconditions
Definition peak_firmware_update_progress_observer.hpp:33
@ AssertFeature
Definition peak_firmware_update_progress_observer.hpp:37
@ UploadFile
Definition peak_firmware_update_progress_observer.hpp:38
The "core" namespace contains the direct GenAPI and GenTL wrapper.
Definition peak_buffer.hpp:32
std::string ToString(BufferPayloadType entry)
Definition peak_buffer.hpp:635
The "peak" namespace directly contains convenience functionality like the DeviceManager as well as th...
Definition peak_buffer.hpp:29
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:594
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:614
struct PEAK_FIRMWARE_UPDATE_PROGRESS_OBSERVER * PEAK_FIRMWARE_UPDATE_PROGRESS_OBSERVER_HANDLE
Definition peak_backend.h:499
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:605
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:495
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:619
int32_t PEAK_FIRMWARE_UPDATE_STEP
Definition peak_backend.h:204
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:599
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:610
#define PEAK_C_ABI_PREFIX
Definition peak_dll_defines.h:13