Process hyphen in callsign #33

feature/ipv6_#35
Geoffrey Merck 3 years ago
parent 907d17fabb
commit 2266f2d8a7

10
.vscode/tasks.json vendored

@ -13,10 +13,7 @@
"USE_GPSD=1",
"all"
],
"group": {
"kind": "build",
"isDefault": true
},
"group": "build",
"problemMatcher": []
},
{
@ -94,7 +91,10 @@
"ENABLE_DEBUG=1",
"USE_GPSD=1"
],
"group": "build",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": []
}
]

@ -22,6 +22,12 @@
void CAPRSUtils::dstarCallsignToAPRS(std::string& dstarCallsign)
{
// 20230425 Fix for https://github.com/F4FXL/DStarGateway/issues/33
size_t hyphenIndex = dstarCallsign.find('-');
if(hyphenIndex != std::string::npos) {
dstarCallsign = dstarCallsign.substr(0, hyphenIndex);
}
if(dstarCallsign[dstarCallsign.length() - 1] == ' ') {
boost::trim(dstarCallsign);
} else {

@ -20,7 +20,7 @@
#include "APRSUtils.h"
namespace APRStoDPRSTests
namespace APRSUtilsTests
{
class APRSUtils_calcGPSAIcomCRC : public ::testing::Test {
};

@ -0,0 +1,51 @@
/*
* 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 APRSUtilsTests
{
class APRSUtils_dstarCallsignToAPRS : public ::testing::Test {
};
TEST_F(APRSUtils_dstarCallsignToAPRS, noBlanks)
{
std::string call("N0CALL");
CAPRSUtils::dstarCallsignToAPRS(call);
EXPECT_STRCASEEQ(call.c_str(), "N0CALL") << "Call shall not have changed";
}
TEST_F(APRSUtils_dstarCallsignToAPRS, withHyphen)
{
std::string call("N0CALL-H");
CAPRSUtils::dstarCallsignToAPRS(call);
EXPECT_STRCASEEQ(call.c_str(), "N0CALL") << "-H shall have been removed";
}
TEST_F(APRSUtils_dstarCallsignToAPRS, threeBlanks)
{
std::string call("F4AB B");
CAPRSUtils::dstarCallsignToAPRS(call);
EXPECT_STRCASEEQ(call.c_str(), "F4AB-B") << "-H shall have been removed";
}
}
Loading…
Cancel
Save

Powered by TurnKey Linux.