Skip to content

Commit 3bacbc1

Browse files
committed
add method QueryInt32()
1 parent 1afb10c commit 3bacbc1

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

connection.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,15 @@ func (c *Connection) QueryFloat32(id Identifier) (val float32, err error) {
158158
return dg.Float32()
159159
}
160160

161+
// Queries the given identifier on the RCT device, returning its value as a uint8
162+
func (c *Connection) QueryInt32(id Identifier) (val int32, err error) {
163+
dg, err := c.Query(id)
164+
if err != nil {
165+
return 0, err
166+
}
167+
return dg.Int32()
168+
}
169+
161170
// Queries the given identifier on the RCT device, returning its value as a uint16
162171
func (c *Connection) QueryUint16(id Identifier) (val uint16, err error) {
163172
dg, err := c.Query(id)

datagram.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,15 @@ func (d *Datagram) Float32() (val float32, err error) {
231231
return math.Float32frombits(binary.BigEndian.Uint32(d.Data)), nil
232232
}
233233

234+
// Returns datagram body value as an int32
235+
func (d *Datagram) Int32() (val int32, err error) {
236+
if len(d.Data) != 4 {
237+
return 0, RecoverableError{fmt.Sprintf("invalid data length %d", len(d.Data))}
238+
}
239+
240+
return int32(binary.BigEndian.Uint32(d.Data)), nil
241+
}
242+
234243
// Returns datagram body value as a uint16
235244
func (d *Datagram) Uint16() (val uint16, err error) {
236245
if len(d.Data) != 2 {

0 commit comments

Comments
 (0)