Added more message types; updated protobuf defs.
This commit is contained in:
23
main.go
23
main.go
@@ -47,7 +47,7 @@ type LedDaemon struct {
|
||||
var log = logging.MustGetLogger("LedD")
|
||||
var ledDaemon = &LedDaemon{}
|
||||
var pca9685 = device.PCA9685{}
|
||||
|
||||
var pwmMap = map[int32]*device.Pwm{}
|
||||
|
||||
func check(e error) {
|
||||
if e != nil {
|
||||
@@ -78,7 +78,16 @@ func (daemon *LedDaemon) receive() {
|
||||
switch msg := backendMsg.Msg.(type) {
|
||||
case *ledd.BackendWrapperMessage_MLedd:
|
||||
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.Init()
|
||||
|
||||
pwmMap = make(map[int32]*device.Pwm, 1)
|
||||
|
||||
conn, err := net.Dial("tcp4", fmt.Sprintf("%s:%d", config.Ledd.Host, config.Ledd.Port))
|
||||
check(err)
|
||||
|
||||
ledDaemon = &LedDaemon{
|
||||
socket:conn,
|
||||
data: make (chan []byte),
|
||||
name: "?",
|
||||
}
|
||||
|
||||
go ledDaemon.send()
|
||||
@@ -152,4 +164,11 @@ func main() {
|
||||
ledDaemon.data <- prepareProtobuf(data)
|
||||
|
||||
<-killSignals
|
||||
|
||||
keys := make([]int, 0, len(pwmMap))
|
||||
for c := range pwmMap {
|
||||
keys = append(keys, int(c))
|
||||
}
|
||||
|
||||
pca9685.SwichOff(keys)
|
||||
}
|
||||
|
Reference in New Issue
Block a user