Use uid to determine initial wait time after re-enum request.

This commit is contained in:
Martin Preuss
2025-07-12 20:07:33 +02:00
parent fa94190345
commit 83225c453d

View File

@@ -210,12 +210,19 @@ appNetworkHandlePingRequest_end:
appNetworkHandleReeunumRequest:
rcall NETMSG_Range_Read
push xl
push xh
rcall Utils_ReadUid ; r21:r20:r19:r18=uid (r16, X)
pop xh
pop xl
rcall NETMSG_Range_Read ; r20=range begin, r21=range end (none)
ldi r16, APP_NETWORK_STATE_INITIALWAIT
std Y+NET_IFACE_OFFS_STATUS, r16
ldd r16, Y+NET_IFACE_OFFS_ADDRESS ; use current address as timer
std Y+NET_IFACE_OFFS_STATETIMER, r16
ldi r16, APP_NETWORK_ADDRESS_RANGE_BEGIN
cpi r18, 20
brcc appNetworkHandleReeunumRequest_setWait
subi r18, -20 ; minimum 2s
appNetworkHandleReeunumRequest_setWait:
std Y+NET_IFACE_OFFS_STATETIMER, r18 ; use lowest byte of uid as wat time
std Y+NET_IFACE_OFFS_RANGE_BEGIN, r20
std Y+NET_IFACE_OFFS_RANGE_END, r21
ret