From 30d74f1f10434d30465109badaa8717f698cb4e6 Mon Sep 17 00:00:00 2001 From: Geoffrey Merck Date: Thu, 13 Jan 2022 21:05:04 +0100 Subject: [PATCH] #9 set text for message, improve tests --- .vscode/tasks.json | 10 +++++----- APRSUnit.cpp | 8 ++++---- APRSUnit.h | 1 - APRStoDPRS.cpp | 11 ++++++++--- APRStoDPRS.h | 5 +++-- Tests/APRStoDPRS/aprsToDPRS.cpp | 24 ++++++++++++++++++------ 6 files changed, 38 insertions(+), 21 deletions(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index ac3f100..168ca95 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -12,7 +12,10 @@ "ENABLE_DEBUG=1", "USE_GPSD=1" ], - "group": "build", + "group": { + "kind": "build", + "isDefault": true + }, "problemMatcher": [] }, { @@ -25,10 +28,7 @@ "ENABLE_DEBUG=1", "USE_GPSD=1" ], - "group": { - "kind": "build", - "isDefault": true - }, + "group": "build", "problemMatcher": [] } ] diff --git a/APRSUnit.cpp b/APRSUnit.cpp index 49e7f4b..3fe066b 100644 --- a/APRSUnit.cpp +++ b/APRSUnit.cpp @@ -33,7 +33,6 @@ m_out(0U), m_seq(0U), m_totalNeeded(0U), m_timer(1000U, 2U), -m_dprs(), m_start() { m_timer.start(); @@ -57,13 +56,14 @@ void CAPRSUnit::clock(unsigned int ms) m_frameBuffer.pop_front(); m_headerData = new CHeaderData(); - CAPRSToDPRS::aprsToDPRS(m_dprs, *m_headerData, *frame); + std::string dprs, text; + CAPRSToDPRS::aprsToDPRS(dprs, text, *m_headerData, *frame); m_slowData = new CSlowDataEncoder(); m_slowData->setHeaderData(*m_headerData); - m_slowData->setGPSData(m_dprs); - m_slowData->setTextData("APRS to DPRS"); + m_slowData->setGPSData(dprs); + m_slowData->setTextData(text); m_totalNeeded = (m_slowData->getInterleavedDataLength() / (DATA_FRAME_LENGTH_BYTES)) * 2U; diff --git a/APRSUnit.h b/APRSUnit.h index 466f6d5..bc7a595 100644 --- a/APRSUnit.h +++ b/APRSUnit.h @@ -51,7 +51,6 @@ private: unsigned int m_seq; unsigned int m_totalNeeded; CTimer m_timer; - std::string m_dprs; std::chrono::high_resolution_clock::time_point m_start; }; diff --git a/APRStoDPRS.cpp b/APRStoDPRS.cpp index 8b524a1..d238a2f 100644 --- a/APRStoDPRS.cpp +++ b/APRStoDPRS.cpp @@ -22,13 +22,16 @@ #include "Log.h" #include "RSMS1AMessageBuilder.h" -bool CAPRSToDPRS::aprsToDPRS(std::string& dprs, CHeaderData& header, CAPRSFrame& frame) + + +bool CAPRSToDPRS::aprsToDPRS(std::string& dprs, std::string& text, CHeaderData& header, CAPRSFrame& frame) { dprs.clear(); + text.clear(); switch (frame.getType()) { case APFT_MESSAGE : - return messageToDPRS(dprs, header, frame); + return messageToDPRS(dprs, text, header, frame); default: break; } @@ -36,7 +39,7 @@ bool CAPRSToDPRS::aprsToDPRS(std::string& dprs, CHeaderData& header, CAPRSFrame& return false; } -bool CAPRSToDPRS::messageToDPRS(std::string& dprs, CHeaderData& header, CAPRSFrame& frame) +bool CAPRSToDPRS::messageToDPRS(std::string& dprs, std::string& text, CHeaderData& header, CAPRSFrame& frame) { auto frameBody = frame.getBody(); if(frameBody.length() < 11 || frameBody[0] != ':' || frameBody[10] != ':') { @@ -64,5 +67,7 @@ bool CAPRSToDPRS::messageToDPRS(std::string& dprs, CHeaderData& header, CAPRSFra CRSMS1AMessageBuilder::buildMessage(dprs, frame.getSource(), recipient, messageBody); + text = messageBody; + return true; } \ No newline at end of file diff --git a/APRStoDPRS.h b/APRStoDPRS.h index 2e185d7..05191c0 100644 --- a/APRStoDPRS.h +++ b/APRStoDPRS.h @@ -19,6 +19,7 @@ #pragma once #include +#include #include "HeaderData.h" #include "APRSFrame.h" @@ -26,8 +27,8 @@ class CAPRSToDPRS { public: - static bool aprsToDPRS(std::string& dprs, CHeaderData& header, CAPRSFrame& frame); + static bool aprsToDPRS(std::string& dprs, std::string& text, CHeaderData& header, CAPRSFrame& frame); private: - static bool messageToDPRS(std::string& drps, CHeaderData& header, CAPRSFrame& frame); + static bool messageToDPRS(std::string& dprs, std::string& text, CHeaderData& header, CAPRSFrame& frame); }; \ No newline at end of file diff --git a/Tests/APRStoDPRS/aprsToDPRS.cpp b/Tests/APRStoDPRS/aprsToDPRS.cpp index 94f8b29..872d3a0 100644 --- a/Tests/APRStoDPRS/aprsToDPRS.cpp +++ b/Tests/APRStoDPRS/aprsToDPRS.cpp @@ -30,35 +30,47 @@ namespace APRStoDPRSTests { CAPRSFrame frame("KC3FRA", "APRS", {"WIDE1-1", "WIDE2-2"}, ":F4FXL :Salut, comment vas tu?", APFT_MESSAGE); - std::string dprs; + std::string dprs, text; CHeaderData header; - bool ret = CAPRSToDPRS::aprsToDPRS(dprs, header, frame); + bool ret = CAPRSToDPRS::aprsToDPRS(dprs, text, header, frame); EXPECT_TRUE(ret); EXPECT_STREQ(dprs.c_str(), "$$Msg,KC3FRA,F4FXL,001118Saluto, comment vas tu?z\r"); + EXPECT_STREQ(text.c_str(), "Salut, comment vas tu?"); + EXPECT_STREQ(header.getMyCall1().c_str(), "KC3FRA "); + EXPECT_STREQ(header.getMyCall2().c_str(), "MSG "); + EXPECT_STREQ(header.getYourCall().c_str(), "F4FXL "); } TEST_F(APRStoDPRS_aprsToDPRS, validMessageRecipientWithSSID) { CAPRSFrame frame("KC3FRA", "APRS", {"WIDE1-1", "WIDE2-2"}, ":F4FXL-7 :Salut, comment vas tu?", APFT_MESSAGE); - std::string dprs; + std::string dprs, text; CHeaderData header; - bool ret = CAPRSToDPRS::aprsToDPRS(dprs, header, frame); + bool ret = CAPRSToDPRS::aprsToDPRS(dprs, text, header, frame); EXPECT_TRUE(ret); EXPECT_STREQ(dprs.c_str(), "$$Msg,KC3FRA,F4FXL,001118Saluto, comment vas tu?z\r"); + EXPECT_STREQ(text.c_str(), "Salut, comment vas tu?"); + EXPECT_STREQ(header.getMyCall1().c_str(), "KC3FRA "); + EXPECT_STREQ(header.getMyCall2().c_str(), "MSG "); + EXPECT_STREQ(header.getYourCall().c_str(), "F4FXL "); } TEST_F(APRStoDPRS_aprsToDPRS, emptyRecipient) { CAPRSFrame frame("KC3FRA", "APRS", {"WIDE1-1", "WIDE2-2"}, ": :Salut, comment vas tu?", APFT_MESSAGE); - std::string dprs; + std::string dprs, text; CHeaderData header; - bool ret = CAPRSToDPRS::aprsToDPRS(dprs, header, frame); + bool ret = CAPRSToDPRS::aprsToDPRS(dprs, text, header, frame); EXPECT_FALSE(ret); EXPECT_STREQ(dprs.c_str(), ""); + EXPECT_STREQ(text.c_str(), ""); + EXPECT_STREQ(header.getMyCall1().c_str(), " "); + EXPECT_STREQ(header.getMyCall2().c_str(), " "); + EXPECT_STREQ(header.getYourCall().c_str(), " "); } }