[etherlab-dev] EtherCAT Master - Overall RX stats not initialized

Rob Stocks rjs at computerway.biz
Mon Aug 11 23:27:31 CEST 2014


In the function ec_master_clear_device_stats in master/master.c, the
fields tx_frame_rates and tx_byte_rates are initialized to zero but not
their rx counterparts. This causes the 'Common' section of the 'ethercat
master' command to report incorrect RX stats.

I fixed this by adding two lines to the for loop in this function as
follows:

master->device_stats.rx_frame_rates[i] = 0;
master->device_stats.rx_byte_rates[i] = 0;


So that the function now looks like this:

void ec_master_clear_device_stats(
        ec_master_t *master /**< EtherCAT master */
        )
{
    unsigned int i;

    // zero frame statistics
    master->device_stats.tx_count = 0;
    master->device_stats.last_tx_count = 0;
    master->device_stats.rx_count = 0;
    master->device_stats.last_rx_count = 0;
    master->device_stats.tx_bytes = 0;
    master->device_stats.last_tx_bytes = 0;
    master->device_stats.rx_bytes = 0;
    master->device_stats.last_rx_bytes = 0;
    master->device_stats.last_loss = 0;

    for (i = 0; i < EC_RATE_COUNT; i++) {
        master->device_stats.tx_frame_rates[i] = 0;
        master->device_stats.tx_byte_rates[i] = 0;
        master->device_stats.rx_frame_rates[i] = 0;
        master->device_stats.rx_byte_rates[i] = 0;
        master->device_stats.loss_rates[i] = 0;
    }
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.etherlab.org/pipermail/etherlab-dev/attachments/20140811/1d59cc03/attachment-0001.htm>


More information about the Etherlab-dev mailing list