first re-commit.
This commit is contained in:
2
pigpio-master/EXAMPLES/Python/PIGPIO_BENCHMARK/README
Normal file
2
pigpio-master/EXAMPLES/Python/PIGPIO_BENCHMARK/README
Normal file
@@ -0,0 +1,2 @@
|
||||
Script to benchmark the pigpio Python module's performance.
|
||||
|
91
pigpio-master/EXAMPLES/Python/PIGPIO_BENCHMARK/bench_1.py
Normal file
91
pigpio-master/EXAMPLES/Python/PIGPIO_BENCHMARK/bench_1.py
Normal file
@@ -0,0 +1,91 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
#
|
||||
# WARNING!
|
||||
#
|
||||
|
||||
##############################################################################
|
||||
# #
|
||||
# Unless you know what you are doing don't run this script with anything #
|
||||
# connected to the gpios. You will CAUSE damage. #
|
||||
# #
|
||||
##############################################################################
|
||||
|
||||
#
|
||||
# WARNING!
|
||||
#
|
||||
|
||||
import time
|
||||
|
||||
import pigpio
|
||||
|
||||
delay = 30
|
||||
|
||||
class gpioTest:
|
||||
|
||||
def __init__(self, pi, gpio, edge, freq, duty):
|
||||
self.pi = pi
|
||||
self.gpio = gpio
|
||||
self.edge = edge
|
||||
self.freq = freq
|
||||
self.duty = duty
|
||||
self.calls = 0
|
||||
|
||||
def cb(self, g, t, l):
|
||||
self.calls = self.calls + 1
|
||||
# print g,t,l
|
||||
|
||||
def num(self):
|
||||
return self.calls
|
||||
|
||||
def start(self):
|
||||
self.pi.set_PWM_frequency(self.gpio, self.freq)
|
||||
self.pi.set_PWM_range(self.gpio, 25)
|
||||
self.pi.set_PWM_dutycycle(self.gpio, self.duty)
|
||||
self.n = self.pi.callback(self.gpio, self.edge, self.cb)
|
||||
|
||||
def stop(self):
|
||||
self.pi.set_PWM_dutycycle(self.gpio, 0)
|
||||
self.n.cancel()
|
||||
|
||||
pi = pigpio.pi()
|
||||
|
||||
t1 = gpioTest(pi, 4, pigpio.EITHER_EDGE, 4000, 1)
|
||||
t2 = gpioTest(pi, 7, pigpio.RISING_EDGE, 8000, 2)
|
||||
t3 = gpioTest(pi, 8, pigpio.FALLING_EDGE, 8000, 3)
|
||||
t4 = gpioTest(pi, 9, pigpio.EITHER_EDGE, 4000, 4)
|
||||
t5 = gpioTest(pi,10, pigpio.RISING_EDGE, 8000, 5)
|
||||
t6 = gpioTest(pi,11, pigpio.FALLING_EDGE, 8000, 6)
|
||||
t7 = gpioTest(pi,14, pigpio.EITHER_EDGE, 4000, 7)
|
||||
t8 = gpioTest(pi,15, pigpio.RISING_EDGE, 8000, 8)
|
||||
t9 = gpioTest(pi,17, pigpio.FALLING_EDGE, 8000, 9)
|
||||
t10 = gpioTest(pi,18, pigpio.EITHER_EDGE, 4000, 10)
|
||||
t11 = gpioTest(pi,22, pigpio.RISING_EDGE, 8000, 11)
|
||||
t12 = gpioTest(pi,23, pigpio.FALLING_EDGE, 8000, 12)
|
||||
t13 = gpioTest(pi,24, pigpio.EITHER_EDGE, 4000, 13)
|
||||
t14 = gpioTest(pi,25, pigpio.RISING_EDGE, 8000, 14)
|
||||
|
||||
# R1: 0 1 4 7 8 9 10 11 14 15 17 18 21 22 23 24 25
|
||||
# R2: 2 3 4 7 8 9 10 11 14 15 17 18 22 23 24 25 27 28 29 30 31
|
||||
|
||||
tests = [t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14]
|
||||
|
||||
for i in tests: i.start()
|
||||
|
||||
time.sleep(delay)
|
||||
|
||||
for i in tests: i.stop()
|
||||
|
||||
pi.stop()
|
||||
|
||||
tot = 0
|
||||
msg = ""
|
||||
|
||||
for i in tests:
|
||||
tot += i.num()
|
||||
msg += str(i.num()) + " "
|
||||
|
||||
print(msg)
|
||||
|
||||
print("eps={} ({}/{})".format(tot/delay, tot, delay))
|
||||
|
Reference in New Issue
Block a user