diff options
Diffstat (limited to 'services/nfc.py')
-rw-r--r-- | services/nfc.py | 42 |
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)) |