[collectd] Modbus and Mixed endian devices.

PJ Bostley pbostley at gmail.com
Thu Jan 11 01:30:37 CET 2018


Modbus is Big endian.  With 32 bit and float it would follow that the 16bit
registers that are combined to form a 32bit value would also be big
endian.  Sadly some folks don't do it this way and we have a mixed endian
world.

Instead of ABCD with register[n] having AB and register[n+1] having CD, you
end up with

CDAB. with register[n] having the low order bytes (CD) and register[n+1}
having the high order bytes.

Here is a patch against tip as of an hour ago that adds:  Uint32LE,
FloatLE, and Int32LE types to handle this.

I can put this up in GIT but before I hastle with that:  Does anyone have
any feedback on this?  It's pretty straight forward but somefolks have
strong feelings about variable names, etc..
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.verplant.org/pipermail/collectd/attachments/20180110/b7cbf330/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: collectd.patch
Type: application/octet-stream
Size: 4856 bytes
Desc: not available
URL: <http://mailman.verplant.org/pipermail/collectd/attachments/20180110/b7cbf330/attachment.obj>


More information about the collectd mailing list