Merge branch 'M17_AX25_FM' into I2C
This commit is contained in:
commit
8fd72091ca
2 changed files with 24 additions and 3 deletions
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2018,2019 Jonathan Naylor, G4KLX
|
* Copyright (C) 2018,2019,2020 Jonathan Naylor, G4KLX
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -147,10 +147,23 @@ bool CPOCSAGControl::readNetwork()
|
||||||
|
|
||||||
addAddress(functional, output->m_ric, output->m_buffer);
|
addAddress(functional, output->m_ric, output->m_buffer);
|
||||||
|
|
||||||
|
std::string out;
|
||||||
switch (functional) {
|
switch (functional) {
|
||||||
case FUNCTIONAL_ALPHANUMERIC:
|
case FUNCTIONAL_ALPHANUMERIC:
|
||||||
output->m_text = std::string((char*)(data + 4U), length - 4U);
|
output->m_text = std::string((char*)(data + 4U), length - 4U);
|
||||||
LogDebug("Message to %07u, func Alphanumeric: \"%s\"", output->m_ric, output->m_text.c_str());
|
switch (output->m_ric) {
|
||||||
|
case 4512U:
|
||||||
|
decodeROT1(output->m_text, 3U, out);
|
||||||
|
LogDebug("Message to %07u, func Alphanumeric: (%u) \"%s\"", output->m_ric, output->m_text.at(1U) - 0x1FU, out.c_str());
|
||||||
|
break;
|
||||||
|
case 4520U:
|
||||||
|
decodeROT1(output->m_text, 2U, out);
|
||||||
|
LogDebug("Message to %07u, func Alphanumeric: (%u-%u) \"%s\"", output->m_ric, output->m_text.at(0U) - 0x1FU, output->m_text.at(1U) - 0x20U, out.c_str());
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
LogDebug("Message to %07u, func Alphanumeric: \"%s\"", output->m_ric, output->m_text.c_str());
|
||||||
|
break;
|
||||||
|
}
|
||||||
packASCII(output->m_text, output->m_buffer);
|
packASCII(output->m_text, output->m_buffer);
|
||||||
break;
|
break;
|
||||||
case FUNCTIONAL_NUMERIC:
|
case FUNCTIONAL_NUMERIC:
|
||||||
|
@ -483,3 +496,9 @@ void CPOCSAGControl::enable(bool enabled)
|
||||||
|
|
||||||
m_enabled = enabled;
|
m_enabled = enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CPOCSAGControl::decodeROT1(const std::string& in, unsigned int start, std::string& out) const
|
||||||
|
{
|
||||||
|
for (size_t i = start; i < in.length(); i++)
|
||||||
|
out += in.at(i) - 1U;
|
||||||
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2018,2019 by Jonathan Naylor G4KLX
|
* Copyright (C) 2018,2019,2020 by Jonathan Naylor G4KLX
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -81,6 +81,8 @@ private:
|
||||||
bool openFile();
|
bool openFile();
|
||||||
bool writeFile(const unsigned char* data);
|
bool writeFile(const unsigned char* data);
|
||||||
void closeFile();
|
void closeFile();
|
||||||
|
|
||||||
|
void decodeROT1(const std::string& in, unsigned int start, std::string& out) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue