mirror of
https://gitlab.com/fabinfra/fabaccess/fabfire_adapter.git
synced 2025-03-12 23:01:44 +01:00
45 lines
1.8 KiB
Python
45 lines
1.8 KiB
Python
|
import asyncio
|
||
|
|
||
|
from asyncio_mqtt import Client
|
||
|
import json
|
||
|
import fabapi
|
||
|
|
||
|
|
||
|
|
||
|
async def main():
|
||
|
done = False
|
||
|
cap = None
|
||
|
auth = None
|
||
|
msg = None
|
||
|
|
||
|
async with Client("192.168.178.31") as client:
|
||
|
await client.publish("/cmnd/reader", payload='{"Cmd":"haltPICC"}', qos=2, retain=False)
|
||
|
await client.publish("/cmnd/reader", payload='{"Cmd": "message", "MssgID": 0, "AddnTxt":" Karte auflegen"}', qos=2, retain=False)
|
||
|
async with client.filtered_messages("/rfid_reader/111") as messages:
|
||
|
await client.subscribe("/rfid_reader/#")
|
||
|
async for message in messages:
|
||
|
if not auth:
|
||
|
auth, msg, cap = await fabapi.connect_with_fabfire_initial("192.168.178.31", 59661, message.payload)
|
||
|
elif not done:
|
||
|
msg, done = await fabapi.connect_with_fabfire_step(auth, message.payload)
|
||
|
if done:
|
||
|
await client.publish("/cmnd/reader", payload='{"Cmd":"haltPICC"}', qos=2, retain=False)
|
||
|
ms = await cap.machineSystem().a_wait()
|
||
|
info = await ms.machineSystem.info().a_wait()
|
||
|
ma = await info.info.getMachineURN("urn:fabaccess:resource:Testmachine").a_wait()
|
||
|
if ma.machine.state == "inUse":
|
||
|
await ma.machine.inuse.giveBack().a_wait()
|
||
|
else:
|
||
|
await ma.machine.use.use().a_wait()
|
||
|
done = False
|
||
|
cap = None
|
||
|
auth = None
|
||
|
msg = None
|
||
|
|
||
|
await client.publish("/cmnd/reader", payload=msg, qos=2, retain=False)
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
loop = asyncio.get_event_loop()
|
||
|
loop.run_until_complete(main())
|