#9 set text for message, improve tests

pull/32/head
Geoffrey Merck 4 years ago
parent 9d7c1ade08
commit 30d74f1f10

10
.vscode/tasks.json vendored

@ -12,7 +12,10 @@
"ENABLE_DEBUG=1", "ENABLE_DEBUG=1",
"USE_GPSD=1" "USE_GPSD=1"
], ],
"group": "build", "group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [] "problemMatcher": []
}, },
{ {
@ -25,10 +28,7 @@
"ENABLE_DEBUG=1", "ENABLE_DEBUG=1",
"USE_GPSD=1" "USE_GPSD=1"
], ],
"group": { "group": "build",
"kind": "build",
"isDefault": true
},
"problemMatcher": [] "problemMatcher": []
} }
] ]

@ -33,7 +33,6 @@ m_out(0U),
m_seq(0U), m_seq(0U),
m_totalNeeded(0U), m_totalNeeded(0U),
m_timer(1000U, 2U), m_timer(1000U, 2U),
m_dprs(),
m_start() m_start()
{ {
m_timer.start(); m_timer.start();
@ -57,13 +56,14 @@ void CAPRSUnit::clock(unsigned int ms)
m_frameBuffer.pop_front(); m_frameBuffer.pop_front();
m_headerData = new CHeaderData(); 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 = new CSlowDataEncoder();
m_slowData->setHeaderData(*m_headerData); m_slowData->setHeaderData(*m_headerData);
m_slowData->setGPSData(m_dprs); m_slowData->setGPSData(dprs);
m_slowData->setTextData("APRS to DPRS"); m_slowData->setTextData(text);
m_totalNeeded = (m_slowData->getInterleavedDataLength() / (DATA_FRAME_LENGTH_BYTES)) * 2U; m_totalNeeded = (m_slowData->getInterleavedDataLength() / (DATA_FRAME_LENGTH_BYTES)) * 2U;

@ -51,7 +51,6 @@ private:
unsigned int m_seq; unsigned int m_seq;
unsigned int m_totalNeeded; unsigned int m_totalNeeded;
CTimer m_timer; CTimer m_timer;
std::string m_dprs;
std::chrono::high_resolution_clock::time_point m_start; std::chrono::high_resolution_clock::time_point m_start;
}; };

@ -22,13 +22,16 @@
#include "Log.h" #include "Log.h"
#include "RSMS1AMessageBuilder.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(); dprs.clear();
text.clear();
switch (frame.getType()) switch (frame.getType())
{ {
case APFT_MESSAGE : case APFT_MESSAGE :
return messageToDPRS(dprs, header, frame); return messageToDPRS(dprs, text, header, frame);
default: default:
break; break;
} }
@ -36,7 +39,7 @@ bool CAPRSToDPRS::aprsToDPRS(std::string& dprs, CHeaderData& header, CAPRSFrame&
return false; 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(); auto frameBody = frame.getBody();
if(frameBody.length() < 11 || frameBody[0] != ':' || frameBody[10] != ':') { 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); CRSMS1AMessageBuilder::buildMessage(dprs, frame.getSource(), recipient, messageBody);
text = messageBody;
return true; return true;
} }

@ -19,6 +19,7 @@
#pragma once #pragma once
#include <string> #include <string>
#include <utility>
#include "HeaderData.h" #include "HeaderData.h"
#include "APRSFrame.h" #include "APRSFrame.h"
@ -26,8 +27,8 @@
class CAPRSToDPRS class CAPRSToDPRS
{ {
public: 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: private:
static bool messageToDPRS(std::string& drps, CHeaderData& header, CAPRSFrame& frame); static bool messageToDPRS(std::string& dprs, std::string& text, CHeaderData& header, CAPRSFrame& frame);
}; };

@ -30,35 +30,47 @@ namespace APRStoDPRSTests
{ {
CAPRSFrame frame("KC3FRA", "APRS", {"WIDE1-1", "WIDE2-2"}, ":F4FXL :Salut, comment vas tu?", APFT_MESSAGE); CAPRSFrame frame("KC3FRA", "APRS", {"WIDE1-1", "WIDE2-2"}, ":F4FXL :Salut, comment vas tu?", APFT_MESSAGE);
std::string dprs; std::string dprs, text;
CHeaderData header; CHeaderData header;
bool ret = CAPRSToDPRS::aprsToDPRS(dprs, header, frame); bool ret = CAPRSToDPRS::aprsToDPRS(dprs, text, header, frame);
EXPECT_TRUE(ret); EXPECT_TRUE(ret);
EXPECT_STREQ(dprs.c_str(), "$$Msg,KC3FRA,F4FXL,001118Saluto, comment vas tu?z\r"); 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) TEST_F(APRStoDPRS_aprsToDPRS, validMessageRecipientWithSSID)
{ {
CAPRSFrame frame("KC3FRA", "APRS", {"WIDE1-1", "WIDE2-2"}, ":F4FXL-7 :Salut, comment vas tu?", APFT_MESSAGE); 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; CHeaderData header;
bool ret = CAPRSToDPRS::aprsToDPRS(dprs, header, frame); bool ret = CAPRSToDPRS::aprsToDPRS(dprs, text, header, frame);
EXPECT_TRUE(ret); EXPECT_TRUE(ret);
EXPECT_STREQ(dprs.c_str(), "$$Msg,KC3FRA,F4FXL,001118Saluto, comment vas tu?z\r"); 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) TEST_F(APRStoDPRS_aprsToDPRS, emptyRecipient)
{ {
CAPRSFrame frame("KC3FRA", "APRS", {"WIDE1-1", "WIDE2-2"}, ": :Salut, comment vas tu?", APFT_MESSAGE); CAPRSFrame frame("KC3FRA", "APRS", {"WIDE1-1", "WIDE2-2"}, ": :Salut, comment vas tu?", APFT_MESSAGE);
std::string dprs; std::string dprs, text;
CHeaderData header; CHeaderData header;
bool ret = CAPRSToDPRS::aprsToDPRS(dprs, header, frame); bool ret = CAPRSToDPRS::aprsToDPRS(dprs, text, header, frame);
EXPECT_FALSE(ret); EXPECT_FALSE(ret);
EXPECT_STREQ(dprs.c_str(), ""); 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(), " ");
} }
} }

Loading…
Cancel
Save

Powered by TurnKey Linux.