#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 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