Skip to content

Commit c59a256

Browse files
committed
Rename events, return DeviceInfo after connection
1 parent be7bd40 commit c59a256

File tree

2 files changed

+18
-7
lines changed

2 files changed

+18
-7
lines changed

nextion/client.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def __init__(
7272
self._sleeping = True
7373
self._deferred_sets = {}
7474

75-
async def _on_startup(self) -> None:
75+
async def _on_ready(self) -> None:
7676
await self.command("bkcmd=3") # Let's ensure we receive expected responses
7777

7878
async def _on_wakeup(self) -> None:
@@ -100,7 +100,7 @@ def _handle_event(self, message) -> None:
100100
EventType(typ),
101101
TouchCoordinateDataPayload._make(struct.unpack("HHB", message[1:])),
102102
)
103-
elif typ == EventType.TOUCH_IN_SLEEP: # Touch event in sleep mode
103+
elif typ == EventType.TOUCH_COORDINATE_IN_SLEEP: # Touch event in sleep mode
104104
self._schedule_event_message_handler(
105105
EventType(typ),
106106
TouchCoordinateDataPayload._make(struct.unpack("HHB", message[1:])),
@@ -112,7 +112,7 @@ def _handle_event(self, message) -> None:
112112
asyncio.create_task(self._on_wakeup())
113113
self._schedule_event_message_handler(EventType(typ), None)
114114
elif typ == EventType.STARTUP: # System successful start up
115-
asyncio.create_task(self._on_startup())
115+
asyncio.create_task(self._on_ready())
116116
self._schedule_event_message_handler(EventType(typ), None)
117117
elif typ == EventType.SD_CARD_UPGRADE: # Start SD card upgrade
118118
self._schedule_event_message_handler(EventType(typ), None)
@@ -127,7 +127,7 @@ async def _call_event_handler(self, type_, data) -> None:
127127
if asyncio.iscoroutine(result):
128128
await result
129129

130-
async def connect(self) -> None:
130+
async def connect(self) -> DeviceInfo:
131131
"""Connect to the device"""
132132
try:
133133
await self._try_connect_on_different_baudrates()
@@ -150,6 +150,8 @@ async def connect(self) -> None:
150150
await self._update_sleep_status()
151151

152152
logger.info("Successfully connected to the device")
153+
154+
return self.device_info
153155
except ConnectionFailed:
154156
logger.exception("Connection failed")
155157
raise

nextion/protocol/nextion.py

+12-3
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,16 @@
99

1010

1111
class EventType(IntEnum):
12+
STARTUP = 0x00 # Nextion startup
1213
TOUCH = 0x65 # Touch event
1314
TOUCH_COORDINATE = 0x67 # Touch coordinate
14-
TOUCH_IN_SLEEP = 0x68 # Touch event in sleep mode
15+
TOUCH_COORDINATE_IN_SLEEP = 0x68 # Touch event in sleep mode
1516
AUTO_SLEEP = 0x86 # Device automatically enters into sleep mode
1617
AUTO_WAKE = 0x87 # Device automatically wake up
17-
STARTUP = 0x88 # System successful start up
18+
READY = 0x88 # System successful start up
1819
SD_CARD_UPGRADE = 0x89 # Start SD card upgrade
20+
TRANSPARENT_DATA_FINISHED = 0xFD # Transparent data finished
21+
TRANSPARENT_DATA_READY = 0xFE # Transparent data ready
1922

2023

2124
class ResponseType(IntEnum):
@@ -50,7 +53,13 @@ def __init__(self, event_message_handler: typing.Callable):
5053
self.event_message_handler = event_message_handler
5154

5255
def is_event(self, message):
53-
return len(message) > 0 and message[0] in EventType.__members__.values()
56+
if message == b"\x00\x00\x00":
57+
return True
58+
return (
59+
len(message) > 0
60+
and message[0] in EventType.__members__.values()
61+
and message[0] != 0x00
62+
)
5463

5564
def data_received(self, data):
5665
self.buffer += data

0 commit comments

Comments
 (0)