Skip to content
Snippets Groups Projects
Commit 86245889 authored by Valerio Pastore's avatar Valerio Pastore
Browse files

updated base packet

parent f5abf1cf
No related branches found
No related tags found
No related merge requests found
Subproject commit 9288553c2e3b3be27697f5366bae4e39e19baa04 Subproject commit ea71ffe16732d5e26080485197bdbeaa9309ee7e
...@@ -9,9 +9,9 @@ class AstriPacketGeneric : public inaf::oasbo::PacketLib::BasePacket { ...@@ -9,9 +9,9 @@ class AstriPacketGeneric : public inaf::oasbo::PacketLib::BasePacket {
public: public:
AstriPacketGeneric(inaf::oasbo::PacketLib::BasePacketStructure &structure) : BasePacket(structure){} AstriPacketGeneric(inaf::oasbo::PacketLib::BasePacketStructure &structure) : BasePacket(structure){}
size_t getHeaderSize() const override; uint getHeaderSize() const override;
size_t getPayloadSize() const override; uint getPayloadSize() const override;
size_t getTailSize() const override; uint getTailSize() const override;
}; };
} }
......
...@@ -17,12 +17,12 @@ namespace inaf::oasbo::Packets { ...@@ -17,12 +17,12 @@ namespace inaf::oasbo::Packets {
class PacketStructureJson : public inaf::oasbo::PacketLib::BasePacketStructure { class PacketStructureJson : public inaf::oasbo::PacketLib::BasePacketStructure {
private: private:
std::vector<std::tuple<int, std::string, int>> structure; std::vector<std::tuple<uint, std::string, uint>> structure;
std::vector<std::tuple<int, std::string, int>> convertToTupleVector(const nlohmann::ordered_json &data, std::vector<std::tuple<uint, std::string, uint>> convertToTupleVector(const nlohmann::ordered_json &data,
size_t &count); uint &count);
public: public:
std::vector<std::tuple<int, std::string, int>> readStructureFromSource( std::vector<std::tuple<uint, std::string, uint>> readStructureFromSource(
std::string source) override; std::string source) override;
PacketStructureJson(std::string source){ PacketStructureJson(std::string source){
updateStructure(source); updateStructure(source);
......
...@@ -18,12 +18,12 @@ class PacketStructureTxt: public inaf::oasbo::PacketLib::BasePacketStructure { ...@@ -18,12 +18,12 @@ class PacketStructureTxt: public inaf::oasbo::PacketLib::BasePacketStructure {
private: private:
std::vector<std::string> stringArrayFile; std::vector<std::string> stringArrayFile;
std::vector<std::string> toStringArray(std::ifstream &f); std::vector<std::string> toStringArray(std::ifstream &f);
std::vector<std::tuple<int, std::string, int>> structure; std::vector<std::tuple<uint, std::string, uint>> structure;
std::vector<std::tuple<int, std::string, int>> convertToTupleVector( std::vector<std::tuple<uint, std::string, uint>> convertToTupleVector(
size_t &start, size_t &count); uint &start, uint &count);
public: public:
std::vector<std::tuple<int, std::string, int>> readStructureFromSource( std::vector<std::tuple<uint, std::string, uint>> readStructureFromSource(
std::string source) override; std::string source) override;
PacketStructureTxt(std::string source){ PacketStructureTxt(std::string source){
updateStructure(source); updateStructure(source);
......
...@@ -9,11 +9,11 @@ ...@@ -9,11 +9,11 @@
using namespace inaf::oasbo::Packets; using namespace inaf::oasbo::Packets;
size_t AstriPacketGeneric::getHeaderSize() const { uint AstriPacketGeneric::getHeaderSize() const {
return 6; return 6;
} }
size_t AstriPacketGeneric::getPayloadSize() const { uint AstriPacketGeneric::getPayloadSize() const {
auto val = this->operator [](5); auto val = this->operator [](5);
if(val.has_value()) if(val.has_value())
return val.value()-1; return val.value()-1;
...@@ -23,7 +23,7 @@ size_t AstriPacketGeneric::getPayloadSize() const { ...@@ -23,7 +23,7 @@ size_t AstriPacketGeneric::getPayloadSize() const {
} }
} }
size_t AstriPacketGeneric::getTailSize() const { uint AstriPacketGeneric::getTailSize() const {
return 2; return 2;
} }
...@@ -9,14 +9,14 @@ ...@@ -9,14 +9,14 @@
using namespace inaf::oasbo::Packets; using namespace inaf::oasbo::Packets;
std::vector<std::tuple<int, std::string, int>> PacketStructureJson::readStructureFromSource(std::string source) { std::vector<std::tuple<uint, std::string, uint>> PacketStructureJson::readStructureFromSource(std::string source) {
std::ifstream file; std::ifstream file;
file.open(source, std::ios::in); file.open(source, std::ios::in);
if (!file.is_open()) { if (!file.is_open()) {
std::cerr << "Error: Could not open file: " << source << std::endl; std::cerr << "Error: Could not open file: " << source << std::endl;
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
size_t count = 0; uint count = 0;
nlohmann::ordered_json data; nlohmann::ordered_json data;
file >> data; file >> data;
this->structure = convertToTupleVector(data, count); this->structure = convertToTupleVector(data, count);
...@@ -24,9 +24,9 @@ std::vector<std::tuple<int, std::string, int>> PacketStructureJson::readStructur ...@@ -24,9 +24,9 @@ std::vector<std::tuple<int, std::string, int>> PacketStructureJson::readStructur
return structure; return structure;
} }
std::vector<std::tuple<int, std::string, int>> PacketStructureJson::convertToTupleVector( std::vector<std::tuple<uint, std::string, uint>> PacketStructureJson::convertToTupleVector(
const nlohmann::ordered_json &data, size_t &count) { const nlohmann::ordered_json &data, uint &count) {
std::vector<std::tuple<int, std::string, int>> out; std::vector<std::tuple<uint, std::string, uint>> out;
for (auto it = data.begin(); it != data.end(); ++it) { for (auto it = data.begin(); it != data.end(); ++it) {
if (it.value().is_object()) { if (it.value().is_object()) {
if (!it.value().count("size") || !it.value().count("fields") if (!it.value().count("size") || !it.value().count("fields")
...@@ -35,11 +35,11 @@ std::vector<std::tuple<int, std::string, int>> PacketStructureJson::convertToTup ...@@ -35,11 +35,11 @@ std::vector<std::tuple<int, std::string, int>> PacketStructureJson::convertToTup
<< std::endl; << std::endl;
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
for (auto i = 0; i < it.value()["size"]; i++) { for (uint i = 0; i < it.value()["size"]; i++) {
std::vector<std::tuple<int, std::string, int>> subArray = std::vector<std::tuple<uint, std::string, uint>> subArray =
convertToTupleVector(it.value()["fields"], count); convertToTupleVector(it.value()["fields"], count);
std::for_each(subArray.begin(), subArray.end(), std::for_each(subArray.begin(), subArray.end(),
[i](std::tuple<int, std::string, int> &line) { [i](std::tuple<uint, std::string, uint> &line) {
std::get < 1 std::get < 1
> (line).append("_#").append( > (line).append("_#").append(
std::to_string(i)); std::to_string(i));
......
...@@ -8,13 +8,13 @@ ...@@ -8,13 +8,13 @@
#include <PacketStructureTxt.h> #include <PacketStructureTxt.h>
using namespace inaf::oasbo::Packets; using namespace inaf::oasbo::Packets;
std::vector<std::tuple<int, std::string, int>> PacketStructureTxt::readStructureFromSource( std::vector<std::tuple<uint, std::string, uint>> PacketStructureTxt::readStructureFromSource(
std::string source) { std::string source) {
std::ifstream file; std::ifstream file;
file.open(source, std::ios::in); file.open(source, std::ios::in);
stringArrayFile = this->toStringArray(file); stringArrayFile = this->toStringArray(file);
size_t start = 0; uint start = 0;
size_t count = 0; uint count = 0;
this->structure = convertToTupleVector(start, count); this->structure = convertToTupleVector(start, count);
file.close(); file.close();
return structure; return structure;
...@@ -30,9 +30,9 @@ std::vector<std::string> PacketStructureTxt::toStringArray( ...@@ -30,9 +30,9 @@ std::vector<std::string> PacketStructureTxt::toStringArray(
return out; return out;
} }
std::vector<std::tuple<int, std::string, int>> PacketStructureTxt::convertToTupleVector( std::vector<std::tuple<uint, std::string, uint>> PacketStructureTxt::convertToTupleVector(
size_t &start, size_t &count) { uint &start, uint &count) {
std::vector<std::tuple<int, std::string, int>> out; std::vector<std::tuple<uint, std::string, uint>> out;
for (; for (;
start < stringArrayFile.size() start < stringArrayFile.size()
&& stringArrayFile.at(start).find("}") == std::string::npos; && stringArrayFile.at(start).find("}") == std::string::npos;
...@@ -42,16 +42,15 @@ std::vector<std::tuple<int, std::string, int>> PacketStructureTxt::convertToTupl ...@@ -42,16 +42,15 @@ std::vector<std::tuple<int, std::string, int>> PacketStructureTxt::convertToTupl
continue; continue;
} }
if (line.find("array") != std::string::npos) { if (line.find("array") != std::string::npos) {
size_t arraySize = std::stoi( uint arraySize = std::stoi(
line.substr(line.find(":") + 1, line.find("{"))); line.substr(line.find(":") + 1, line.find("{")));
size_t i; std::vector<std::tuple<uint, std::string, uint>> array;
std::vector<std::tuple<int, std::string, int>> array; uint newStart = start + 1;
size_t newStart = start + 1; for (uint i = 0; i < arraySize; i++) {
for (i = 0; i < arraySize; i++) {
newStart = start + 1; newStart = start + 1;
array = convertToTupleVector(newStart, count); array = convertToTupleVector(newStart, count);
std::for_each(array.begin(), array.end(), std::for_each(array.begin(), array.end(),
[i](std::tuple<int, std::string, int> &line) { [i](std::tuple<uint, std::string, uint> &line) {
std::get<1>(line).append("_#").append( std::get<1>(line).append("_#").append(
std::to_string(i)); std::to_string(i));
}); });
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment