Added more message types; updated protobuf defs.

This commit is contained in:
2017-12-12 20:53:27 +01:00
parent 521cbdcb50
commit 1b1bcdf165
2 changed files with 22 additions and 3 deletions

23
main.go
View File

@@ -47,7 +47,7 @@ type LedDaemon struct {
var log = logging.MustGetLogger("LedD") var log = logging.MustGetLogger("LedD")
var ledDaemon = &LedDaemon{} var ledDaemon = &LedDaemon{}
var pca9685 = device.PCA9685{} var pca9685 = device.PCA9685{}
var pwmMap = map[int32]*device.Pwm{}
func check(e error) { func check(e error) {
if e != nil { if e != nil {
@@ -78,7 +78,16 @@ func (daemon *LedDaemon) receive() {
switch msg := backendMsg.Msg.(type) { switch msg := backendMsg.Msg.(type) {
case *ledd.BackendWrapperMessage_MLedd: case *ledd.BackendWrapperMessage_MLedd:
daemon.name = msg.MLedd.Name daemon.name = msg.MLedd.Name
log.Infof("Connection with LedD (%s) etablished and registered", msg.MLedd.Name) log.Infof("Connection with %s etablished; backend registered", msg.MLedd.Name)
case *ledd.BackendWrapperMessage_MSetChannel:
for c, v := range msg.MSetChannel.NewChannelValues {
if pwm, ok := pwmMap[c]; ok {
pwm.SetPercentage(float32(v)/RESOLUTION)
} else {
pwmMap[c] = pca9685.NewPwm(int(c))
pwmMap[c].SetPercentage(float32(v)/RESOLUTION)
}
}
} }
} }
} }
@@ -123,12 +132,15 @@ func main() {
pca9685 := device.NewPCA9685(i2cDevice, "PWM Controller", config.Pca9685.MinPulse, config.Pca9685.MaxPulse, log) pca9685 := device.NewPCA9685(i2cDevice, "PWM Controller", config.Pca9685.MinPulse, config.Pca9685.MaxPulse, log)
pca9685.Init() pca9685.Init()
pwmMap = make(map[int32]*device.Pwm, 1)
conn, err := net.Dial("tcp4", fmt.Sprintf("%s:%d", config.Ledd.Host, config.Ledd.Port)) conn, err := net.Dial("tcp4", fmt.Sprintf("%s:%d", config.Ledd.Host, config.Ledd.Port))
check(err) check(err)
ledDaemon = &LedDaemon{ ledDaemon = &LedDaemon{
socket:conn, socket:conn,
data: make (chan []byte), data: make (chan []byte),
name: "?",
} }
go ledDaemon.send() go ledDaemon.send()
@@ -152,4 +164,11 @@ func main() {
ledDaemon.data <- prepareProtobuf(data) ledDaemon.data <- prepareProtobuf(data)
<-killSignals <-killSignals
keys := make([]int, 0, len(pwmMap))
for c := range pwmMap {
keys = append(keys, int(c))
}
pca9685.SwichOff(keys)
} }

2
proto

Submodule proto updated: c0b46db0cf...f64cea8403