From bc4aeff16409553ddbac9d272a4f10e8bd17767a Mon Sep 17 00:00:00 2001 From: lwvmobile Date: Fri, 12 Dec 2025 21:51:37 -0500 Subject: [PATCH] Misc Fixes; #324 Fix cyg_portable.sh for newest version of Cygwin64; Fix p25_frequency process_channel_to_freq to allow a channel value of (0000); Fix Event Format Nit and add EOT Delay on CC for EDACS/PV; --- cyg_portable.sh | 10 ++++++---- src/dsd_events.c | 2 +- src/edacs-fme.c | 4 ++++ src/p25_frequency.c | 2 +- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/cyg_portable.sh b/cyg_portable.sh index f084432..73892ed 100644 --- a/cyg_portable.sh +++ b/cyg_portable.sh @@ -61,6 +61,11 @@ if [ "$RELEASE" = "y" ]; then #start copying things to the lib folder cp -r /lib/pulseaudio/ dsd-fme-portable/lib/ + #Fix random new things that have popped up as of Dec 2025 + cp /lib/lapack/* dsd-fme-portable/dsd-fme/ + #gfortran-5 + cp /bin/cyggfortran* dsd-fme-portable/dsd-fme/ + #start copying things into the dsd-fme folder cp dsd-fme/build/dsd-fme.exe dsd-fme-portable/dsd-fme/ cp -r dsd-fme/examples dsd-fme-portable/dsd-fme/ @@ -70,7 +75,7 @@ if [ "$RELEASE" = "y" ]; then cp .profile dsd-fme-portable/dsd-fme/ #move (cut) the bat files to the portable folder root and delete the other ones so users won't get confused - mv dsd-fme-portable/dsd-fme/examples/cygwin_bat/start-dsd-fme.bat dsd-fme-portable/ + mv dsd-fme-portable/dsd-fme/examples/cygwin_bat/*.bat dsd-fme-portable/ mv dsd-fme-portable/dsd-fme/examples/cygwin_bat/example_options.txt dsd-fme-portable/ mv dsd-fme-portable/dsd-fme/examples/cygwin_bat/complete_usage_options.txt dsd-fme-portable/ rm -rf dsd-fme-portable/dsd-fme/examples/cygwin_bat @@ -128,7 +133,6 @@ if [ "$RELEASE" = "y" ]; then cp /bin/cygdbus* dsd-fme-portable/dsd-fme/ cp /bin/cygedit* dsd-fme-portable/dsd-fme/ cp /bin/cygexpat* dsd-fme-portable/dsd-fme/ - cp /bin/cygfam* dsd-fme-portable/dsd-fme/ cp /bin/cygfdisk* dsd-fme-portable/dsd-fme/ cp /bin/cygffi* dsd-fme-portable/dsd-fme/ cp /bin/cygfftw3_threads* dsd-fme-portable/dsd-fme/ @@ -152,7 +156,6 @@ if [ "$RELEASE" = "y" ]; then cp /bin/cyggomp* dsd-fme-portable/dsd-fme/ cp /bin/cyggpg-error* dsd-fme-portable/dsd-fme/ cp /bin/cyggpgme* dsd-fme-portable/dsd-fme/ - cp /bin/cyggsasl* dsd-fme-portable/dsd-fme/ cp /bin/cyggsm* dsd-fme-portable/dsd-fme/ cp /bin/cyggssapi_krb5* dsd-fme-portable/dsd-fme/ cp /bin/cyggthread* dsd-fme-portable/dsd-fme/ @@ -179,7 +182,6 @@ if [ "$RELEASE" = "y" ]; then cp /bin/cygncurses* dsd-fme-portable/dsd-fme/ cp /bin/cygnettle* dsd-fme-portable/dsd-fme/ cp /bin/cygnghttp* dsd-fme-portable/dsd-fme/ - cp /bin/cygntlm* dsd-fme-portable/dsd-fme/ cp /bin/cygobjc* dsd-fme-portable/dsd-fme/ cp /bin/cygogg* dsd-fme-portable/dsd-fme/ cp /bin/cygopus* dsd-fme-portable/dsd-fme/ diff --git a/src/dsd_events.c b/src/dsd_events.c index 8e8add6..18f61cf 100644 --- a/src/dsd_events.c +++ b/src/dsd_events.c @@ -695,7 +695,7 @@ void watchdog_event_current (dsd_opts * opts, dsd_state * state, uint8_t slot) if (state->ea_mode == 1) { - sprintf (event_string, "%s %s %s TGT: %07d; SRC: %07d; LCN: %02d; SITE: %d:%d.%04X; %s;", datestr, timestr, sys_string, target_id, source_id, channel, sys_id1, sys_id2, sys_id3, sup_str); + sprintf (event_string, "%s %s %s TGT: %07d; SRC: %07d; LCN: %02d; SITE: %d:%d.%04X; %s; ", datestr, timestr, sys_string, target_id, source_id, channel, sys_id1, sys_id2, sys_id3, sup_str); } else { diff --git a/src/edacs-fme.c b/src/edacs-fme.c index db18c0f..40377cc 100644 --- a/src/edacs-fme.c +++ b/src/edacs-fme.c @@ -2299,6 +2299,10 @@ void eot_cc(dsd_opts * opts, dsd_state * state) fprintf (stderr, "EOT; \n"); + //skip an arbitrary number of dibits so that the CC can cancel the grant after a dotting sequence + //prior to returning to the control channel and getting sent in a loopback to the call channel + skipDibit(opts, state, 240*8); + //watchdog event at this point state->lastsynctype = 38; watchdog_event_history(opts, state, 0); diff --git a/src/p25_frequency.c b/src/p25_frequency.c index 22e9228..47f36da 100644 --- a/src/p25_frequency.c +++ b/src/p25_frequency.c @@ -26,7 +26,7 @@ long int process_channel_to_freq (dsd_opts * opts, dsd_state * state, int channe */ //return 0 if channel value is 0 or 0xFFFF - if (channel == 0) return 0; + // if (channel == 0) return 0; //this is a valid use-case on P25 (observed) this has been in code since Feb 2024, how was this issue not discovered before now if (channel == 0xFFFF) return 0; //Note: Base Frequency is calculated as (Base Frequency) x (0.000005 MHz) from the IDEN_UP message.