Introduced "starved" datagrams.
This commit is contained in:
parent
79e1c45588
commit
bae7fb4e90
|
|
@ -129,6 +129,7 @@ int ec_master_init(ec_master_t *master, /**< EtherCAT master */
|
|||
master->debug_level = 0;
|
||||
|
||||
master->stats.timeouts = 0;
|
||||
master->stats.starved = 0;
|
||||
master->stats.corrupted = 0;
|
||||
master->stats.skipped = 0;
|
||||
master->stats.unmatched = 0;
|
||||
|
|
@ -710,6 +711,11 @@ void ec_master_output_stats(ec_master_t *master /**< EtherCAT master */)
|
|||
master->stats.timeouts == 1 ? "" : "s");
|
||||
master->stats.timeouts = 0;
|
||||
}
|
||||
if (master->stats.starved) {
|
||||
EC_WARN("%i datagram%s STARVED!\n", master->stats.starved,
|
||||
master->stats.starved == 1 ? "" : "s");
|
||||
master->stats.starved = 0;
|
||||
}
|
||||
if (master->stats.corrupted) {
|
||||
EC_WARN("%i frame%s CORRUPTED!\n", master->stats.corrupted,
|
||||
master->stats.corrupted == 1 ? "" : "s");
|
||||
|
|
@ -1438,7 +1444,7 @@ void ecrt_master_receive(ec_master_t *master /**< EtherCAT master */)
|
|||
- datagram->cycles_queued > cycles_timeout) {
|
||||
list_del_init(&datagram->queue);
|
||||
datagram->state = EC_DATAGRAM_TIMED_OUT;
|
||||
master->stats.timeouts++;
|
||||
master->stats.starved++;
|
||||
ec_master_output_stats(master);
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -75,6 +75,7 @@ ec_master_mode_t;
|
|||
typedef struct
|
||||
{
|
||||
unsigned int timeouts; /**< datagram timeouts */
|
||||
unsigned int starved; /**< starved datagrams (not even sent) */
|
||||
unsigned int corrupted; /**< corrupted frames */
|
||||
unsigned int skipped; /**< skipped datagrams (the ones that were
|
||||
requeued when not yet received) */
|
||||
|
|
|
|||
Loading…
Reference in New Issue