Skip to content

Commit 3e66f80

Browse files
committed
power button manages soft shutdown trigger
1 parent bd1fa7a commit 3e66f80

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed

Makefile

+6
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,9 @@ help: ## Show Help
4141

4242
test: ## Run tests
4343
go test -race -coverprofile=coverage.txt -covermode=atomic ./...
44+
45+
test-radiogaga: buildarm7 ## Test on radiogaga (not persistent)
46+
scp radiogagad root@radiogaga:/tmp
47+
ssh root@radiogaga rc-service radiogagad stop
48+
ssh root@radiogaga cp /tmp/radiogagad /usr/local/bin
49+
ssh root@radiogaga rc-service radiogagad start

powerbutton.go

+19-2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ func powerButton(msgch chan string, pinBootOk, pinShutdown, pinSoftShutdown gpio
2424
return
2525
}
2626

27+
if err := pinSoftShutdown.In(gpio.PullDown, gpio.RisingEdge); err != nil {
28+
msgch <- fmt.Sprintf("Failed to setup pinSoftShutdown: %v", err)
29+
return
30+
}
31+
2732
// poweroff for Alpine Linux, shutdown for Raspbian
2833
var CmdShutdown string
2934
if _, err := os.Stat("/sbin/shutdown"); os.IsNotExist(err) {
@@ -34,14 +39,26 @@ func powerButton(msgch chan string, pinBootOk, pinShutdown, pinSoftShutdown gpio
3439
msgch <- fmt.Sprintf("Shutdown command is '%s'", CmdShutdown)
3540

3641
go func() {
37-
msgch <- "Power button successfully setup"
3842
for pinShutdown.WaitForEdge(-1) {
39-
msgch <- "Power button fired"
43+
msgch <- "Shutdown requested by power button"
4044
cmdA := strings.Split(CmdShutdown, " ")
4145
cmd := exec.Command(cmdA[0], cmdA[1:]...)
4246
cmd.Stdout = nil
4347
cmd.Stderr = nil
4448
cmd.Run()
4549
}
4650
}()
51+
52+
go func() {
53+
for pinSoftShutdown.WaitForEdge(-1) {
54+
msgch <- "Soft shutdown requested by power button"
55+
cmdA := strings.Split(CmdShutdown, " ")
56+
cmd := exec.Command(cmdA[0], cmdA[1:]...)
57+
cmd.Stdout = nil
58+
cmd.Stderr = nil
59+
cmd.Run()
60+
}
61+
}()
62+
63+
msgch <- "Power button successfully setup"
4764
}

0 commit comments

Comments
 (0)