41 lines
2.2 KiB
Plaintext
41 lines
2.2 KiB
Plaintext
digraph di_can_msg_states {
|
|
fontname="Helvetica";
|
|
|
|
init [shape = point ];
|
|
gc [shape = house label = "Garbage collect" ];
|
|
gc_exec [shape = rectangle, label = <<b>Execute</b><br/>di_can_msg_gc()> ];
|
|
reassm [shape = rectangle, label = <<b>Reassemble</b><br/>di_can_reassemble()> ];
|
|
crc [shape = rectangle, label = <<b>CRC</b><br/>di_can_crc_check()> ];
|
|
free [shape = rectangle, label = <<b>Free</b><br/>di_can_msg_free(<br/>struct di_can_msg **msg)> ];
|
|
send [shape = rectangle, label = <<b>Send</b><br/>di_can_send(<br/>struct di_can_msg **msg)> ];
|
|
send_async [shape = rectangle, label = <<b>Async send</b><br/>di_can_send_async(<br/>struct di_can_msg **msg)> ];
|
|
send_async_next [shape = house, label = <<b>Execute async send</b><br/>di_can_send_async_next(void)> ];
|
|
reset [shape = rectangle, label = <<b>Reset</b><br/>_di_can_msg_reset(<br/>struct di_can_msg *msg)> ];
|
|
|
|
init -> reset;
|
|
UNUSED -> APPLICATION [ label = <<b>Allocate</b><br/>di_can_msg_alloc()> ];
|
|
UNUSED -> reassm;
|
|
reassm -> REASSEMBLE [ label = <<b>Get (internal)</b><br/>di_can_msg_search()<br/>di_can_msg_get()> ];
|
|
REASSEMBLE -> crc;
|
|
READY -> APPLICATION [ label = <<b>Get ready</b><br/>di_can_msg_get_ready(<br/>enum di_can_msgtype type)> ];
|
|
APPLICATION -> free;
|
|
APPLICATION -> send;
|
|
APPLICATION -> send_async;
|
|
REASSEMBLE -> gc [ label = <<b>Timeout</b><br/>msg->timeout >=<br/>di_time_get_uptime()> ];
|
|
READY -> gc [ label = <<b>Timeout</b><br/>msg->timeout >=<br/>di_time_get_uptime()> ];
|
|
DIRTY -> gc;
|
|
crc -> free;
|
|
crc -> READY [ label = <<b>Set ready (internal)</b><br/>di_can_msg_set_ready(<br/>struct di_can_msg **msg)> ];
|
|
send -> free;
|
|
send -> ERROR;
|
|
send_async -> SEND;
|
|
SEND -> send_async_next;
|
|
send_async_next -> free;
|
|
send_async_next -> ERROR;
|
|
ERROR -> APPLICATION;
|
|
free -> DIRTY;
|
|
gc -> reset;
|
|
gc -> gc_exec [ dir=back ];
|
|
reset -> UNUSED;
|
|
}
|