TimeMe - Time a command and compare with a target
We recommend using the new driver free based scripts for LedBorg.
The new driver free examples can be found here, the installation can be found here.
Ever wondered how you can time a command on your Raspberry Pi, or better yet how to make your LedBorg show you how long it took?
Well now you can with TimeMe.py, it calculates the time a command takes, compares it with your target and shows you the results visually:

to 22% |
to 44% |
to 67% |
to 89% |
to 110% target :) |
to 132% |
to 155% |
to 177% |
or more |
Here's the code, you can download the TimeMe script file as text here
Save the text file on your pi as TimeMe.py
Make the script executable using
chmod +x TimeMe.pyand run using
./TimeMe.py time_in_seconds commande.g.
./TimeMe.py 0.15 du ~/
#!/usr/bin/env python
# coding: latin-1
# Import library functions we need
import time
import sys
import os
# Function to set the LedBorg colour
def SetColour(colour):
LedBorg=open('/dev/ledborg','w')
LedBorg.write(colour)
LedBorg.close()
# Function to format a number of seconds into a human readable form
def FormatSeconds(seconds):
if seconds >= 60.0:
minutes = int(seconds / 60.0)
seconds -= minutes * 60.0
text = '%d:%06.3f' % (minutes, seconds)
elif seconds < 1.0:
text = '%03.0f ms' % (seconds * 1000.0)
else:
text = '%02.3f s' % (seconds)
return text
# Set up our chart, from 0% of target to 200% of target
colours = ['002', '012', '022', '021', '020', '120', '220', '210', '200']
colourBusy = '101'
# Get user input
if len(sys.argv) > 2:
try:
target = float(sys.argv[1])
printUsage = False
except ValueError:
# Not a valid number
print '"%s" is not a number!' % (sys.argv[1])
printUsage = True
else:
printUsage = True
if printUsage:
print 'Usage: %s target_in_seconds command' % (sys.argv[0])
else:
# Form the command from parts
command = ''
for part in sys.argv[2:]:
command += part + ' '
# Start the timer
SetColour(colourBusy)
before = time.time()
# Run the command
os.system(command)
# Stop the timer
after = time.time()
lapsed = after - before
# Calculate the time statistics
if target == 0:
ratio = 0
else:
ratio = lapsed / target
percentage = ratio * 100.0
# Work out which colour to show
index = (ratio / 2.0) * len(colours)
if index >= len(colours):
index = len(colours) - 1
else:
index = int(index)
# Display the statistics
SetColour(colours[index])
print ''
print 'Command: ' + command
print 'Target: ' + FormatSeconds(target)
print 'Actual: ' + FormatSeconds(lapsed)
print 'Percentage: %03.2f%%' % (percentage)

