Giter VIP home page Giter VIP logo

ardop_interface's People

Contributors

cbs228 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

vorot93 jbro885

ardop_interface's Issues

Enable peer auto-discovery

There should be some mechanism which enables the discovery of remote peers. Specifically, we should add a monitoring mode to ArdopTnc which listens for callsigns and grid squares from:

  • ID frames (IDF)
  • PING requests

The monitoring mode should also optionally LISTEN for incoming connections.

We should also consider whether or not to cache this information as a "heard list" and make it available to clients. But I believe that this functionality is better suited for higher-level applications.

Enable ping support

Enable support for sending ping requests. The TNC does not send "ping timeout" notifications to the client, so we will have to put a timeout on that call ourselves.

Busy detection for outgoing calls

Clients must monitor the BUSY TRUE|FALSE state of the TNC in order to avoid transmitting over other parties. These messages need to be consumed and time-tagged. Logic must be written to determine how much inactivity constitutes a clear channel.

In 0.2.0-alpha.1, it was suggested that the caller could chain timeouts onto TNC futures. This is not safe to do for connect(), as the timeout might expire after dialing has begun but before it finishes. The busy detection logic needs an internal timeout, which should be adjustable. It may be worth adding timeouts to listen() et. al. as well. These changes might be implemented in a breaking manner.

Forward Error Correction (FEC) / Unconnected Protocol Support

We should add a FecSocket for ARDOP's unconnected, forward error-correction mode of operation. FEC is very similar to UDP, except that packets may be repeated. FEC frames may also be co-mingled with ID frames.

The biggest hurdle is the need to specify the FECMODE. The available modulation modes change with every major release of ARDOP. We can either:

  1. Tie our public API to ARDOP major versions; OR
  2. Abstract the mode selection process out somewhat.

In general, (1) is the choice with the simpler implementation, and it is probably the correct one.

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.