Difference between revisions of "Modbus notes"

From Wiki at Neela Nurseries
Jump to: navigation, search
(^ further references)
m (^ further references)
Line 36: Line 36:
 
=== [[#top|^]] further references ===
 
=== [[#top|^]] further references ===
  
 +
<ul>
 
*  https://stackoverflow.com/questions/40239270/freemodbus-embregcoilscb-function-body-example
 
*  https://stackoverflow.com/questions/40239270/freemodbus-embregcoilscb-function-body-example
 +
</ul>
  
 +
What do we need to pass to eMBRegisterCB()? . . .
 +
<ul>
 
*  https://os.mbed.com/users/giryan/code/Modbus/docs/tip/group__modbus.html
 
*  https://os.mbed.com/users/giryan/code/Modbus/docs/tip/group__modbus.html
  
 +
*  https://stackoverflow.com/questions/1591361/understanding-typedefs-for-function-pointers-in-c
 +
</ul>
  
  
  
 
<!-- comment -->
 
<!-- comment -->

Revision as of 23:25, 12 November 2019



- 2019-11-08 FRI -

When working with FreeModbus, be sure to pay attention to the versions of protocol available, and likely, we only want to enable one of these. See Modbus/include/mbconfig.h. See also Modbus/include/mb.h for instructions on how to initialize and begin to use an instance of FreeModbus stack in given program. Also mention that eMBPoll() routine may be set up as a task in an RTOS, to realize the periodic polling which is part of the stack's runtime manifestation . . .

Looks like also this function to register callbacks for end-user-device-specific Modbus registers will be important:

  eMBErrorCode eMBRegisterCB ( UCHAR ucFunctionCode,
    pxMBFunctionHandler pxHandler
  )

This function signature part of documentation found at https://www.embedded-solutions.at/en/freemodbus/api-documentation/, which gives Doxygen generated API help in an embedded pane in the browser window on which it is visited.


2019-11-12 Tuesday - trying to figure out how pxMBFunctionHandler is defined . . . from http://www.teamfdi.com/uez/docs/mbproto_8h.html:

 Typedefs
 typedef eMBException(* pxMBFunctionHandler )(UCHAR *pucFrame, USHORT *pusLength)

...from this typedef looks like Modbus routines implemented by the end user/end designer must have parameter lists which match "unsigned char pointer, unsigned integer pointer".


^ further references

What do we need to pass to eMBRegisterCB()? . . .