This is an automated email from the ASF dual-hosted git repository.
sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
The following commit(s) were added to refs/heads/develop by this push:
new 6738c00ca1 feat(plc4go/spi): improved error logging on read failure
6738c00ca1 is described below
commit 6738c00ca1a7538cee6624f360305147f291323e
Author: Sebastian Rühl <[email protected]>
AuthorDate: Mon Nov 24 10:21:01 2025 +0100
feat(plc4go/spi): improved error logging on read failure
---
plc4go/spi/utils/ReadBufferByteBased.go | 42 ++++++++++++++++-----------------
1 file changed, 21 insertions(+), 21 deletions(-)
diff --git a/plc4go/spi/utils/ReadBufferByteBased.go
b/plc4go/spi/utils/ReadBufferByteBased.go
index f4e62d5ee8..c7907210cd 100644
--- a/plc4go/spi/utils/ReadBufferByteBased.go
+++ b/plc4go/spi/utils/ReadBufferByteBased.go
@@ -147,11 +147,11 @@ func (rb *byteReadBuffer) ReadByteArray(_ string,
numberOfBytes int, _ ...WithRe
}
func (rb *byteReadBuffer) ReadUint8(_ string, bitLength uint8, _
...WithReaderArgs) (uint8, error) {
- rb.pos += uint64(bitLength)
res, err := rb.reader.ReadBits(bitLength)
if err != nil {
- return 0, errors.Wrapf(err, "error reading %d bits", bitLength)
+ return 0, errors.Wrapf(err, "error reading %d bits at pos
[%d]bit ([%d]byte)", bitLength, rb.pos, rb.pos/8)
}
+ rb.pos += uint64(bitLength)
return uint8(res), nil
}
@@ -164,11 +164,11 @@ func (rb *byteReadBuffer) ReadUint16(logicalName string,
bitLength uint8, _ ...W
}
return uint16(bigInt.Uint64()), nil
}
- rb.pos += uint64(bitLength)
res, err := rb.reader.ReadBits(bitLength)
if err != nil {
- return 0, errors.Wrapf(err, "error reading %d bits", bitLength)
+ return 0, errors.Wrapf(err, "error reading %d bits at pos
[%d]bit ([%d]byte)", bitLength, rb.pos, rb.pos/8)
}
+ rb.pos += uint64(bitLength)
return uint16(res), nil
}
@@ -181,11 +181,11 @@ func (rb *byteReadBuffer) ReadUint32(logicalName string,
bitLength uint8, _ ...W
}
return uint32(bigInt.Uint64()), nil
}
- rb.pos += uint64(bitLength)
res, err := rb.reader.ReadBits(bitLength)
if err != nil {
- return 0, errors.Wrapf(err, "error reading %d bits", bitLength)
+ return 0, errors.Wrapf(err, "error reading %d bits at pos
[%d]bit ([%d]byte)", bitLength, rb.pos, rb.pos/8)
}
+ rb.pos += uint64(bitLength)
return uint32(res), nil
}
@@ -198,20 +198,20 @@ func (rb *byteReadBuffer) ReadUint64(logicalName string,
bitLength uint8, _ ...W
}
return bigInt.Uint64(), nil
}
- rb.pos += uint64(bitLength)
res, err := rb.reader.ReadBits(bitLength)
if err != nil {
- return 0, errors.Wrapf(err, "error reading %d bits", bitLength)
+ return 0, errors.Wrapf(err, "error reading %d bits at pos
[%d]bit ([%d]byte)", bitLength, rb.pos, rb.pos/8)
}
+ rb.pos += uint64(bitLength)
return res, nil
}
func (rb *byteReadBuffer) ReadInt8(_ string, bitLength uint8, _
...WithReaderArgs) (int8, error) {
- rb.pos += uint64(bitLength)
res, err := rb.reader.ReadBits(bitLength)
if err != nil {
- return 0, errors.Wrapf(err, "error reading %d bits", bitLength)
+ return 0, errors.Wrapf(err, "error reading %d bits at pos
[%d]bit ([%d]byte)", bitLength, rb.pos, rb.pos/8)
}
+ rb.pos += uint64(bitLength)
return int8(res), nil
}
@@ -224,11 +224,11 @@ func (rb *byteReadBuffer) ReadInt16(logicalName string,
bitLength uint8, _ ...Wi
}
return int16(bigInt.Int64()), nil
}
- rb.pos += uint64(bitLength)
res, err := rb.reader.ReadBits(bitLength)
if err != nil {
- return 0, errors.Wrapf(err, "error reading %d bits", bitLength)
+ return 0, errors.Wrapf(err, "error reading %d bits at pos
[%d]bit ([%d]byte)", bitLength, rb.pos, rb.pos/8)
}
+ rb.pos += uint64(bitLength)
return int16(res), nil
}
@@ -241,11 +241,11 @@ func (rb *byteReadBuffer) ReadInt32(logicalName string,
bitLength uint8, _ ...Wi
}
return int32(bigInt.Int64()), nil
}
- rb.pos += uint64(bitLength)
res, err := rb.reader.ReadBits(bitLength)
if err != nil {
- return 0, errors.Wrapf(err, "error reading %d bits", bitLength)
+ return 0, errors.Wrapf(err, "error reading %d bits at pos
[%d]bit ([%d]byte)", bitLength, rb.pos, rb.pos/8)
}
+ rb.pos += uint64(bitLength)
return int32(res), nil
}
@@ -258,11 +258,11 @@ func (rb *byteReadBuffer) ReadInt64(logicalName string,
bitLength uint8, _ ...Wi
}
return bigInt.Int64(), nil
}
- rb.pos += uint64(bitLength)
res, err := rb.reader.ReadBits(bitLength)
if err != nil {
- return 0, errors.Wrapf(err, "error reading %d bits", bitLength)
+ return 0, errors.Wrapf(err, "error reading %d bits at pos
[%d]bit ([%d]byte)", bitLength, rb.pos, rb.pos/8)
}
+ rb.pos += uint64(bitLength)
return int64(res), nil
}
@@ -283,7 +283,7 @@ func (rb *byteReadBuffer) ReadBigInt(_ string, bitLength
uint64, _ ...WithReader
// we now read the bits
data, err := rb.reader.ReadBits(bitToRead)
if err != nil {
- return nil, errors.Wrapf(err, "error reading %d bits",
bitLength)
+ return nil, errors.Wrapf(err, "error reading %d bits at
pos [%d]bit ([%d]byte)", bitLength, rb.pos, rb.pos/8)
}
rb.pos += bitLength
@@ -320,12 +320,12 @@ func (rb *byteReadBuffer) ReadBigInt(_ string, bitLength
uint64, _ ...WithReader
func (rb *byteReadBuffer) ReadFloat32(logicalName string, bitLength uint8, _
...WithReaderArgs) (float32, error) {
if bitLength == 32 {
- rb.pos += uint64(bitLength)
var uintValue uint32
_uintValue, err := rb.reader.ReadBits(bitLength)
if err != nil {
- return 0, errors.Wrapf(err, "error reading %d bits",
bitLength)
+ return 0, errors.Wrapf(err, "error reading %d bits at
pos [%d]bit ([%d]byte)", bitLength, rb.pos, rb.pos/8)
}
+ rb.pos += uint64(bitLength)
uintValue = uint32(_uintValue)
if rb.byteOrder == binary.LittleEndian {
array := make([]byte, 4)
@@ -357,11 +357,11 @@ func (rb *byteReadBuffer) ReadFloat32(logicalName string,
bitLength uint8, _ ...
}
func (rb *byteReadBuffer) ReadFloat64(_ string, bitLength uint8, _
...WithReaderArgs) (float64, error) {
- rb.pos += uint64(bitLength)
uintValue, err := rb.reader.ReadBits(bitLength)
if err != nil {
- return 0, errors.Wrapf(err, "error reading %d bits", bitLength)
+ return 0, errors.Wrapf(err, "error reading %d bits at pos
[%d]bit ([%d]byte)", bitLength, rb.pos, rb.pos/8)
}
+ rb.pos += uint64(bitLength)
if rb.byteOrder == binary.LittleEndian {
array := make([]byte, 8)
binary.LittleEndian.PutUint64(array, uintValue)