地面站终端 App
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1.8 KiB

AirMap Monitor Service

The AirMap monitor service monitors the state of vehicles and takes action based on changes to this state:

  • when the state of a vehicle changes to active:
    • create a flight with the AirMap services
    • start flight communications
    • transmit telemetry updates to AirMap
    • receive updates for manned and unmanned aerial traffic relevant to a flight
  • when the state of a vehicle changes to inactive:
    • stop flight communications
    • end flight

The daemon exposes its functionality via a gRPC interface (see ${AIRMAPD_ROOT}/interfaces/grpc/airmap/monitor/monitor.proto). Client applications can either rely on the C++-API avaiable in ${AIRMAPD_ROOT}/include/airmap/monitor/client.h or rely on the gRPC ecosystem to easily connect to the daemon in their choice of language and runtime. Please see ${AIRMAPD_ROOT/examples/monitor/client.cpp for an example of using the C++-API. The following diagram summarizes the overall setup:

monitord

Service Configuration

The service is executed with the following command:

$ airmap daemon 

Please note that the service needs exactly one MavLink endpoint to be configured on the command line. The following endpoint types are supported:

  • TCP: Provide --tcp-endpoint-ip=IP and --tcp-endpoint-port=PORT to airmap daemon.
  • UDP: Provide --udp-endpoint-port=PORT to airmap daemon.
  • Serial: Provide --serial-device=PATH/TO/DEVICE to airmap daemon.

The gRPC endpoint exported by the service can be specified with --grpc-endpoint=ENDPOINT, defaulting to 0.0.0.0:9090. The overall daemon configuration for accessing the AirMap services can be specified with --config-file=PATH/TO/CONFIG/FILE. By default, the config file is expected in ~/.config/airmap/production/config.json.