YSFClients/YSFGateway
Chipster 45e91d0ac2
Publish the "failed" link event schema.json already declared but code never sent
schema.json's link action enum already listed "failed", but no code
path ever published it -- YSFGateway only ever sent linking/unlinked/
relinking. The failure detection itself already existed: m_lostTimer's
expiry handler in the main loop already logs "Link has failed, polls
lost" for both YSF and FCS when a reflector never answers a link
request (a mistyped/dead reflector ID -- the likeliest real operator
mistake, since YSF/FCS reflectors don't use passwords, so there's no
DMR-style auth failure here) or goes silent mid-session. It just never
told MQTT, so the dashboard was left showing a stale "linking" state
indefinitely with no sign anything was wrong.

Adds writeJSONFailed(reason, reflector), called at both existing
"Link has failed, polls lost" points with reason="timer" (m_lostTimer
is what detected it, consistent with the existing reason taxonomy
already used for timer-triggered inactivity events) and the reflector
we were trying to reach. No schema.json changes needed -- action
"failed" and reason "timer" were already declared.
2026-08-10 16:52:09 -05:00
..
APRSWriter.cpp Merge branch 'master' into mqtt 2025-03-19 18:24:40 +00:00
APRSWriter.h Add MQTT handling to the DGId and YSF Gateways. 2023-07-06 13:28:51 +01:00
Conf.cpp Merge branch 'master' into mqtt 2026-02-17 15:17:58 +00:00
Conf.h Merge branch 'master' into mqtt 2026-02-17 15:17:58 +00:00
CRC.cpp Update the C++ version. 2025-03-19 17:49:49 +00:00
CRC.h Prepare for Wires-X encoding. 2016-06-06 18:19:56 +01:00
DTMF.cpp Update the C++ version. 2025-03-19 17:49:49 +00:00
DTMF.h Blank out the DTMF tones. 2018-02-23 08:06:54 +00:00
FCSNetwork.cpp Update the C++ version. 2025-03-19 17:49:49 +00:00
FCSNetwork.h Update the C++ version. 2025-03-19 17:49:49 +00:00
FCSRooms.txt Update FCSRooms.txt 2025-03-12 23:35:01 +01:00
Golay24128.cpp Update the C++ version. 2025-03-19 17:49:49 +00:00
Golay24128.h Initial commit. 2016-05-27 17:55:44 +01:00
GPS.cpp Update the C++ version. 2025-03-19 17:49:49 +00:00
GPS.h Fix Wires-X passthrough and some code cleanups. 2020-11-08 15:20:24 +00:00
Log.cpp Add MQTT retain to some JSON messages. 2026-03-23 17:35:25 +00:00
Log.h Add MQTT retain to some JSON messages. 2026-03-23 17:35:25 +00:00
Makefile Fix compile warnings 2026-03-28 20:19:59 +00:00
MQTTConnection.cpp Add MQTT retain to some JSON messages. 2026-03-23 17:35:25 +00:00
MQTTConnection.h Add MQTT retain to some JSON messages. 2026-03-23 17:35:25 +00:00
prebuild.cmd Clean up the code and remove an annoying bug. 2024-07-08 15:14:30 +01:00
README.md Update the README files. 2020-08-19 16:16:00 +01:00
RingBuffer.h Update the C++ version. 2025-03-19 17:49:49 +00:00
schema.json Upgrade the JSON logging for both gateways. 2023-07-19 11:32:57 +01:00
StopWatch.cpp Update the C++ version. 2025-03-19 17:49:49 +00:00
StopWatch.h Simplify the new stopwatch code. 2018-07-15 20:30:47 +01:00
Sync.cpp Update the C++ version. 2025-03-19 17:49:49 +00:00
Sync.h Prepare for Wires-X encoding. 2016-06-06 18:19:56 +01:00
Thread.cpp Update the C++ version. 2025-03-19 17:49:49 +00:00
Thread.h Fix Linux threading compile issues. 2016-06-06 19:29:23 +01:00
Timer.cpp Initial commit. 2016-05-27 17:55:44 +01:00
Timer.h Initial commit. 2016-05-27 17:55:44 +01:00
UDPSocket.cpp Merge branch 'mqtt' into json_hosts 2026-02-17 15:30:38 +00:00
UDPSocket.h Convert to using JSON host files. 2025-05-12 17:56:46 +01:00
Utils.cpp create timestamps in rfc3339 format 2026-03-23 12:55:43 +00:00
Utils.h Add JSON logging. 2023-07-11 16:57:20 +01:00
Version.h Add MQTT retain to some JSON messages. 2026-03-23 17:35:25 +00:00
WiresX.cpp Update WiresX.cpp 2025-05-26 01:08:33 +01:00
WiresX.h Fix YSFGateway Crash on searching for a reflector with an ID that doesn't exist, code cleanup around the WiresX protocol 2025-05-20 00:50:36 +01:00
YSFConvolution.cpp Update the C++ version. 2025-03-19 17:49:49 +00:00
YSFConvolution.h Initial commit. 2016-05-27 17:55:44 +01:00
YSFDefines.h Fix network ports datatype (unsigned int -> unsigned short). UDPSocket: fix old bug using m_port instead of m_port[x]. 2021-04-25 07:51:51 +02:00
YSFFICH.cpp Update the C++ version. 2025-03-19 17:49:49 +00:00
YSFFICH.h Fix Wires-X passthrough and some code cleanups. 2020-11-08 15:20:24 +00:00
YSFGateway.cpp Publish the "failed" link event schema.json already declared but code never sent 2026-08-10 16:52:09 -05:00
YSFGateway.h Publish the "failed" link event schema.json already declared but code never sent 2026-08-10 16:52:09 -05:00
YSFGateway.ini Merge branch 'mqtt' into json_hosts 2026-02-17 15:30:38 +00:00
YSFGateway.vcxproj Merge branch 'master' into mqtt 2026-02-17 15:17:58 +00:00
YSFGateway.vcxproj.filters Merge branch 'master' into mqtt 2025-03-19 18:24:40 +00:00
YSFHostsUpdate.sh Fix an obvious mistake and synchronise the two JSON host files scripts. 2026-04-10 16:55:12 +01:00
YSFNetwork.cpp Convert to using JSON host files. 2025-05-12 17:56:46 +01:00
YSFNetwork.h Convert to using JSON host files. 2025-05-12 17:56:46 +01:00
YSFPayload.cpp Update the C++ version. 2025-03-19 17:49:49 +00:00
YSFPayload.h Add the data creation for the payload. 2016-06-06 18:29:20 +01:00
YSFReflectors.cpp Merge branch 'mqtt' into json_hosts 2026-02-17 15:30:38 +00:00
YSFReflectors.h Linux cleanups. 2026-02-19 15:48:12 +00:00

The YSF Gateway interfaces the MMDVM Host to the open source YSF and FCS Reflector systems using the standard Wires-X commands from the radio. It also gateways position information to aprs.fi if sent.

The file YSFHosts.txt holds information about the YSF reflectors available, and the gateway has the ability to reload this file at intervals to ensure that it is always up to date.

It is expected that a call to retrieve this file is done via some mechanism such as cron on Linux. The URLs to retrieve the latest file are http://register.ysfreflector.de/export_csv.php, or https://register.ysfreflector.de/export_csv.php.

An example would be following line in root's crontab, that fetches the reflector-list each 5 minutes:

sudo crontab -e

add following line:

*/5 * * * * wget -O /var/YSFGateway/YSFHosts.txt http://register.ysfreflector.de/export_csv.php