diff --git a/reader.py b/reader.py index 08c72ff..e9b81ec 100644 --- a/reader.py +++ b/reader.py @@ -32,15 +32,24 @@ class Reader: self.timeout_timer.cancel() await client.publish(f"/cmnd/reader/{self.reader_id}", payload='{"Cmd":"haltPICC"}', qos=2, retain=False) - info = await self.session.machineSystem.info().a_wait() - ma = await info.info.getMachineURN(f"{self.machine_urn}").a_wait() + + info = self.session.machineSystem.info + ma = await info.getMachineURN(f"{self.machine_urn}").a_wait() + + if ma.which() == "just": + ma = ma.just + else: + logging.critical(f"Could not get machine {self.machine_urn}. Machine does not exist or insufficient permissions") + raise Exception(f"Could not get machine {self.machine_urn}. Machine does not exist or insufficient permissions") + if ma.state == "inUse": await ma.inuse.giveBack().a_wait() - await asyncio.sleep(2) await client.publish(f"/cmnd/reader/{self.reader_id}", payload='{"Cmd":"message","MssgID":0,"AddnTxt":""}', qos=2, retain=False) else: await ma.use.use().a_wait() + await client.publish(f"/cmnd/reader/{self.reader_id}", payload=response_for_reader, qos=2, + retain=False) await asyncio.sleep(2) await client.publish(f"/cmnd/reader/{self.reader_id}", payload='{"Cmd":"message","MssgID":3,"AddnTxt":""}', qos=2, diff --git a/schema b/schema index c9283eb..19f20f5 160000 --- a/schema +++ b/schema @@ -1 +1 @@ -Subproject commit c9283ebd696ed6dd428a7c3d24820889f7ab4bf3 +Subproject commit 19f20f5154f0eced6288ff56cac840025ee51da1