async def fu_handler(queues, fu):
in_queue = asyncio.Queue()
queues.append(in_queue)
+ previous = ''
while True:
event = await in_queue.get()
if event['name'] == 'motorstop':
for out_queue in queues:
await out_queue.put({'name': 'motoraus'})
elif event['name'] == 'dauervor':
+ if previous != 'dauervor':
+ await asyncio.sleep(1)
for out_queue in queues:
await out_queue.put({'name': 'motoran'})
await fu.set_frequency(50)
await fu.start_inverter()
+ previous = 'dauervor'
elif event['name'] == 'tippenvor':
+ if previous != 'tippenvor':
+ await asyncio.sleep(1)
for out_queue in queues:
await out_queue.put({'name': 'motoran'})
await fu.set_frequency(30)
await asyncio.sleep(0.5)
for out_queue in queues:
await out_queue.put({'name': 'tippenfertig'})
+ previous = 'tippenvor'
elif event['name'] == 'tippenrück':
+ if previous != 'tippenrück':
+ await asyncio.sleep(1)
for out_queue in queues:
await out_queue.put({'name': 'motoran'})
await fu.set_frequency(-30)
await asyncio.sleep(0.5)
for out_queue in queues:
await out_queue.put({'name': 'tippenfertig'})
+ previous = 'tippenrück'
in_queue.task_done()