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 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
2
proto
Submodule proto updated: c0b46db0cf...f64cea8403
Reference in New Issue
Block a user