mirror of
https://gitlab.com/fabinfra/fabaccess/fabfire_adapter.git
synced 2025-03-12 14:51:50 +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())
|