Update doc
This commit is contained in:
parent
0694fdacb8
commit
0a6ebedd84
2 changed files with 35 additions and 1 deletions
24
README.md
24
README.md
|
|
@ -0,0 +1,24 @@
|
||||||
|
= nrai_ADS-DV_CAN-API
|
||||||
|
This is the Newcastle Racing AI (nrai) implementation of the ADS-DV software
|
||||||
|
interface specification (including all other sensors accessed via CAN e.g. GPS).
|
||||||
|
it aims to be as minimal as possible, facilitating on the bare minimum to pack
|
||||||
|
and unpack CAN frames, only implementing checks where required for the packing
|
||||||
|
of frames (e.g. stat clamping). All data sanity checks are expected to be
|
||||||
|
implemented by the calling program.
|
||||||
|
|
||||||
|
== Usage
|
||||||
|
This API provides 2 structs for storing data to be written to, and received from
|
||||||
|
the VCU over CAN. They are `nrai_can_ai_read` and `nrai_can_ai_write` for data
|
||||||
|
received from the VCU and data to write to the VCU respectively.
|
||||||
|
This API provides functions for the AI to pack data into CAN frames, named in
|
||||||
|
the format
|
||||||
|
`int32_t nrai_can_mkframe_<frame_name>(struct nrai_can_ai_write *, struct can_frame *);`
|
||||||
|
and function for the AI to unpack CAN frames, named in the format
|
||||||
|
`int32_t nrai_can_unpack_<frame_name>(struct nrai_can_ai_read *, struct can_frame *);`.
|
||||||
|
This API also provides an enum for translating CAN message names into their ID,
|
||||||
|
all entry's are named in the format `NRAI_CAN_ID_<frame_name>`
|
||||||
|
|
||||||
|
== Notes
|
||||||
|
This API makes use of limited use of C23 extensions for the purpose of either
|
||||||
|
improving clarity or simplifying code. While all C23 extensions used are
|
||||||
|
supported by GCC and Clang, not all compilers support them.
|
||||||
|
|
@ -30,7 +30,9 @@
|
||||||
|
|
||||||
#include <linux/can.h>
|
#include <linux/can.h>
|
||||||
|
|
||||||
|
#ifndef NRAI_FT
|
||||||
#define NRAI_FT
|
#define NRAI_FT
|
||||||
|
#endif //NRAI)FT
|
||||||
|
|
||||||
enum{
|
enum{
|
||||||
NRAI_CAN_ID_NMT = 0,
|
NRAI_CAN_ID_NMT = 0,
|
||||||
|
|
@ -553,6 +555,14 @@ struct nrai_can_ai_read {
|
||||||
uint8_t Acc_StartFastCalib; // 24|1@1+ (1,0) [0|1]
|
uint8_t Acc_StartFastCalib; // 24|1@1+ (1,0) [0|1]
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The following funcitons ALL unpack the data from the CAN frame corresponding
|
||||||
|
* to their name into the nrai_can_ai_read struct.
|
||||||
|
* All functions return:
|
||||||
|
* -1 on error
|
||||||
|
* 0 on success
|
||||||
|
* On error the struct nrai_can_ai_read AND the can_frame are not modified.
|
||||||
|
*/
|
||||||
NRAI_FT int32_t nrai_can_unpack_VCU2AI_Status (struct nrai_can_ai_read *, struct can_frame *);
|
NRAI_FT int32_t nrai_can_unpack_VCU2AI_Status (struct nrai_can_ai_read *, struct can_frame *);
|
||||||
NRAI_FT int32_t nrai_can_unpack_VCU2AI_Steer (struct nrai_can_ai_read *, struct can_frame *);
|
NRAI_FT int32_t nrai_can_unpack_VCU2AI_Steer (struct nrai_can_ai_read *, struct can_frame *);
|
||||||
NRAI_FT int32_t nrai_can_unpack_VCU2AI_Speeds (struct nrai_can_ai_read *, struct can_frame *);
|
NRAI_FT int32_t nrai_can_unpack_VCU2AI_Speeds (struct nrai_can_ai_read *, struct can_frame *);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue