UdonLibrary 1.0.0
機械システム研究部 C++ ライブラリ
読み取り中…
検索中…
一致する文字列を見つけられません
ICanBus.hpp
[詳解]
1//
2// CANバス管理クラス インターフェース
3//
4// Copyright (c) 2022-2024 udonrobo
5//
6
7#pragma once
8
10#include <vector>
11
12namespace Udon
13{
14
16 struct CanTxNode
17 {
18 const uint32_t id; // メッセージID
19
20 std::vector<uint8_t> data; // 送信データ
21
22 uint32_t transmitMs; // 最終通信時刻
23 };
24
25
27 struct CanRxNode
28 {
29 const uint32_t id; // メッセージID
30
31 std::vector<uint8_t> data; // 受信データ
32
33 void (*onReceive)(void*); // 受信時コールバック
34 void* param; // コールバックパラメータ
35
36 uint32_t transmitMs; // 最終通信時刻
37
38 void callback()
39 {
40 if (onReceive)
42 }
43 };
44
45
48 class ICanBus
49 {
50 public:
51 virtual ~ICanBus() {}
52
53
59 virtual CanTxNode* createTx(uint32_t id, size_t length) = 0;
60
61
67 virtual CanRxNode* createRx(uint32_t id, size_t length) = 0;
68 };
69} // namespace Udon
CANバス管理クラス インターフェース
Definition ICanBus.hpp:49
virtual CanRxNode * createRx(uint32_t id, size_t length)=0
受信ノードを作成
virtual CanTxNode * createTx(uint32_t id, size_t length)=0
送信ノードを作成
virtual ~ICanBus()
Definition ICanBus.hpp:51
Definition Bit.hpp:12
CAN受信ノード
Definition ICanBus.hpp:28
const uint32_t id
Definition ICanBus.hpp:29
std::vector< uint8_t > data
Definition ICanBus.hpp:31
uint32_t transmitMs
Definition ICanBus.hpp:36
void * param
Definition ICanBus.hpp:34
void(* onReceive)(void *)
Definition ICanBus.hpp:33
void callback()
Definition ICanBus.hpp:38
CAN送信ノード
Definition ICanBus.hpp:17
std::vector< uint8_t > data
Definition ICanBus.hpp:20
uint32_t transmitMs
Definition ICanBus.hpp:22
const uint32_t id
Definition ICanBus.hpp:18