#23 detect CRC header in calc CRC, add test

pull/32/head
Geoffrey Merck 4 years ago
parent c2a940bee7
commit b3522c5750

@ -109,7 +109,7 @@
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/DGWVoiceTransmit/dgwvoicetransmit",
"args": ["F4FXL B", "${workspaceFolder}/Sandbox/Announce_F5ZEE__B.dvtool", "-text", "www.F5KAV.fr"],
"args": ["F4FXL B", "${workspaceFolder}/Sandbox/Announce_F5ZEE__B.dvtool", "-text", "www.F5KAV.fr", "-dprs", "!4858.72ND00736.91E&RNG0037/A=000098 440 Voice 439.80000MHz -9.4000MHz"],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],

@ -37,8 +37,12 @@ unsigned int CAPRSUtils::calcGPSAIcomCRC(const std::string& gpsa)
{
unsigned int icomcrc = 0xFFFFU;
unsigned int dataBegin = 0U;
if(boost::starts_with(gpsa, "$$CRC") && gpsa.length() >= 10 && gpsa[9] == ',')
dataBegin = 10U;
auto length = gpsa.length();
for (unsigned int j = 10U; j < length; j++) {
for (unsigned int j = dataBegin; j < length; j++) {
unsigned char ch = (unsigned char)gpsa[j];
for (unsigned int i = 0U; i < 8U; i++) {

@ -0,0 +1,41 @@
/*
* Copyright (c) 2021-2022 by Geoffrey Merck F4FXL / KC3FRA
*
* 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
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <gtest/gtest.h>
#include "APRSUtils.h"
namespace APRStoDPRSTests
{
class APRSUtils_calcGPSAIcomCRC : public ::testing::Test {
};
TEST_F(APRSUtils_calcGPSAIcomCRC, withCRCHeader)
{
auto crc = CAPRSUtils::calcGPSAIcomCRC("$$CRC6F5E,ABCDEF");
EXPECT_EQ(crc, 0x6f5e) << "CRC shall be valid";
}
TEST_F(APRSUtils_calcGPSAIcomCRC, withoutCRCHeader)
{
auto crc = CAPRSUtils::calcGPSAIcomCRC("ABCDEF");
EXPECT_EQ(crc, 0x6f5e) << "CRC shall be valid";
}
}
Loading…
Cancel
Save

Powered by TurnKey Linux.