aboutsummaryrefslogtreecommitdiffstats
path: root/services/nfc.py
diff options
context:
space:
mode:
Diffstat (limited to 'services/nfc.py')
-rw-r--r--services/nfc.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/services/nfc.py b/services/nfc.py
new file mode 100644
index 0000000..c966c4a
--- /dev/null
+++ b/services/nfc.py
@@ -0,0 +1,42 @@
+from aglbaseservice import AGLBaseService, AFBResponse
+import asyncio
+
+class NFCService(AGLBaseService):
+ service = 'agl-service-nfc'
+ parser = AGLBaseService.getparser()
+
+ def __init__(self, ip, port=None, api='nfc'):
+ super().__init__(ip=ip, port=port, api=api, service='agl-service-nfc')
+
+ async def subscribe(self, event='presence'):
+ return await super().subscribe(event=event)
+
+ async def unsubscribe(self, event='presence'):
+ return await super().unsubscribe(event=event)
+
+
+async def main(loop):
+ args = NFCService.parser.parse_args()
+ nfcs = await NFCService(ip=args.ipaddr, port=args.port)
+
+ if args.subscribe:
+ for event in args.subscribe:
+ id = await nfcs.subscribe(event)
+ print(f"Subscribing for event {event} with messageid {id}")
+ r = AFBResponse(await nfcs.response())
+ print(r)
+
+ if args.unsubscribe:
+ for event in args.unsubscribe:
+ id = await nfcs.unsubscribe(event)
+ print(f"Unsubscribing for event {event} with messageid {id}")
+ r = AFBResponse(await nfcs.response())
+ print(r)
+
+ if args.listener:
+ async for response in nfcs.listener():
+ print(response)
+
+if __name__ == '__main__':
+ loop = asyncio.get_event_loop()
+ loop.run_until_complete(main(loop))