Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
917f23c
implement support for LC_GROUP_UPDT (this includes the RPC between th…
gatekeep Apr 18, 2025
0e9ac9a
reduce influx and V.24 thread pool sizes; add calculation of how long…
gatekeep Apr 18, 2025
1a3b643
don't use void* for the task routines;
gatekeep Apr 18, 2025
6c6d1e6
rename ThreadPoolCallback to ThreadPoolTask; add some checking around…
gatekeep Apr 18, 2025
a95868c
valgrind cleanups;
gatekeep Apr 18, 2025
57e62b9
gate active TG from CC to VC updates at 5s (prevent API spam);
gatekeep Apr 18, 2025
b152747
update package version;
gatekeep Apr 18, 2025
253ca21
don't attempt to send active TG updates to 0.0.0.0;
gatekeep Apr 18, 2025
a003bb1
make notification of active TGs CC -> VC optional;
gatekeep Apr 18, 2025
fa4fd41
correct ThreadPool issue on Win32; split UDP PCM audio processing int…
gatekeep Apr 19, 2025
e802b49
lock queue;
gatekeep Apr 19, 2025
fb77e64
add custom classes for STL containers that support mutex locking for …
gatekeep Apr 19, 2025
245ba25
remove mutex used for protecting udp packet deque;
gatekeep Apr 19, 2025
bc7dea0
more concurrency solidification;
gatekeep Apr 19, 2025
b46f100
further concurrency class usage; bump version number to R04H30;
gatekeep Apr 19, 2025
4d00807
add --boot commandline argument to reboot modem into bootloader witho…
gatekeep Apr 20, 2025
b9ad86c
cleanup program -h usage display;
gatekeep Apr 20, 2025
07aff2d
incorrect opcode define;
gatekeep Apr 20, 2025
ffdb406
update README.md;
gatekeep Apr 20, 2025
e483189
correct incorrect string format for non-useAlternatePortForDiagnostics;
gatekeep Apr 20, 2025
fcffdb3
update README.md;
gatekeep Apr 23, 2025
29dde34
simplify influxdb worker task function;
gatekeep Apr 23, 2025
41bca4c
refactor PL_ACT_PEER_LIST opcode entirely, use zlib and compress list…
gatekeep Apr 24, 2025
e9a872d
don't waste cycles on building the peer list repeatedly, build it onc…
gatekeep Apr 24, 2025
0f1ca31
deduplicate compress/decompress code into a static C++ class;
gatekeep Apr 24, 2025
00d4492
stylecop file formatting;
gatekeep Apr 24, 2025
89d7e3a
add table locking and remove at find;
gatekeep Apr 24, 2025
046e65c
deduplicate implementation;
gatekeep Apr 24, 2025
dddde23
cleanup unused label; change FrameQueue's unordered_map to a concurre…
gatekeep Apr 25, 2025
70ce04a
add more timestream map locking;
gatekeep Apr 25, 2025
ae14ac9
fix incorrect behavior when deriving initial timestamp for a call str…
gatekeep Apr 25, 2025
08cc9ff
fix issue with naive approach to handling PL_ACT_PEER_LIST data frage…
gatekeep Apr 25, 2025
853e847
disable accidental debug code;
gatekeep Apr 25, 2025
9b77d3d
instead of asserting, throw a log error message and discard network p…
gatekeep Apr 27, 2025
22263cf
lock the talkgroup tables when a find is in progress (this will preve…
gatekeep Apr 28, 2025
f034137
if filter headers or terminators is enabled, and the target peer is i…
gatekeep Apr 29, 2025
00f91c1
exclusion check should happen before the rewrite check;
gatekeep Apr 29, 2025
abe8653
implement dvmpatch, this is a new utility that allows simple TG to TG…
gatekeep Apr 29, 2025
853cbf2
ensure FNE downstream peers that report as peer link have implicit al…
gatekeep Apr 30, 2025
4c66b25
document concern over possible null ref concurrency issue;
gatekeep Apr 30, 2025
0be3b70
don't be overly aggressive with FNE process niceness, nice of -10 is …
gatekeep Apr 30, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 26 additions & 10 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# * GPLv2 Open Source. Use is subject to license terms.
# * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# *
# * Copyright (C) 2022,2024 Bryan Biedenkapp, N2PLL
# * Copyright (C) 2022,2024,2025 Bryan Biedenkapp, N2PLL
# * Copyright (C) 2022 Natalie Moore
# *
# */
Expand Down Expand Up @@ -267,7 +267,8 @@ install(TARGETS sysview DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
install(TARGETS tged DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
endif (ENABLE_TUI_SUPPORT AND (NOT DISABLE_TUI_APPS))
install(TARGETS dvmbridge DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
install(FILES configs/config.example.yml configs/fne-config.example.yml configs/fne-sysview.example.yml configs/monitor-config.example.yml configs/iden_table.example.dat configs/RSSI.dat configs/rid_acl.example.dat configs/talkgroup_rules.example.yml configs/bridge-config.example.yml DESTINATION ${CMAKE_INSTALL_PREFIX}/etc)
install(TARGETS dvmpatch DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
install(FILES configs/config.example.yml configs/fne-config.example.yml configs/fne-sysview.example.yml configs/monitor-config.example.yml configs/iden_table.example.dat configs/RSSI.dat configs/rid_acl.example.dat configs/talkgroup_rules.example.yml configs/bridge-config.example.yml configs/patch-config.example.yml DESTINATION ${CMAKE_INSTALL_PREFIX}/etc)
install(PROGRAMS tools/start-dvm.sh tools/stop-dvm.sh tools/dvm-watchdog.sh tools/stop-watchdog.sh tools/fne-watchdog.sh tools/start-dvm-fne.sh DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
install(CODE "execute_process(COMMAND bash \"-c\" \"sed -i 's/filePath: ./filePath: \\\\/var\\\\/log\\\\//' /usr/local/etc/config.example.yml\")")
install(CODE "execute_process(COMMAND bash \"-c\" \"sed -i 's/activityFilePath: ./activityFilePath: \\\\/var\\\\/log\\\\//' /usr/local/etc/config.example.yml\")")
Expand All @@ -289,13 +290,15 @@ if (NOT TARGET strip)
COMMAND arm-linux-gnueabihf-strip -s sysview
COMMAND arm-linux-gnueabihf-strip -s tged
COMMAND arm-linux-gnueabihf-strip -s peered
COMMAND arm-linux-gnueabihf-strip -s dvmbridge)
COMMAND arm-linux-gnueabihf-strip -s dvmbridge
COMMAND arm-linux-gnueabihf-strip -s dvmpatch)
else()
add_custom_target(strip
COMMAND arm-linux-gnueabihf-strip -s dvmhost
COMMAND arm-linux-gnueabihf-strip -s dvmfne
COMMAND arm-linux-gnueabihf-strip -s dvmcmd
COMMAND arm-linux-gnueabihf-strip -s dvmbridge)
COMMAND arm-linux-gnueabihf-strip -s dvmbridge
COMMAND arm-linux-gnueabihf-strip -s dvmpatch)
endif (ENABLE_TUI_SUPPORT AND (NOT DISABLE_TUI_APPS))
elseif (CROSS_COMPILE_AARCH64)
if (ENABLE_TUI_SUPPORT AND (NOT DISABLE_TUI_APPS))
Expand All @@ -307,27 +310,31 @@ if (NOT TARGET strip)
COMMAND aarch64-linux-gnu-strip -s sysview
COMMAND aarch64-linux-gnu-strip -s tged
COMMAND aarch64-linux-gnu-strip -s peered
COMMAND aarch64-linux-gnu-strip -s dvmbridge)
COMMAND aarch64-linux-gnu-strip -s dvmbridge
COMMAND aarch64-linux-gnu-strip -s dvmpatch)
else()
add_custom_target(strip
COMMAND aarch64-linux-gnu-strip -s dvmhost
COMMAND aarch64-linux-gnu-strip -s dvmfne
COMMAND aarch64-linux-gnu-strip -s dvmcmd
COMMAND aarch64-linux-gnu-strip -s dvmbridge)
COMMAND aarch64-linux-gnu-strip -s dvmbridge
COMMAND aarch64-linux-gnu-strip -s dvmpatch)
endif (ENABLE_TUI_SUPPORT AND (NOT DISABLE_TUI_APPS))
elseif (CROSS_COMPILE_RPI_ARM)
if (NOT WITH_RPI_ARM_TOOLS)
add_custom_target(strip
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/_deps/rpitools-src/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip -s dvmhost
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/_deps/rpitools-src/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip -s dvmfne
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/_deps/rpitools-src/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip -s dvmcmd
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/_deps/rpitools-src/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip -s dvmbridge)
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/_deps/rpitools-src/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip -s dvmbridge
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/_deps/rpitools-src/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip -s dvmpatch)
else()
add_custom_target(strip
COMMAND ${RPI_ARM_TOOLS}/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip -s dvmhost
COMMAND ${RPI_ARM_TOOLS}/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip -s dvmfne
COMMAND ${RPI_ARM_TOOLS}/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip -s dvmcmd
COMMAND ${RPI_ARM_TOOLS}/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip -s dvmbridge)
COMMAND ${RPI_ARM_TOOLS}/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip -s dvmbridge
COMMAND ${RPI_ARM_TOOLS}/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip -s dvmpatch)
endif ()
else()
if (ENABLE_TUI_SUPPORT AND (NOT DISABLE_TUI_APPS))
Expand All @@ -339,13 +346,15 @@ if (NOT TARGET strip)
COMMAND strip -s sysview
COMMAND strip -s tged
COMMAND strip -s peered
COMMAND strip -s dvmbridge)
COMMAND strip -s dvmbridge
COMMAND strip -s dvmpatch)
else()
add_custom_target(strip
COMMAND strip -s dvmhost
COMMAND strip -s dvmfne
COMMAND strip -s dvmcmd
COMMAND strip -s dvmbridge)
COMMAND strip -s dvmbridge
COMMAND strip -s dvmpatch)
endif (ENABLE_TUI_SUPPORT AND (NOT DISABLE_TUI_APPS))
endif (CROSS_COMPILE_ARM)
endif (NOT TARGET strip)
Expand Down Expand Up @@ -375,6 +384,7 @@ if (NOT TARGET tarball)
COMMAND cp -v peered ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
COMMAND cp -v dvmfne ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
COMMAND cp -v dvmbridge ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
COMMAND cp -v dvmpatch ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
COMMAND cp ${CMAKE_SOURCE_DIR}/tools/*.sh ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm
COMMAND chmod +x ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/*.sh
COMMAND cp -v ${CMAKE_SOURCE_DIR}/configs/*.yml ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm
Expand Down Expand Up @@ -408,6 +418,7 @@ if (NOT TARGET tarball)
COMMAND cp -v dvmcmd ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
COMMAND cp -v dvmfne ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
COMMAND cp -v dvmbridge ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
COMMAND cp -v dvmpatch ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
COMMAND cp ${CMAKE_SOURCE_DIR}/tools/*.sh ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm
COMMAND chmod +x ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/*.sh
COMMAND cp -v ${CMAKE_SOURCE_DIR}/configs/*.yml ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm
Expand Down Expand Up @@ -454,6 +465,7 @@ if (NOT TARGET tarball_notools)
COMMAND cp -v peered ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
COMMAND cp -v dvmfne ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
COMMAND cp -v dvmbridge ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
COMMAND cp -v dvmpatch ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
COMMAND cp -v ${CMAKE_SOURCE_DIR}/configs/*.yml ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm
COMMAND mkdir -p ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/schema
COMMAND cp -v ${CMAKE_SOURCE_DIR}/configs/schema/*.json ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/schema
Expand Down Expand Up @@ -485,6 +497,7 @@ if (NOT TARGET tarball_notools)
COMMAND cp -v dvmcmd ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
COMMAND cp -v dvmfne ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
COMMAND cp -v dvmbridge ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
COMMAND cp -v dvmpatch ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
COMMAND cp -v ${CMAKE_SOURCE_DIR}/configs/*.yml ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm
COMMAND mkdir -p ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/schema
COMMAND cp -v ${CMAKE_SOURCE_DIR}/configs/schema/*.json ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/schema
Expand Down Expand Up @@ -530,6 +543,7 @@ add_custom_target(old_install
COMMAND install -m 755 peered ${CMAKE_LEGACY_INSTALL_PREFIX}/bin
COMMAND install -m 755 dvmfne ${CMAKE_LEGACY_INSTALL_PREFIX}/bin
COMMAND install -m 755 dvmbridge ${CMAKE_LEGACY_INSTALL_PREFIX}/bin
COMMAND install -m 755 dvmpatch ${CMAKE_LEGACY_INSTALL_PREFIX}/bin
COMMAND install -m 644 ${CMAKE_SOURCE_DIR}/configs/config.example.yml ${CMAKE_LEGACY_INSTALL_PREFIX}/config.example.yml
COMMAND install -m 644 ${CMAKE_SOURCE_DIR}/configs/fne-config.example.yml ${CMAKE_LEGACY_INSTALL_PREFIX}/fne-config.example.yml
COMMAND install -m 644 ${CMAKE_SOURCE_DIR}/configs/fne-sysview.example.yml ${CMAKE_LEGACY_INSTALL_PREFIX}/fne-sysview.example.yml
Expand All @@ -539,6 +553,7 @@ add_custom_target(old_install
COMMAND install -m 644 ${CMAKE_SOURCE_DIR}/configs/rid_acl.example.dat ${CMAKE_LEGACY_INSTALL_PREFIX}/rid_acl.dat
COMMAND install -m 644 ${CMAKE_SOURCE_DIR}/configs/talkgroup_rules.example.yml ${CMAKE_LEGACY_INSTALL_PREFIX}/talkgroup_rules.example.yml
COMMAND install -m 644 ${CMAKE_SOURCE_DIR}/configs/bridge-config.example.yml ${CMAKE_LEGACY_INSTALL_PREFIX}/bridge-config.example.yml
COMMAND install -m 644 ${CMAKE_SOURCE_DIR}/configs/patch-config.example.yml ${CMAKE_LEGACY_INSTALL_PREFIX}/patch-config.example.yml
COMMAND install -m 644 ${CMAKE_SOURCE_DIR}/configs/schema/talkgroup_rules.yaml_schema.json ${CMAKE_LEGACY_INSTALL_PREFIX}/schema/talkgroup_rules.yaml_schema.json
COMMAND install -m 755 ${CMAKE_SOURCE_DIR}/tools/start-dvm.sh ${CMAKE_LEGACY_INSTALL_PREFIX}
COMMAND install -m 755 ${CMAKE_SOURCE_DIR}/tools/stop-dvm.sh ${CMAKE_LEGACY_INSTALL_PREFIX}
Expand Down Expand Up @@ -581,6 +596,7 @@ add_custom_target(old_install-service
COMMAND chown dvmhost:dvmhost ${CMAKE_LEGACY_INSTALL_PREFIX}/rid_acl.example.dat
COMMAND chown dvmhost:dvmhost ${CMAKE_LEGACY_INSTALL_PREFIX}/talkgroup_rules.example.yml
COMMAND chown dvmhost:dvmhost ${CMAKE_LEGACY_INSTALL_PREFIX}/bridge-config.example.yml
COMMAND chown dvmhost:dvmhost ${CMAKE_LEGACY_INSTALL_PREFIX}/patch-config.example.yml
COMMAND chown dvmhost:dvmhost ${CMAKE_LEGACY_INSTALL_PREFIX}/log
COMMAND cp ../linux/dvmhost.service /lib/systemd/system/
COMMAND bash \"-c\" \"sed -i 's/\\\\/usr\\\\/local\\\\/bin/\\\\/opt\\\\/dvm\\\\/bin/' /lib/systemd/system/dvmhost.service\"
Expand Down
29 changes: 27 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ This project suite generates a few executables:
- `dvmhost` host software that connects to the DVM modems (both air interface for repeater and hotspot or P25 DFSI for commerical P25 hardware) and is the primary data processing application for digital modes. [See configuration](#dvmhost-configuration) to configure and calibrate.
- `dvmfne` a network "core", this provides a central server for `dvmhost` instances to connect to and be networked with, allowing relay of traffic and other data between `dvmhost` instances and other `dvmfne` instances. [See configuration](#dvmfne-configuration) to configure.
- `dvmbridge` a analog/PCM audio bridge, this provides the capability for analog or PCM audio resources to be connected to a `dvmfne` instance, allowing realtime vocoding of traffic. [See configuration](#dvmbridge-configuration) to configure.
- `dvmpatch` a talkgroup patching utility, this provides the capability to manually patch talkgroups of the same digital mode together. [See configuration](#dvmpatch-configuration) to configure.
- `dvmcmd` a simple command-line utility to send remote control commands to a `dvmhost` or `dvmfne` instance with REST API configured.

### Supplementary Support Applications
Expand Down Expand Up @@ -215,12 +216,18 @@ using the command line parameter `-wasapi` will force `dvmbridge` to utilize WAS

There is no other real configuration for a `dvmbridge` instance other then setting the appropriate parameters within the configuration files.

## dvmpatch Configuration

This source repository contains configuration example files within the configs folder, please review `patch-config.example.yml` for the `dvmpatch` for details on various configurable options.

There is no other real configuration for a `dvmpatch` instance other then setting the appropriate parameters within the configuration files.

## Command Line Parameters

### dvmhost Command Line Parameters

```
usage: ./dvmhost [-vhdf][--syslog][--setup][-c <configuration file>][--remote [-a <address>] [-p <port>]]
usage: ./dvmhost [-vhdf] [--syslog] [--setup] [--cal][--boot] [-c <configuration file>] [--remote [-a <address>] [-p <port>]]

-v show version information
-h show this screen
Expand All @@ -229,13 +236,17 @@ usage: ./dvmhost [-vhdf][--syslog][--setup][-c <configuration file>][--remote [-

--syslog force logging to syslog

--setup setup and calibration mode
--setup TUI setup and calibration mode

--cal simple calibration mode
--boot connects to modem and reboots into bootloader mode

-c <file> specifies the configuration file to use

--remote remote modem mode
-a remote modem command address
-p remote modem command port
-P remote modem command port (local listening port)

-- stop handling options
```
Expand Down Expand Up @@ -281,6 +292,20 @@ Audio Output Devices:
... <list of audio output devices> ...
```

### dvmpatch Command Line Parameters

```
usage: ./dvmpatch [-vhf][-c <configuration file>]

-v show version information
-h show this screen
-f foreground mode

-c <file> specifies the configuration file to use

-- stop handling options
```

### dvmcmd Command Line Parameters

```
Expand Down
11 changes: 11 additions & 0 deletions configs/bridge-config.example.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,17 @@ network:
# Flag indicating UDP audio should follow the USRP format.
udpUsrp: false

# Delay in-between UDP audio frames (in ms).
# (Some applications will send RTP/PCM audio too fast, requiring a delay in-between packets to
# be added for appropriate IMBE audio pacing. For most cases a 20ms delay will properly pace
# audio frames. If set to 0, no frame pacing or jitter buffer will be applied and audio will be
# encoded as fast as it is received.)
udpInterFrameDelay: 0
# Jitter Buffer Length (in ms).
# (This is only applied if utilizing inter frame delay, otherwise packet timing is assumed to be
# properly handled by the source.)
udpJitter: 200

# Flag indicating the UDP audio will be padded with silence during hang time before end of call.
udpHangSilence: true

Expand Down
2 changes: 2 additions & 0 deletions configs/config.example.yml
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,8 @@ protocols:
interval: 300
# Amount of time to transmit non-dedicated CC broadcasts. (seconds)
duration: 1
# Flag indicating this CC will notify VCs of active TGIDs.
notifyActiveTG: false
# Flag to disable TSDU triple-block transmissions and instead transmit single-block TSDUs.
disableTSDUMBF: false
# Flag to enable optional TIME_DATE_ANNC TSBK during a CC broadcast.
Expand Down
3 changes: 3 additions & 0 deletions configs/fne-config.example.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ master:
# Flag indicating whether or not verbose debug logging is enabled.
debug: false

# Maximum number of concurrent packet processing workers.
workers: 16

# Maximum permitted connections (hard maximum is 250 peers).
connectionLimit: 100

Expand Down
81 changes: 81 additions & 0 deletions configs/patch-config.example.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
#
# Digital Voice Modem - TG Patch
#

# Flag indicating whether the host will run as a background or foreground task.
daemon: true

#
# Logging Configuration
#
# Logging Levels:
# 1 - Debug
# 2 - Message
# 3 - Informational
# 4 - Warning
# 5 - Error
# 6 - Fatal
#
log:
# Console display logging level (used when in foreground).
displayLevel: 1
# File logging level.
fileLevel: 1
# Flag indicating file logs should be sent to syslog instead of a file.
useSyslog: false
# Full path for the directory to store the log files.
filePath: .
# Full path for the directory to store the activity log files.
activityFilePath: .
# Log filename prefix.
fileRoot: dvmpatch

#
# Network Configuration
#
network:
# Network Peer ID
id: 9000123
# Hostname/IP address of FNE master to connect to.
address: 127.0.0.1
# Port number to connect to.
port: 62031
# FNE access password.
password: RPT1234

# Flag indicating whether or not host endpoint networking is encrypted.
encrypted: false
# AES-256 32-byte Preshared Key
# (This field *must* be 32 hex bytes in length or 64 characters
# 0 - 9, A - F.)
presharedKey: "000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F"

# Flag indicating whether or not the host diagnostic log will be sent to the network.
allowDiagnosticTransfer: true

# Flag indicating whether or not verbose debug logging is enabled.
debug: false

# Source Talkgroup ID for transmitted/received audio frames.
sourceTGID: 1
# Source Slot for received/transmitted audio frames.
sourceSlot: 1
# Destination Talkgroup ID for transmitted/received audio frames.
destinationTGID: 1
# Destination Slot for received/transmitted audio frames.
destinationSlot: 1

# Flag indicating whether or not the patch is two-way.
twoWay: false

system:
# Textual Name
identity: PATCH

# Digital mode (1 - DMR, 2 - P25).
digiMode: 1

# Flag indicating whether or not trace logging is enabled.
trace: false
# Flag indicating whether or not debug logging is enabled.
debug: false
14 changes: 13 additions & 1 deletion src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ set(CPACK_PACKAGE_VENDOR "DVMProject")

set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "The DVM Host software provides the host computer implementation of a mixed-mode DMR, P25 and/or NXDN or dedicated-mode DMR, P25 or NXDN repeater system that talks to the actual modem hardware. The host software; is the portion of a complete Over-The-Air modem implementation that performs the data processing, decision making and FEC correction for a digital repeater.")
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "DVMProject Authors")
set(CPACK_DEBIAN_PACKAGE_VERSION "R04Axx")
set(CPACK_DEBIAN_PACKAGE_VERSION "R04Hxx")
set(CPACK_DEBIAN_PACKAGE_RELEASE "0")
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/dvmproject")

Expand Down Expand Up @@ -142,3 +142,15 @@ else ()
target_link_libraries(dvmbridge PRIVATE common vocoder ${OPENSSL_LIBRARIES} dl asio::asio Threads::Threads)
endif (COMPILE_WIN32)
target_include_directories(dvmbridge PRIVATE ${OPENSSL_INCLUDE_DIR} src src/bridge)

#
## dvmpatch
#
include(src/patch/CMakeLists.txt)
add_executable(dvmpatch ${common_INCLUDE} ${patch_SRC})
if (COMPILE_WIN32)
target_link_libraries(dvmpatch PRIVATE common ${OPENSSL_LIBRARIES} asio::asio Threads::Threads)
else ()
target_link_libraries(dvmpatch PRIVATE common ${OPENSSL_LIBRARIES} dl asio::asio Threads::Threads)
endif (COMPILE_WIN32)
target_include_directories(dvmpatch PRIVATE ${OPENSSL_INCLUDE_DIR} src src/patch)
5 changes: 5 additions & 0 deletions src/CompilerOptions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ option(DEBUG_P25_DFSI "" off)
option(DEBUG_RINGBUFFER "" off)
option(DEBUG_HTTP_PAYLOAD "" off)
option(DEBUG_TRELLIS "" off)
option(DEBUG_COMPRESS "" off)

if (DEBUG_DMR_PDU_DATA)
message(CHECK_START "DMR PDU Data Debug")
Expand Down Expand Up @@ -139,6 +140,10 @@ if (DEBUG_TRELLIS)
message(CHECK_START "Trellis Encoding Debug")
add_definitions(-DDEBUG_TRELLIS)
endif (DEBUG_TRELLIS)
if (DEBUG_COMPRESS)
message(CHECK_START "zlib Compression Debug")
add_definitions(-DDEBUG_COMPRESS)
endif (DEBUG_COMPRESS)

set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
find_package(Threads REQUIRED)
Expand Down
Loading