Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
uavcan::TransferReceiver Class Reference

#include <transfer_receiver.hpp>

Public Types

enum  ResultCode { ResultNotComplete, ResultComplete, ResultSingleFrame }
 

Public Member Functions

ResultCode addFrame (const RxFrame &frame, TransferBufferAccessor &tba)
 
MonotonicDuration getInterval () const
 
uint16_t getLastTransferCrc () const
 
MonotonicTime getLastTransferTimestampMonotonic () const
 
UtcTime getLastTransferTimestampUtc () const
 
bool isTimedOut (MonotonicTime current_ts) const
 
 TransferReceiver ()
 
uint8_t yieldErrorCount ()
 

Static Public Member Functions

static MonotonicDuration getDefaultTransferInterval ()
 
static MonotonicDuration getMaxTransferInterval ()
 
static MonotonicDuration getMinTransferInterval ()
 

Static Public Attributes

static const uint16_t DefaultTidTimeoutMSec = 1000
 
static const uint16_t DefaultTransferIntervalMSec = 1000
 
static const uint16_t MaxTransferIntervalMSec = 0xFFFF
 
static const uint16_t MinTransferIntervalMSec = 1
 

Private Types

enum  { IfaceIndexNotSet = MaxCanIfaces }
 
enum  { ErrorCntMask = 31 }
 
enum  { IfaceIndexMask = MaxCanIfaces }
 

Private Member Functions

MonotonicDuration getIfaceSwitchDelay () const
 
MonotonicDuration getTidTimeout () const
 
bool isInitialized () const
 
bool isMidTransfer () const
 
void prepareForNextTransfer ()
 
ResultCode receive (const RxFrame &frame, TransferBufferAccessor &tba)
 
void registerError () const
 
void updateTransferTimings ()
 
bool validate (const RxFrame &frame) const
 
bool writePayload (const RxFrame &frame, ITransferBuffer &buf)
 

Private Attributes

uint16_t buffer_write_pos_
 
uint8_t error_cnt_: 5
 
UtcTime first_frame_ts_
 
uint8_t iface_index_: 2
 
uint8_t next_toggle_: 1
 
MonotonicTime prev_transfer_ts_
 
uint16_t this_transfer_crc_
 
MonotonicTime this_transfer_ts_
 
TransferID tid_
 
uint16_t transfer_interval_msec_
 

Detailed Description

Definition at line 16 of file transfer_receiver.hpp.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
private
Enumerator
IfaceIndexNotSet 

Definition at line 34 of file transfer_receiver.hpp.

◆ anonymous enum

anonymous enum
private
Enumerator
ErrorCntMask 

Definition at line 36 of file transfer_receiver.hpp.

◆ anonymous enum

anonymous enum
private
Enumerator
IfaceIndexMask 

Definition at line 37 of file transfer_receiver.hpp.

◆ ResultCode

Enumerator
ResultNotComplete 
ResultComplete 
ResultSingleFrame 

Definition at line 19 of file transfer_receiver.hpp.

Constructor & Destructor Documentation

◆ TransferReceiver()

uavcan::TransferReceiver::TransferReceiver ( )
inline

Definition at line 71 of file transfer_receiver.hpp.

Member Function Documentation

◆ addFrame()

TransferReceiver::ResultCode uavcan::TransferReceiver::addFrame ( const RxFrame frame,
TransferBufferAccessor tba 
)

Definition at line 186 of file uc_transfer_receiver.cpp.

◆ getDefaultTransferInterval()

static MonotonicDuration uavcan::TransferReceiver::getDefaultTransferInterval ( )
inlinestatic

Definition at line 26 of file transfer_receiver.hpp.

◆ getIfaceSwitchDelay()

MonotonicDuration uavcan::TransferReceiver::getIfaceSwitchDelay ( ) const
private

Definition at line 19 of file uc_transfer_receiver.cpp.

◆ getInterval()

MonotonicDuration uavcan::TransferReceiver::getInterval ( ) const
inline

Definition at line 91 of file transfer_receiver.hpp.

◆ getLastTransferCrc()

uint16_t uavcan::TransferReceiver::getLastTransferCrc ( ) const
inline

Definition at line 89 of file transfer_receiver.hpp.

◆ getLastTransferTimestampMonotonic()

MonotonicTime uavcan::TransferReceiver::getLastTransferTimestampMonotonic ( ) const
inline

Definition at line 86 of file transfer_receiver.hpp.

◆ getLastTransferTimestampUtc()

UtcTime uavcan::TransferReceiver::getLastTransferTimestampUtc ( ) const
inline

Definition at line 87 of file transfer_receiver.hpp.

◆ getMaxTransferInterval()

static MonotonicDuration uavcan::TransferReceiver::getMaxTransferInterval ( )
inlinestatic

Definition at line 31 of file transfer_receiver.hpp.

◆ getMinTransferInterval()

static MonotonicDuration uavcan::TransferReceiver::getMinTransferInterval ( )
inlinestatic

Definition at line 30 of file transfer_receiver.hpp.

◆ getTidTimeout()

MonotonicDuration uavcan::TransferReceiver::getTidTimeout ( ) const
private

Definition at line 24 of file uc_transfer_receiver.cpp.

◆ isInitialized()

bool uavcan::TransferReceiver::isInitialized ( ) const
inlineprivate

Definition at line 54 of file transfer_receiver.hpp.

◆ isMidTransfer()

bool uavcan::TransferReceiver::isMidTransfer ( ) const
inlineprivate

Definition at line 56 of file transfer_receiver.hpp.

◆ isTimedOut()

bool uavcan::TransferReceiver::isTimedOut ( MonotonicTime  current_ts) const

Definition at line 181 of file uc_transfer_receiver.cpp.

◆ prepareForNextTransfer()

void uavcan::TransferReceiver::prepareForNextTransfer ( )
private

Definition at line 50 of file uc_transfer_receiver.cpp.

◆ receive()

TransferReceiver::ResultCode uavcan::TransferReceiver::receive ( const RxFrame frame,
TransferBufferAccessor tba 
)
private

Definition at line 131 of file uc_transfer_receiver.cpp.

◆ registerError()

void uavcan::TransferReceiver::registerError ( ) const
private

Definition at line 29 of file uc_transfer_receiver.cpp.

◆ updateTransferTimings()

void uavcan::TransferReceiver::updateTransferTimings ( )
private

Definition at line 34 of file uc_transfer_receiver.cpp.

◆ validate()

bool uavcan::TransferReceiver::validate ( const RxFrame frame) const
private

Definition at line 57 of file uc_transfer_receiver.cpp.

◆ writePayload()

bool uavcan::TransferReceiver::writePayload ( const RxFrame frame,
ITransferBuffer buf 
)
private

Definition at line 96 of file uc_transfer_receiver.cpp.

◆ yieldErrorCount()

uint8_t uavcan::TransferReceiver::yieldErrorCount ( )

Definition at line 241 of file uc_transfer_receiver.cpp.

Member Data Documentation

◆ buffer_write_pos_

uint16_t uavcan::TransferReceiver::buffer_write_pos_
private

Definition at line 45 of file transfer_receiver.hpp.

◆ DefaultTidTimeoutMSec

const uint16_t uavcan::TransferReceiver::DefaultTidTimeoutMSec = 1000
static

Definition at line 24 of file transfer_receiver.hpp.

◆ DefaultTransferIntervalMSec

const uint16_t uavcan::TransferReceiver::DefaultTransferIntervalMSec = 1000
static

Definition at line 23 of file transfer_receiver.hpp.

◆ error_cnt_

uint8_t uavcan::TransferReceiver::error_cnt_
mutableprivate

Definition at line 52 of file transfer_receiver.hpp.

◆ first_frame_ts_

UtcTime uavcan::TransferReceiver::first_frame_ts_
private

Definition at line 41 of file transfer_receiver.hpp.

◆ iface_index_

uint8_t uavcan::TransferReceiver::iface_index_
private

Definition at line 51 of file transfer_receiver.hpp.

◆ MaxTransferIntervalMSec

const uint16_t uavcan::TransferReceiver::MaxTransferIntervalMSec = 0xFFFF
static

Definition at line 22 of file transfer_receiver.hpp.

◆ MinTransferIntervalMSec

const uint16_t uavcan::TransferReceiver::MinTransferIntervalMSec = 1
static

Definition at line 21 of file transfer_receiver.hpp.

◆ next_toggle_

uint8_t uavcan::TransferReceiver::next_toggle_
private

Definition at line 50 of file transfer_receiver.hpp.

◆ prev_transfer_ts_

MonotonicTime uavcan::TransferReceiver::prev_transfer_ts_
private

Definition at line 39 of file transfer_receiver.hpp.

◆ this_transfer_crc_

uint16_t uavcan::TransferReceiver::this_transfer_crc_
private

Definition at line 43 of file transfer_receiver.hpp.

◆ this_transfer_ts_

MonotonicTime uavcan::TransferReceiver::this_transfer_ts_
private

Definition at line 40 of file transfer_receiver.hpp.

◆ tid_

TransferID uavcan::TransferReceiver::tid_
private

Definition at line 47 of file transfer_receiver.hpp.

◆ transfer_interval_msec_

uint16_t uavcan::TransferReceiver::transfer_interval_msec_
private

Definition at line 42 of file transfer_receiver.hpp.


The documentation for this class was generated from the following files:


uavcan_communicator
Author(s):
autogenerated on Fri Dec 13 2024 03:10:05