github.com/bluenviron/gomavlib/v2@v2.2.1-0.20240308101627-2c07e3da629c/node_streamrequest_test.go (about) 1 package gomavlib 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/stretchr/testify/require" 8 9 "github.com/bluenviron/gomavlib/v2/pkg/dialect" 10 "github.com/bluenviron/gomavlib/v2/pkg/message" 11 ) 12 13 func TestNodeStreamRequest(t *testing.T) { 14 dialect := &dialect.Dialect{ 15 Version: 3, 16 Messages: []message.Message{ 17 &MessageHeartbeat{}, 18 &MessageRequestDataStream{}, 19 }, 20 } 21 22 node1, err := NewNode(NodeConf{ 23 Dialect: dialect, 24 OutVersion: V2, 25 OutSystemID: 10, 26 Endpoints: []EndpointConf{ 27 EndpointUDPServer{"127.0.0.1:5600"}, 28 }, 29 HeartbeatDisable: true, 30 StreamRequestEnable: true, 31 }) 32 require.NoError(t, err) 33 defer node1.Close() 34 35 go func() { 36 for range node1.Events() { //nolint:revive 37 } 38 }() 39 40 node2, err := NewNode(NodeConf{ 41 Dialect: dialect, 42 OutVersion: V2, 43 OutSystemID: 11, 44 Endpoints: []EndpointConf{ 45 EndpointUDPClient{"127.0.0.1:5600"}, 46 }, 47 HeartbeatDisable: false, 48 HeartbeatPeriod: 500 * time.Millisecond, 49 HeartbeatAutopilotType: 3, // MAV_AUTOPILOT_ARDUPILOTMEGA 50 }) 51 require.NoError(t, err) 52 defer node2.Close() 53 54 for evt := range node2.Events() { 55 if ee, ok := evt.(*EventFrame); ok { 56 if _, ok = ee.Message().(*MessageRequestDataStream); ok { 57 return 58 } 59 } 60 } 61 }