Fixed Parser Interface
This commit is contained in:
parent
f7a5f595ab
commit
80a2caf29e
@ -9,14 +9,6 @@ type ParsedMessage struct {
|
||||
payloadBytes []byte
|
||||
}
|
||||
|
||||
func (pm *ParsedMessage) Type() byte {
|
||||
return pm.typeByte
|
||||
}
|
||||
|
||||
func (pm *ParsedMessage) Payload() []byte {
|
||||
return pm.payloadBytes
|
||||
}
|
||||
|
||||
type ParserConfig struct {
|
||||
StartByte byte
|
||||
}
|
||||
@ -144,12 +136,12 @@ func (pa *Parser) IsMessageAvailable() bool {
|
||||
return len(pa.messages) > 0
|
||||
}
|
||||
|
||||
func (pa *Parser) GetNextMessage() (pm ParsedMessage, err error) {
|
||||
func (pa *Parser) GetNextMessage() (typeByte byte, payload []byte, err error) {
|
||||
if !pa.IsMessageAvailable() {
|
||||
return ParsedMessage{}, fmt.Errorf("No message available")
|
||||
return 0x00, nil, fmt.Errorf("No message available")
|
||||
}
|
||||
lastMessage := pa.messages[0]
|
||||
pa.messages = pa.messages[1:]
|
||||
|
||||
return lastMessage, nil
|
||||
return lastMessage.typeByte, lastMessage.payloadBytes, nil
|
||||
}
|
||||
|
||||
@ -90,15 +90,15 @@ func TestParser_ParseBytes(t *testing.T) {
|
||||
t.Errorf("expected message %d to be available", i)
|
||||
break
|
||||
}
|
||||
msg, err := parser.GetNextMessage()
|
||||
msgtype, msgpayload, err := parser.GetNextMessage()
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error when getting message: %v", err)
|
||||
}
|
||||
if msg.Type() != expected.Type() {
|
||||
t.Errorf("message %d: expected type 0x%02X, got 0x%02X", i, expected.Type(), msg.Type())
|
||||
if msgtype != expected.typeByte {
|
||||
t.Errorf("message %d: expected type 0x%02X, got 0x%02X", i, expected.typeByte, msgtype)
|
||||
}
|
||||
if !equalBytes(msg.Payload(), expected.Payload()) {
|
||||
t.Errorf("message %d: expected payload %v, got %v", i, expected.Payload(), msg.Payload())
|
||||
if !equalBytes(msgpayload, expected.payloadBytes) {
|
||||
t.Errorf("message %d: expected payload %v, got %v", i, expected.payloadBytes, msgpayload)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user