Code Monkey home page Code Monkey logo

jarthianur / virtualflightradar-backend Goto Github PK

View Code? Open in Web Editor NEW
11.0 5.0 3.0 3.59 MB

A backend for virtual-flight-radar. Featuring multiple inputs, parsing and processing of position reports and serving NMEA messages.

Home Page: https://jarthianur.github.io/VirtualFlightRadar-Backend/

License: GNU General Public License v3.0

C++ 91.91% Shell 5.09% C 0.94% Dockerfile 0.25% CMake 0.92% Lua 0.90%
airfield-managers ogn flight-radar sbs aprs nmea backend aircraft position-reports c-plus-plus

virtualflightradar-backend's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

virtualflightradar-backend's Issues

Steps to get it working

From what I gathered so far the steps to get the FLARM Radar working would be:

Please correct me if wrong !

  • Working rtl-sdr installation
  • Install and run ogn-rf and ogn-decode
  • Run local aprsc-server
  • Make ogn-decode report to localhost instead of glidern{1;2}.glidernet.org
    (How do you accomplish that? DNS spoofing?)
  • Build and run VFR-B. Connect VFRB to local aprsc-server
  • Connect XCSoar to VFR-B

Some more questions:
Will the new ogn binaries run without connection to the internet?
What about OGN-DDB whitelist ? Will ogn-decode report targets that are not listed in the DDB?

I hope I can get your system to run here. That would be neat. :-)

require function in bootstrap.sh not working as intended

Describe the bug

The require function in bootstrap.sh is used to check arguments given to a function or script.
Like require 1 2, but this does not work as expected, because positional args are not passed as env vars.
require 3 eg. shows the bug.

This is not severe, as require is only used as safeguard, but should be corrected anyway.

[WIP] Release 4.0.0

This issue tracks the release status for version 4.

TODO:

  • Fix all existing tests
  • Change all processors to use libfmt instead of old C functions
  • Verify this to be working for moving station - in flight
  • Verify new concurrent container to be threadsafe
  • Verify new concurrent access to aircrafts does not break round based processing logic
  • Verify in-place and pointer based string processing to be safe
  • Audit code
    • Double check everything to be safe and secure
    • Rename and refactor where necessary
    • Check code style consistency
    • Write code-docs
  • Rewrite docs and readme to be up-to-date and more clear and concise
  • Update versions and changelogs

Improve multi-feed input

Subject

enhancement, bug

Summary

The priority handling for multiple feed merges is unstable for more than two feeds of same type.
This is actually no bug, but can cause unwanted behavior, when concurrent feeds of different priorities
want to update data. Hence improve the priority handling.

Expected behaviour

Concurrent feeds should handle write attempts in a proper way.

Actual behaviour

Having more than two concurrent feeds can cause unintended data updates.

Severity

Severe

Native build not working on fedora

Describe the bug

Building on fedora linux fails, because it is considering yum as pkg manager and does not find all packages.

To Reproduce

  • be on fedora linux
  • run.sh build

Expected behavior

The install script should detect dnf for fedora and respective packages.

System

  • OS: Fedora
  • Version: *
  • Platform: *

Additional notes
Add any other notes about the problem here.

Use spline for build in travisCI

Subject

enhancement, build

Summary

Enhance the build process with spline. First use this in travisCI.

Expected behaviour

Build this project in a simple pipeline.

Actual behaviour

Currently this project is built sequentially in the travis file.

Severity

Nice to have, but not essentially.

[3.0.1] Client timeout handling broken

Describe the bug

When having a sensor client, the connection is not closed and reopened after timeout for no data received.

To Reproduce
Steps to reproduce the behavior:

  1. use a atm/wind feed
  2. let source send no data for the time configured as timeout

Expected behavior

The connection should be closed and reopened correctly.

System

  • OS: *
  • Version: *
  • Platform: *

Additional notes

This could also affect the keep-alive beacon for aprsc clients.

read bme280

Using the driver from sensorics as interface to read pressure, temperature and humidity from small local sensor (bme280).

Integrate BetterCodeHub

Subject

enhancement

Summary

Integrate BetterCodeHub into the CI process.

Expected behaviour

Gain report for code quality.

Actual behaviour

No code quality integration.

Severity

Nice to have

generic input feeds

Change hard-coded input feeds to generically ones.
List feeds in config like "feeds=sbs,ogn,gps...".
Thus parse config section wise.
Spawn input threads according to the feeds list.

Add regression tests

Along to more unit tests, especially for Feeds, add regression tests to the build process.

[FR] max connection count for server at runtime

Is your feature request related to a problem? Please describe.
To make server handling more flexible, it would be nice to configure the maximum allowed connections via config file instead of hard-coded at compile time.

Describe the solution you'd like
Add a config entry for max server connections and implement this dynamic approach.

Describe alternatives you've considered

Additional notes

[FR] Back-off strategy for (re-)connects

Is your feature request related to a problem? Please describe.
When connecting a feed, or reconnecting after lost connection, a fixed delay (eg 2 min) is actually not desirable.

Describe the solution you'd like
A back-off strategy would allow (re-)connects with an increasing but limited delay.
For example, the first attempt fails, so a second one is done after 2 sec. If that also fails, the next attempt follows after another 15 sec, and so on. It would then saturate at 2 min or whatever.

Describe alternatives you've considered

Additional notes

OGN timeout (30min), no beacon

OGN closes connection after 30 minutes. To fix (hopefully) send a beacon every few minutes.
In addition reconnect if read gets uncritical errors (eof,...) for every client. Limit reconnect trials.

Input-feeds on standby

Let feed depend on other feed.
A feed may be configured to sleep until a certain feed dies.
In the config:

[feed1]
...
standby=feed2

Building

Hey,

I was researching on how to build a standalone FLARM Radar using rtl-sdr and stumbled upon your project.
What is the correct command to build your source code? I could not find any of the make-cmake-style scripts I am used to. I (naively) tried gcc VFRB.cpp which resulted in lots of errors.

[dev-3] - netcode exception safety

Subject

bug

Summary

Netcode seems to be not exceptionsafe.

Expected behaviour

VFRB should exit clean and without exceptions.

Actual behaviour

Program is terminated with uncaught exception.

Steps to reproduce

Run VFRB and cancel via <CRTL+C>. If nothing happens, do again.

Severity

severe

Note

[INFO] Sat Aug 4 09:13:47 2018:: (VFRB) caught signal to shutdown ...
[INFO] Sat Aug 4 09:13:47 2018:: (AprscClient) disconnect from aprs.glidernet.org:14580
[DEBUG] Sat Aug 4 09:13:47 2018:: (Client) timeout: Operation canceled
[DEBUG] Sat Aug 4 09:13:47 2018:: (Client) read: End of file
[ERROR] Sat Aug 4 09:13:47 2018:: (AprscClient) failed to read message
[INFO] Sat Aug 4 09:13:47 2018:: (SensorClient) disconnect from 10.0.0.30:10110
[INFO] Sat Aug 4 09:13:47 2018:: (SbsClient) disconnect from localhost:30003
[DEBUG] Sat Aug 4 09:13:47 2018:: (Client) read: End of file
[ERROR] Sat Aug 4 09:13:47 2018:: (SbsClient) failed to read message
[INFO] Sat Aug 4 09:13:47 2018:: (AprscClient) disconnect from localhost:14580
[DEBUG] Sat Aug 4 09:13:47 2018:: (Client) timeout: Operation canceled
[INFO] Sat Aug 4 09:13:47 2018:: (GpsdClient) disconnect from localhost:2947
[INFO] Sat Aug 4 09:13:47 2018:: (GpsdClient) stopped watch
[DEBUG] Sat Aug 4 09:13:47 2018:: (Client) read: Connection reset by peer
[ERROR] Sat Aug 4 09:13:47 2018:: (GpsdClient) failed to read message
[INFO] Sat Aug 4 09:13:47 2018:: (SensorClient) disconnect from localhost:7997
[DEBUG] Sat Aug 4 09:13:47 2018:: (Client) read: End of file
[ERROR] Sat Aug 4 09:13:47 2018:: (SensorClient) failed to read message
[INFO] Sat Aug 4 09:13:47 2018:: (Server) stopping all connections ...
[DEBUG] Sat Aug 4 09:13:47 2018:: (Server) accept: Operation canceled
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injectorboost::system::system_error >'
what(): remote_endpoint: Bad file descriptor
Abgebrochen

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.