Add more scaffolding code to the channel codecs.
This commit is contained in:
parent
80d97e94ec
commit
059ad7d824
5 changed files with 38 additions and 18 deletions
|
@ -33,16 +33,22 @@ const unsigned char BIT_MASK_TABLE[] = { 0x80U, 0x40U, 0x20U, 0x10U, 0x08U, 0x04
|
|||
#define WRITE_BIT1(p,i,b) p[(i)>>3] = (b) ? (p[(i)>>3] | BIT_MASK_TABLE[(i)&7]) : (p[(i)>>3] & ~BIT_MASK_TABLE[(i)&7])
|
||||
#define READ_BIT1(p,i) (p[(i)>>3] & BIT_MASK_TABLE[(i)&7])
|
||||
|
||||
CNXDNFACCH1::CNXDNFACCH1(const CNXDNFACCH1& facch1)
|
||||
CNXDNFACCH1::CNXDNFACCH1(const CNXDNFACCH1& facch1) :
|
||||
m_data(NULL)
|
||||
{
|
||||
m_data = new unsigned char[10U + 2U];
|
||||
::memcpy(m_data, facch1.m_data, 10U + 2U);
|
||||
}
|
||||
|
||||
CNXDNFACCH1::CNXDNFACCH1()
|
||||
CNXDNFACCH1::CNXDNFACCH1() :
|
||||
m_data(NULL)
|
||||
{
|
||||
m_data = new unsigned char[10U + 2U];
|
||||
}
|
||||
|
||||
CNXDNFACCH1::~CNXDNFACCH1()
|
||||
{
|
||||
delete[] m_data;
|
||||
}
|
||||
|
||||
bool CNXDNFACCH1::decode(const unsigned char* data)
|
||||
|
@ -60,14 +66,21 @@ void CNXDNFACCH1::encode(unsigned char* data) const
|
|||
void CNXDNFACCH1::getData(unsigned char* data) const
|
||||
{
|
||||
assert(data != NULL);
|
||||
|
||||
::memcpy(data, m_data, 10U);
|
||||
}
|
||||
|
||||
void CNXDNFACCH1::setData(const unsigned char* data)
|
||||
{
|
||||
assert(data != NULL);
|
||||
|
||||
::memcpy(m_data, data, 10U);
|
||||
}
|
||||
|
||||
CNXDNFACCH1& CNXDNFACCH1::operator=(const CNXDNFACCH1& facch1)
|
||||
{
|
||||
if (&facch1 != this)
|
||||
::memcpy(m_data, facch1.m_data, 10U + 2U);
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
|
|
@ -35,6 +35,7 @@ public:
|
|||
CNXDNFACCH1& operator=(const CNXDNFACCH1& facch);
|
||||
|
||||
private:
|
||||
unsigned char* m_data;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -35,14 +35,14 @@ const unsigned char BIT_MASK_TABLE[] = { 0x80U, 0x40U, 0x20U, 0x10U, 0x08U, 0x04
|
|||
CNXDNFACCH2::CNXDNFACCH2(const CNXDNFACCH2& facch2) :
|
||||
m_data(NULL)
|
||||
{
|
||||
m_data = new unsigned char[25U];
|
||||
::memcpy(m_data, facch2.m_data, 25U);
|
||||
m_data = new unsigned char[23U];
|
||||
::memcpy(m_data, facch2.m_data, 23U);
|
||||
}
|
||||
|
||||
CNXDNFACCH2::CNXDNFACCH2() :
|
||||
m_data(NULL)
|
||||
{
|
||||
m_data = new unsigned char[25U];
|
||||
m_data = new unsigned char[23U];
|
||||
}
|
||||
|
||||
CNXDNFACCH2::~CNXDNFACCH2()
|
||||
|
@ -84,11 +84,7 @@ void CNXDNFACCH2::getData(unsigned char* data) const
|
|||
{
|
||||
assert(data != NULL);
|
||||
|
||||
unsigned int offset = 8U;
|
||||
for (unsigned int i = 0U; i < 168U; i++, offset++) {
|
||||
bool b = READ_BIT1(m_data, offset);
|
||||
WRITE_BIT1(data, i, b);
|
||||
}
|
||||
::memcpy(data, m_data + 1U, 22U);
|
||||
}
|
||||
|
||||
void CNXDNFACCH2::setRAN(unsigned char ran)
|
||||
|
@ -101,17 +97,13 @@ void CNXDNFACCH2::setData(const unsigned char* data)
|
|||
{
|
||||
assert(data != NULL);
|
||||
|
||||
unsigned int offset = 8U;
|
||||
for (unsigned int i = 0U; i < 168U; i++, offset++) {
|
||||
bool b = READ_BIT1(data, i);
|
||||
WRITE_BIT1(m_data, offset, b);
|
||||
}
|
||||
::memcpy(m_data + 1U, data, 22U);
|
||||
}
|
||||
|
||||
CNXDNFACCH2& CNXDNFACCH2::operator=(const CNXDNFACCH2& facch2)
|
||||
{
|
||||
if (&facch2 != this)
|
||||
::memcpy(m_data, facch2.m_data, 25U);
|
||||
::memcpy(m_data, facch2.m_data, 23U);
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
|
17
NXDNUDCH.cpp
17
NXDNUDCH.cpp
|
@ -33,16 +33,22 @@ const unsigned char BIT_MASK_TABLE[] = { 0x80U, 0x40U, 0x20U, 0x10U, 0x08U, 0x04
|
|||
#define WRITE_BIT1(p,i,b) p[(i)>>3] = (b) ? (p[(i)>>3] | BIT_MASK_TABLE[(i)&7]) : (p[(i)>>3] & ~BIT_MASK_TABLE[(i)&7])
|
||||
#define READ_BIT1(p,i) (p[(i)>>3] & BIT_MASK_TABLE[(i)&7])
|
||||
|
||||
CNXDNUDCH::CNXDNUDCH(const CNXDNUDCH& udch)
|
||||
CNXDNUDCH::CNXDNUDCH(const CNXDNUDCH& udch) :
|
||||
m_data(NULL)
|
||||
{
|
||||
m_data = new unsigned char[23U + 2U];
|
||||
::memcpy(m_data, udch.m_data, 23U + 2U);
|
||||
}
|
||||
|
||||
CNXDNUDCH::CNXDNUDCH()
|
||||
CNXDNUDCH::CNXDNUDCH() :
|
||||
m_data(NULL)
|
||||
{
|
||||
m_data = new unsigned char[23U + 2U];
|
||||
}
|
||||
|
||||
CNXDNUDCH::~CNXDNUDCH()
|
||||
{
|
||||
delete[] m_data;
|
||||
}
|
||||
|
||||
bool CNXDNUDCH::decode(const unsigned char* data)
|
||||
|
@ -60,14 +66,21 @@ void CNXDNUDCH::encode(unsigned char* data) const
|
|||
void CNXDNUDCH::getData(unsigned char* data) const
|
||||
{
|
||||
assert(data != NULL);
|
||||
|
||||
::memcpy(data, m_data, 23U);
|
||||
}
|
||||
|
||||
void CNXDNUDCH::setData(const unsigned char* data)
|
||||
{
|
||||
assert(data != NULL);
|
||||
|
||||
::memcpy(m_data, data, 23U);
|
||||
}
|
||||
|
||||
CNXDNUDCH& CNXDNUDCH::operator=(const CNXDNUDCH& udch)
|
||||
{
|
||||
if (&udch != this)
|
||||
::memcpy(m_data, udch.m_data, 23U + 2U);
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
|
|
@ -36,6 +36,7 @@ public:
|
|||
CNXDNUDCH& operator=(const CNXDNUDCH& udch);
|
||||
|
||||
private:
|
||||
unsigned char* m_data;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue