a
Fork of Modbus by
Utilities
Functions | |
void | xMBUtilSetBits (UCHAR *ucByteBuf, USHORT usBitOffset, UCHAR ucNBits, UCHAR ucValues) |
Function to set bits in a byte buffer. | |
UCHAR | xMBUtilGetBits (UCHAR *ucByteBuf, USHORT usBitOffset, UCHAR ucNBits) |
Function to read bits in a byte buffer. |
Detailed Description
This module contains some utility functions which can be used by the application. It includes some special functions for working with bitfields backed by a character array buffer.
Function Documentation
UCHAR xMBUtilGetBits | ( | UCHAR * | ucByteBuf, |
USHORT | usBitOffset, | ||
UCHAR | ucNBits | ||
) |
Function to read bits in a byte buffer.
This function is used to extract up bit values from an array. Up to eight bit values can be extracted in one step.
- Parameters:
-
ucByteBuf A buffer where the bit values are stored. usBitOffset The starting address of the bits to set. The first bit has the offset 0. ucNBits Number of bits to modify. The value must always be smaller than 8.
UCHAR ucBits[2] = {0, 0}; UCHAR ucResult; // Extract the bits 3 - 10. ucResult = xMBUtilGetBits( ucBits, 3, 8 );
Definition at line 86 of file mbutils.cpp.
void xMBUtilSetBits | ( | UCHAR * | ucByteBuf, |
USHORT | usBitOffset, | ||
UCHAR | ucNBits, | ||
UCHAR | ucValues | ||
) |
Function to set bits in a byte buffer.
This function allows the efficient use of an array to implement bitfields. The array used for storing the bits must always be a multiple of two bytes. Up to eight bits can be set or cleared in one operation.
- Parameters:
-
ucByteBuf A buffer where the bit values are stored. Must be a multiple of 2 bytes. No length checking is performed and if usBitOffset / 8 is greater than the size of the buffer memory contents is overwritten. usBitOffset The starting address of the bits to set. The first bit has the offset 0. ucNBits Number of bits to modify. The value must always be smaller than 8. ucValues Thew new values for the bits. The value for the first bit starting at usBitOffset
is the LSB of the valueucValues
ucBits[2] = {0, 0}; // Set bit 4 to 1 (read: set 1 bit starting at bit offset 4 to value 1) xMBUtilSetBits( ucBits, 4, 1, 1 ); // Set bit 7 to 1 and bit 8 to 0. xMBUtilSetBits( ucBits, 7, 2, 0x01 ); // Set bits 8 - 11 to 0x05 and bits 12 - 15 to 0x0A; xMBUtilSetBits( ucBits, 8, 8, 0x5A);
Definition at line 47 of file mbutils.cpp.
Generated on Tue Jul 12 2022 23:11:12 by 1.7.2