obu-firmware builds against the vanetza-idf C-ITS library, which until now came from the colleague's microbu-esp32c5 tree beside the repository and was not tracked here, so a clone of this repository could not build the firmware it ships. The library alone is now part of obu-firmware, as obu-firmware/external/vanetza-idf: their external/vanetza-idf at commit cf4b99f, unchanged (9775 files; see its PROVENANCE.md). CMake takes it from there by default; -DVANETZA_IDF_DIR still points the build elsewhere. The rest of the colleague's tree (their own VAM firmware, PKI tooling, station-link Python tools, the V2X2MAP bridge) stays out of this repository and gitignored; nothing is pushed to their repository. NOTES.md, docs/06, TODO.md and the pcap verifier's usage line point at the new location.
50 lines
1.0 KiB
C++
50 lines
1.0 KiB
C++
#pragma once
|
|
#include <cstdint>
|
|
#include <functional>
|
|
|
|
namespace vanetza
|
|
{
|
|
namespace geodesy
|
|
{
|
|
|
|
/**
|
|
* Standard country or area codes for statistical use by M49 standard.
|
|
* \see https://unstats.un.org/unsd/methodology/m49/
|
|
*/
|
|
class M49Code
|
|
{
|
|
public:
|
|
explicit constexpr M49Code(uint16_t value) : m_value(value) {}
|
|
constexpr uint16_t value() const { return m_value; }
|
|
|
|
bool operator==(M49Code other) const { return m_value == other.m_value; }
|
|
bool operator!=(M49Code other) const { return m_value != other.m_value; }
|
|
|
|
private:
|
|
uint16_t m_value;
|
|
};
|
|
|
|
} // namespace geodesy
|
|
} // namespace vanetza
|
|
|
|
namespace std
|
|
{
|
|
template<>
|
|
struct hash<vanetza::geodesy::M49Code>
|
|
{
|
|
std::size_t operator()(vanetza::geodesy::M49Code code) const
|
|
{
|
|
return std::hash<uint16_t>{}(code.value());
|
|
}
|
|
};
|
|
|
|
template<>
|
|
struct less<vanetza::geodesy::M49Code>
|
|
{
|
|
bool operator()(vanetza::geodesy::M49Code a, vanetza::geodesy::M49Code b) const
|
|
{
|
|
return a.value() < b.value();
|
|
}
|
|
};
|
|
} // namespace std
|