]> code.octet-stream.net Git - broadcaster/blobdiff - radio/gpio.go
Add licence, etc.
[broadcaster] / radio / gpio.go
diff --git a/radio/gpio.go b/radio/gpio.go
deleted file mode 100644 (file)
index 69807ac..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-package main
-
-import (
-       gpio "github.com/warthog618/go-gpiocdev"
-       "github.com/warthog618/go-gpiocdev/device/rpi"
-       "log"
-       "strconv"
-)
-
-type PTT interface {
-       EngagePTT()
-       DisengagePTT()
-}
-
-type COS interface {
-       WaitForChannelClear()
-       COSValue() bool
-}
-
-var ptt PTT = &DefaultPTT{}
-var cos COS = &DefaultCOS{}
-
-type PiPTT struct {
-       pttLine *gpio.Line
-}
-
-type PiCOS struct {
-       cosLine   *gpio.Line
-       clearWait chan bool
-}
-
-func InitRaspberryPiPTT(pttNum int, chipName string) {
-       pttPin, err := rpi.Pin("GPIO" + strconv.Itoa(pttNum))
-       if err != nil {
-               log.Fatal("invalid PTT pin configured", ptt)
-       }
-       pttLine, err := gpio.RequestLine(chipName, pttPin, gpio.AsOutput(0))
-       if err != nil {
-               log.Fatal("unable to open requested pin for PTT GPIO:", ptt, ". Are you running as root?")
-       }
-       ptt = &PiPTT{
-               pttLine: pttLine,
-       }
-}
-
-func InitRaspberryPiCOS(cosNum int, chipName string) {
-       var piCOS PiCOS
-       piCOS.clearWait = make(chan bool)
-       cosPin, err := rpi.Pin("GPIO" + strconv.Itoa(cosNum))
-       if err != nil {
-               log.Fatal("invalid COS Pin configured", cos)
-       }
-       cosHandler := func(event gpio.LineEvent) {
-               if event.Type == gpio.LineEventFallingEdge {
-                       log.Println("COS: channel clear")
-                       close(piCOS.clearWait)
-                       piCOS.clearWait = make(chan bool)
-                       statusCollector.COS <- false
-               }
-               if event.Type == gpio.LineEventRisingEdge {
-                       log.Println("COS: channel in use")
-                       statusCollector.COS <- true
-               }
-       }
-       cosLine, err := gpio.RequestLine(chipName, cosPin, gpio.AsInput, gpio.WithBothEdges, gpio.WithEventHandler(cosHandler))
-       if err != nil {
-               log.Fatal("unable to open requested pin for COS GPIO:", cos, ". Are you running as root?")
-       }
-       piCOS.cosLine = cosLine
-       cos = &piCOS
-}
-
-func (g *PiCOS) COSValue() bool {
-       val, err := g.cosLine.Value()
-       if err != nil {
-               log.Fatal("Unable to read COS value")
-       }
-       return val != 0
-}
-
-func (g *PiCOS) WaitForChannelClear() {
-       ch := g.clearWait
-       val, err := g.cosLine.Value()
-       if err != nil || val == 0 {
-               return
-       }
-       // wait for close
-       <-ch
-}
-
-func (g *PiPTT) EngagePTT() {
-       log.Println("PTT: on")
-       g.pttLine.SetValue(1)
-       statusCollector.PTT <- true
-}
-
-func (g *PiPTT) DisengagePTT() {
-       log.Println("PTT: off")
-       g.pttLine.SetValue(0)
-       statusCollector.PTT <- false
-}
-
-type DefaultPTT struct {
-}
-
-func (g *DefaultPTT) EngagePTT() {
-       statusCollector.PTT <- true
-}
-
-func (g *DefaultPTT) DisengagePTT() {
-       statusCollector.PTT <- false
-}
-
-type DefaultCOS struct {
-}
-
-func (g *DefaultCOS) WaitForChannelClear() {
-       log.Println("Assuming channel is clear since COS GPIO is not configured")
-}
-
-func (g *DefaultCOS) COSValue() bool {
-       return false
-}