Name
cyg_modbus_raw_pdu — Access raw PDU buffer
Synopsis
#include <cyg/modbus.h>
void cyg_modbus_raw_pdu(
cyg_handle_t ctx, cyg_uint8 *len, cyg_uint8 **data)
;
Description
This function provides low-level access to the request PDU buffer for the backend handler code. Before calling the backend handler function the MODBUS server will have already parsed the request and will pass the relevant request data as parameters to the handler function. However, for some backend implementations it may be useful to re-use the request memory space as the holding location for the response. This can avoid the backend having to manage its own dynamic memory allocations.
The
example packages/services/modbus/current/tests/backend_dummy.c
source file provided with the package provides examples of using
this cyg_modbus_raw_pdu()
function in conjunction
with cyg_modbus_response_nocopy()
to re-use the
transaction PDU buffer. For example:
{ cyg_uint8 len; cyg_uint8 *pdata; cyg_modbus_raw_pdu(ctx,&len,&pdata); … code to fill pdata buffer …; len = response_length; cyg_modbus_response_nocopy(ctx,len); }
2024-03-18 | eCosPro Non-Commercial Public License |