DMR: UDP Comp Data Calls use Data header SRC and TGT values for Event History; Fixes Text Messages not populating Event History; Simplify Event String;
The frame sync hunt loop sorted the entire symbol amplitude window
(lbuf2, t_max entries) with qsort on every iteration only to read
three ranked values off each end. Replace the copy + qsort with a
single O(n) pass maintaining the five smallest and five largest
values in two fixed 5-slot arrays, reading the exact same ranks.
Rank equivalence: lmn[] ascending = sorted[0..], lmx[] descending =
sorted[..t_max-1], so both the short (t_max < 13) and long rank
formulas map 1:1. The now-unused lbuf2 scratch buffer is removed.
Decode output verified byte-identical (timestamps stripped) against
DMR, dPMR, D-Star and YSF sample captures, including runs with a
10 second no-carrier lead-in.
DMR: Tweak FLCO to remove 0x23 as a Cap+ Private Call when it is only a RAS indicator on a normal Private Call; Clarify Comments;
DMR: Tweak RAS MD5 loading to allow for a correction against a flat value (if needed in future based on observation);
DMR: Misc Tweaks to Vertex Standard Key Loading; #316
Disable Fist Byte Correction on MD5 password hash following observations based on real world system;
Improve BPTC127x77 Decoder Logic;
Tweak Debug code to show checksum diff if there is no actual diff;
Special mode of 0:0 to apply the inversion to the interlevaed frame if present without application of a keystream for analysis;
Misc Tweaks to VTX STD ENC Header and VTX TMS message;
TG Value loading of VTX 10 char keys available only by #define VERTEX_KEY40_BY_TG which will override the Moto BP loadout;
This is just a simple spam of the rtlsdr_set_center_freq function if that function returns a negative value indicating failure. Similar retries are present for gain and ppm set as well.
This is primarily to address issues that have been noted to arise on USB 2.0 ports on some AM4 motherboard / chipset configurations, prevalently, Ryzen CPUs with the 3XX, 4XX, and 5XX motherboards. This may also address other misc issues due to bad USB cables (within reason) as long as a retry will suffice to allow proper tuning;
Upstream rtl-sdr repo was updated to 2.0.3 previously as well to allow for the V4L version dongles to work correctly when compiled in Cygwin. Linux users will need to update their own rtl-sdr versions;
RAS Implementation includes converting RAS 6-24 character passwords into 56-bit RAS Effective Key Values and Performing RAS Permutations on RAS Enabled Burst Types to Calculate the Correct MAC attachment to validate messages;
Better Handling for RAS indicators found in BPTC 196,96 Reserved Bits and handling for RAS indicator bits found in embedded link control opcode byte;
Users may either enter the RAS password with the -$ option, or the 56-bit effective key value with the -y option.
Users will no longer need to use the -F option to bypass CRC errors on RAS enabled payloads when FEC does not explicitely fail.
Removed the old float audio -y option.
MBE: Fixes for non forced DMRA supported decryption modes (with supplied IV + expansion in mbe file, etc);
MBE: Support for DMRA DES Mode (rare and untested for .mbe files);
DMR: Clarify and Decode FSN Value on Data Headers; #350
NXDN: Fix errors on KS creation on AES discard bytes on voice application;
GCC: Fix Misc unused-but-set-variable warnings (GCC Version GNU 16.1.1);
Make adjustments to groupinfo struct; Misc tweaks to code using groupinfo items;
Move group_array from stack to heap; Calloc adequate memory for it;
Switch to strncpy to fix potential issues with large strings copying OOB and crashing;
NXDN: Initial GPS Report Commit;
NXDN: Don't assign GI, TG/RID in VCALL_ASSGN; Leads to duplicate entries in Event History, particularly when private call;
NMEA: Sentence Checker with start, end, checksum, and supplimentary string checks P25p1 Tier 1 Location Service and Also observed on old Type-D system;
LRRP: Fix LRRP.exe style reports to use date/time strings with colons and slashes;
NXDN: Tweak to DCALL to check for a selective retry when blk_num is not equal to pf_num and invalidate, we don't have the memory of the last PDU attempt (and may have successfully received it anyways, even if the radio did not);
NXDN: Fix Block Assembly on "idas" types, they do have the same blocking structure;
NXDN: Fix CRC32 and "total_bytes" when padding bytes are present;
NXDN: Add placeholder GPS function and reverse byte load for GPS location data found in certain DCALL messages;
DMR: Init AES keyloader arrays for PDU;
Misc cleanup and tweaks;