mirror of
https://github.com/g4klx/ircDDBGateway.git
synced 2026-04-06 14:53:52 +00:00
parent
9669d865b5
commit
5a5bfc9e89
35 changed files with 2286 additions and 39 deletions
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (C) 2010-2013,2018 by Jonathan Naylor G4KLX
|
||||
* Copyright (C) 2010-2013 by Jonathan Naylor G4KLX
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
|
@ -203,6 +203,28 @@ bool CAMBEData::setDCSData(const unsigned char *data, unsigned int length, const
|
|||
return true;
|
||||
}
|
||||
|
||||
bool CAMBEData::setCCSData(const unsigned char *data, unsigned int length, const in_addr& yourAddress, unsigned int yourPort, unsigned int myPort)
|
||||
{
|
||||
wxASSERT(data != NULL);
|
||||
wxASSERT(length >= 100U);
|
||||
|
||||
m_header.setCCSData(data, length, yourAddress, yourPort, myPort);
|
||||
|
||||
m_id = data[44] * 256U + data[43];
|
||||
|
||||
m_outSeq = data[45];
|
||||
|
||||
::memcpy(m_data, data + 46U, DV_FRAME_LENGTH_BYTES);
|
||||
|
||||
m_rptSeq = data[60] * 65536U + data[59] * 256U + data[58];
|
||||
|
||||
m_yourAddress = yourAddress;
|
||||
m_yourPort = yourPort;
|
||||
m_myPort = myPort;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
unsigned int CAMBEData::getIcomRepeaterData(unsigned char *data, unsigned int length) const
|
||||
{
|
||||
wxASSERT(data != NULL);
|
||||
|
|
@ -408,6 +430,50 @@ unsigned int CAMBEData::getDCSData(unsigned char* data, unsigned int length) con
|
|||
return 100U;
|
||||
}
|
||||
|
||||
unsigned int CAMBEData::getCCSData(unsigned char* data, unsigned int length) const
|
||||
{
|
||||
wxASSERT(data != NULL);
|
||||
wxASSERT(length >= 100U);
|
||||
|
||||
::memset(data, 0x00U, 100U);
|
||||
|
||||
data[0] = '0';
|
||||
data[1] = '0';
|
||||
data[2] = '0';
|
||||
data[3] = '1';
|
||||
|
||||
data[43] = m_id % 256U; // Unique session id
|
||||
data[44] = m_id / 256U;
|
||||
|
||||
data[45] = m_outSeq;
|
||||
|
||||
::memcpy(data + 46U, m_data, DV_FRAME_LENGTH_BYTES);
|
||||
|
||||
if (isEnd()) {
|
||||
data[55] = 0x55U;
|
||||
data[56] = 0x55U;
|
||||
data[57] = 0x55U;
|
||||
}
|
||||
|
||||
data[58] = (m_rptSeq >> 0) & 0xFFU;
|
||||
data[59] = (m_rptSeq >> 8) & 0xFFU;
|
||||
data[60] = (m_rptSeq >> 16) & 0xFFU;
|
||||
|
||||
data[61] = 0x01U;
|
||||
data[62] = 0x00U;
|
||||
|
||||
data[63] = 0x21U;
|
||||
|
||||
for (unsigned int i = 0U; i < m_text.Len(); i++)
|
||||
data[64 + i] = m_text.GetChar(i);
|
||||
|
||||
data[93U] = 0x36U;
|
||||
|
||||
m_header.getCCSData(data, 100U);
|
||||
|
||||
return 100U;
|
||||
}
|
||||
|
||||
unsigned int CAMBEData::getId() const
|
||||
{
|
||||
return m_id;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue