diff --git a/Makefile b/Makefile index 0bcadb5..2999750 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -GOTEST_ARGS ?= -v -count=1 +GOTEST_ARGS ?= -count=1 test: go test $(GOTEST_ARGS) ./... \ No newline at end of file diff --git a/README.md b/README.md index 1a057f1..146c374 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,11 @@ Librairie Golang d'interaction avec les produits [Emlid](https://emlid.com/). +## Utilitaires + +- [`cmd/broadcast`](./cmd/broadcast) - Affichage en flux continu des évènements transmis par un module Reach +- [`cmd/configuration](./cmd/configuration) - Affichage de la configuration d'un module Reach + ## Licence [AGPL-3.0](./LICENSE) diff --git a/cmd/broadcast/README.md b/cmd/broadcast/README.md new file mode 100644 index 0000000..4a38370 --- /dev/null +++ b/cmd/broadcast/README.md @@ -0,0 +1,26 @@ +# `broadcast` + +Utilitaire permettant d'afficher en flux continu les messages de type `broadcast` transmis par un module Reach au format JSON. + +## Utilisation + +```shell +go run ./cmd/broadcast -host -filter +``` + +Où: + +- `` est l'adresse IP du module Reach sur le réseau (par défaut `192.168.42.1`) ; +- `` est un filtre permettant d'afficher uniquement certains types de messages (par défaut vide). + +> **Info** Utiliser le flag `-h` pour voir les autres options disponibles. + +### Exemples + +#### Afficher les messages de type `navigation` + +```shell +go run ./cmd/broadcast -filter navigation +``` + +> **Info** Il est possible d'envoyer la sortie de la commande dans `jq` afin de sélectionner plus finement les données à afficher. Par exemple: `go run ./cmd/broadcast -filter navigation | jq '.payload.satellites'`. diff --git a/cmd/configuration/README.md b/cmd/configuration/README.md new file mode 100644 index 0000000..b74d431 --- /dev/null +++ b/cmd/configuration/README.md @@ -0,0 +1,15 @@ +# `configuration` + +Utilitaire permettant d'afficher la configuration d'un module Reach au format JSON. + +## Utilisation + +```shell +go run ./cmd/configuration -host +``` + +Où: + +- `` est l'adresse IP du module Reach sur le réseau (par défaut `192.168.42.1`). + +> **Info** Utiliser le flag `-h` pour voir les autres options disponibles. diff --git a/example/discovery_test.go b/example/discovery_test.go new file mode 100644 index 0000000..30c19aa --- /dev/null +++ b/example/discovery_test.go @@ -0,0 +1,46 @@ +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() +} diff --git a/reach/integration.go b/reach/integration.go index c6a96a8..4354f76 100644 --- a/reach/integration.go +++ b/reach/integration.go @@ -23,6 +23,7 @@ func AssertIntegrationTests(t *testing.T) { } if !skipIntegrationTests { + t.Logf("Running integration tests. To disable, set environment variable %s=true", skipIntegrationTestsEnv) return }