UdonLibrary 1.0.0
機械システム研究部 C++ ライブラリ
読み取り中…
検索中…
一致する文字列を見つけられません
Udon 名前空間

名前空間

namespace  Impl
 
namespace  Literals
 
namespace  Message
 
namespace  Pio
 
namespace  StringToNumberParser
 
namespace  Traits
 

クラス

class  ArrayView
 配列参照クラス [詳解]
 
class  AsyncStreamReader
 非同期ストリーム読み取り [詳解]
 
class  BasicStringView
 文字列参照クラス [詳解]
 
class  CanBusSpi
 Raspberry Pi Pico用バスクラス [詳解]
 
class  CanBusTeensy
 Teensy用 CANバスクラス [詳解]
 
class  CanReader
 CAN通信 受信クラス [詳解]
 
struct  CanRxNode
 CAN受信ノード [詳解]
 
struct  CanTxNode
 CAN送信ノード [詳解]
 
class  CanWriter
 CAN通信 送信クラス [詳解]
 
class  DeltaTime
 変化時間計測クラス [詳解]
 
class  E220Reader
 E220 受信クラス [詳解]
 
class  E220Writer
 E220 送信クラス [詳解]
 
class  EncoderBy
 通信経由ロータリーエンコーダー [詳解]
 
struct  Euler
 オイラー角 [詳解]
 
struct  EulerDirection
 オイラー角の回転方向 [詳解]
 
class  Forwarding
 異なる通信間にメッセージを転送するクラス [詳解]
 
struct  HSV
 HSV色空間 [詳解]
 
class  I2cBusImpl
 I2cBus クラス実装部 [詳解]
 
class  I2cMasterReader
 I2c マスター側受信クラス [詳解]
 
class  I2cMasterWriter
 I2c マスター側送信クラス [詳解]
 
class  I2cSlaveReader
 I2c スレーブ側受信クラス [詳解]
 
class  I2cSlaveWriter
 I2c スレーブ側送信クラス [詳解]
 
class  ICanBus
 CANバス管理クラス インターフェース [詳解]
 
class  II2cBus
 I2cBus クラスのインターフェース [詳解]
 
class  IIm920
 IM920のインターフェース [詳解]
 
class  Im920
 IM920通信クラス [詳解]
 
struct  Im920Node
 IM920ノード [詳解]
 
class  Im920Reader
 IM920受信クラス [詳解]
 
class  Im920s
 IM920s送信クラス [詳解]
 
class  Im920sL
 IM920sL通信クラス [詳解]
 
class  Im920Writer
 IM920送信クラス [詳解]
 
struct  Input
 入力値 [詳解]
 
class  MotorBy
 通信経由モーター制御クラス [詳解]
 
class  MovingAverage
 移動平均クラス [詳解]
 
struct  NulloptT
 無効値型 [詳解]
 
class  Optional
 オプショナル型 [詳解]
 
class  PadPS5
 通信経由PS5コントローラークラス [詳解]
 
class  PadPS5BT
 Bluetooth経由PS5コントローラークラス [詳解]
 
class  PadPS5USB
 有線USB経由PS5コントローラークラス [詳解]
 
class  PidController
 PID制御器 [詳解]
 
struct  Polar
 極座標系 [詳解]
 
struct  Pos
 ロボットの位置 [詳解]
 
struct  Quaternion
 クオータニオン [詳解]
 
struct  QuaternionDirection
 クオータニオンの各成分の正負を表す構造体 [詳解]
 
struct  RGB
 RGB色空間 [詳解]
 
class  RingBuffer
 リングバッファ [詳解]
 
class  RoboMasterC610
 RoboMasterC610クラス [詳解]
 
class  RoboMasterC620
 RoboMasterC620クラス [詳解]
 
class  Ros2SerialReader
 ROS2からSerial通信を受信するクラス [詳解]
 
class  Ros2SerialWriter
 ROS2からSerial通信を送信するクラス [詳解]
 
class  ScopedInterruptLocker
 割り込みロック、アンロックをスコープの範囲で制御するクラス [詳解]
 
class  SerialReader
 Serial 受信クラス [詳解]
 
class  SerialWriter
 Serial 送信クラス [詳解]
 
class  ServoSpeed
 サーボ角度制御クラス [詳解]
 
class  SivSerialReader
 OpenSiv3D用 Serial 受信クラス [詳解]
 
class  SivSerialWriter
 OpenSiv3D用 Serial 送信クラス [詳解]
 
class  StaticVector
 疑似可変長配列コンテナ [詳解]
 
class  SteerModuleOptimizer
 独立ステアリング機構の各モジュール最適化クラス [詳解]
 
class  SteerOptimizer
 独立ステアリング機構最適化クラス [詳解]
 
struct  Vec2
 二次元ベクトル [詳解]
 
struct  Vec3
 三次元ベクトル [詳解]
 

型定義

using PadPS5OnboardBT = PadPS5<Impl::PadPS5OnboardBTReader>
 
using PadPS5OnboardUSB = PadPS5<Impl::PadPS5OnboardUSBReader>
 
using SivPadPS5 = PadPS5<Impl::SivPadPS5Reader>
 OpenSiv3D用 PS5コントローラー
 
using Stick = Pos
 
using StringView = BasicStringView<char>
 
using WStringView = BasicStringView<wchar_t>
 
using Vec3 = Vec3
 

列挙型

enum class  ServoChoose : uint8_t { _20kg , _30kg , _60kg }
 サーボの種類選択 [詳解]
 
enum class  AssertAction { Skip , Abort }
 アサートが発生した場合の挙動 [詳解]
 

関数

template<typename Ty >
bool BitRead (const Ty &rhs, uint8_t bit)
 特定のビットを読み取る
 
template<typename Ty >
void BitSet (Ty &rhs, uint8_t bit)
 特定のビットを 1 にする
 
template<typename Ty >
void BitClear (Ty &rhs, uint8_t bit)
 特定のビットを 0 にする
 
template<typename Ty >
void BitToggle (Ty &rhs, uint8_t bit)
 特定のビットを反転する
 
template<typename Ty >
void BitWrite (Ty &rhs, uint8_t bit, bool value)
 特定のビットに値を書き込む
 
template<typename InputIterator , typename Functor >
void BitPack (const InputIterator begin, const InputIterator end, Functor callback)
 バイト列のMSB(最上位ビット)を抽出し、7bitごとに分割してコールバック関数に渡す
 
template<typename OutputIterator , typename Functor >
bool BitUnpack (OutputIterator begin, OutputIterator end, Functor callback)
 7bit分割されたデータを結合する
 
constexpr size_t BitPackedSize (size_t size)
 ビットパックされたデータのサイズを取得する
 
constexpr size_t BitUnpackedSize (size_t size)
 ビットアンパックされたデータのサイズを取得する
 
std::vector< uint8_t > BitPack (const std::vector< uint8_t > &data)
 バイト列の
 
std::vector< uint8_t > BitUnpack (const std::vector< uint8_t > &data)
 
uint8_t CRC8 (ArrayView< const uint8_t > buffer)
 バイト列から CRC-8 値を計算する
 
uint8_t HexCharToByteValue (char hex) noexcept
 16進数文字をバイト値に変換する
 
char ByteValueToHexChar (uint8_t byte) noexcept
 バイト値を16進数文字に変換する
 
size_t ConvertedByteStringSize (size_t byteStringSize) noexcept
 バイト列を16進数文字列に変換した際の、16進数文字列のサイズを取得する
 
size_t ConvertedHexStringSize (size_t hexStringSize) noexcept
 16進数文字列をバイト列に変換した際の、バイト列のサイズを取得する
 
bool ByteStringToHexString (Udon::ArrayView< const uint8_t > byteString, Udon::ArrayView< char > distHexString) noexcept
 バイト列を16進数文字列に変換する
 
bool HexStringToByteString (Udon::ArrayView< const char > hexString, Udon::ArrayView< uint8_t > distByteString) noexcept
 16進数文字列をバイト列に変換する
 
template<typename A , typename B >
constexpr auto Min (const A &lhs, const B &rhs) -> decltype(lhs, rhs)
 2つの値のうち小さい方を返す (std::min)
 
template<typename A , typename B >
constexpr auto Max (const A &lhs, const B &rhs) -> decltype(lhs, rhs)
 2つの値のうち大きい方を返す (std::max)
 
template<typename A , typename B , typename C >
constexpr A Constrain (const A &amt, const B &low, const C &high)
 値を指定された範囲内に収める (std::clamp)
 
template<typename T >
constexpr T ToRadians (const T &rhs)
 度数法の角度を弧度法に変換する
 
template<typename T >
constexpr T ToDegrees (const T &rhs)
 弧度法の角度を度数法に変換する
 
template<typename T >
constexpr T Abs (const T &rhs)
 絶対値を返す (std::abs)
 
template<typename T >
constexpr T Sq (const T &x)
 二乗を求める (std::pow(x, 2))
 
constexpr int Floor (double x)
 小数点切り捨て (std::floor)
 
constexpr int Round (double x)
 四捨五入 (std::round)
 
constexpr int Ceil (double x)
 小数点切り上げ (std::ceil)
 
constexpr double Map (const double value, const double inputMin, const double inputMax, const double outputMin, const double outputMax)
 数値をある範囲から別の範囲に再マッピングする
 
double Normalized (double value, double min, double max)
 値を正規化する
 
double Hypotenuse (double x, double y)
 三平方の定理を用いて、2辺の長さから斜辺の長さを求める
 
template<typename T >
constexpr size_t SerializedSize () noexcept
 Tをシリアライズした際のバイト列の要素数を取得する
 
template<typename T >
bool Serialize (const T &object, ArrayView< uint8_t > buffer)
 バッファにシリアル化する
 
template<typename T >
std::vector< uint8_t > Serialize (const T &object)
 シリアル化する
 
bool CanDeserialize (ArrayView< const uint8_t > buffer)
 逆シリアル化可能かどうかを判定します
 
template<typename T >
Udon::Optional< T > Deserialize (ArrayView< const uint8_t > buffer)
 バイト列からオブジェクトに逆シリアル化します
 
void ThrowBadOptionalAccess (bool)
 
void Assert (bool expression, const char *const message="", AssertAction action=AssertAction::Abort)
 アサート
 
template<typename... Args>
void Printf (const char *format, Args... args)
 
template<typename... Args>
void Show (Args &&... args)
 区切り文字ありで出力する
 
template<typename... Args>
void Showln (Args &&... args)
 改行、区切り文字ありで出力する
 
template<typename... Args>
void ShowRaw (Args &&... args)
 改行、区切り文字なしで出力する
 

変数

constexpr size_t CRC8_SIZE = 1
 
constexpr double Pi = 3.1415926535897932384626433832795
 π
 
constexpr double HalfPi = 1.5707963267948966192313216916398
 π/2
 
constexpr double TwoPi = 6.283185307179586476925286766559
 π*2
 
constexpr double DegToRad = 0.017453292519943295769236907684886
 度数法から弧度法に変換する係数
 
constexpr double RadToDeg = 57.295779513082320876798154814105
 弧度法から度数法に変換する係数
 
constexpr NulloptT nullopt {}
 無効値
 

型定義詳解

◆ PadPS5OnboardBT

◆ PadPS5OnboardUSB

◆ SivPadPS5

OpenSiv3D用 PS5コントローラー

◆ Stick

using Udon::Stick = Pos

◆ StringView

◆ Vec3

using Udon::Vec3 = Vec3

◆ WStringView

列挙型詳解

◆ AssertAction

enum class Udon::AssertAction
strong

アサートが発生した場合の挙動

列挙値
Skip 
Abort 

◆ ServoChoose

enum class Udon::ServoChoose : uint8_t
strong

サーボの種類選択

列挙値
_20kg 
_30kg 
_60kg 

関数詳解

◆ Abs()

template<typename T >
T Udon::Abs ( const T & rhs)
inlineconstexpr

絶対値を返す (std::abs)

引数
rhs絶対値を求めたい値
戻り値
絶対値

◆ Assert()

void Udon::Assert ( bool expression,
const char *const message = "",
AssertAction action = AssertAction::Abort )
inline

アサート

引数
expressiontrue の場合正常と判断、false の場合以上と判断し、アサートを発生させる
messageアサート発生時のメッセージ
actionアサート発生時の挙動

◆ BitClear()

template<typename Ty >
void Udon::BitClear ( Ty & rhs,
uint8_t bit )
inline

特定のビットを 0 にする

引数
rhs書き込み対象
bitビット位置

◆ BitPack() [1/2]

template<typename InputIterator , typename Functor >
void Udon::BitPack ( const InputIterator begin,
const InputIterator end,
Functor callback )

バイト列のMSB(最上位ビット)を抽出し、7bitごとに分割してコールバック関数に渡す

引数
begin入力イテレータ先頭
end入力イテレータ末尾
callbackコールバック関数
覚え書き
コールバック関数を用いることで、新たにバッファを確保する必要がない イテレーターから受け取ったデータは次のように変換されコールバック関数に渡される
戻り値

◆ BitPack() [2/2]

std::vector< uint8_t > Udon::BitPack ( const std::vector< uint8_t > & data)
inline

バイト列の

引数
data
戻り値

◆ BitPackedSize()

size_t Udon::BitPackedSize ( size_t size)
inlineconstexpr

ビットパックされたデータのサイズを取得する

引数
sizeビットパックされる前のデータのサイズ
戻り値
ビットパック後のデータのサイズ

◆ BitRead()

template<typename Ty >
bool Udon::BitRead ( const Ty & rhs,
uint8_t bit )
inline

特定のビットを読み取る

引数
rhs読み取り対象
bitビット位置
戻り値
ビット値

◆ BitSet()

template<typename Ty >
void Udon::BitSet ( Ty & rhs,
uint8_t bit )
inline

特定のビットを 1 にする

引数
rhs書き込み対象
bitビット位置

◆ BitToggle()

template<typename Ty >
void Udon::BitToggle ( Ty & rhs,
uint8_t bit )
inline

特定のビットを反転する

引数
rhs書き込み対象
bitビット位置

◆ BitUnpack() [1/2]

std::vector< uint8_t > Udon::BitUnpack ( const std::vector< uint8_t > & data)
inline

◆ BitUnpack() [2/2]

template<typename OutputIterator , typename Functor >
bool Udon::BitUnpack ( OutputIterator begin,
OutputIterator end,
Functor callback )

7bit分割されたデータを結合する

引数
begin出力イテレータ先頭
end出力イテレータ末尾
callbackコールバック関数
覚え書き
アンパックが失敗する場合、 7bit分割されたデータは次のように変換されコールバック関数に渡される
戻り値

◆ BitUnpackedSize()

size_t Udon::BitUnpackedSize ( size_t size)
inlineconstexpr

ビットアンパックされたデータのサイズを取得する

引数
sizeビットアンパックされる前のデータのサイズ
戻り値
ビットアンパック後のデータのサイズ

◆ BitWrite()

template<typename Ty >
void Udon::BitWrite ( Ty & rhs,
uint8_t bit,
bool value )
inline

特定のビットに値を書き込む

引数
rhs書き込み対象
bitビット位置
value書き込む値

◆ ByteStringToHexString()

bool Udon::ByteStringToHexString ( Udon::ArrayView< const uint8_t > byteString,
Udon::ArrayView< char > distHexString )
inlinenoexcept

バイト列を16進数文字列に変換する

引数
byteString変換元のバイト列
distHexString変換した16進数文字列の格納先
覚え書き
byteStringのサイズを基に16進数文字列を構築する (distHexStringのサイズはbyteStringのサイズの2倍以上である必要がある)
変換に失敗した場合はdistHexStringには何も書き込まれない
戻り値
変換に成功した場合はtrue, 失敗した場合はfalse

◆ ByteValueToHexChar()

char Udon::ByteValueToHexChar ( uint8_t byte)
inlinenoexcept

バイト値を16進数文字に変換する

引数
byte変換元のバイト値
戻り値
変換後の16進数文字 (変換に失敗した場合は' ')

◆ CanDeserialize()

bool Udon::CanDeserialize ( ArrayView< const uint8_t > buffer)
inline

逆シリアル化可能かどうかを判定します

引数
buffer判定するバイト列の参照
戻り値
逆シリアル化可能かどうか

◆ Ceil()

int Udon::Ceil ( double x)
inlineconstexpr

小数点切り上げ (std::ceil)

◆ Constrain()

template<typename A , typename B , typename C >
A Udon::Constrain ( const A & amt,
const B & low,
const C & high )
inlineconstexpr

値を指定された範囲内に収める (std::clamp)

引数
amt範囲内に収めたい値
low最小値
high最大値
戻り値
範囲内に収めた値

◆ ConvertedByteStringSize()

size_t Udon::ConvertedByteStringSize ( size_t byteStringSize)
inlinenoexcept

バイト列を16進数文字列に変換した際の、16進数文字列のサイズを取得する

引数
byteStringSize変換元のバイトサイズ
戻り値
変換後の16進数文字列のサイズ

◆ ConvertedHexStringSize()

size_t Udon::ConvertedHexStringSize ( size_t hexStringSize)
inlinenoexcept

16進数文字列をバイト列に変換した際の、バイト列のサイズを取得する

引数
hexStringSize変換元の16進数文字サイズ
戻り値
変換後のバイト列のサイズ

◆ CRC8()

uint8_t Udon::CRC8 ( ArrayView< const uint8_t > buffer)
inline

バイト列から CRC-8 値を計算する

引数
bufferCRCの計算対象となるバッファ

◆ Deserialize()

template<typename T >
Udon::Optional< T > Udon::Deserialize ( ArrayView< const uint8_t > buffer)

バイト列からオブジェクトに逆シリアル化します

引数
bufferバイト列
戻り値
逆シリアル化されたオブジェクト

◆ Floor()

int Udon::Floor ( double x)
inlineconstexpr

小数点切り捨て (std::floor)

◆ HexCharToByteValue()

uint8_t Udon::HexCharToByteValue ( char hex)
inlinenoexcept

16進数文字をバイト値に変換する

引数
hex変換元の16進数文字
戻り値
変換後のバイト値 (変換に失敗した場合は0xff)

◆ HexStringToByteString()

bool Udon::HexStringToByteString ( Udon::ArrayView< const char > hexString,
Udon::ArrayView< uint8_t > distByteString )
inlinenoexcept

16進数文字列をバイト列に変換する

引数
hexString変換元の16進数文字列
distByteString変換したバイト列の格納先
覚え書き
hexStringのサイズを基にバイト列を構築する (distByteStringのサイズはhexStringのサイズの1/2以上である必要がある)
変換に失敗した場合はdistByteStringには何も書き込まれない
戻り値
変換に成功した場合はtrue, 失敗した場合はfalse

◆ Hypotenuse()

double Udon::Hypotenuse ( double x,
double y )
inline

三平方の定理を用いて、2辺の長さから斜辺の長さを求める

引数
xX軸方向の辺の長さ
yY軸方向の辺の長さ
戻り値
斜辺の長さ

◆ Map()

double Udon::Map ( const double value,
const double inputMin,
const double inputMax,
const double outputMin,
const double outputMax )
inlineconstexpr

数値をある範囲から別の範囲に再マッピングする

◆ Max()

template<typename A , typename B >
auto Udon::Max ( const A & lhs,
const B & rhs ) -> decltype(lhs, rhs)
inlineconstexpr

2つの値のうち大きい方を返す (std::max)

◆ Min()

template<typename A , typename B >
auto Udon::Min ( const A & lhs,
const B & rhs ) -> decltype(lhs, rhs)
inlineconstexpr

2つの値のうち小さい方を返す (std::min)

◆ Normalized()

double Udon::Normalized ( double value,
double min,
double max )
inline

値を正規化する

覚え書き
-∞~+∞ の範囲を min~max の範囲に変換する (剰余算に最小値が設定できるようになったイメージ)
引数
value正規化したい値
min最小値
max最大値
戻り値
正規化された値

◆ Printf()

template<typename... Args>
void Udon::Printf ( const char * format,
Args... args )
inline

◆ Round()

int Udon::Round ( double x)
inlineconstexpr

四捨五入 (std::round)

◆ Serialize() [1/2]

template<typename T >
std::vector< uint8_t > Udon::Serialize ( const T & object)

シリアル化する

テンプレート引数
Tシリアル化する型(自動推論)
引数
objectシリアル化するオブジェクト
戻り値
シリアル化したデータ

◆ Serialize() [2/2]

template<typename T >
bool Udon::Serialize ( const T & object,
ArrayView< uint8_t > buffer )

バッファにシリアル化する

テンプレート引数
Tシリアル化する型(自動推論)
引数
objectシリアル化するオブジェクト
bufferシリアル化先のバッファ
戻り値
シリアル化に成功したかどうか

◆ SerializedSize()

template<typename T >
size_t Udon::SerializedSize ( )
constexprnoexcept

Tをシリアライズした際のバイト列の要素数を取得する

テンプレート引数
Tシリアライズ対象の型
覚え書き
シリアライズ後のサイズは、チェックサムのサイズを含む

◆ Show()

template<typename... Args>
void Udon::Show ( Args &&... args)

区切り文字ありで出力する

◆ Showln()

template<typename... Args>
void Udon::Showln ( Args &&... args)

改行、区切り文字ありで出力する

◆ ShowRaw()

template<typename... Args>
void Udon::ShowRaw ( Args &&... args)

改行、区切り文字なしで出力する

◆ Sq()

template<typename T >
T Udon::Sq ( const T & x)
inlineconstexpr

二乗を求める (std::pow(x, 2))

引数
rhs二乗を求めたい値
戻り値

◆ ThrowBadOptionalAccess()

void Udon::ThrowBadOptionalAccess ( bool )
inline

◆ ToDegrees()

template<typename T >
T Udon::ToDegrees ( const T & rhs)
inlineconstexpr

弧度法の角度を度数法に変換する

引数
rhs弧度法の角度
戻り値
度数法の角度

◆ ToRadians()

template<typename T >
T Udon::ToRadians ( const T & rhs)
inlineconstexpr

度数法の角度を弧度法に変換する

引数
rhs度数法の角度
戻り値
弧度法の角度

変数詳解

◆ CRC8_SIZE

size_t Udon::CRC8_SIZE = 1
constexpr

◆ DegToRad

double Udon::DegToRad = 0.017453292519943295769236907684886
constexpr

度数法から弧度法に変換する係数

◆ HalfPi

double Udon::HalfPi = 1.5707963267948966192313216916398
constexpr

π/2

◆ nullopt

NulloptT Udon::nullopt {}
constexpr

無効値

◆ Pi

double Udon::Pi = 3.1415926535897932384626433832795
constexpr

π

◆ RadToDeg

double Udon::RadToDeg = 57.295779513082320876798154814105
constexpr

弧度法から度数法に変換する係数

◆ TwoPi

double Udon::TwoPi = 6.283185307179586476925286766559
constexpr

π*2