less than 1 minute read

The Ostinato API tutorial configures a single stream to send 5 packets then sleeps for 7 seconds - assuming transmission would have finished by then - before fetching the tx/rx stats for verification.

This is fine for a tutorial, but for production scenarios you will want to wait till the transmission is finished instead of waiting (sleeping) for a specified amount of time.

Here’s how you can do that -

# wait for transmit to finish
while True:
    try:
        time.sleep(5)
        tx_stats = drone.getStats(tx_port)
        if tx_stats.port_stats[0].state.is_transmit_on == False:
            break
    except KeyboardInterrupt:
        log.info('transmit interrupted by user')
        break

Alternately, for recent Ostinato versions (2.0 onwards), you can use the waitForTransmitFinish() convenience API.

Interested in more Ostinato tips and tricks? Subscribe to receive email updates!

Leave a Comment