mirror of
https://github.com/PiBrewing/craftbeerpi4.git
synced 2024-11-10 01:17:42 +01:00
PWM Actor test
This commit is contained in:
parent
c43a0a25bf
commit
3bc70f8c7f
2 changed files with 29 additions and 19 deletions
|
@ -1 +1 @@
|
||||||
__version__ = "4.0.0.42"
|
__version__ = "4.0.0.43"
|
||||||
|
|
|
@ -52,7 +52,7 @@ class GPIOActor(CBPiActor):
|
||||||
GPIO.output(self.gpio, self.get_GPIO_state(0))
|
GPIO.output(self.gpio, self.get_GPIO_state(0))
|
||||||
self.state = False
|
self.state = False
|
||||||
|
|
||||||
async def on(self, power=0):
|
async def on(self, power = None):
|
||||||
logger.info("ACTOR %s ON - GPIO %s " % (self.id, self.gpio))
|
logger.info("ACTOR %s ON - GPIO %s " % (self.id, self.gpio))
|
||||||
GPIO.output(self.gpio, self.get_GPIO_state(1))
|
GPIO.output(self.gpio, self.get_GPIO_state(1))
|
||||||
self.state = True
|
self.state = True
|
||||||
|
@ -70,35 +70,46 @@ class GPIOActor(CBPiActor):
|
||||||
await asyncio.sleep(1)
|
await asyncio.sleep(1)
|
||||||
|
|
||||||
|
|
||||||
@parameters([Property.Select(label="GPIO", options=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]), Property.Number("Frequency", configurable=True)])
|
@parameters([Property.Select(label="GPIO", options=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]), Property.Number(label="Frequency", configurable=True)])
|
||||||
class GPIOPWMActor(CBPiActor):
|
class GPIOPWMActor(CBPiActor):
|
||||||
|
|
||||||
# Custom property which can be configured by the user
|
# Custom property which can be configured by the user
|
||||||
@action("test", parameters={})
|
@action("Set Power", parameters=[Property.Number(label="Power", configurable=True,description="Power Setting [0-100]")])
|
||||||
async def power(self, **kwargs):
|
async def setpower(self,Power = 100 ,**kwargs):
|
||||||
self.p.ChangeDutyCycle(1)
|
logging.info(Power)
|
||||||
|
self.power=int(Power)
|
||||||
|
if self.power < 0:
|
||||||
|
self.power = 0
|
||||||
|
if self.power > 100:
|
||||||
|
self.power = 100
|
||||||
|
if self.p and self.state == True:
|
||||||
|
self.p.ChangeDutyCycle(self.power)
|
||||||
|
|
||||||
async def start(self):
|
async def on_start(self):
|
||||||
await super().start()
|
self.gpio = self.props.get("GPIO", None)
|
||||||
self.gpio = self.props.get("GPIO")
|
self.frequency = self.props.get("Frequency", 0.5)
|
||||||
self.frequency = self.props.get("Frequency")
|
if self.gpio is not None:
|
||||||
GPIO.setup(self.gpio, GPIO.OUT)
|
GPIO.setup(self.gpio, GPIO.OUT)
|
||||||
GPIO.output(self.gpio, 0)
|
GPIO.output(self.gpio, 0)
|
||||||
self.state = False
|
self.state = False
|
||||||
|
self.power = 100
|
||||||
|
self.p = None
|
||||||
pass
|
pass
|
||||||
|
|
||||||
async def on(self, power=0):
|
async def on(self, power = None):
|
||||||
logger.info("PWM ACTOR %s ON - GPIO %s " % (self.id, self.gpio))
|
|
||||||
|
logger.info("PWM ACTOR %s ON - GPIO %s - Frequency %s - Power %s" % (self.id, self.gpio,self.frequency,self.power))
|
||||||
try:
|
try:
|
||||||
|
if self.p is None:
|
||||||
self.p = GPIO.PWM(int(self.gpio), float(self.frequency))
|
self.p = GPIO.PWM(int(self.gpio), float(self.frequency))
|
||||||
self.p.start(1)
|
self.p.start(self.power)
|
||||||
|
self.state = True
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
self.state = True
|
|
||||||
|
|
||||||
async def off(self):
|
async def off(self):
|
||||||
logger.info("PWM ACTOR %s OFF - GPIO %s " % (self.id, self.gpio))
|
logger.info("PWM ACTOR %s OFF - GPIO %s " % (self.id, self.gpio))
|
||||||
self.p.stop()
|
self.p.ChangeDutyCycle(0)
|
||||||
self.state = False
|
self.state = False
|
||||||
|
|
||||||
def get_state(self):
|
def get_state(self):
|
||||||
|
@ -106,7 +117,6 @@ class GPIOPWMActor(CBPiActor):
|
||||||
|
|
||||||
async def run(self):
|
async def run(self):
|
||||||
while self.running == True:
|
while self.running == True:
|
||||||
|
|
||||||
await asyncio.sleep(1)
|
await asyncio.sleep(1)
|
||||||
|
|
||||||
def setup(cbpi):
|
def setup(cbpi):
|
||||||
|
|
Loading…
Reference in a new issue