* Generated by erpcgen 1.12.0 on Mon May 20 17:54:19 2024.
* AUTOGENERATED - DO NOT EDIT
#if ERPC_ALLOCATION_POLICY == ERPC_ALLOCATION_POLICY_DYNAMIC
#include "erpc_codec.hpp"
#include "erpc_PLCObject_client.hpp"
#include "erpc_manually_constructed.hpp"
#if 11200 != ERPC_VERSION_NUMBER
#error "The generated shim code version is different to the rest of eRPC code."
using namespace erpcShim;
//! @brief Function to write struct binary_t
static void write_binary_t_struct(erpc::Codec * codec, const binary_t * data);
//! @brief Function to write struct extra_file
static void write_extra_file_struct(erpc::Codec * codec, const extra_file * data);
//! @brief Function to write struct list_extra_file_1_t
static void write_list_extra_file_1_t_struct(erpc::Codec * codec, const list_extra_file_1_t * data);
//! @brief Function to write struct trace_order
static void write_trace_order_struct(erpc::Codec * codec, const trace_order * data);
//! @brief Function to write struct list_trace_order_1_t
static void write_list_trace_order_1_t_struct(erpc::Codec * codec, const list_trace_order_1_t * data);
// Write struct binary_t function implementation
static void write_binary_t_struct(erpc::Codec * codec, const binary_t * data)
codec->writeBinary(data->dataLength, data->data);
// Write struct extra_file function implementation
static void write_extra_file_struct(erpc::Codec * codec, const extra_file * data)
uint32_t fname_len = strlen((const char*)data->fname);
codec->writeString(fname_len, (const char*)data->fname);
write_binary_t_struct(codec, &(data->blobID));
// Write struct list_extra_file_1_t function implementation
static void write_list_extra_file_1_t_struct(erpc::Codec * codec, const list_extra_file_1_t * data)
codec->startWriteList(data->elementsCount);
for (uint32_t listCount = 0U; listCount < data->elementsCount; ++listCount)
write_extra_file_struct(codec, &(data->elements[listCount]));
// Write struct trace_order function implementation
static void write_trace_order_struct(erpc::Codec * codec, const trace_order * data)
write_binary_t_struct(codec, &(data->force));
// Write struct list_trace_order_1_t function implementation
static void write_list_trace_order_1_t_struct(erpc::Codec * codec, const list_trace_order_1_t * data)
codec->startWriteList(data->elementsCount);
for (uint32_t listCount = 0U; listCount < data->elementsCount; ++listCount)
write_trace_order_struct(codec, &(data->elements[listCount]));
//! @brief Function to read struct binary_t
static void read_binary_t_struct(erpc::Codec * codec, binary_t * data);
//! @brief Function to read struct log_message
static void read_log_message_struct(erpc::Codec * codec, log_message * data);
//! @brief Function to read struct PSKID
static void read_PSKID_struct(erpc::Codec * codec, PSKID * data);
//! @brief Function to read struct PLCstatus
static void read_PLCstatus_struct(erpc::Codec * codec, PLCstatus * data);
//! @brief Function to read struct trace_sample
static void read_trace_sample_struct(erpc::Codec * codec, trace_sample * data);
//! @brief Function to read struct TraceVariables
static void read_TraceVariables_struct(erpc::Codec * codec, TraceVariables * data);
//! @brief Function to read struct list_trace_sample_1_t
static void read_list_trace_sample_1_t_struct(erpc::Codec * codec, list_trace_sample_1_t * data);
// Read struct binary_t function implementation
static void read_binary_t_struct(erpc::Codec * codec, binary_t * data)
codec->readBinary(data->dataLength, &data_local);
if (data->dataLength > 0)
data->data = (uint8_t *) erpc_malloc(data->dataLength * sizeof(uint8_t));
codec->updateStatus(kErpcStatus_MemoryError);
memcpy(data->data, data_local, data->dataLength);
// Read struct log_message function implementation
static void read_log_message_struct(erpc::Codec * codec, log_message * data)
codec->readString(msg_len, &msg_local);
data->msg = (char*) erpc_malloc((msg_len + 1) * sizeof(char));
if ((data->msg == NULL) || (msg_local == NULL))
codec->updateStatus(kErpcStatus_MemoryError);
memcpy(data->msg, msg_local, msg_len);
(data->msg)[msg_len] = 0;
// Read struct PSKID function implementation
static void read_PSKID_struct(erpc::Codec * codec, PSKID * data)
codec->readString(ID_len, &ID_local);
data->ID = (char*) erpc_malloc((ID_len + 1) * sizeof(char));
if ((data->ID == NULL) || (ID_local == NULL))
codec->updateStatus(kErpcStatus_MemoryError);
memcpy(data->ID, ID_local, ID_len);
codec->readString(PSK_len, &PSK_local);
data->PSK = (char*) erpc_malloc((PSK_len + 1) * sizeof(char));
if ((data->PSK == NULL) || (PSK_local == NULL))
codec->updateStatus(kErpcStatus_MemoryError);
memcpy(data->PSK, PSK_local, PSK_len);
(data->PSK)[PSK_len] = 0;
// Read struct PLCstatus function implementation
static void read_PLCstatus_struct(erpc::Codec * codec, PLCstatus * data)
codec->read(_tmp_local_i32);
data->PLCstatus = static_cast<PLCstatus_enum>(_tmp_local_i32);
for (uint32_t arrayCount0 = 0U; arrayCount0 < 4U; ++arrayCount0)
codec->read(data->logcounts[arrayCount0]);
// Read struct trace_sample function implementation
static void read_trace_sample_struct(erpc::Codec * codec, trace_sample * data)
read_binary_t_struct(codec, &(data->TraceBuffer));
// Read struct TraceVariables function implementation
static void read_TraceVariables_struct(erpc::Codec * codec, TraceVariables * data)
codec->read(_tmp_local_i32);
data->PLCstatus = static_cast<PLCstatus_enum>(_tmp_local_i32);
read_list_trace_sample_1_t_struct(codec, &(data->traces));
// Read struct list_trace_sample_1_t function implementation
static void read_list_trace_sample_1_t_struct(erpc::Codec * codec, list_trace_sample_1_t * data)
codec->startReadList(data->elementsCount);
data->elements = (trace_sample *) erpc_malloc(data->elementsCount * sizeof(trace_sample));
if ((data->elements == NULL) && (data->elementsCount > 0))
codec->updateStatus(kErpcStatus_MemoryError);
for (uint32_t listCount = 0U; listCount < data->elementsCount; ++listCount)
read_trace_sample_struct(codec, &(data->elements[listCount]));
BeremizPLCObjectService_client::BeremizPLCObjectService_client(ClientManager *manager)
:m_clientManager(manager)
BeremizPLCObjectService_client::~BeremizPLCObjectService_client()
// BeremizPLCObjectService interface AppendChunkToBlob function client shim.
uint32_t BeremizPLCObjectService_client::AppendChunkToBlob(const binary_t * data, const binary_t * blobID, binary_t * newBlobID)
erpc_status_t err = kErpcStatus_Success;
pre_post_action_cb preCB = m_clientManager->getPreCB();
RequestContext request = m_clientManager->createRequest(false);
Codec * codec = request.getCodec();
err = kErpcStatus_MemoryError;
codec->startWriteMessage(message_type_t::kInvocationMessage, m_serviceId, m_AppendChunkToBlobId, request.getSequence());
write_binary_t_struct(codec, data);
write_binary_t_struct(codec, blobID);
// Send message to server
// Codec status is checked inside this function.
m_clientManager->performRequest(request);
read_binary_t_struct(codec, newBlobID);
err = codec->getStatus();
// Dispose of the request.
m_clientManager->releaseRequest(request);
// Invoke error handler callback function
m_clientManager->callErrorHandler(err, m_AppendChunkToBlobId);
pre_post_action_cb postCB = m_clientManager->getPostCB();
if (err != kErpcStatus_Success)
// BeremizPLCObjectService interface GetLogMessage function client shim.
uint32_t BeremizPLCObjectService_client::GetLogMessage(uint8_t level, uint32_t msgID, log_message * message)
erpc_status_t err = kErpcStatus_Success;
pre_post_action_cb preCB = m_clientManager->getPreCB();
RequestContext request = m_clientManager->createRequest(false);
Codec * codec = request.getCodec();
err = kErpcStatus_MemoryError;
codec->startWriteMessage(message_type_t::kInvocationMessage, m_serviceId, m_GetLogMessageId, request.getSequence());
// Send message to server
// Codec status is checked inside this function.
m_clientManager->performRequest(request);
read_log_message_struct(codec, message);
err = codec->getStatus();
// Dispose of the request.
m_clientManager->releaseRequest(request);
// Invoke error handler callback function
m_clientManager->callErrorHandler(err, m_GetLogMessageId);
pre_post_action_cb postCB = m_clientManager->getPostCB();
if (err != kErpcStatus_Success)
// BeremizPLCObjectService interface GetPLCID function client shim.
uint32_t BeremizPLCObjectService_client::GetPLCID(PSKID * plcID)
erpc_status_t err = kErpcStatus_Success;
pre_post_action_cb preCB = m_clientManager->getPreCB();
RequestContext request = m_clientManager->createRequest(false);
Codec * codec = request.getCodec();
err = kErpcStatus_MemoryError;
codec->startWriteMessage(message_type_t::kInvocationMessage, m_serviceId, m_GetPLCIDId, request.getSequence());
// Send message to server
// Codec status is checked inside this function.
m_clientManager->performRequest(request);
read_PSKID_struct(codec, plcID);
err = codec->getStatus();
// Dispose of the request.
m_clientManager->releaseRequest(request);
// Invoke error handler callback function
m_clientManager->callErrorHandler(err, m_GetPLCIDId);
pre_post_action_cb postCB = m_clientManager->getPostCB();
if (err != kErpcStatus_Success)
// BeremizPLCObjectService interface GetPLCstatus function client shim.
uint32_t BeremizPLCObjectService_client::GetPLCstatus(PLCstatus * status)
erpc_status_t err = kErpcStatus_Success;
pre_post_action_cb preCB = m_clientManager->getPreCB();
RequestContext request = m_clientManager->createRequest(false);
Codec * codec = request.getCodec();
err = kErpcStatus_MemoryError;
codec->startWriteMessage(message_type_t::kInvocationMessage, m_serviceId, m_GetPLCstatusId, request.getSequence());
// Send message to server
// Codec status is checked inside this function.
m_clientManager->performRequest(request);
read_PLCstatus_struct(codec, status);
err = codec->getStatus();
// Dispose of the request.
m_clientManager->releaseRequest(request);
// Invoke error handler callback function
m_clientManager->callErrorHandler(err, m_GetPLCstatusId);
pre_post_action_cb postCB = m_clientManager->getPostCB();
if (err != kErpcStatus_Success)
// BeremizPLCObjectService interface GetTraceVariables function client shim.
uint32_t BeremizPLCObjectService_client::GetTraceVariables(uint32_t debugToken, TraceVariables * traces)
erpc_status_t err = kErpcStatus_Success;
pre_post_action_cb preCB = m_clientManager->getPreCB();
RequestContext request = m_clientManager->createRequest(false);
Codec * codec = request.getCodec();
err = kErpcStatus_MemoryError;
codec->startWriteMessage(message_type_t::kInvocationMessage, m_serviceId, m_GetTraceVariablesId, request.getSequence());
codec->write(debugToken);
// Send message to server
// Codec status is checked inside this function.
m_clientManager->performRequest(request);
read_TraceVariables_struct(codec, traces);
err = codec->getStatus();
// Dispose of the request.
m_clientManager->releaseRequest(request);
// Invoke error handler callback function
m_clientManager->callErrorHandler(err, m_GetTraceVariablesId);
pre_post_action_cb postCB = m_clientManager->getPostCB();
if (err != kErpcStatus_Success)
// BeremizPLCObjectService interface MatchMD5 function client shim.
uint32_t BeremizPLCObjectService_client::MatchMD5(const char * MD5, bool * match)
erpc_status_t err = kErpcStatus_Success;
pre_post_action_cb preCB = m_clientManager->getPreCB();
RequestContext request = m_clientManager->createRequest(false);
Codec * codec = request.getCodec();
err = kErpcStatus_MemoryError;
codec->startWriteMessage(message_type_t::kInvocationMessage, m_serviceId, m_MatchMD5Id, request.getSequence());
uint32_t MD5_len = strlen((const char*)MD5);
codec->writeString(MD5_len, (const char*)MD5);
// Send message to server
// Codec status is checked inside this function.
m_clientManager->performRequest(request);
err = codec->getStatus();
// Dispose of the request.
m_clientManager->releaseRequest(request);
// Invoke error handler callback function
m_clientManager->callErrorHandler(err, m_MatchMD5Id);
pre_post_action_cb postCB = m_clientManager->getPostCB();
if (err != kErpcStatus_Success)
// BeremizPLCObjectService interface NewPLC function client shim.
uint32_t BeremizPLCObjectService_client::NewPLC(const char * md5sum, const binary_t * plcObjectBlobID, const list_extra_file_1_t * extrafiles, bool * success)
erpc_status_t err = kErpcStatus_Success;
pre_post_action_cb preCB = m_clientManager->getPreCB();
RequestContext request = m_clientManager->createRequest(false);
Codec * codec = request.getCodec();
err = kErpcStatus_MemoryError;
codec->startWriteMessage(message_type_t::kInvocationMessage, m_serviceId, m_NewPLCId, request.getSequence());
uint32_t md5sum_len = strlen((const char*)md5sum);
codec->writeString(md5sum_len, (const char*)md5sum);
write_binary_t_struct(codec, plcObjectBlobID);
write_list_extra_file_1_t_struct(codec, extrafiles);
// Send message to server
// Codec status is checked inside this function.
m_clientManager->performRequest(request);
err = codec->getStatus();
// Dispose of the request.
m_clientManager->releaseRequest(request);
// Invoke error handler callback function
m_clientManager->callErrorHandler(err, m_NewPLCId);
pre_post_action_cb postCB = m_clientManager->getPostCB();
if (err != kErpcStatus_Success)
// BeremizPLCObjectService interface PurgeBlobs function client shim.
uint32_t BeremizPLCObjectService_client::PurgeBlobs(void)
erpc_status_t err = kErpcStatus_Success;
pre_post_action_cb preCB = m_clientManager->getPreCB();
RequestContext request = m_clientManager->createRequest(false);
Codec * codec = request.getCodec();
err = kErpcStatus_MemoryError;
codec->startWriteMessage(message_type_t::kInvocationMessage, m_serviceId, m_PurgeBlobsId, request.getSequence());
// Send message to server
// Codec status is checked inside this function.
m_clientManager->performRequest(request);
err = codec->getStatus();
// Dispose of the request.
m_clientManager->releaseRequest(request);
// Invoke error handler callback function
m_clientManager->callErrorHandler(err, m_PurgeBlobsId);
pre_post_action_cb postCB = m_clientManager->getPostCB();
if (err != kErpcStatus_Success)
// BeremizPLCObjectService interface RepairPLC function client shim.
uint32_t BeremizPLCObjectService_client::RepairPLC(void)
erpc_status_t err = kErpcStatus_Success;
pre_post_action_cb preCB = m_clientManager->getPreCB();
RequestContext request = m_clientManager->createRequest(false);
Codec * codec = request.getCodec();
err = kErpcStatus_MemoryError;
codec->startWriteMessage(message_type_t::kInvocationMessage, m_serviceId, m_RepairPLCId, request.getSequence());
// Send message to server
// Codec status is checked inside this function.
m_clientManager->performRequest(request);
err = codec->getStatus();
// Dispose of the request.
m_clientManager->releaseRequest(request);
// Invoke error handler callback function
m_clientManager->callErrorHandler(err, m_RepairPLCId);
pre_post_action_cb postCB = m_clientManager->getPostCB();
if (err != kErpcStatus_Success)
// BeremizPLCObjectService interface ResetLogCount function client shim.
uint32_t BeremizPLCObjectService_client::ResetLogCount(void)
erpc_status_t err = kErpcStatus_Success;
pre_post_action_cb preCB = m_clientManager->getPreCB();
RequestContext request = m_clientManager->createRequest(false);
Codec * codec = request.getCodec();
err = kErpcStatus_MemoryError;
codec->startWriteMessage(message_type_t::kInvocationMessage, m_serviceId, m_ResetLogCountId, request.getSequence());
// Send message to server
// Codec status is checked inside this function.
m_clientManager->performRequest(request);
err = codec->getStatus();
// Dispose of the request.
m_clientManager->releaseRequest(request);
// Invoke error handler callback function
m_clientManager->callErrorHandler(err, m_ResetLogCountId);
pre_post_action_cb postCB = m_clientManager->getPostCB();
if (err != kErpcStatus_Success)
// BeremizPLCObjectService interface SeedBlob function client shim.
uint32_t BeremizPLCObjectService_client::SeedBlob(const binary_t * seed, binary_t * blobID)
erpc_status_t err = kErpcStatus_Success;
pre_post_action_cb preCB = m_clientManager->getPreCB();
RequestContext request = m_clientManager->createRequest(false);
Codec * codec = request.getCodec();
err = kErpcStatus_MemoryError;
codec->startWriteMessage(message_type_t::kInvocationMessage, m_serviceId, m_SeedBlobId, request.getSequence());
write_binary_t_struct(codec, seed);
// Send message to server
// Codec status is checked inside this function.
m_clientManager->performRequest(request);
read_binary_t_struct(codec, blobID);
err = codec->getStatus();
// Dispose of the request.
m_clientManager->releaseRequest(request);
// Invoke error handler callback function
m_clientManager->callErrorHandler(err, m_SeedBlobId);
pre_post_action_cb postCB = m_clientManager->getPostCB();
if (err != kErpcStatus_Success)
// BeremizPLCObjectService interface SetTraceVariablesList function client shim.
uint32_t BeremizPLCObjectService_client::SetTraceVariablesList(const list_trace_order_1_t * orders, int32_t * debugtoken)
erpc_status_t err = kErpcStatus_Success;
pre_post_action_cb preCB = m_clientManager->getPreCB();
RequestContext request = m_clientManager->createRequest(false);
Codec * codec = request.getCodec();
err = kErpcStatus_MemoryError;
codec->startWriteMessage(message_type_t::kInvocationMessage, m_serviceId, m_SetTraceVariablesListId, request.getSequence());
write_list_trace_order_1_t_struct(codec, orders);
// Send message to server
// Codec status is checked inside this function.
m_clientManager->performRequest(request);
codec->read(*debugtoken);
err = codec->getStatus();
// Dispose of the request.
m_clientManager->releaseRequest(request);
// Invoke error handler callback function
m_clientManager->callErrorHandler(err, m_SetTraceVariablesListId);
pre_post_action_cb postCB = m_clientManager->getPostCB();
if (err != kErpcStatus_Success)
// BeremizPLCObjectService interface StartPLC function client shim.
uint32_t BeremizPLCObjectService_client::StartPLC(void)
erpc_status_t err = kErpcStatus_Success;
pre_post_action_cb preCB = m_clientManager->getPreCB();
RequestContext request = m_clientManager->createRequest(false);
Codec * codec = request.getCodec();
err = kErpcStatus_MemoryError;
codec->startWriteMessage(message_type_t::kInvocationMessage, m_serviceId, m_StartPLCId, request.getSequence());
// Send message to server
// Codec status is checked inside this function.
m_clientManager->performRequest(request);
err = codec->getStatus();
// Dispose of the request.
m_clientManager->releaseRequest(request);
// Invoke error handler callback function
m_clientManager->callErrorHandler(err, m_StartPLCId);
pre_post_action_cb postCB = m_clientManager->getPostCB();
if (err != kErpcStatus_Success)
// BeremizPLCObjectService interface StopPLC function client shim.
uint32_t BeremizPLCObjectService_client::StopPLC(bool * success)
erpc_status_t err = kErpcStatus_Success;
pre_post_action_cb preCB = m_clientManager->getPreCB();
RequestContext request = m_clientManager->createRequest(false);
Codec * codec = request.getCodec();
err = kErpcStatus_MemoryError;
codec->startWriteMessage(message_type_t::kInvocationMessage, m_serviceId, m_StopPLCId, request.getSequence());
// Send message to server
// Codec status is checked inside this function.
m_clientManager->performRequest(request);
err = codec->getStatus();
// Dispose of the request.
m_clientManager->releaseRequest(request);
// Invoke error handler callback function
m_clientManager->callErrorHandler(err, m_StopPLCId);
pre_post_action_cb postCB = m_clientManager->getPostCB();
if (err != kErpcStatus_Success)