Руслан Урядинский / libuavcan

Dependents:   UAVCAN UAVCAN_Subscriber

Embed: (wiki syntax)

« Back to documentation index

Data Structures

Data Structures

Here are the data structures with brief descriptions:
_dontescape
ADC_CLOCK_SETUP_TClock setup structure for ADC controller passed to the initialize function
AllIfacesDownExceptionThis exception is thrown when all available interfaces become down
AllocationRequestManagerThis class manages communication with allocation clients
APSR_TypeUnion type to access the Application Program Status Register (APSR)
Array< T, ArrayMode, MaxSize_ >Generic array implementation
ArrayImpl< T, ArrayMode, MaxSize >Common functionality for both static and dynamic arrays
ArrayImpl< IntegerSpec< 1, SignednessUnsigned, CastMode >, ArrayMode, MaxSize >Memory-efficient specialization for bit arrays (each element maps to a single bit rather than single byte)
BasicFileServerBasic file server implements only the following services: uavcan.protocol.file.GetInfo uavcan.protocol.file.Read Also see IFileServerBackend
BasicFileServerBackendThis interface implements a POSIX compliant IFileServerBackend interface
BitLenToByteLen< BitLen >Compile-time: Returns the number of bytes needed to contain the given number of bits
BitSet< NumBits >STL-like bitset
BitStreamThis class treats a chunk of memory as an array of bits
BlockingServiceClient< DataType >Wrapper over uavcan::ServiceClient<> for blocking calls
BooleanType< bool >Value types
BusEventAll bus events are reported as POLLIN
CanAcceptanceFilterConfiguratorThis class configures hardware acceptance filters (if this feature is present on the particular CAN driver) to preclude reception of irrelevant CAN frames on the hardware level
CanDriverThis class implements CAN driver interface for libuavcan
CanDriverCAN driver, incorporates all available CAN ifaces
CanFilterConfigCAN hardware filter config struct
CanFrameRaw CAN frame, as passed to/from the CAN driver
CanIfaceSingle CAN iface
CanInitHelper< RxQueueCapacity >Helper class
CanRxItemRX queue item
CanSelectMasksEvents to look for during ICanDriver::select() call
ClusterManagerThis class maintains the cluster state
CoerceOrFallbackImpl< From, To >CoerceOrFallback<To>(From) coerceOrFallback<To>(From, To)
CONTROL_TypeUnion type to access the Control Registers (CONTROL)
CriticalSectionLockerLocks UAVCAN driver interrupts
DataTypeDescriptorThis class contains complete description of a data type
DataTypeInfoProviderThis class implements the standard services for data type introspection
DataTypeSignatureCRCCRC-64-WE Description: http://reveng.sourceforge.net/crc-catalogue/17plus.htm#crc.cat-bits.64 Initial value: 0xFFFFFFFFFFFFFFFF Poly: 0x42F0E1EBA9EA3693 Reverse: no Output xor: 0xFFFFFFFFFFFFFFFF Check: 0x62EC59E3F1A4F00A
DefaultDataTypeRegistrator< Type >This class is used by autogenerated data types to register with the data type registry automatically before main() is called
DefaultLogSinkDefault log sink will dump everything into stderr
DispatcherThis class performs low-level CAN frame routing
DriverPackContains all drivers needed for uavcan::Node
DynamicNodeIDClientThis class implements client-side logic of dynamic node ID allocation procedure
EnableIf< B, T >Compile time conditions
EnableIfType< T, R >Lightweight type categorization
EnumMax< A, B >Selects larger value
EnumMin< A, B >Selects smaller value
EvalPseudoSandbox
ExceptionThis is the root exception class for all exceptions that can be thrown from the libuavcan Linux driver
FileEventTracerThis interface implements a POSIX compliant file based IEventTracer interface
FileServerFull file server implements all file services: uavcan.protocol.file.GetInfo uavcan.protocol.file.Read uavcan.protocol.file.Write uavcan.protocol.file.Delete uavcan.protocol.file.GetDirectoryEntryInfo Also see IFileServerBackend
FileStorageBackendThis interface implements a POSIX compliant IStorageBackend interface
FirmwareUpdateTriggerThis class subscribes to updates from NodeInfoRetriever in order to detect nodes that need firmware updates
FirmwareVersionCheckerFirmware version checking logic
GenericPublisher< DataSpec, DataStruct >Generic publisher, suitable for messages and services
GenericSubscriber< DataSpec, DataStruct, TransferListenerType >Please note that the reference passed to the RX callback points to a stack-allocated object, which means that it gets invalidated shortly after the callback returns
GlobalDataTypeRegistryThis singleton is shared among all existing node instances
GlobalTimeSyncMasterPlease read the specs to learn how the time synchronization works
GlobalTimeSyncSlavePlease read the specs to learn how the time synchronization works
HeapBasedPoolAllocator< BlockSize, RaiiSynchronizer >A special-purpose implementation of a pool allocator that keeps the pool in the heap using malloc()/free()
I2C_XFER_TMaster transfer data structure definitions
IAdHocNodeStatusUpdaterThis optional interface can be implemented by the user in order to update the node status as necessary, immediately before the next NodeStatus message is emitted by NodeStatusProvider
IAllocationRequestHandlerThe main allocator must implement this interface
ICanDriverGeneric CAN driver
ICanIfaceSingle non-blocking CAN interface
IEventTracerThis interface allows the application to trace events that happen in the server
IFileServerBackendThe file server backend should implement this interface
IFirmwareVersionCheckerApplication-specific firmware version checking logic
ILogSinkExternal log sink interface
IncomingTransferContainer for received transfer
INodeAbstract node class
INodeDiscoveryHandlerThe allocator must implement this interface
INodeInfoListenerClasses that need to receive GetNodeInfo responses should implement this interface
IntegerBitLen< Num >Compile-time: Returns the number of bits needed to represent an integer value
IntegerSpec< BitLen_, Signedness, CastMode >This template will be used for signed and unsigned integers more than 1 bit long
IntegerSpec< 1, SignednessUnsigned, CastMode >Boolean specialization
IParamManagerImplement this interface in the application to support the standard remote reconfiguration services
IPoolAllocatorThis interface is used by other library components that need dynamic memory
IPSR_TypeUnion type to access the Interrupt Program Status Register (IPSR)
IRaftLeaderMonitorAllocator has to implement this interface so the RaftCore can inform it when a new entry gets committed to the log
IRestartRequestHandlerImplement this interface in the application to support the standard node restart service
IRxFrameListenerImplement this interface to receive notifications about all incoming CAN frames, including loopback
IsDynamicallyAllocatable< T >This class that allows to check at compile time whether type T can be allocated using the memory pool
IsImplicitlyConvertibleFromTo< T1, T2 >Relations
IsPrimitiveType< T >Compile-time: Whether T is a primitive type on this platform
IsSameType< T, U >Checks if two identifiers refer to the same type
IStorageBackendThis interface is used by the server to read and write stable storage
ISystemClockSystem clock interface - monotonic and UTC
ITransferAcceptanceFilterThis class is used by transfer listener to decide if the frame should be accepted or ignored
ITransferBufferAPI for transfer buffer users
LazyConstructor< T >This class allows to postpone the object contruction
LibuavcanErrorExceptionThis type is thrown when a Libuavcan API method exits with error
LimitedPoolAllocatorLimits the maximum number of blocks that can be allocated in a given allocator
LinkedListNode< T >Classes that are supposed to be linked-listed should derive this
LinkedListRoot< T >Linked list root
LoaderFile
LoaderString
LogRaft log
RaftCore::LogEntryInfoThis class is used to perform log searches
LoggerNode logging convenience class
LoopbackFrameListenerBaseInherit this class to receive notifications about all TX CAN frames that were transmitted with the loopback flag
LPC_ADC_T10 or 12-bit ADC register block structure
LPC_FMC_TFLASH Memory Controller Unit register block structure
LPC_GPIO_TGPIO port register block structure
LPC_GPIOGROUPINT_TGPIO grouped interrupt register block structure
LPC_I2C_TI2C register block structure
LPC_IOCON_TIO Configuration Unit register block structure
LPC_PIN_INT_TLPC11xx Pin Interrupt and Pattern Match register block structure
LPC_PMU_TLPC11xx Power Management Unit register block structure
LPC_ROM_API_TLPC11XX High level ROM API structure
LPC_SSP_TSSP register block structure
LPC_SYSCTL_TLPC11XX System Control block structure
LPC_TIMER_T32-bit Standard timer register block structure
LPC_USART_TUSART register block structure
LPC_WWDT_TWindowed Watchdog register block structure
MachineIDReaderThis class can find and read machine ID from a text file, represented as 32-char (16-byte) long hexadecimal string, possibly with separators (like dashes or colons)
MakeString< MaxSize >Shortcut for string-like array type instantiation
Map< Key, Value >Slow but memory efficient KV container
MethodBinder< ObjectPtr, MemFunPtr >Use this to call member functions as callbacks in C++03 mode
MultiFrameIncomingTransferInternal
Multiset< T >Slow but memory efficient unordered multiset
Node< MemPoolSize >This is the top-level node API
NodeWrapper for uavcan::Node with some additional convenience functions
NodeBase< NodeType >Generic wrapper for node objects with some additional convenience functions
NodeDiscovererThis class listens to NodeStatus messages from other nodes and retrieves their unique ID if they are not known to the allocator
NodeIDSelector< Owner >Node ID allocation logic
NodeInfoRetrieverThis class automatically retrieves a response to GetNodeInfo once a node appears online or restarts
NodeStatusMonitorThis class implements the core functionality of a network monitor
NodeStatusProviderProvides the status and basic information about this node to other network participants
NoncopyablePrevents copying when inherited
NullAllocatorZero allocator - always fails
NumericTraits< bool >Bool
NumericTraits< char >Char
NumericTraits< double >Double
NumericTraits< float >Float
NumericTraits< int >Int
NumericTraits< long >Long
NumericTraits< long double >Long double
NumericTraits< long long >Long long
NumericTraits< short >Short
NVIC_TypeStructure type to access the Nested Vectored Interrupt Controller (NVIC)
OStreamCompact replacement for std::ostream for use on embedded systems
OutgoingTransferRegistryOutgoing transfer registry keeps track of Transfer ID values for all currently existing local transfer senders
PanicBroadcasterHelper for broadcasting the message uavcan.protocol.Panic
ParameterType< U >Parameter types
ParamServerConvenience class for supporting the standard configuration services
Parser
PersistentStateThis class is a convenient container for persistent state variables defined by Raft
PoolAllocator< PoolSize, BlockSize, RaiiSynchronizer >Classic implementation of a pool allocator (Meyers)
Publisher< DataType_ >Use this class to publish messages to the bus (broadcast, unicast, or both)
RaftCoreThis class implements log replication and voting
ReceivedDataStructure< DataType_ >This class extends the data structure with extra information obtained from the transport layer, such as Source Node ID, timestamps, Transfer ID, index of the interface this transfer was picked up from, etc
RemoveReference< T >Remove reference as in <type_traits>
Renderer
RestartRequestServerConvenience class for supporting the standard node restart service
RINGBUFF_TRing buffer structure
ScalarCodecThis class implements fast encoding/decoding of primitive type scalars into/from bit arrays
SCB_TypeStructure type to access the System Control Block (SCB)
SchedulerThis class distributes processing time between library components (IO handling, deadline callbacks, ...)
ServerThis server is an alternative to DistributedServer with the following differences:

  • It is not distributed, so using it means introducing a single point of failure into the system
ServerThis class implements the top-level allocation logic and server API
ServiceCallIDThis struct describes a pending service call
ServiceCallResult< DataType >Object of this type will be returned to the application as a result of service call
ServiceClientBaseDo not use directly
ServiceResponseDataStructure< ResponseDataType_ >This type can be used in place of the response type in a service server callback to get more advanced control of service request processing
SingleFrameIncomingTransferInternal
SocketCanDriverMultiplexing container for multiple SocketCAN sockets
SocketCanIfaceSingle SocketCAN socket interface
SquareMatrixAnalyzer< ElementIterator, NumElements >This class can be used to detect properties of square matrices
SquareMatrixTraits< NumElements_ >Properties of a square matrix; assuming row-major representation
StateReportThis structure represents immediate state of the server
StaticTransferBufferImplStandalone static buffer
StorageThis class transparently replicates its state to the storage backend, keeping the most recent state in memory
StorageMarshallerThis class extends the storage backend interface with serialization/deserialization functionality
StorageType< T, Enable >Compile-time: Helper for integer and float specialization classes
SubNode< MemPoolSize >This node object can be used in multiprocess UAVCAN nodes
SubNodeWrapper for uavcan::SubNode with some additional convenience functions
SystemClockAdapter for uavcan::ISystemClock
SystemClockLinux system clock driver
SystemClockAdapter for uavcan::ISystemClock
SysTick_TypeStructure type to access the System Timer (SysTick)
Template
TemplateBase
TemplateException
TemplateIncludeError
TemplateParseError
TemplateRenderError
TemplateSyntaxError
TestListenerThis subscriber accepts any types of transfers - this makes testing easier
TimerBaseInherit this class if you need a timer callback method in your class
TimerEventObjects of this type will be supplied into timer callbacks
TimerEventForwarder< Callback_ >Wrapper over TimerBase that forwards callbacks into arbitrary handlers, like functor objects, member functions or static functions
TransferUAVCAN transfer representation used in various tests
TransferBufferAccessorConvinience class
TransferBufferManagerBuffer manager implementation
TransferBufferManagerEntryResizable gather/scatter storage
TransferBufferManagerKeyInternal for TransferBufferManager
TransferCRCCRC-16-CCITT Initial value: 0xFFFF Poly: 0x1021 Reverse: no Output xor: 0
TransferListenerInternal, refer to the transport dispatcher class
TransferListenerWithFilterThis class should be derived by callers
TransferPerfCounterThe class is declared noncopyable for two reasons:

  • to prevent accidental pass-by-value into a mutator
  • to make the addresses of the counters fixed and exposable to the user of the library
TransportStatsProviderThis class provides statistics about the transport layer performance on the local node
UtcSyncParamsUTC clock synchronization parameters
UtcTimeImplicitly convertible to/from uavcan.Timestamp
xPSR_TypeUnion type to access the Special-Purpose Program Status Registers (xPSR)
YamlStreamer< Array< T, ArrayMode, MaxSize > >YAML streamer specification for any Array<>