Revision 2934c7a4 doc/classdiagrams/overview.uml
| doc/classdiagrams/overview.uml | ||
|---|---|---|
| 28 | 28 |
/' Not a type but a set of configuration macros. '/ |
| 29 | 29 |
class urt_config <<(C,grey)>> {
|
| 30 | 30 |
'Selection to en-/disable debug checks. |
| 31 |
+ URT_CONFIG_DEBUG : bool
|
|
| 31 |
+ URT_CFG_DEBUG : bool
|
|
| 32 | 32 |
'Selector to specify the width of urt_delay_t type. |
| 33 |
+ URT_CONFIG_DELAY_WIDTH
|
|
| 34 |
'Selector to specify the widtg of the urt_topicid_t type.
|
|
| 35 |
+ URT_CONFIG_TOPICID_WIDTH
|
|
| 36 |
'Selector to specify the integer type of urt_nodesync_t.
|
|
| 37 |
+ URT_CONFIG_NODESYNC_TYPE
|
|
| 33 |
+ URT_CFG_DELAY_WIDTH
|
|
| 34 |
'Selector to specify the width of the urt_topicid_t type.
|
|
| 35 |
+ URT_CFG_TOPICID_WIDTH
|
|
| 36 |
'Selector to specify the width of the urt_nodestage_t type.
|
|
| 37 |
+ URT_CFG_NODESTAGE_WIDTH
|
|
| 38 | 38 |
} |
| 39 | 39 |
|
| 40 | 40 |
package "primitives" {
|
| ... | ... | |
| 68 | 68 |
} |
| 69 | 69 |
urt_topicid_t ..> urt_config |
| 70 | 70 |
|
| 71 |
/' Just a function for debugging. '/ |
|
| 72 |
class urt_debug <<(F,white)>> {
|
|
| 73 |
'Checks the condition in debug mode. |
|
| 74 |
+ urtDebugAssert(condition : bool) : void |
|
| 75 |
} |
|
| 76 |
|
|
| 77 | 71 |
/' Node synchronization type. '/ |
| 78 |
class urt_nodesync_t <<T,lightblue>> {
|
|
| 72 |
class urt_nodestage_t <<T,lightblue>> {
|
|
| 79 | 73 |
'configurable |
| 80 | 74 |
uin8_t |
| 81 | 75 |
.. or .. |
| 82 |
int8_t |
|
| 83 |
.. or .. |
|
| 84 | 76 |
uint16_t |
| 85 | 77 |
.. or .. |
| 86 |
int16_t |
|
| 87 |
.. or .. |
|
| 88 | 78 |
uint32_t |
| 89 | 79 |
.. or .. |
| 90 |
int32_t |
|
| 91 |
.. or .. |
|
| 92 | 80 |
uint64_t |
| 93 |
.. or .. |
|
| 94 |
int64_t |
|
| 95 | 81 |
} |
| 96 |
urt_nodesync_t ..> urt_config
|
|
| 82 |
urt_nodestage_t ..> urt_config
|
|
| 97 | 83 |
|
| 98 | 84 |
} /' package "primitives" '/ |
| 99 | 85 |
|
| ... | ... | |
| 177 | 163 |
package "thread" {
|
| 178 | 164 |
|
| 179 | 165 |
/' Thread priority type. '/ |
| 180 |
class urt_osThreadPrio_t <<(T,lightblue)>> |
|
| 166 |
class urt_osThreadPrio_t <<(T,lightblue)>> {
|
|
| 167 |
'Minimum priority for low priority threads. |
|
| 168 |
+ URT_THREAD_PRIO_LOW_MIN |
|
| 169 |
'Maximum priority for low priority threads. |
|
| 170 |
+ URT_THREAD_PRIO_LOW_MAX |
|
| 171 |
'Minimum priority for normal priority threads. |
|
| 172 |
+ URT_THREAD_PRIO_NORMAL_MIN |
|
| 173 |
'Maximum priority for normal priority threads. |
|
| 174 |
+ URT_THREAD_PRIO_NORMAL_MAX |
|
| 175 |
'Minimum priority for high priority threads. |
|
| 176 |
+ URT_THREAD_PRIO_HIGH_MIN |
|
| 177 |
'Maximum priority for high priority threads. |
|
| 178 |
+ URT_THREAD_PRIO_HIGH_MAX |
|
| 179 |
'Minimum priority for real-time threads. |
|
| 180 |
+ URT_THREAD_PRIO_RT_MIN |
|
| 181 |
'Maximum priority for real-time threads. |
|
| 182 |
+ URT_THREAD_PRIO_RT_MAX |
|
| 183 |
} |
|
| 181 | 184 |
|
| 182 | 185 |
/' Thread main function type. '/ |
| 183 | 186 |
class urt_osThreadFunction_t <<(T,lightblue)>> {
|
| ... | ... | |
| 210 | 213 |
|
| 211 | 214 |
/' OS thread interface. '/ |
| 212 | 215 |
class urt_osThread_t <<(T,lightblue)>> {
|
| 213 |
'Minimum priority for low priority threads. |
|
| 214 |
+ URT_THREAD_PRIO_LOW_MIN : urt_osThreadPrio_t |
|
| 215 |
'Maximum priority for low priority threads. |
|
| 216 |
+ URT_THREAD_PRIO_LOW_MAX : urt_osThreadPrio_t |
|
| 217 |
'Minimum priority for normal priority threads. |
|
| 218 |
+ URT_THREAD_PRIO_NORMAL_MIN : urt_osThreadPrio_t |
|
| 219 |
'Maximum priority for normal priority threads. |
|
| 220 |
+ URT_THREAD_PRIO_NORMAL_MAX : urt_osThreadPrio_t |
|
| 221 |
'Minimum priority for high priority threads. |
|
| 222 |
+ URT_THREAD_PRIO_HIGH_MIN : urt_osThreadPrio_t |
|
| 223 |
'Maximum priority for high priority threads. |
|
| 224 |
+ URT_THREAD_PRIO_HIGH_MAX : urt_osThreadPrio_t |
|
| 225 |
'Minimum priority for real-time threads. |
|
| 226 |
+ URT_THREAD_PRIO_RT_MIN : urt_osThreadPrio_t |
|
| 227 |
'Maximum priority for real-time threads. |
|
| 228 |
+ URT_THREAD_PRIO_RT_MAX : urt_osThreadPrio_t |
|
| 229 |
.. |
|
| 230 | 216 |
'Maximum sleep interval in seconds (as float). |
| 231 |
+ URT_THREAD_MAX_SLEEP : float
|
|
| 217 |
+ URT_THREAD_SLEEP_MAX : float
|
|
| 232 | 218 |
'Maximum sleep interval in seconds. |
| 233 |
+ URT_THREAD_MAX_SSLEP : unsigned int
|
|
| 219 |
+ URT_THREAD_SSLEP_MAX : unsigned int
|
|
| 234 | 220 |
'Maximum sleep interval in milliseconds. |
| 235 |
+ URT_THREAD_MAX_MSLEEP : unsigned int
|
|
| 221 |
+ URT_THREAD_MSLEEP_MAX : unsigned int
|
|
| 236 | 222 |
'Maximum sleep interval in microseconds. |
| 237 |
+ URT_THREAD_MAX_USLEEP : unsigned int
|
|
| 223 |
+ URT_THREAD_USLEEP_MAX : unisgned int
|
|
| 238 | 224 |
__ |
| 239 | 225 |
'Macro to setup working area as static variable (handles alignment if required). |
| 240 |
+ URT_THREAD_WORKING_AREA (varname, stacksize)
|
|
| 226 |
+ URT_THREAD_MEMORY (varname, stacksize)
|
|
| 241 | 227 |
.. |
| 242 | 228 |
'Initializes an urt_osThread_t object. |
| 243 |
+ urtThreadInit (wa : void*, wasize : size_t, func : urt_osThreadFunction_t*, arg : void*) : urt_osThread_t*
|
|
| 229 |
+ urtThreadInit (memory : void*, size : size_t, func : urt_osThreadFunction_t*) : urt_osThread_t*
|
|
| 244 | 230 |
'Starts a thread. |
| 245 | 231 |
+ urtThreadStart (thread : urt_osThread_t*, prio : urt_osThreadPrio_t, arg : void*) : void |
| 246 | 232 |
'The calling threads yields. |
| 247 | 233 |
+ urtThreadYield (void) : void |
| 248 |
'Retrieves the priority of a thread.
|
|
| 249 |
+ urtThreadGetPriority (thread : urt_osThread_t*) : urt_osThreadPrio_t
|
|
| 250 |
'Sets the priority of a thread.
|
|
| 251 |
+ urtThreadSetPriority (thread : urt_osThread_t*, prio : urt_osThreadPrio_t) : void
|
|
| 252 |
'Retrieves the first thread in the list of children.
|
|
| 253 |
+ urtThreadSuspend (void) : void
|
|
| 234 |
'Retrieves the priority of the calling thread.
|
|
| 235 |
+ urtThreadGetPriority (void) : urt_osThreadPrio_t
|
|
| 236 |
'Sets the priority of the calling thread.
|
|
| 237 |
+ urtThreadSetPriority (prio : urt_osThreadPrio_t) : void |
|
| 238 |
'Suspends a thread so it will no longer be executed.
|
|
| 239 |
+ urtThreadSuspend (thread : urt_osThread_t*) : void
|
|
| 254 | 240 |
'Wakes a suspended thread. |
| 255 | 241 |
+ urtThreadResume (thread : urt_osThread_t*) : urt_status_t |
| 256 | 242 |
'Suspends the calling thread for the specified time. |
| ... | ... | |
| 268 | 254 |
'Terminates a specified thread. |
| 269 | 255 |
+ urtThreadTerminate (thread : urt_osThread_t*, sig : urt_osThreadTerminateSignal_t) : void |
| 270 | 256 |
'Waits until the specified thread terminates. |
| 271 |
+ urtThreadJoin (thread : urt_osThread_t*) : void
|
|
| 257 |
+ urtThreadJoin (thread : urt_osThread_t*) : int
|
|
| 272 | 258 |
'Retrieves the execution state of the specified thread. |
| 273 | 259 |
+ urtThreadGetState (thread : urt_osThread_t*) : urt_osThreadState_t |
| 260 |
'Retrieves the calling thread itself. |
|
| 261 |
+ urtThreadGetSelf (void) : urt_osThread_t* |
|
| 274 | 262 |
'Retrieves the first child of a thread (or ""NULL""). |
| 275 | 263 |
+ urtThreadGetChildren (thread : urt_osThread_t*) : urt_osThread_t* |
| 276 | 264 |
'Retrieves a sibling (next child in a list) of the thread or ""NULL"". |
| 277 |
+ urtThreadGetSibling (thread : urt_osThread_t*) : urt_psThread_t* |
|
| 265 |
+ urtThreadGetSibling (thread : urt_osThread_t*) : urt_osThread_t* |
|
| 266 |
'Retrieves the parent thread. |
|
| 267 |
+ urtThreadGetParent (thread : urt_osThread_t) : urt_osThread_t* |
|
| 278 | 268 |
} |
| 279 | 269 |
urt_osThread_t ..> urt_osThreadPrio_t |
| 280 | 270 |
urt_osThread_t ..> urt_osThreadFunction_t |
| 281 | 271 |
urt_osThread_t ..> urt_osTime_t |
| 282 | 272 |
urt_osThread_t ..> urt_osThreadTerminateSignal_t |
| 283 | 273 |
urt_osThread_t ..> urt_osThreadState_t |
| 274 |
urt_osThread_t ..> urt_status_t |
|
| 284 | 275 |
|
| 285 | 276 |
} /' package "thread" '/ |
| 286 | 277 |
|
| ... | ... | |
| 328 | 319 |
'Unregisters a listener from a source. |
| 329 | 320 |
+ urtEventUnregister (source _ urt_osEventSource_t*, listener : urt_osEventListener_t*) : urt_status_t |
| 330 | 321 |
'Blocks the thread until any event occurs or the timeout expires. |
| 331 |
+ urtEventWait (type : urt_osEventWaitType_t, timeout : urt_delay_t) : urt_osEventMask_t |
|
| 322 |
+ urtEventWait (mask : urt_osEventMask_t, type : urt_osEventWaitType_t, timeout : urt_delay_t) : urt_osEventMask_t
|
|
| 332 | 323 |
} |
| 333 | 324 |
urt_events ..> urt_osEventSource_t |
| 334 | 325 |
urt_events ..> urt_osEventListener_t |
| ... | ... | |
| 351 | 342 |
|
| 352 | 343 |
package "middleware" {
|
| 353 | 344 |
|
| 345 |
/' Just a function for debugging. '/ |
|
| 346 |
class urt_debug <<(F,white)>> {
|
|
| 347 |
'Checks the condition in debug mode. |
|
| 348 |
+ urtDebugAssert(condition : bool) : void |
|
| 349 |
} |
|
| 350 |
urt_debug ..> urt_config |
|
| 351 |
|
|
| 354 | 352 |
package "real-time class" {
|
| 355 | 353 |
|
| 356 | 354 |
/' The top level RT class structure. '/ |
| ... | ... | |
| 584 | 582 |
'Starts all node threads (nodes will block before the loop). |
| 585 | 583 |
+ urtCoreStartNodes (void) : urt_status_t |
| 586 | 584 |
'Nodes can use this function to synchronize globally. |
| 587 |
+ urtCoreSynchronizeNodes (node : urt_node_t*, stage : urt_nodesync_t) : urt_status_t
|
|
| 585 |
+ urtCoreSynchronizeNodes (node : urt_node_t*, stage : urt_nodestage_t) : urt_status_t
|
|
| 588 | 586 |
'Stops all nodes. |
| 589 | 587 |
+ urtCoreStopNodes (void) : urt_status_t |
| 590 | 588 |
'Retrieves a topic given an identifier. |
| ... | ... | |
| 595 | 593 |
urt_core_t "1" *-- "1" urt_osEventSource_t |
| 596 | 594 |
urt_core_t "1" *-- "1" urt_osMutex_t |
| 597 | 595 |
urt_core_t ..> urt_status_t |
| 598 |
urt_core_t --> urt_nodesync_t
|
|
| 596 |
urt_core_t --> urt_nodestage_t
|
|
| 599 | 597 |
urt_core_t ..> urt_topicid_t |
| 600 | 598 |
|
| 601 | 599 |
package "node" {
|
| ... | ... | |
| 632 | 630 |
'Optional parameters for the loop callback function. |
| 633 | 631 |
+ loopparams : void* |
| 634 | 632 |
'Execution stage of the node. |
| 635 |
+ stage : urt_nodesync_t
|
|
| 633 |
+ stage : urt_nodestage_t
|
|
| 636 | 634 |
'Event listener for middleware-wide control events. |
| 637 | 635 |
+ listener : urt_osEventListener_t |
| 638 | 636 |
__ |
| ... | ... | |
| 645 | 643 |
urt_node_t "1" o-- "1" urt_osThread_t |
| 646 | 644 |
urt_node_t "1" o-- "1" urt_nodeSetupCallback_t |
| 647 | 645 |
urt_node_t "1" o-- "1" urt_nodeLoopCallback_t |
| 648 |
urt_node_t "1" *-- "1" urt_nodesync_t
|
|
| 646 |
urt_node_t "1" *-- "1" urt_nodestage_t
|
|
| 649 | 647 |
urt_node_t "1" *-- "1" urt_osEventMask_t |
| 650 | 648 |
urt_node_t "1" *-- "1" urt_osEventWaitType_t |
| 651 | 649 |
urt_node_t "1" *-- "1" urt_osEventListener_t |
Also available in: Unified diff