Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple MQTT tools

Two applications are provided primarily to test the usage of the MQTT protocol and specifically BulletGCSS telemetry.

  • mqttsub Subscribe to a MQTT service, display received data, optionally generate time-stamped log
  • mqttplayer Replay a MQTT log (from mqttsub or BulletGCSS) to a MQTT server, preserving message timing.
  • mqttcap Persistent subscription capture. mqttcap can be left running in the background and can capture MQTT data to distinct files in logdir from the broker subscription.
$ mqttsub --help
Usage of mqttsub -broker URI [options] ...
  -broker string
    	Mqtt URI (mqtt://[user[:pass]@]broker[:port]/topic[?cafile=file])
  -log string
    	log file for messages
  -qos int
    	The QoS for message subscription
$ mqttplayer --help
Usage of mqttplayer -broker URI [options] file
  -broker string
    	Mqtt URI (mqtt://[user[:pass]@]broker[:port]/topic[?cafile=file])
  -fast
    	Speed up x10
  -qos int
    	The QoS for message publication
$ mqttcap --help
Usage of mqttcap -broker URI [options] ...
  -broker string
    	Mqtt URI (mqtt://[user[:pass]@]broker[:port]/topic[?cafile=file])
  -logdir string
    	log directory for messages (default "/tmp")
  -splittime int
    	split time for logs (default 300)

Note that the scheme (mqtt:// in the --help text) is interpreted as:

  • ws - Websocket (vice TCP socket), ensure the websocket port is also specificed
  • wss - Encrypted websocket, ensure the TLS websocket port is also specificed. TLS validation is performed using the system CA files.
  • mqtts - Secure (TLS) TCP connection. Ensure the TLS port is specified. TLS validation is performed using the system CA files.
  • mqtt (or anyother scheme) - TCP connection. If ?cafile=file is specified, then that is used for TLS validation (and the TLS port should be specified).

Log file

The log file generated by mqttsub contains payload data, prefixed with a time_t-like timestamp with millsecond precision. The timestamp and payload are separated by a TAB character.

1611845402.129  cs:JRandomUAV,
1611845402.130  flt:0,ont:60,ran:20,pan:-10,hea:263,ggc:200,alt:0,asl:33,gsp:0,bpv:16.80,cad:0,cud:0.11,rsi:100,

As well as mqttsub log files, mqttplayer can also replay BulletGCSS log files. These are characterised by a millisecond Unix epoch timestamp, a '|' separator followed by the data.

if the log contains no timestamp and separator, the contents are replayed at 1 second interval.

Installation

Requires a Go compiler and make.

make

then copy mqttsub and mqttplayer somewhere convenient.

About

Couple of simple tools for testing MQTT, mainly for flightlog2kml/fl2mqtt and BulletGCSS

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages