refactor lighthardware struct
- add led struct for individual colour LEDs
This commit is contained in:
84
main.go
84
main.go
@ -11,32 +11,32 @@ type pwm interface {
|
|||||||
Channel(machine.Pin) (uint8, error)
|
Channel(machine.Pin) (uint8, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type led struct {
|
||||||
|
pin machine.Pin
|
||||||
|
pwm pwm
|
||||||
|
channel uint8
|
||||||
|
}
|
||||||
|
|
||||||
type lighthardware struct {
|
type lighthardware struct {
|
||||||
rPin machine.Pin
|
red led
|
||||||
gPin machine.Pin
|
green led
|
||||||
bPin machine.Pin
|
blue led
|
||||||
rPwm pwm
|
|
||||||
gPwm pwm
|
|
||||||
bPwm pwm
|
|
||||||
rCh uint8
|
|
||||||
gCh uint8
|
|
||||||
bCh uint8
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (lhw *lighthardware) InitPWM() error {
|
func (lhw *lighthardware) InitPWM() error {
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
lhw.rCh, err = lhw.rPwm.Channel(lhw.rPin)
|
lhw.red.channel, err = lhw.red.pwm.Channel(lhw.red.pin)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
lhw.gCh, err = lhw.gPwm.Channel(lhw.gPin)
|
lhw.green.channel, err = lhw.green.pwm.Channel(lhw.green.pin)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
lhw.bCh, err = lhw.bPwm.Channel(lhw.bPin)
|
lhw.blue.channel, err = lhw.blue.pwm.Channel(lhw.blue.pin)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -120,12 +120,18 @@ func main() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
insideLight := lighthardware{
|
insideLight := lighthardware{
|
||||||
rPin: machine.GP11,
|
red: led{
|
||||||
gPin: machine.GP13,
|
pin: machine.GP11,
|
||||||
bPin: machine.GP12,
|
pwm: pwm5,
|
||||||
rPwm: pwm5,
|
},
|
||||||
gPwm: pwm6,
|
green: led{
|
||||||
bPwm: pwm6,
|
pin: machine.GP13,
|
||||||
|
pwm: pwm6,
|
||||||
|
},
|
||||||
|
blue: led{
|
||||||
|
pin: machine.GP12,
|
||||||
|
pwm: pwm6,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
err := insideLight.InitPWM()
|
err := insideLight.InitPWM()
|
||||||
|
|
||||||
@ -133,12 +139,18 @@ func main() {
|
|||||||
errs <- err
|
errs <- err
|
||||||
} else {
|
} else {
|
||||||
insideLight2 := lighthardware{
|
insideLight2 := lighthardware{
|
||||||
rPin: machine.GP8,
|
red: led{
|
||||||
gPin: machine.GP10,
|
pin: machine.GP8,
|
||||||
bPin: machine.GP9,
|
pwm: pwm4,
|
||||||
rPwm: pwm4,
|
},
|
||||||
gPwm: pwm5,
|
green: led{
|
||||||
bPwm: pwm4,
|
pin: machine.GP10,
|
||||||
|
pwm: pwm5,
|
||||||
|
},
|
||||||
|
blue: led{
|
||||||
|
pin: machine.GP9,
|
||||||
|
pwm: pwm4,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
err = insideLight2.InitPWM()
|
err = insideLight2.InitPWM()
|
||||||
|
|
||||||
@ -146,12 +158,18 @@ func main() {
|
|||||||
errs <- err
|
errs <- err
|
||||||
} else {
|
} else {
|
||||||
outsideLight := lighthardware{
|
outsideLight := lighthardware{
|
||||||
rPin: machine.GP5,
|
red: led{
|
||||||
gPin: machine.GP7,
|
pin: machine.GP5,
|
||||||
bPin: machine.GP6,
|
pwm: pwm2,
|
||||||
rPwm: pwm2,
|
},
|
||||||
gPwm: pwm3,
|
green: led{
|
||||||
bPwm: pwm3,
|
pin: machine.GP7,
|
||||||
|
pwm: pwm3,
|
||||||
|
},
|
||||||
|
blue: led{
|
||||||
|
pin: machine.GP6,
|
||||||
|
pwm: pwm3,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
err = outsideLight.InitPWM()
|
err = outsideLight.InitPWM()
|
||||||
|
|
||||||
@ -258,7 +276,7 @@ func normal(lights lightSet, inBrightChange <-chan uint32, outBrightChange <-cha
|
|||||||
}
|
}
|
||||||
|
|
||||||
func setNormal(light *lighthardware, brightness uint32) {
|
func setNormal(light *lighthardware, brightness uint32) {
|
||||||
ledset(light.rPwm, light.rCh, brightness)
|
ledset(light.red.pwm, light.red.channel, brightness)
|
||||||
ledset(light.gPwm, light.gCh, brightness)
|
ledset(light.green.pwm, light.green.channel, brightness)
|
||||||
ledset(light.bPwm, light.bCh, brightness)
|
ledset(light.blue.pwm, light.blue.channel, brightness)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user