Keep the colleague's microbu-esp32c5 tree in this repository
obu-firmware builds against vanetza-idf from microbu-esp32c5/external, but that tree was gitignored, so a clone of this repository could not build the firmware it ships. It is now committed here as ordinary files in its own folder, microbu-esp32c5/: the colleague's commit cf4b99f plus the V2X2MAP bridge's signature verification (--trust) used on the bench. Nothing is fetched from or pushed to the colleague's repository; this repository and its remotes carry everything. The folder's own .gitignore keeps build output, downloaded components and private key material out, as it did there; the committed file set is identical to that repository's tracked files. The ESP32-C5 is still flashed from obu-firmware/, which only takes vanetza-idf from microbu-esp32c5/, so the two stay separate folders. FLASHING.md says how to take a newer version of the colleague's tree (copy it over the folder, rebuild, test, commit).
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
@0xcb50be3531badf53;
|
||||
|
||||
using Cxx = import "/capnp/c++.capnp";
|
||||
$Cxx.namespace("vanetza::rpc");
|
||||
|
||||
interface LinkLayer
|
||||
{
|
||||
struct Frame
|
||||
{
|
||||
sourceAddress @0 :Data;
|
||||
destinationAddress @1 :Data;
|
||||
payload @2 :Data;
|
||||
}
|
||||
|
||||
struct WlanParameters
|
||||
{
|
||||
# Parameters for WLAN devices in OCB mode (IEEE 802.11 p and bd)
|
||||
priority @0 :UInt8; # 802.1 user priority (0-7)
|
||||
power @1 :Int16; # dBm scaled by 8
|
||||
datarate @2 :UInt16; # Mbps scaled by 2 (500kbps steps)
|
||||
}
|
||||
|
||||
struct Cv2xParameters
|
||||
{
|
||||
# Parameters for C-V2X devices (LTE-V2X and 5G-V2X)
|
||||
priority @0 :UInt8; # PPPP (0-7)
|
||||
power @1 :Int16; # dBm scaled by 8
|
||||
}
|
||||
|
||||
struct TxParameters
|
||||
{
|
||||
union
|
||||
{
|
||||
unspecified @0 :Void;
|
||||
wlan @1 :WlanParameters;
|
||||
cv2x @2 :Cv2xParameters;
|
||||
}
|
||||
}
|
||||
|
||||
struct RxParameters
|
||||
{
|
||||
union
|
||||
{
|
||||
unspecified @0 :Void;
|
||||
wlan @1 :WlanParameters;
|
||||
cv2x @2 :Cv2xParameters;
|
||||
}
|
||||
|
||||
timestamp :union
|
||||
{
|
||||
none @3 :Void;
|
||||
hardware @4 :UInt64;
|
||||
# time stamp accurately generated by hardware
|
||||
software @5 :UInt64;
|
||||
# time stamp added by software (slightly inaccurate)
|
||||
}
|
||||
}
|
||||
|
||||
interface DataListener
|
||||
{
|
||||
onDataIndication @0 (frame: Frame, rxParams :RxParameters);
|
||||
}
|
||||
|
||||
interface CbrListener
|
||||
{
|
||||
onCbrReport @0 (cbr :ChannelBusyRatio);
|
||||
}
|
||||
|
||||
struct ChannelBusyRatio
|
||||
{
|
||||
busy @0 :UInt16; # number of samples sensed as busy
|
||||
samples @1 :UInt16; # total number of samples in measurement interval
|
||||
}
|
||||
|
||||
enum ErrorCode
|
||||
{
|
||||
ok @0;
|
||||
invalidArgument @1;
|
||||
unsupported @2;
|
||||
internalError @3;
|
||||
}
|
||||
|
||||
identify @0 () -> (id :UInt64, version :UInt32, info :Text);
|
||||
# lookup identify of link layer device
|
||||
|
||||
transmitData @1 (frame :Frame, txParams :TxParameters) -> (error :ErrorCode, message :Text);
|
||||
# request transmission of a data frame
|
||||
|
||||
subscribeData @2 (listener :DataListener);
|
||||
# subscribe to received data frames
|
||||
|
||||
subscribeCbr @3 (listener :CbrListener);
|
||||
# subscribe to channel busy ratio reports
|
||||
|
||||
setSourceAddress @4 (address :Data) -> (error :ErrorCode);
|
||||
# set (own) source address of link layer (for ACKs)
|
||||
}
|
||||
Reference in New Issue
Block a user