Skip to content

Commit 91abcbf

Browse files
authored
Merge pull request #20 from Maschga/main
add method QueryInt32()
2 parents f6c64df + 6dd451a commit 91abcbf

File tree

3 files changed

+19
-1
lines changed

3 files changed

+19
-1
lines changed

build_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func TestBuilderParser(t *testing.T) {
3636
parser.length = len(builder.Bytes())
3737
dg, err := parser.Parse()
3838
if err != nil {
39-
t.Errorf(err.Error())
39+
t.Errorf("%s", err.Error())
4040
}
4141
if dg.Cmd != tc.Dg.Cmd || dg.Id != tc.Dg.Id || len(dg.Data) != len(tc.Dg.Data) {
4242
t.Errorf("error mismatch got %s, expect %s", dg.String(), tc.Dg.String())

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)