#408 gpio -x unit test
This commit is contained in:
90
gpio/test/gpio_test1_piface1.sh
Executable file
90
gpio/test/gpio_test1_piface1.sh
Executable file
@@ -0,0 +1,90 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo -e "🔧 Starting relay unit test for MCP23S17@Piface unit test hw\n\n"
|
||||||
|
|
||||||
|
# set pin 200–207 as output
|
||||||
|
for i in {200..207}; do
|
||||||
|
gpio -x mcp23s17:200:0:0 mode $i out
|
||||||
|
done
|
||||||
|
|
||||||
|
# set pin 208–215 as input
|
||||||
|
for i in {208..215}; do
|
||||||
|
gpio -x mcp23s17:200:0:0 mode $i in
|
||||||
|
gpio -x mcp23s17:200:0:0 mode $i up
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
# Define relay output addresses and corresponding feedback input addresses
|
||||||
|
relay_addresses=(200 201 207 206)
|
||||||
|
feedback_addresses=(214 215 212 213)
|
||||||
|
|
||||||
|
for round in {1..3}; do
|
||||||
|
echo -e "🔄 Round $round / 3\n"
|
||||||
|
|
||||||
|
# Loop through each relay
|
||||||
|
for i in "${!relay_addresses[@]}"; do
|
||||||
|
out=${relay_addresses[$i]}
|
||||||
|
in=${feedback_addresses[$i]}
|
||||||
|
|
||||||
|
echo "➡️ Relay/IO write test $((i+1)): Address $out → Feedback at $in"
|
||||||
|
|
||||||
|
# Turn ON
|
||||||
|
gpio -x mcp23s17:200:0:0 write "$out" 1
|
||||||
|
sleep 0.5
|
||||||
|
feedback_on=$(gpio -x mcp23s17:200:0:0 read "$in")
|
||||||
|
|
||||||
|
if [ "$feedback_on" -eq 0 ]; then
|
||||||
|
echo "✅ ON Test passed: Feedback is LOW as expected."
|
||||||
|
else
|
||||||
|
echo "❌ ON Test failed: Feedback is HIGH."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Turn OFF
|
||||||
|
gpio -x mcp23s17:200:0:0 write "$out" 0
|
||||||
|
sleep 0.5
|
||||||
|
feedback_off=$(gpio -x mcp23s17:200:0:0 read "$in")
|
||||||
|
|
||||||
|
if [ "$feedback_off" -eq 1 ]; then
|
||||||
|
echo "✅ OFF Test passed: Feedback is HIGH as expected."
|
||||||
|
else
|
||||||
|
echo "❌ OFF Test failed: Feedback is LOW."
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "\n"
|
||||||
|
sleep 0.5
|
||||||
|
|
||||||
|
done
|
||||||
|
for addr in {208..211}; do
|
||||||
|
|
||||||
|
echo "🔃 Pullup resistor test address $addr: "
|
||||||
|
gpio -x mcp23s17:200:0:0 mode "$addr" up
|
||||||
|
sleep 0.5
|
||||||
|
feedback_on=$(gpio -x mcp23s17:200:0:0 read "$addr")
|
||||||
|
|
||||||
|
if [ "$feedback_on" -eq 1 ]; then
|
||||||
|
echo "✅ PULLUP Test passed: Feedback is HIGH as expected."
|
||||||
|
else
|
||||||
|
echo "❌ PULLUP Test failed: Feedback is LOW."
|
||||||
|
fi
|
||||||
|
sleep 0.5
|
||||||
|
|
||||||
|
gpio -x mcp23s17:200:0:0 mode "$addr" down
|
||||||
|
sleep 0.5
|
||||||
|
feedback_on=$(gpio -x mcp23s17:200:0:0 read "$addr")
|
||||||
|
|
||||||
|
if [ "$feedback_on" -eq 1 ]; then
|
||||||
|
echo "✅ PULLDOWN Test passed: Feedback is LOW as expected."
|
||||||
|
else
|
||||||
|
echo "❌ PULLDOW Test failed: Feedback is HIGH."
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "\n"
|
||||||
|
sleep 0.5
|
||||||
|
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
#echo "🧹 Cleanup complete. All relays turned OFF."
|
||||||
|
|
||||||
Reference in New Issue
Block a user