forked from AndyTaylorTweet/Pi-Star_Binaries_sbin
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathpistar-mmdvmhshatreset
executable file
·126 lines (119 loc) · 4.11 KB
/
pistar-mmdvmhshatreset
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#!/bin/bash
#
##############################################################################
# #
# Pi-Star MMDVM HS_HAT Reset Tool #
# #
# Version 1.0, Code, Design and Development by Andy Taylor (MW0MWZ). #
# #
# Make it simple to reset an MMDVM bosard from the CLI on Pi-Star. #
# #
##############################################################################
#
if [ "$(id -u)" != "0" ]; then
echo -e "You need to be root to run this command...\n"
exit 1
fi
# Make the "boot" option only work on Pi 4 hardware
if [ "$1" = "boot" ]; then
if [ "$(/usr/local/bin/platformDetect.sh | grep "Pi 4 Model" | wc -l)" -eq 0 ]; then
exit 0
fi
fi
if [ -f '/etc/dstar-radio.mmdvmhost' ]; then
# Get the modem that the user has selected.
modemSelected=$(grep 'Hardware=' /etc/dstar-radio.mmdvmhost)
modemSelected=${modemSelected#*=}
# Get the user friendly version of the selected Modem.
modemSelectedHuman=$(grep value=\"${modemSelected}\" /var/www/dashboard/admin/configure.php | head -n 1)
modemSelectedHuman=${modemSelectedHuman#*\">}
modemSelectedHuman=${modemSelectedHuman::-9}
fi
# If there are no arguments (like "boot") then stop the service...
if [ -z "$1" ]; then
echo -e "Resetting Modem: ${modemSelectedHuman}"
systemctl stop mmdvmhost
fi
case ${modemSelected} in
mmdvmhshat)
# Reset process for MMDVM HS_HAT Board (20,-21,21:-20,21)
echo 20 > /sys/class/gpio/export
echo 21 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio20/direction
echo out > /sys/class/gpio/gpio21/direction
sleep 0.5
echo 0 > /sys/class/gpio/gpio20/value
echo 0 > /sys/class/gpio/gpio21/value
echo 1 > /sys/class/gpio/gpio21/value
sleep 1
echo 0 > /sys/class/gpio/gpio20/value
echo 1 > /sys/class/gpio/gpio20/value
sleep 0.5
echo 20 > /sys/class/gpio/unexport
echo 21 > /sys/class/gpio/unexport
message="Modem reset complete"
;;
mmdvmhsdualhatgpio)
# Reset process for MMDVM HS_HAT Board (20,-21,21:-20,21)
echo 20 > /sys/class/gpio/export
echo 21 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio20/direction
echo out > /sys/class/gpio/gpio21/direction
sleep 0.5
echo 0 > /sys/class/gpio/gpio20/value
echo 0 > /sys/class/gpio/gpio21/value
echo 1 > /sys/class/gpio/gpio21/value
sleep 1
echo 0 > /sys/class/gpio/gpio20/value
echo 1 > /sys/class/gpio/gpio20/value
sleep 0.5
echo 20 > /sys/class/gpio/unexport
echo 21 > /sys/class/gpio/unexport
message="Modem reset complete"
;;
zumspotgpio)
# Reset process for ZumSpot Board (20,-21,21:-20,21)
echo 20 > /sys/class/gpio/export
echo 21 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio20/direction
echo out > /sys/class/gpio/gpio21/direction
sleep 0.5
echo 0 > /sys/class/gpio/gpio20/value
echo 0 > /sys/class/gpio/gpio21/value
echo 1 > /sys/class/gpio/gpio21/value
sleep 1
echo 0 > /sys/class/gpio/gpio20/value
echo 1 > /sys/class/gpio/gpio20/value
sleep 0.5
echo 20 > /sys/class/gpio/unexport
echo 21 > /sys/class/gpio/unexport
message="Modem reset complete"
;;
mmdvmvyehatdual)
# Reset process for VR2VYE Dual Board (20,-21,21:-20,21)
echo 20 > /sys/class/gpio/export
echo 21 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio20/direction
echo out > /sys/class/gpio/gpio21/direction
sleep 0.5
echo 0 > /sys/class/gpio/gpio20/value
echo 0 > /sys/class/gpio/gpio21/value
echo 1 > /sys/class/gpio/gpio21/value
sleep 1
echo 0 > /sys/class/gpio/gpio20/value
echo 1 > /sys/class/gpio/gpio20/value
sleep 0.5
echo 20 > /sys/class/gpio/unexport
echo 21 > /sys/class/gpio/unexport
message="Modem reset complete"
;;
*)
message="Compatible modem not configured."
;;
esac
# If there are no arguments (like "boot") then start the service...
if [ -z "$1" ]; then
systemctl start mmdvmhost
echo -e ${message}
fi
exit 0