104 lines
3.6 KiB
C++
104 lines
3.6 KiB
C++
#ifdef _USE_GTEST
|
|
#ifndef FULL_TEST_ADSB_H
|
|
#define FULL_TEST_ADSB_H
|
|
#include "global.h"
|
|
|
|
using namespace SSR;
|
|
TEST(ADSBTest, Icao33) {
|
|
EXPECT_EQ(decode_icao(hex2bin(std::string("8D406B902015A678D4D220AA4BDA"))), "406B90");
|
|
auto builder = ADS_B::Aircraft_identification_BDS08::Builder()
|
|
.set_call_sign("12345678")
|
|
.set_vortex_type(Vortex_Type::Glider);
|
|
// std::cout << builder.toJson().to_json_string();
|
|
|
|
|
|
}
|
|
|
|
// [2026-01-08 14:56:56.227] [info] [func~] [line:~27] [icao~FD1558] [hex~A4802CB8FACA4524FEF7E0EEF137] [df~20] crc ok
|
|
TEST(ADSBTest, check_crc) {
|
|
std::string msg = "A4802CB8FACA4524FEF7E0EEF137";
|
|
std::string msg_bin = Psc::hex2bin(msg);
|
|
auto icao = decode_icao(Psc::hex2bin(msg));
|
|
auto ok = with_AP::check_crc(msg_bin, icao);
|
|
}
|
|
|
|
// [2026-01-08 14:56:56.223] [info] [func~] [line:~13] [icao~780626] [hex~8D780626F8230004004978C9A11E] [df~17] crc ok
|
|
TEST(ADSBTest, check_crc2) {
|
|
// std::string msg = "8D780626F8230004004978C9A11E";
|
|
// std::string msg_bin = Psc::hex2bin(msg);
|
|
// auto icao = decode_icao(Psc::hex2bin(msg));
|
|
// auto ok = with_PI::check_crc(msg_bin, icao);
|
|
//
|
|
//
|
|
// auto crc_3 = bin2hex(std::bitset<24>(crc(msg_bin, true)).to_string());
|
|
// auto last_3 = bin2hex(msg_bin.substr(msg_bin.size() - 24));
|
|
//
|
|
|
|
std::vector<std::string> msgs = {
|
|
"8D7803CD58974612397DF090B5C6",
|
|
"8D7802AC58B5436112DDD2A2C3EC",
|
|
"8D7821F058A1400500DF7FF72C5F",
|
|
"8D78143BF8210002004AB86F2C06",
|
|
"8D780C9BE100A5000000006F554B",
|
|
"8D7821F058A1479D8630303B0454",
|
|
"8D7821F099080BB4F804973C45DF",
|
|
"8D78127B9908A0B118088DCBDE88",
|
|
"8D7809259914892A90048D467E59",
|
|
"8D7813A699087238F0048C502CD3",
|
|
"8D780D59F82100020049B8810833",
|
|
"8D782167EA2E3858013C087B37B3",
|
|
"8D78035458A5C2B60511DD1735DF",
|
|
"8D780D59F82100020049B8810833",
|
|
"8D7805E09910223718089DC66FFA",
|
|
"8D780892990D3598983C94DBA47D",
|
|
"8D7813ACEA302858013C08072876",
|
|
"8D781DA6588F77601352F1846CC3",
|
|
"8D78092558770369A8DC164AF3A0",
|
|
"8D7819B7EA2C3864313C085F561E",
|
|
"8D7803CD5897460AD17F0D224330",
|
|
"8D7809FA5881043EC8A5CA9058F8",
|
|
"8D780F769908A0B530088DCC999E",
|
|
"8D781DA9EA249858013C08C4DA00",
|
|
"8D7802EF589743709CDC2711A541",
|
|
"8D7804219909362EB8089AEC3BFE",
|
|
"8D7805E0EA44A867FF3C08FAC9C6",
|
|
"8D78143B58A1473A87855D0BE3D9",
|
|
"8D4CA1AA990D4F17D804A71DC08F",
|
|
"8D780D59584547409F803DEEE599",
|
|
"8D780D59998D4A84D824878943FD",
|
|
"8D78108D588106A09DAF06E195B7",
|
|
"8D7809B45885840D9B6C097A9E70",
|
|
"8D7809255877036C06DB9DF16680",
|
|
"8D71C355EA360866C31C089D63F2",
|
|
"8D780572E1190C00000000F6C9C0",
|
|
"8D782167990CF6A438088E878C02",
|
|
"8D7802EF58974373A8DBF5EC926C",
|
|
"8D71C326582F67D9AD63E4D0C896",
|
|
"8D7819B799087D32304493B1EC5B",
|
|
"8D7813A6588B02E7D074DC67FB00",
|
|
"8D7802ACE10D29000000002C0AD0",
|
|
"8D780575586157C4F574CE33082B",
|
|
"8D782167230C21F8E73DA0818111",
|
|
"8D78143B58A143A418313C7B5658",
|
|
"8D78089258AB334C4A714D501734",
|
|
"8D78127B99089FB0B0048CD6C061",
|
|
"8D7809B45885840A696BD9644570",
|
|
};
|
|
|
|
for (auto msg : msgs) {
|
|
std::string msg_bin = Psc::hex2bin(msg);
|
|
auto c1 = crc_hex(msg_bin, true);
|
|
auto c2 = crc_hex(msg_bin, false);
|
|
|
|
// EXPECT_EQ(oss.str(), msg.substr(msg.size() - 6));
|
|
std::cout << std::hex << std::uppercase << c1 << std::endl;
|
|
std::cout << std::hex << std::uppercase << c2 << std::endl;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
#endif
|