|
GKD.RoboCtrl
|
常用数值与字节工具集合。 更多...
#include <concepts>#include <cstdint>#include <cstring>#include <chrono>#include <cassert>#include <cmath>#include <numbers>#include <type_traits>#include "utils/concepts.hpp"类 | |
| struct | roboctrl::vector< T > |
| 简单的二维向量类型。 更多... | |
| struct | roboctrl::utils::function_arg< Ret(*)(Arg)> |
| struct | roboctrl::utils::function_arg< Ret(Class::*)(Arg) const > |
命名空间 | |
| namespace | roboctrl::utils |
| 用于存放工具函数的命名空间。 | |
概念 | |
| concept | roboctrl::utils::byte_container |
描述具有 data() 与 size() 接口的字节容器。 | |
类型定义 | |
| using | roboctrl::fp32 = float |
| 单精度浮点别名。 | |
| using | roboctrl::fp64 = double |
| 双精度浮点别名。 | |
| using | roboctrl::vectori = vector< int > |
| using | roboctrl::vectorf = vector< float > |
| template<typename Fn > | |
| using | roboctrl::utils::function_arg_t = typename function_arg< decltype(&Fn::operator())>::type |
函数 | |
| template<typename T > | |
| vector< T > | roboctrl::operator+ (vector< T > a, vector< T > b) |
| template<typename T > | |
| vector< T > | roboctrl::operator- (vector< T > a, vector< T > b) |
| template<typename T > | |
| vector< T > | roboctrl::operator* (vector< T > a, T b) |
| template<typename T > | |
| vector< T > | roboctrl::operator/ (vector< T > a, T b) |
| constexpr fp32 | roboctrl::utils::rad_format (fp32 ang) |
| 将角度限制到[-Pi,Pi]范围内 | |
| template<package T, byte_container C> | |
| T | roboctrl::utils::from_bytes (const C &bytes) |
| 将字节容器内容反序列化为平凡类型。 | |
| template<package T, typename C > requires requires(C& c) { { c.data() } -> std::convertible_to<std::byte*>; { c.size() } -> std::convertible_to<std::size_t>; } | |
| void | roboctrl::utils::to_bytes (const T &t, C &container) |
| 将平凡类型序列化到指定容器。 | |
| auto | roboctrl::utils::now () |
| 记录程序启动后的纳秒级时间戳。 | |
| constexpr uint16_t | roboctrl::utils::make_u16 (uint16_t high, uint16_t low) noexcept |
| 将高低字节组合成无符号 16 位整数。 | |
| constexpr int16_t | roboctrl::utils::make_i16 (int16_t high, int16_t low) noexcept |
| 将高低字节组合成有符号 16 位整数。 | |
| constexpr std::byte | roboctrl::utils::to_byte (std::integral auto v) noexcept |
辅助将整数转换为 std::byte。 | |
变量 | |
| template<typename T > | |
| constexpr T | roboctrl::Pi = std::numbers::pi_v<T> |
| 常量 Pi 的模板实例。 | |
| constexpr auto | roboctrl::Pi_f = Pi<fp32> |
| 单精度浮点类型的 Pi 常量。 | |
| using roboctrl::fp32 = typedef float |
| using roboctrl::fp64 = typedef double |
| using roboctrl::vectorf = typedef vector<float> |
| vector< T > roboctrl::operator* | ( | vector< T > | a, |
| T | b | ||
| ) |
| vector< T > roboctrl::operator+ | ( | vector< T > | a, |
| vector< T > | b | ||
| ) |
| vector< T > roboctrl::operator- | ( | vector< T > | a, |
| vector< T > | b | ||
| ) |
| vector< T > roboctrl::operator/ | ( | vector< T > | a, |
| T | b | ||
| ) |
|
constexpr |
|
constexpr |
单精度浮点类型的 Pi 常量。
被这些函数引用 roboctrl::utils::rad_format() , 以及 roboctrl::device::motor_base::rpm().