diff --git a/.gitignore b/.gitignore index c8daee9..4110a88 100644 --- a/.gitignore +++ b/.gitignore @@ -3,8 +3,8 @@ *.dylib build *.sh -*.csv -examples + + *.bin *.ans diff --git a/README.md b/README.md index eb4ffb7..4829db2 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ DSD-FME is an evolution of the original DSD project from 'DSD Author' using the base code of [szechyjs](https://github.com/szechyjs/dsd "szechyjs"), some code and ideas from [LouisErigHerve](https://github.com/LouisErigHerve/dsd "LouisErigHerve"), [Boatbod OP25](https://github.com/boatbod/op25 "Boatbod OP25") and [Osmocom OP25](https://gitea.osmocom.org/op25/op25 "Osmocom OP25"), along with other snippets of code, information, and inspirations from other projects including [DSDcc](https://github.com/f4exb/dsdcc "DSDcc"), [SDTRunk](https://github.com/DSheirer/sdrtrunk "SDRTrunk"), [MMDVMHost](https://github.com/g4klx/MMDVMHost "MMDVMHost"), [LFSR](https://github.com/mattames/LFSR "LFSR"), [OK-DMRlib](https://github.com/OK-DMR/ok-dmrlib "OK-DMRlib"), and [EZPWD-Reed-Solomon](https://github.com/pjkundert/ezpwd-reed-solomon "EZPWD"), Eric Cottrell, SP5WWP and others. Finally, this is all brought together with original code to extend the fuctionality and add new features including NCurses Terminal and Menu system, Pulse Audio, TCP Direct Link Audio, RIGCTL, Trunking Features, LRRP/GPS Mapping, P25 Phase 2, EDACS, OP25 Capture Bin compatability, etc. DSD-FME is primarily focused with Linux Desktop users, so please understand that this version may not compile, compile easily, or run correctly in other environments. -This project wouldn't be possible without a few good people providing me plenty of sample audio files to run over and over again. Special thanks to jurek1111, KrisMar, noamlivne, racingfan360, iScottyBotty, LimaZulu and others for the many hours of wav samples submitted by them. Most importantly, HRH17, whose insight, information, samples, and willingness to let me remote into a computer half-way across the globe in order to test trunking features are what make DSD-FME what it has become. Thank you everybody. +This project wouldn't be possible without a few good people providing me plenty of sample audio files to run over and over again. Special thanks to jurek1111, KrisMar, noamlivne, racingfan360, iScottyBotty, LimaZulu, mrscanner2008, Forts, thewraithe2008, and others for the many hours of wav samples and information provided by them. Most importantly, HRH17, whose insight, information, samples, and willingness to let me remote into a computer half-way across the globe in order to test trunking features are what make DSD-FME what it has become. Thank you everybody. Click image below for video of current DMR/P25 trunking capabilities. @@ -18,10 +18,6 @@ Click image below for video of current DMR/P25 trunking capabilities. See the [examples](https://github.com/lwvmobile/dsd-fme/tree/main/examples "examples") folder for information on [cloning and installing](https://github.com/lwvmobile/dsd-fme/blob/main/examples/Install_Notes.md "cloning and installing"), [example usage](https://github.com/lwvmobile/dsd-fme/blob/main/examples/Example_Usage.md "example usage"), and [trunking examples](https://github.com/lwvmobile/dsd-fme/blob/main/examples/trunking.sh "trunking examples"). -## Notice - -The pulseaudio branch has been deleted in favor of the new main branch which also uses Pulse Audio. Users moving to the main branch should review the help file and example usage files for changes in syntax. Users can download the last pulse audio branch version from the release link if they prefer the older version. Any pre-compiled windows versions found in the release link will be considered legacy as well, and do not feature trunking support and have older handling for some other modes. Users are free to use those, but keep in mind the use case syntax may and will be different between versions. Furthermore, any wiki articles with 'auto intstall scripts' made for windows users may contain outdated information for building the deleted pulseaudio branch, please adjust any information found in those accordingly. - ## License Copyright (C) 2010 DSD Author GPG Key ID: 0x3F1D7FD0 (74EF 430D F7F2 0A48 FCE6 F630 FAA2 635D 3F1D 7FD0) diff --git a/dsd-fme2.png b/dsd-fme2.png index 1008604..41d9ad7 100644 Binary files a/dsd-fme2.png and b/dsd-fme2.png differ diff --git a/dsd-fme3.png b/dsd-fme3.png index 6f909a6..dc0e64c 100644 Binary files a/dsd-fme3.png and b/dsd-fme3.png differ diff --git a/examples/Example_Usage.md b/examples/Example_Usage.md index 5163db1..b0d4160 100644 --- a/examples/Example_Usage.md +++ b/examples/Example_Usage.md @@ -119,12 +119,12 @@ Use channel 54 in your import file, which would correspond to dsdplus channels 1 For Connect Plus, enumerate your list from 1 to the last channel and add the frequency. For Capacity Plus, Rest Channels 1 and 2 will share the same frequency, 3 and 4 will share, 5 and 6 will share, and 7-8 will share, as Capacity Plus counts each RF frequency as two seperate channels, one for each time slot. Capacity Plus Quirk: DSD-FME makes its best effort to follow the rest channel in the event that the sync is lost for longer than the hangtime, but occassionally, DSD-FME will lose the rest channel and will have to hunt through all frequencies to find it again. -Currently uncoded/unknown DMR trunking systems include Hytera XPT. - -Trunking Note4: NXDN TRunking will require a channel map. Please see the example folder for an appropriate channel map. ~NXDN Trunking may also require a channel map file, depending on the system. If it uses a custom range (above 800), then channels will need to be mapped. If channels do not require mapping (have channels below 800) but you are not tuning properly, then please use a channel_map and please report the issue in the issues along with the channels you are tuning and the actual rf frequency so corrections can be made.~ +Trunking Note4: NXDN TRunking will require a channel map. Please see the example folder for an appropriate channel map. ~NXDN Trunking may also require a channel map file, depending on the system. If it uses a custom range (above 800), then channels will need to be mapped. If channels do not require mapping (have channels below 800) but you are not tuning properly, then please use a channel_map and please report the issue in the issues along with the channels you are tuning and the actual rf frequency so corrections can be made.~ Update: NXDN trunking will not work properly with RTL input method due to the internal handling of the RTL dongle, when using squelch, it will effectively stop all processing (including trunking/tuning) until signal is regained, but squelch is required on NXDN to prevent false sync patterns. Channel Map and Group CSV Note: Leave the top line of the channel_map.csv and group.csv as the label, do not delete the line, if no line is there, dsd_import skips the first line so it will not import the first channel or first group in those files if there is something there that isn't a label. +Hytera XPT: Experimental Code has been added for XPT system slco/flco/csbk decoding and trunking. The setup will be similar to Capacity Plus trunking in the csv file, but add a channel 0 and frequency value as the 'home' repeater. This is based off of my best understanding that the 'home' repeater is the starting point of all XPT calls, and that calls only expand outwards to the next free repeater the busier the system gets. I cannot guarantee that XPT will 'trunk' correctly, it may in fact stay on the home repeater most times since theoretically, if my understanding is correct, all calls start there and there should be a voice call there before there is one on a free repeater. To properly decode an XPT system, having multiple instances of DSD-FME passively listening to each repeater channel may be a more complete method than attempting to trunk it directly. + ## NCurses Keyboard Shortcuts ## Some Keyboard Shortcuts have been implemented for testing to see how users like them. Just hope nobody pushes a key on accident and doesn't know which one it was or what it does. The current list of keyboard shortcuts include: diff --git a/examples/hytera_xpt_chan.csv b/examples/hytera_xpt_chan.csv new file mode 100644 index 0000000..f09e878 --- /dev/null +++ b/examples/hytera_xpt_chan.csv @@ -0,0 +1,11 @@ +ChannelNumber(dec),frequency(Hz) (do not delete this line or won't import properly) (channel 0 is home repeater) +0,858606250 +1,858606250 +2,858606250 +3,859606250 +4,859606250 +5,860606250 +6,860606250 +7,861606250 +8,861606250 + diff --git a/examples/nxdn_sc_key.csv b/examples/nxdn_sc_key.csv index 8591b8e..dae44d4 100644 --- a/examples/nxdn_sc_key.csv +++ b/examples/nxdn_sc_key.csv @@ -1,4 +1,4 @@ -key(dec), value(dec), load any single keys as key 0 +key(dec) or tg(dec), value(dec), load any single keys as key 0 0,23466 1,12345 2,32700 diff --git a/examples/trunking.sh b/examples/trunking.sh index 86b3a82..4064e08 100644 --- a/examples/trunking.sh +++ b/examples/trunking.sh @@ -13,7 +13,7 @@ #dsd-fme -i tcp:192.168.7.8:7355 -U 4532 -T -f2 -m2 -N 2> log.ans #dsd-fme -i rtl:0:855.625M:26:-2:12:0:6020 -T -f2 -m2 -N 2> log.ans -#DMR TIII, Con+, Cap+ +#DMR TIII, Con+, Cap+, XPT dsd-fme -fs -i tcp -U 4532 -T -C dmr_t3_chan.csv -G group.csv -N 2> log.ans #dsd-fme -fs -i rtl:0:450M:26:-2:8:0:6020 -T -C connect_plus_chan.csv -G group.csv -N 2> log.ans @@ -21,13 +21,13 @@ dsd-fme -fs -i tcp -U 4532 -T -C dmr_t3_chan.csv -G group.csv -N 2> log.ans #dsd-fme -fp -i tcp:192.168.7.5:7355 -U 4532 -T -C edacs_channel_map.csv -G group.csv -N 2> log.ans #dsd-fme -fp -i rtl:0:850M:26:-2:24:0:6020 -T -C edacs_channel_map.csv -G group.csv -N 2> log.ans -#NXDN48 Trunking with Standard Band Plan (Channels 0-800) -#dsd-fme -fi -i tcp -T -U 4532 -N 2> log.ans -#dsd-fme -fi -i rtl:0:450M:26:-2:8:75:6020 -T -G group.csv -N 2> log.ans - #NXDN48 Trunking with Channel Map (Custom Channels > 800) #dsd-fme -fi -i tcp -T -U 4532 -C channel_map.csv -N 2> log.ans -#dsd-fme -fi -i rtl:0:450M:26:-2:8:75:6020 -T -G group.csv -C channel_map.csv -N 2> log.ans +#NOTE! NXDN Trunking will not work correctly with the RTL input method + +#NXDN96 Trunking with Channel Map (Custom Channels > 800) +#dsd-fme -fn -i tcp -T -U 4532 -C channel_map.csv -N 2> log.ans +#NOTE! NXDN Trunking will not work correctly with the RTL input method #Notes: parameters after -i tcp can be omitted if using localhost as the default hostname to connect #and 7355 as the default port number. -U is the port number for RIGCTL and will mirror the tcp hostname