Startup & Logs

Ways to start DroneBridge modules & how to access logs generated by the started modules

Startup

All modules can be started manually but it is preferred to use start_db_modules.py script. On DroneBridge for Raspberry Pi the startup of modules is done by the start_db service. The source code sits inside the root directory of the repository. The service can be updated/registered using:

sudo cp /home/pi/DroneBridge/start_db /etc/init.d/start_db
sudo update-rc.d -f start_db remove
sudo update-rc.d start_db defaults

The status of the DroneBridge modules can be checked using:

sudo /etc/init.d/start_db [status|start|stop]

or:

service start_db [status|start|stop]

Logs

Local logs when connected via ssh

Since it is a service, all logs will be written to the journal. The logs can be viewed using one of the following commands:

journalctl -u start_db.service [-f for real-time]
systemctl | grep start_db | less

Local logs when access via SD-card

All DroneBridge modules log to syslog. In /DroneBridge/log/db_modules.log are all relevant log entries.

Remote real-time logging

Connect via TCP to the Raspberry Pi on port 1605 and you will receive realtime syslog logs. Forward the messages to your favourite log viewer like Syslog Watcher. Or use the provided Python 3 script below to output directly to console.

import socket
from time import sleep

UDP_PORT_SYSLOG_SERVER = 1605
# Raspberry Pi IP when connected to GND station via WiFi: 192.168.2.1

if __name__ == '__main__':
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    reconnect = True
    while reconnect:
        try:
            sock.connect(('IP-OF-RPi', UDP_PORT_SYSLOG_SERVER))
            reconnect = False
        except ConnectionRefusedError:
            print("Retrying")
            sleep(1)

    while True:
        try:
            data = sock.recv(1024)
            print(data.decode("utf-8"))
        except KeyboardInterrupt:
            break
    socket.socket.close(sock)

Last updated