Merge branch 'DVMProject:master' into master

pull/16/head
carcarjg 3 years ago committed by GitHub
commit 485625cb5b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -898,67 +898,50 @@ void TSBK::encode(uint8_t* data, bool rawTSBK, bool noTrellis)
std::chrono::system_clock::time_point now = std::chrono::system_clock::now(); std::chrono::system_clock::time_point now = std::chrono::system_clock::now();
time_t tt = std::chrono::system_clock::to_time_t(now); time_t tt = std::chrono::system_clock::to_time_t(now);
tm local_tm = *gmtime(&tt); tm local_tm = *gmtime(&tt);
unsigned long tmM = 0b000;
unsigned long tmMDAY = 0b00000; unsigned long tmM = 0U;
uint32_t tmY = 0b0000000000000; tmM |= (local_tm.tm_mon + 1); // Month; +1 to account for tm_mon being 0-11 and p25 being 1-12
uint32_t tmH = 0b00000; unsigned long tmMDAY = 0U;
uint32_t tmMin = 0b000000; tmMDAY |= local_tm.tm_mday; // Day of month
uint32_t tmS = 0b000000; uint32_t tmY = 0U;
tmY |= local_tm.tm_year; // Year
//Assign Values uint32_t tmH = 0U;
tmM |= (local_tm.tm_mon + 1);//Month; +1 to account for tm_mon being 0-11 and p25 being 1-12 tmH |= local_tm.tm_hour; // Hour
tmMDAY |= local_tm.tm_mday;//Day of month uint32_t tmMin = 0U;
tmY |= local_tm.tm_year;//Year tmMin |= local_tm.tm_min; // Min
tmH |= local_tm.tm_hour;//Hour
tmMin |= local_tm.tm_min;//Min
uint32_t i = local_tm.tm_sec; uint32_t i = local_tm.tm_sec;
unsigned long VFLAGS = 0xE0; // VL,VT,VD, Res(leave 0),LTO direction, LTO
unsigned long VLTO = 0b00000000; // LTO
//Catch Leap Seconds uint16_t lto = 0U;
// catch Leap Seconds
uint32_t tmS = 0U;
if (i > 59U) { if (i > 59U) {
tmS |= 59U; tmS |= 59U;
} else { } else {
tmS |= i; tmS |= i;
} }
//Fix Year from from 1900 to from 2000 // fix year from from 1900 to, from 2000
tmY = tmY - 100U; tmY = tmY - 100U;
//Shift Shift tsbkValue = 0xE0U + // VL, VT and VD flags set
VFLAGS = VFLAGS << 56 ; //Flags ((lto >> 8) & 0x0F); // LTO MSB (Upper 4-bits)
VLTO = VLTO << 48; //LTO tsbkValue = (tsbkValue << 8) + (lto & 0xFFU); // LTO LSB
tmM = tmM << 44; //Month
tmMDAY = tmMDAY << 39; //Day of month // Date
tmY = tmY << 26; //Year tsbkValue = (tsbkValue << 4) + (tmM & 0x0FU); // Month
tmH = tmH << 19; //Hour tsbkValue = (tsbkValue << 5) + (tmMDAY & 0x1FU); // Day of Month
tmMin = tmMin << 13; //Min tsbkValue = (tsbkValue << 13) + (tmY & 0x1FFFU); // Year
tmS = tmS << 7; //Second tsbkValue = (tsbkValue << 2); // Reserved
//Build tsbkValue // Time
tsbkValue = 0U; //Zero out tsbkValue tsbkValue = (tsbkValue << 5) + (tmH & 0x1FU); // Hour
//Flags tsbkValue = (tsbkValue << 6) + (tmMin & 0x3FU); // Minute
tsbkValue = tsbkValue + VFLAGS; tsbkValue = (tsbkValue << 6) + (tmS & 0x3FU); // Seconds
tsbkValue = tsbkValue + VLTO; tsbkValue = (tsbkValue << 7); // Reserved
//Date
tsbkValue = tsbkValue + tmM;
tsbkValue = tsbkValue + tmMDAY;
tsbkValue = tsbkValue + tmY;
//Time
tsbkValue = tsbkValue + tmH;
tsbkValue = tsbkValue + tmMin;
tsbkValue = tsbkValue + tmS;
#if DEBUG_P25_TSBK #if DEBUG_P25_TSBK
LogError(LOG_P25, "TSBK_OSP_TIME_DATE_ANN (Dump Start)"); LogDebug(LOG_P25, "TSBK_OSP_TIME_DATE_ANN, tmM = %u, tmMDAY = %u, tmY = %u, tmH = %u, tmMin = %u, tmS = %u", tmM, tmMDAY, tmY, tmH, tmMin, tmS);
LogError(LOG_P25, "tsbkValue RAW= $%p" , tsbkValue);
LogError(LOG_P25, "tmM= $%p" , tmM);
LogError(LOG_P25, "tmMDAY= $%p" , tmMDAY);
LogError(LOG_P25, "tmY= $%p" , tmY);
LogError(LOG_P25, "tmH= $%p" , tmH);
LogError(LOG_P25, "tmMin= $%p" , tmMin);
LogError(LOG_P25, "tmS= $%p" , tmS);
LogError(LOG_P25, "TSBK_OSP_TIME_DATE_ANN (Dump End)");
#endif #endif
} }
break; break;
@ -1117,7 +1100,7 @@ void TSBK::encode(uint8_t* data, bool rawTSBK, bool noTrellis)
edac::CRC::addCCITT162(tsbk, P25_TSBK_LENGTH_BYTES); edac::CRC::addCCITT162(tsbk, P25_TSBK_LENGTH_BYTES);
if (m_verbose) { if (m_verbose) {
Utils::dump(2U, "Encoded TSBK", tsbk, P25_TSBK_LENGTH_BYTES); Utils::dump(2U, "TSBK::encode(), TSBK Value", tsbk, P25_TSBK_LENGTH_BYTES);
} }
uint8_t raw[P25_TSBK_FEC_LENGTH_BYTES]; uint8_t raw[P25_TSBK_FEC_LENGTH_BYTES];

Loading…
Cancel
Save

Powered by TurnKey Linux.