Compare commits
4 commits
master
...
pocsag_tes
Author | SHA1 | Date | |
---|---|---|---|
3cccc40d3f | |||
a04d3a9825 | |||
6e614560fa | |||
1bfd30a91d |
|
@ -698,6 +698,8 @@ void CModem::clock(unsigned int ms)
|
|||
m_txPOCSAGData.getData(&len, 1U);
|
||||
m_txPOCSAGData.getData(m_buffer, len);
|
||||
|
||||
LogMessage("POCSAG, sending message %u", m_buffer[3U]);
|
||||
|
||||
if (m_trace)
|
||||
CUtils::dump(1U, "TX POCSAG Data", m_buffer, len);
|
||||
|
||||
|
@ -1049,6 +1051,8 @@ bool CModem::writePOCSAGData(const unsigned char* data, unsigned int length)
|
|||
|
||||
::memcpy(buffer + 3U, data, length);
|
||||
|
||||
LogMessage("POCSAG, queueing message %u", buffer[3U]);
|
||||
|
||||
unsigned char len = length + 3U; // XXX Check lengths
|
||||
m_txPOCSAGData.addData(&len, 1U);
|
||||
m_txPOCSAGData.addData(buffer, len);
|
||||
|
|
|
@ -67,7 +67,8 @@ m_buffer(),
|
|||
m_ric(0U),
|
||||
m_text(),
|
||||
m_state(PS_NONE),
|
||||
m_fp(NULL)
|
||||
m_fp(NULL),
|
||||
m_sequence(0U)
|
||||
{
|
||||
assert(display != NULL);
|
||||
}
|
||||
|
@ -312,8 +313,13 @@ void CPOCSAGControl::addBCHAndParity(uint32_t& word) const
|
|||
void CPOCSAGControl::writeQueue()
|
||||
{
|
||||
// Convert 32-bit words to bytes
|
||||
unsigned char data[POCSAG_FRAME_LENGTH_BYTES];
|
||||
unsigned char len = 0U;
|
||||
unsigned char data[POCSAG_FRAME_LENGTH_BYTES + 1U];
|
||||
|
||||
data[0U] = m_sequence++;
|
||||
|
||||
LogMessage("POCSAG, creating message %u", data[0U]);
|
||||
|
||||
unsigned char len = 1U;
|
||||
for (std::deque<uint32_t>::const_iterator it = m_output.cbegin(); it != m_output.cend(); ++it) {
|
||||
uint32_t word = *it;
|
||||
|
||||
|
@ -331,7 +337,7 @@ void CPOCSAGControl::writeQueue()
|
|||
|
||||
CUtils::dump(1U, "Data to MMDVM", data, len);
|
||||
|
||||
assert(len == POCSAG_FRAME_LENGTH_BYTES);
|
||||
assert(len == (POCSAG_FRAME_LENGTH_BYTES + 1U));
|
||||
|
||||
unsigned int space = m_queue.freeSpace();
|
||||
if (space < (len + 1U)) {
|
||||
|
|
|
@ -59,6 +59,7 @@ private:
|
|||
std::string m_text;
|
||||
POCSAG_STATE m_state;
|
||||
FILE* m_fp;
|
||||
uint8_t m_sequence;
|
||||
|
||||
bool processData();
|
||||
void writeQueue();
|
||||
|
|
Loading…
Reference in a new issue