From 203389517a8c07771aa69c89b28a8c62b04f6b49 Mon Sep 17 00:00:00 2001 From: Collin Guarino Date: Wed, 24 Feb 2016 19:53:56 -0500 Subject: Added error checking to Light.Dim and Light.SetBrightness --- light.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/light.go b/light.go index 8c79e8a..f698340 100644 --- a/light.go +++ b/light.go @@ -180,8 +180,12 @@ func (light *Light) Dim(percent int) error { if percent > 0 && percent <= 100 { originalBri := light.State.Bri decreaseBri := float32(originalBri)*float32((float32(percent)/100.0)) - newBri := (originalBri-int(decreaseBri)) - lightState := LightState{On: true, Bri: uint8(newBri)} + newBri := uint8(originalBri-int(decreaseBri)) + if newBri < 0 { + newBri = 0 + log.Println("Light.Dim state set under 0%, setting brightness to 0. ") + } + lightState := LightState{On: true, Bri: newBri} err := light.SetState(lightState) if err != nil { return err @@ -198,7 +202,10 @@ func (light *Light) SetBrightness(percent int) error { if percent > 0 && percent <= 100 { brightness := uint8(float32(percent)*2.54) // 100=254x --> 2.54 lightState := LightState{On: true, Bri: brightness} - light.SetState(lightState) + err := light.SetState(lightState) + if err != nil { + return err + } return nil } else { return errors.New("Light.SetBrightness percentage is not between 1 and 100. ") -- cgit v1.2.3