Tim Stewart 8874d1262b Detect DV Fast Data on a per-frame basis
This commit adds a maybeFixupVoiceFrame() function that is used by
both the RF and Net code to manage FEC regeneration and DTMF blanking
in voice frames.

The presence of Fast Data is discovered by reading the mini-header in
every second data frame.  If found, FEC regeneration and DTMF blanking
are disabled for the current and next voice frames.

An exception is voice frames that have a sync frame instead of a data
frame.  This commit always disables FEC regeneration and DTMF blanking
for these frames.  A later commit will add support for these frames by
setting aside the voice frame until the next data frame can be read.

This commit also includes a number of debugging statements that will
be removed in a later commit.
2020-11-29 16:12:58 -05:00
2018-08-12 11:27:03 +02:00
2020-08-10 15:36:12 +03:00
2017-08-20 12:35:03 +01:00
2018-08-12 11:27:03 +02:00
2018-02-04 14:30:23 +01:00
2018-06-07 18:46:03 +01:00
2016-09-19 21:41:34 +01:00
2016-04-19 06:50:51 +01:00
2016-01-14 18:45:04 +00:00
2019-11-17 10:57:58 +08:00
2019-11-17 10:57:58 +08:00
2020-04-03 17:09:17 +01:00
2018-02-08 20:25:03 +00:00
2017-05-19 08:35:14 +01:00
2017-05-15 22:12:39 +01:00
2016-02-15 18:45:57 +00:00
2016-02-15 18:45:57 +00:00
2019-11-07 13:53:57 +00:00
2019-10-11 18:24:25 +01:00
2020-03-10 05:26:45 +09:00
2020-11-08 18:46:19 -03:00
2020-09-06 12:54:08 +01:00
2016-03-07 20:21:55 +00:00
2016-02-15 18:45:57 +00:00
2019-11-17 10:57:58 +08:00
2016-02-15 18:45:57 +00:00
2016-02-15 18:45:57 +00:00
2020-03-30 20:30:43 +02:00
2018-01-04 01:09:37 +01:00
2020-09-06 12:54:08 +01:00
2020-09-06 12:54:08 +01:00
2016-02-01 20:49:52 +00:00
2016-01-14 18:45:04 +00:00
2016-01-14 18:45:04 +00:00
2019-03-13 20:30:49 +09:00
2018-01-17 19:06:37 +00:00
2020-09-20 14:07:42 +01:00
2016-01-14 18:45:04 +00:00
2020-09-06 11:57:11 +01:00
2020-11-06 10:52:34 +00:00
2020-11-08 18:46:19 -03:00
2016-10-06 20:06:57 +01:00
2016-10-06 20:06:57 +01:00
2020-10-31 19:53:00 +08:00
2018-01-17 21:21:25 +00:00
2018-03-20 20:36:23 +00:00
2018-03-20 20:36:23 +00:00
2020-09-06 12:54:08 +01:00
2020-09-06 12:54:08 +01:00
2020-09-06 12:54:08 +01:00
2020-09-06 12:54:08 +01:00
2018-03-21 18:44:33 +00:00
2018-03-21 18:44:33 +00:00
2020-03-09 22:23:55 +09:00
2020-03-09 22:23:55 +09:00
2020-09-25 19:02:36 +08:00
2020-09-24 18:58:10 +08:00
2019-12-04 15:07:54 +01:00
2020-09-06 12:54:08 +01:00
2020-09-06 12:54:08 +01:00
2018-08-20 00:47:45 -03:00
2018-01-04 21:17:34 +00:00
2018-01-17 07:59:40 +00:00
2018-01-17 07:59:40 +00:00
2019-01-23 08:50:22 +00:00
2020-09-06 12:54:08 +01:00
2020-09-06 12:54:08 +01:00
2016-01-14 18:45:04 +00:00
2016-01-14 18:45:04 +00:00
2020-11-24 09:27:01 +00:00
2020-02-14 20:53:21 +00:00
2016-01-14 18:45:04 +00:00
2016-01-14 18:45:04 +00:00
2016-12-22 10:29:39 +00:00
2018-07-15 20:33:14 +01:00
2018-07-15 20:33:14 +01:00
2018-01-11 20:59:32 +00:00
2018-01-11 20:59:32 +00:00
2020-10-05 12:46:54 +01:00
2016-06-06 19:26:47 +01:00
2016-01-14 18:45:04 +00:00
2016-01-14 18:45:04 +00:00
2020-09-20 21:31:32 +01:00
2016-11-17 11:48:42 +01:00
2016-11-17 11:48:42 +01:00
2020-04-09 22:02:47 +01:00
2020-03-05 06:35:14 +09:00
2020-03-08 07:55:08 +09:00
2020-03-08 07:55:08 +09:00
2018-01-17 21:21:25 +00:00
2018-10-23 21:59:10 -03:00
2020-10-13 10:07:31 +01:00
2020-10-13 10:07:31 +01:00
2020-09-06 12:54:08 +01:00

These are the source files for building the MMDVMHost, the program that interfaces to the MMDVM or DVMega on the one side, and a suitable network on the other. It supports D-Star, DMR, P25 Phase 1, NXDN, System Fusion, POCSAG, and FM on the MMDVM, and D-Star, DMR, and System Fusion on the DVMega.

On the D-Star side the MMDVMHost interfaces with the ircDDB Gateway, on DMR it connects to the DMR Gateway to allow for connection to multiple DMR networks, on System Fusion it connects to the YSF Gateway to allow access to the FCS and YSF networks. On P25 it connects to the P25 Gateway. On NXDN it connects to the NXDN Gateway which provides access to the NXDN and NXCore talk groups. It uses the DAPNET Gateway to access DAPNET to receive paging messages. Finally it uses the FM Gateway to interface to existing FM networks.

It builds on 32-bit and 64-bit Linux as well as on Windows using Visual Studio 2019 on x86 and x64. It can optionally control various Displays. Currently these are:

  • HD44780 (sizes 2x16, 2x40, 4x16, 4x20)
    • Support for HD44780 via 4 bit GPIO connection (user selectable pins)
    • Adafruit 16x2 LCD+Keypad Kits (I2C)
    • Connection via PCF8574 GPIO Extender (I2C)
  • Nextion TFTs (all sizes, both Basic and Enhanced versions)
  • OLED 128x64 (SSD1306)
  • LCDproc

The Nextion displays can connect to the UART on the Raspberry Pi, or via a USB to TTL serial converter like the FT-232RL. It may also be connected to the UART output of the MMDVM modem (Arduino Due, STM32, Teensy), or to the UART output on the UMP.

The HD44780 displays are integrated with wiringPi for Raspberry Pi based platforms.

The OLED display needs an extra library see OLED.md

The LCDproc support enables the use of a multitude of other LCD screens. See the supported devices page on the LCDproc website for more info.

This software is licenced under the GPL v2 and is intended for amateur and educational use only. Use of this software for commercial purposes is strictly forbidden.

Description
No description provided
Readme 25 MiB
Languages
C++ 96.8%
C 1.4%
Shell 1.1%
Python 0.4%
Makefile 0.2%