github.com/bluenviron/gomavlib/v2@v2.2.1-0.20240308101627-2c07e3da629c/node_heartbeat_test.go (about)

     1  package gomavlib
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"github.com/stretchr/testify/require"
     8  )
     9  
    10  func TestNodeHeartbeat(t *testing.T) {
    11  	node1, err := NewNode(NodeConf{
    12  		Dialect:     testDialect,
    13  		OutVersion:  V2,
    14  		OutSystemID: 10,
    15  		Endpoints: []EndpointConf{
    16  			EndpointUDPServer{"127.0.0.1:5600"},
    17  		},
    18  		HeartbeatDisable: true,
    19  	})
    20  	require.NoError(t, err)
    21  	defer node1.Close()
    22  
    23  	node2, err := NewNode(NodeConf{
    24  		Dialect:     testDialect,
    25  		OutVersion:  V2,
    26  		OutSystemID: 11,
    27  		Endpoints: []EndpointConf{
    28  			EndpointUDPClient{"127.0.0.1:5600"},
    29  		},
    30  		HeartbeatDisable: false,
    31  		HeartbeatPeriod:  500 * time.Millisecond,
    32  	})
    33  	require.NoError(t, err)
    34  	defer node2.Close()
    35  
    36  	<-node1.Events()
    37  	evt := <-node1.Events()
    38  	fr, ok := evt.(*EventFrame)
    39  	require.Equal(t, true, ok)
    40  	_, ok = fr.Message().(*MessageHeartbeat)
    41  	require.Equal(t, true, ok)
    42  }