SAB2 interface.
More...
#include <modm/communication/sab2/interface.hpp>
|
|
using | Index = std::conditional_t< (N >=255), uint16_t, uint8_t > |
| |
|
using | Size = Index |
| |
|
| static void | initialize () |
| | Initialize the interface. More...
|
| |
| static void | sendMessage (uint8_t address, Flags flags, uint8_t command, const void *payload, Size payloadLength) |
| | Send a message. More...
|
| |
|
template<typename T > |
| static void | sendMessage (uint8_t address, Flags flags, uint8_t command, const T &payload) |
| | Send a message.
|
| |
|
static void | sendMessage (uint8_t address, Flags flags, uint8_t command) |
| | Send a empty message.
|
| |
| static bool | isMessageAvailable () |
| | Check if a message was received. More...
|
| |
|
static uint8_t | getAddress () |
| |
|
static uint8_t | getCommand () |
| |
|
static bool | isResponse () |
| |
| static bool | isAcknowledge () |
| | Check if the message is an ACK or NACK. More...
|
| |
| static const uint8_t * | getPayload () |
| | Access the data of a received message. More...
|
| |
| static Size | getPayloadLength () |
| |
|
static void | dropMessage () |
| | End procession of the current message.
|
| |
| static void | update () |
| | Update internal status. More...
|
| |
template<typename Device, std::size_t N = maxPayloadLength>
class modm::sab2::Interface< Device, N >
SAB2 interface.
The framing is adapted from the HDLC asynchronous framing. See http://en.wikipedia.org/wiki/High-Level_Data_Link_Control#Asynchronous_framing
- Author
- Fabian Greif
template<typename Device , std::size_t N = maxPayloadLength>
| static const uint8_t* modm::sab2::Interface< Device, N >::getPayload |
( |
| ) |
|
|
inlinestatic |
template<typename Device , std::size_t N = maxPayloadLength>
| static Size modm::sab2::Interface< Device, N >::getPayloadLength |
( |
| ) |
|
|
inlinestatic |
- Returns
- Size of the received message. Zero if no message is available at the moment.
template<typename Device , std::size_t N = maxPayloadLength>
| static void modm::sab2::Interface< Device, N >::initialize |
( |
| ) |
|
|
static |
Initialize the interface.
The UART has the be configured before calling this method.
template<typename Device , std::size_t N = maxPayloadLength>
| static bool modm::sab2::Interface< Device, N >::isAcknowledge |
( |
| ) |
|
|
inlinestatic |
Check if the message is an ACK or NACK.
- Returns
true if the message is an ACK, false on NACK.
template<typename Device , std::size_t N = maxPayloadLength>
| static bool modm::sab2::Interface< Device, N >::isMessageAvailable |
( |
| ) |
|
|
inlinestatic |
Check if a message was received.
Reset the status with a call of dropMessage().
template<typename Device , std::size_t N = maxPayloadLength>
| static void modm::sab2::Interface< Device, N >::sendMessage |
( |
uint8_t |
address, |
|
|
Flags |
flags, |
|
|
uint8_t |
command, |
|
|
const void * |
payload, |
|
|
Size |
payloadLength |
|
) |
| |
|
static |
Send a message.
- Parameters
-
| address | receiver address |
| flags | see modm::sab::Flags |
| command | command byte |
| *payload | data field |
| payloadLength | size of the data field |
template<typename Device , std::size_t N = maxPayloadLength>
| static void modm::sab2::Interface< Device, N >::update |
( |
| ) |
|
|
static |
Update internal status.
Has to be called periodically. Encodes received messages.
The documentation for this class was generated from the following file:
- communication/sab2/interface.hpp