2014-03-13 16:50:23 +01:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
GPIO=4
|
|
|
|
|
|
|
|
#
|
|
|
|
# This script serves as a confidence check that the socket interface to
|
|
|
|
# the pigpio library is ok.
|
|
|
|
#
|
|
|
|
# The script uses gpio 4 (P1-7). Make sure that nothing (or only a LED)
|
|
|
|
# is connected to gpio 4 before running the script.
|
|
|
|
#
|
|
|
|
# To run the script
|
|
|
|
# sudo pigpiod # if not already running on the Pi
|
|
|
|
# export PIGPIO_ADDR=pi_host # to specify the Pi if testing remotely
|
|
|
|
# ./x_pigs
|
|
|
|
#
|
|
|
|
|
|
|
|
s=$(pigs bc1 0)
|
|
|
|
if [[ $s = "" ]]; then echo "BC1 ok"; else echo "BC1 fail ($s)"; fi
|
|
|
|
|
|
|
|
s=$(pigs bc2 0)
|
|
|
|
if [[ $s = "" ]]; then echo "BC2 ok"; else echo "BC2 fail ($s)"; fi
|
|
|
|
|
|
|
|
s=$(pigs br1)
|
|
|
|
if [[ ${#s} = 8 ]]
|
|
|
|
then echo "BR1 ok"
|
|
|
|
else echo "BR1 fail ($s)"
|
|
|
|
fi
|
|
|
|
|
|
|
|
s=$(pigs br2)
|
|
|
|
if [[ ${#s} = 8 ]]
|
|
|
|
then echo "BR2 ok"
|
|
|
|
else echo "BR2 fail ($s)"
|
|
|
|
fi
|
|
|
|
|
|
|
|
s=$(pigs bs1 0)
|
|
|
|
if [[ $s = "" ]]; then echo "BS1 ok"; else echo "BS1 fail ($s)"; fi
|
|
|
|
|
|
|
|
s=$(pigs bs2 0)
|
|
|
|
if [[ $s = "" ]]; then echo "BS2 ok"; else echo "BS2 fail ($s)"; fi
|
|
|
|
|
|
|
|
s=$(pigs h)
|
2014-04-19 13:19:29 +02:00
|
|
|
if [[ ${#s} = 3315 ]]; then echo "HELP ok"; else echo "HELP fail (${#s})"; fi
|
2014-03-13 16:50:23 +01:00
|
|
|
|
|
|
|
s=$(pigs hwver)
|
|
|
|
if [[ $s -ne 0 ]]; then echo "HWVER ok"; else echo "HWVER fail ($s)"; fi
|
|
|
|
|
2014-04-19 13:19:29 +02:00
|
|
|
s=$(pigs mics 1000)
|
|
|
|
if [[ $s = "" ]]; then echo "MICS ok"; else echo "MICS fail ($s)"; fi
|
2014-03-13 16:50:23 +01:00
|
|
|
|
2014-04-19 13:19:29 +02:00
|
|
|
s=$(pigs mils 10)
|
|
|
|
if [[ $s = "" ]]; then echo "MILS ok"; else echo "MILS fail ($s)"; fi
|
2014-03-13 16:50:23 +01:00
|
|
|
|
|
|
|
s=$(pigs modes $GPIO 0)
|
|
|
|
s=$(pigs modeg $GPIO)
|
|
|
|
if [[ $s = 4 ]]; then echo "MODEG ok"; else echo "MODEG fail ($s)"; fi
|
|
|
|
s=$(pigs m $GPIO r)
|
|
|
|
s=$(pigs mg $GPIO)
|
|
|
|
if [[ $s = 0 ]]; then echo "MODES ok"; else echo "MODES fail ($s)"; fi
|
|
|
|
|
|
|
|
h=$(pigs no)
|
|
|
|
if [[ $h -ge 0 && $h -le 31 ]]
|
|
|
|
then echo "NO($h) ok"
|
|
|
|
else echo "NO fail ($s)"
|
|
|
|
fi
|
|
|
|
|
|
|
|
s=$(pigs nb $h 0xabcd)
|
|
|
|
if [[ $s = "" ]]; then echo "NB($h) ok"; else echo "NB fail ($s)"; fi
|
|
|
|
|
|
|
|
s=$(pigs np $h)
|
|
|
|
if [[ $s = "" ]]; then echo "NP($h) ok"; else echo "NP fail ($s)"; fi
|
|
|
|
|
|
|
|
s=$(pigs nc $h)
|
|
|
|
if [[ $s = "" ]]; then echo "NC($h) ok"; else echo "NC fail ($s)"; fi
|
|
|
|
|
|
|
|
s=$(pigs pfs $GPIO 800)
|
|
|
|
if [[ $s = 800 ]]; then echo "PFG-a ok"; else echo "PFG-a fail ($s)"; fi
|
|
|
|
|
|
|
|
s=$(pigs pfg $GPIO)
|
|
|
|
if [[ $s = 800 ]]; then echo "PFG-b ok"; else echo "PFG-b fail ($s)"; fi
|
|
|
|
|
|
|
|
s=$(pigs pfs $GPIO 0)
|
|
|
|
if [[ $s = 10 ]]; then echo "PFS-a ok"; else echo "PFS-a fail ($s)"; fi
|
|
|
|
|
|
|
|
s=$(pigs pfs $GPIO 800)
|
|
|
|
if [[ $s = 800 ]]; then echo "PFS-b ok"; else echo "PFS-b fail ($s)"; fi
|
|
|
|
|
|
|
|
s=$(pigs pigpv)
|
2014-04-19 13:19:29 +02:00
|
|
|
if [[ $s = 14 ]]; then echo "PIGPV ok"; else echo "PIGPV fail ($s)"; fi
|
2014-03-13 16:50:23 +01:00
|
|
|
|
|
|
|
s=$(pigs prs $GPIO 255)
|
|
|
|
if [[ $s = 250 ]]; then echo "PRG-a ok"; else echo "PRG-a fail ($s)"; fi
|
|
|
|
s=$(pigs prg $GPIO)
|
|
|
|
if [[ $s = 255 ]]; then echo "PRG-b ok"; else echo "PRG-b fail ($s)"; fi
|
|
|
|
|
2014-04-19 13:19:29 +02:00
|
|
|
p=$(pigs proc ld p1 p0 ld p0 1234 tag 999 mils 1000 jmp 999)
|
2014-03-13 16:50:23 +01:00
|
|
|
if [[ $p -ge 0 && $p -le 31 ]]
|
|
|
|
then echo "PROC($p) ok"
|
|
|
|
else echo "PROC($p) fail ($s)"
|
|
|
|
fi
|
|
|
|
|
|
|
|
s=$(pigs procr $p 9876)
|
|
|
|
if [[ $s = 0 ]]; then echo "PROCR($p) ok"; else echo "PROCR($p) fail ($s)"; fi
|
|
|
|
|
|
|
|
s=$(pigs procp $p)
|
|
|
|
v=(${s// / })
|
|
|
|
if [[ ${v[0]} = 1 && ${v[1]} = 1234 && ${v[2]} = 9876 ]]
|
|
|
|
then echo "PROCP($p) ok"
|
|
|
|
else echo "PROCP($p) fail ($s)"
|
|
|
|
fi
|
|
|
|
|
|
|
|
s=$(pigs procs $p)
|
|
|
|
if [[ $s = 0 ]]; then echo "PROCS($p) ok"; else echo "PROCS($p) fail ($s)"; fi
|
|
|
|
|
|
|
|
s=$(pigs procd $p)
|
|
|
|
if [[ $s = 0 ]]; then echo "PROCD($p) ok"; else echo "PROCD($p) fail ($s)"; fi
|
|
|
|
|
|
|
|
s=$(pigs prrg $GPIO)
|
|
|
|
if [[ $s = 250 ]]; then echo "PRRG ok"; else echo "PRRG fail ($s)"; fi
|
|
|
|
|
|
|
|
s=$(pigs prs $GPIO 1000)
|
|
|
|
if [[ $s = 250 ]]; then echo "PRS-a ok"; else echo "PRS-a fail ($s)"; fi
|
|
|
|
s=$(pigs prg $GPIO)
|
|
|
|
if [[ $s = 1000 ]]; then echo "PRS-b ok"; else echo "PRS-b fail ($s)"; fi
|
|
|
|
s=$(pigs prs $GPIO 255)
|
|
|
|
if [[ $s = 250 ]]; then echo "PRS-c ok"; else echo "PRS-c fail ($s)"; fi
|
|
|
|
s=$(pigs prg $GPIO)
|
|
|
|
if [[ $s = 255 ]]; then echo "PRS-d ok"; else echo "PRS-d fail ($s)"; fi
|
|
|
|
|
|
|
|
s=$(pigs pud $GPIO u)
|
|
|
|
if [[ $s = "" ]]; then echo "PUD-a ok"; else echo "PUD-a fail ($s)"; fi
|
|
|
|
s=$(pigs r $GPIO)
|
|
|
|
if [[ $s = 1 ]]; then echo "PUD-b ok"; else echo "PUD-b fail ($s)"; fi
|
|
|
|
s=$(pigs pud $GPIO d)
|
|
|
|
if [[ $s = "" ]]; then echo "PUD-c ok"; else echo "PUD-c fail ($s)"; fi
|
|
|
|
s=$(pigs r $GPIO)
|
|
|
|
if [[ $s = 0 ]]; then echo "PUD-d ok"; else echo "PUD-d fail ($s)"; fi
|
|
|
|
s=$(pigs pud $GPIO o)
|
|
|
|
if [[ $s = "" ]]; then echo "PUD-e ok"; else echo "PUD-e fail ($s)"; fi
|
|
|
|
|
|
|
|
s=$(pigs p $GPIO 128)
|
|
|
|
if [[ $s = "" ]]; then echo "PWM-a ok"; else echo "PWM-a fail ($s)"; fi
|
|
|
|
s=$(pigs pwm $GPIO 64)
|
|
|
|
if [[ $s = "" ]]; then echo "PWM-b ok"; else echo "PWM-b fail ($s)"; fi
|
|
|
|
s=$(pigs pwm $GPIO 0)
|
|
|
|
if [[ $s = "" ]]; then echo "PWM-c ok"; else echo "PWM-c fail ($s)"; fi
|
|
|
|
s=$(pigs m $GPIO r)
|
|
|
|
if [[ $s = "" ]]; then echo "PWM-d ok"; else echo "PWM-d fail ($s)"; fi
|
|
|
|
|
|
|
|
s=$(pigs pud $GPIO u)
|
|
|
|
if [[ $s = "" ]]; then echo "READ-a ok"; else echo "READ-a fail ($s)"; fi
|
|
|
|
s=$(pigs r $GPIO)
|
|
|
|
if [[ $s = 1 ]]; then echo "READ-b ok"; else echo "READ-b fail ($s)"; fi
|
|
|
|
s=$(pigs pud $GPIO d)
|
|
|
|
if [[ $s = "" ]]; then echo "READ-c ok"; else echo "READ-c fail ($s)"; fi
|
|
|
|
s=$(pigs read $GPIO)
|
|
|
|
if [[ $s = 0 ]]; then echo "READ-d ok"; else echo "READ-d fail ($s)"; fi
|
|
|
|
s=$(pigs pud $GPIO o)
|
|
|
|
if [[ $s = "" ]]; then echo "READ-e ok"; else echo "READ-e fail ($s)"; fi
|
|
|
|
|
|
|
|
s=$(pigs s $GPIO 500)
|
|
|
|
if [[ $s = "" ]]; then echo "SERVO-a ok"; else echo "SERVO-a fail ($s)"; fi
|
|
|
|
s=$(pigs servo $GPIO 2500)
|
|
|
|
if [[ $s = "" ]]; then echo "SERVO-b ok"; else echo "SERVO-b fail ($s)"; fi
|
|
|
|
s=$(pigs servo $GPIO 0)
|
|
|
|
if [[ $s = "" ]]; then echo "SERVO-c ok"; else echo "SERVO-c fail ($s)"; fi
|
|
|
|
s=$(pigs w $GPIO 1)
|
|
|
|
if [[ $s = "" ]]; then echo "SERVO-d ok"; else echo "SERVO-d fail ($s)"; fi
|
|
|
|
|
|
|
|
s=$(pigs wvclr)
|
|
|
|
if [[ $s = 0 ]]; then echo "SLR-a ok"; else echo "SLR-a fail ($s)"; fi
|
|
|
|
s=$(pigs slro $GPIO 1200)
|
|
|
|
if [[ $s = 0 ]]; then echo "SLR-b ok"; else echo "SLR-b fail ($s)"; fi
|
|
|
|
s=$(pigs wvas $GPIO 1200 0 "my name is joan")
|
|
|
|
if [[ $s = 95 ]]; then echo "SLR-c ok"; else echo "SLR-c fail ($s)"; fi
|
|
|
|
s=$(pigs m $GPIO w)
|
|
|
|
if [[ $s = "" ]]; then echo "SLR-d ok"; else echo "SLR-d fail ($s)"; fi
|
|
|
|
s=$(pigs wvgo)
|
|
|
|
if [[ $s = 191 ]]; then echo "SLR-e ok"; else echo "SLR-e fail ($s)"; fi
|
|
|
|
sleep 0.1
|
|
|
|
s=$(pigs slr $GPIO 100)
|
|
|
|
if [[ $s = "my name is joan" ]]
|
|
|
|
then echo "SLR-f ok"
|
|
|
|
else echo "SLR-f fail with [$s]"
|
|
|
|
fi
|
|
|
|
s=$(pigs slrc $GPIO)
|
|
|
|
if [[ $s = 0 ]]; then echo "SLR-g ok"; else echo "SLR-g fail ($s)"; fi
|
|
|
|
|
2014-04-19 13:19:29 +02:00
|
|
|
t=$(pigs t tick)
|
|
|
|
v=(${t// / })
|
|
|
|
s=$((v[1]-v[0]))
|
|
|
|
if [[ $s -gt 0 && $s -lt 2000 ]]
|
2014-03-13 16:50:23 +01:00
|
|
|
then echo "TICK ok"
|
|
|
|
else echo "TICK fail($s)"
|
|
|
|
fi
|
|
|
|
|
|
|
|
pigs w $GPIO 1 # put in known state
|
|
|
|
s=$(pigs trig $GPIO 10 1)
|
|
|
|
if [[ $s = "" ]]; then echo "TRIG-a ok"; else echo "TRIG-a fail ($s)"; fi
|
|
|
|
s=$(pigs r $GPIO)
|
|
|
|
if [[ $s = 0 ]]; then echo "TRIG-b ok"; else echo "TRIG-b fail ($s)"; fi
|
|
|
|
s=$(pigs trig $GPIO 10 0)
|
|
|
|
if [[ $s = "" ]]; then echo "TRIG-c ok"; else echo "TRIG-c fail ($s)"; fi
|
|
|
|
s=$(pigs r $GPIO)
|
|
|
|
if [[ $s = 1 ]]; then echo "TRIG-d ok"; else echo "TRIG-d fail ($s)"; fi
|
|
|
|
|
|
|
|
s=$(pigs wdog $GPIO 1000)
|
|
|
|
if [[ $s = "" ]]; then echo "WDOG-a ok"; else echo "WDOG-a fail ($s)"; fi
|
|
|
|
s=$(pigs wdog $GPIO 0)
|
|
|
|
if [[ $s = "" ]]; then echo "WDOG-b ok"; else echo "WDOG-b fail ($s)"; fi
|
|
|
|
|
|
|
|
s=$(pigs w $GPIO 1)
|
|
|
|
if [[ $s = "" ]]; then echo "WRITE-a ok"; else echo "WRITE-a fail ($s)"; fi
|
|
|
|
s=$(pigs r $GPIO)
|
|
|
|
if [[ $s = 1 ]]; then echo "WRITE-b ok"; else echo "WRITE-b fail ($s)"; fi
|
|
|
|
s=$(pigs write $GPIO 0)
|
|
|
|
if [[ $s = "" ]]; then echo "WRITE-c ok"; else echo "WRITE-c fail ($s)"; fi
|
|
|
|
s=$(pigs r $GPIO)
|
|
|
|
if [[ $s = 0 ]]; then echo "WRITE-d ok"; else echo "WRITE-d fail ($s)"; fi
|
|
|
|
|
|
|
|
|
|
|
|
s=$(pigs wvclr )
|
|
|
|
if [[ $s = 0 ]]; then echo "WVCLR ok"; else echo "WVCLR fail ($s)"; fi
|
|
|
|
s=$(pigs wvas $GPIO 300 0 "this is then winter of my discontent made glorious")
|
|
|
|
if [[ $s = 309 ]]; then echo "WVAS ok"; else echo "WVAS fail ($s)"; fi
|
|
|
|
s=$(pigs wvag 16 0 5000000 0 16 5000000)
|
|
|
|
if [[ $s = 310 ]]; then echo "WVAG ok"; else echo "WVAG fail ($s)"; fi
|
|
|
|
s=$(pigs wvgo)
|
|
|
|
if [[ $s = 621 ]]; then echo "WVGO ok"; else echo "WVGO fail ($s)"; fi
|
|
|
|
s=$(pigs wvbsy)
|
|
|
|
if [[ $s = 1 ]]; then echo "WVBSY-a ok"; else echo "WVBSY-a fail ($s)"; fi
|
|
|
|
sleep 1
|
|
|
|
s=$(pigs wvbsy)
|
|
|
|
if [[ $s = 1 ]]; then echo "WVBSY-b ok"; else echo "WVBSY-b fail ($s)"; fi
|
|
|
|
s=$(pigs wvhlt)
|
|
|
|
if [[ $s = 0 ]]; then echo "WVHLT ok"; else echo "WVHLT fail ($s)"; fi
|
|
|
|
s=$(pigs wvbsy)
|
|
|
|
if [[ $s = 0 ]]; then echo "WVBSY-c ok"; else echo "WVBSY-c fail ($s)"; fi
|
|
|
|
s=$(pigs wvgor)
|
|
|
|
if [[ $s = 621 ]]; then echo "WVGOR ok"; else echo "WVGOR fail ($s)"; fi
|
|
|
|
s=$(pigs wvbsy)
|
|
|
|
if [[ $s = 1 ]]; then echo "WVBSY-d ok"; else echo "WVBSY-d fail ($s)"; fi
|
|
|
|
s=$(pigs wvhlt)
|
|
|
|
if [[ $s = 0 ]]; then echo "WVHLT ok"; else echo "WVHLT fail ($s)"; fi
|
|
|
|
s=$(pigs wvbsy)
|
|
|
|
if [[ $s = 0 ]]; then echo "WVBSY-e ok"; else echo "WVBSY-e fail ($s)"; fi
|
|
|
|
|
|
|
|
s=$(pigs wvsc 0)
|
|
|
|
if [[ $s = 620 ]]; then echo "WVSC-a ok"; else echo "WVSC-a fail ($s)"; fi
|
|
|
|
s=$(pigs wvsc 1)
|
|
|
|
if [[ $s -ge 620 ]]; then echo "WVSC-b ok"; else echo "WVSC-b fail ($s)"; fi
|
|
|
|
s=$(pigs wvsc 2)
|
|
|
|
if [[ $s = 25016 ]]; then echo "WVSC-c ok"; else echo "WVSC-c fail ($s)"; fi
|
|
|
|
|
|
|
|
s=$(pigs wvsm 0)
|
|
|
|
if [[ $s = 10000000 ]]; then echo "WVSM-a ok"; else echo "WVSM-a fail ($s)"; fi
|
|
|
|
s=$(pigs wvsm 1)
|
|
|
|
if [[ $s -ge 10000000 ]]; then echo "WVSM-b ok"; else echo "WVSM-b fail ($s)"; fi
|
|
|
|
s=$(pigs wvsm 2)
|
|
|
|
if [[ $s = 1800000000 ]]
|
|
|
|
then echo "WVSM-c ok"
|
|
|
|
else echo "WVSM-c fail ($s)"
|
|
|
|
fi
|
|
|
|
|
|
|
|
s=$(pigs wvsp 0)
|
|
|
|
if [[ $s = 310 ]]; then echo "WVSP-a ok"; else echo "WVSP-a fail ($s)"; fi
|
|
|
|
s=$(pigs wvsp 1)
|
|
|
|
if [[ $s -ge 310 ]]; then echo "WVSP-b ok"; else echo "WVSP-b fail ($s)"; fi
|
|
|
|
s=$(pigs wvsp 2)
|
|
|
|
if [[ $s = 12000 ]]; then echo "WVSP-c ok"; else echo "WVSP-c fail ($s)"; fi
|
|
|
|
|