package example_test import ( "context" "fmt" "os" "testing" "time" "forge.cadoles.com/cadoles/go-emlid/reach/discovery" "github.com/pkg/errors" ) // Exemple d'utilisation du package "discovery" pour identifier // les modules Reach présents sur le réseau func ExampleDiscovery() { timeout := 10 * time.Second // Création d'un context avec un timeout de 10 secondes // pour limiter le temps de recherche des modules ctx, cancel := context.WithTimeout(context.Background(), timeout) defer cancel() // Recherche des modules annoncés sur le réseau // La recherche durerera 10 secondes, conformément au // timeout associé au context.Context services, err := discovery.Discover(ctx) if err != nil { fmt.Printf("could not discover reach modules: %+v\n", errors.WithStack(err)) os.Exit(1) } // Affichage des différents services Reach identifiés // sur le réseau for idx, srv := range services { fmt.Printf("Module #%d: %s:%d\n", idx, srv.AddrV4, srv.Port) } } func TestExampleDiscovery(t *testing.T) { if !testing.Verbose() { return } ExampleDiscovery() }