Update Readme

Update Readme; Minor Bug Fix. Update dmr_so and dmr_soR in the Voice LC Header.
This commit is contained in:
lwvmobile 2022-08-10 20:03:26 -04:00 committed by GitHub
parent 11b353089b
commit 6043b14c13
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 10 deletions

View File

@ -13,7 +13,7 @@ To get started with the new menu system, simply launch with:
Virtually all the examples listed below can now be set up on the fly with the menu system, no need to check the help or refer to this page.
This release also has provisional support for playing back OP25 capture bin files, and the creation and playback of its own capture bin files as well (most likely not OP25 compatible). Mileage may vary. Be sure to choose the decoder option required when playing a bin file back, do not rely on auto-detect. Capture Bin files can be used to reliably replay P25, DMR, and NXDN decodings, and can replace the need for MBE file saving in the case of DMR Stereo, allowing for a complete replay of all events on a system, rather than just voice only.
This release also has provisional support for playing back OP25 capture bin files, and the creation and playback of its own capture bin files as well (most likely not OP25 compatible). Mileage may vary. Be sure to choose the decoder option required when playing a bin file back, do not rely on auto-detect. Capture Bin files can be used to reliably replay P25, DMR BS, and NXDN decodings, and can replace the need for MBE file saving in the case of DMR Stereo, allowing for a complete replay of all events on a system, rather than just voice only.
Per Call wav file creation has been implemented, currently only for DMR Stereo. Complete audio decode wav is available for all over decoder types. LRRP has been revamped, working more consistently, and an option to dump LRRP data to ~/lrrp.txt in the user home directory now exists, and can be imported into open-source QGIS to provide mapping data for LRRP output. Simply open the newly included map file in QGIS and point it at your geographic region. (Be sure the lrrp.txt file exists, and has data populated in it prior to opening the map file in QGIS, otherwise, the map layer may not want to show back up!)

View File

@ -45,7 +45,7 @@ char * getDateL(void) {
return curr2;
}
//Trellis Decoding still needs work, so be surprised by bad decodes
//Trellis Decoding still needs work, so don't be surprised by bad decodes
void Process34Data(dsd_opts * opts, dsd_state * state, unsigned char tdibits[98], uint8_t syncdata[48], uint8_t SlotType[20])
{
@ -1029,8 +1029,6 @@ void ProcessUnifiedData(dsd_opts * opts, dsd_state * state, uint8_t info[196], u
CRCExtracted = CRCExtracted | (uint32_t)(DmrDataBit[i + 80] & 1);
}
//Look into whether or not we need to run these CRC checks for this header information
//and see if its applied the same or differently
/* Apply the CRC mask (see DMR standard B.3.12 Data Type CRC Mask) */
CRCExtracted = CRCExtracted ^ 0x3333;
@ -1464,8 +1462,6 @@ void ProcessCSBK(dsd_opts * opts, dsd_state * state, uint8_t info[196], uint8_t
CRCExtracted = CRCExtracted | (uint32_t)(DmrDataBit[i + 80] & 1); //80-96 for PI header
}
//Look into whether or not we need to run these CRC checks for this header information
//and see if its applied the same or differently
/* Apply the CRC mask (see DMR standard B.3.12 Data Type CRC Mask) */
//CRCExtracted = CRCExtracted ^ 0x969696; //does this mask get applied here though for PI?
CRCExtracted = CRCExtracted ^ 0xA5A5;
@ -1761,8 +1757,6 @@ void ProcessDmrPIHeader(dsd_opts * opts, dsd_state * state, uint8_t info[196], u
CRCExtracted = CRCExtracted | (uint32_t)(DmrDataBit[i + 80] & 1); //80-96 for PI header
}
//Look into whether or not we need to run these CRC checks for this header information
//and see if its applied the same or differently
/* Apply the CRC mask (see DMR standard B.3.12 Data Type CRC Mask) */
//CRCExtracted = CRCExtracted ^ 0x969696; //does this mask get applied here though for PI?
CRCExtracted = CRCExtracted ^ 0x6969;
@ -1965,6 +1959,26 @@ void ProcessDmrVoiceLcHeader(dsd_opts * opts, dsd_state * state, uint8_t info[19
{
/* CRC is correct so consider the Full LC data as correct/valid */
TSVoiceSupFrame->FullLC.DataValidity = 1;
if (state->currentslot == 0)
{
state->dmr_so = TSVoiceSupFrame->FullLC.ServiceOptions;
}
if (state->currentslot == 1)
{
state->dmr_soR = TSVoiceSupFrame->FullLC.ServiceOptions;
}
}
else if(IrrecoverableErrors == 0)
{
//FEC okay? Set SVCop code anyways
if (state->currentslot == 0)
{
state->dmr_so = TSVoiceSupFrame->FullLC.ServiceOptions;
}
if (state->currentslot == 1)
{
state->dmr_soR = TSVoiceSupFrame->FullLC.ServiceOptions;
}
}
else
{

View File

@ -180,8 +180,8 @@ noCarrier (dsd_opts * opts, dsd_state * state)
state->data_p_head[0] = 0;
state->data_p_head[1] = 0;
state->dmr_so = 0;
state->dmr_soR = 0;
// state->dmr_so = 0; //let TLC or Voice Burst zero or set this instead?
// state->dmr_soR = 0;
}