pykirdy: Add reporting interval in report_mode
This commit is contained in:
parent
a13c6fa86c
commit
898358f4e6
|
@ -691,16 +691,20 @@ class Kirdy:
|
||||||
await asyncio.sleep(0.1)
|
await asyncio.sleep(0.1)
|
||||||
raise NoAckRecv
|
raise NoAckRecv
|
||||||
|
|
||||||
async def report_mode(self):
|
async def report_mode(self, report_interval = 0.0, buffer_size = 16384):
|
||||||
"""
|
"""
|
||||||
Start reporting device status in json object
|
Start reporting device status in json object. Optional report_interval can be added to discard unwanted samples.
|
||||||
|
Only the latest status report received within the buffer is returned.
|
||||||
|
- polling interval: float/int (unit: seconds)
|
||||||
|
- buffer_size: int
|
||||||
"""
|
"""
|
||||||
await self.device.set_active_report_mode(True)
|
await self.device.set_active_report_mode(True)
|
||||||
self._report_mode_on = True
|
self._report_mode_on = True
|
||||||
|
|
||||||
while self._report_mode_on:
|
while self._report_mode_on:
|
||||||
|
await asyncio.sleep(report_interval)
|
||||||
async with self._cmd_lock:
|
async with self._cmd_lock:
|
||||||
yield await self._read_response()
|
yield await self._read_response(buffer_size)
|
||||||
|
|
||||||
await self.device.set_active_report_mode(False)
|
await self.device.set_active_report_mode(False)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue