更新ESPNow的默认STA_IF模式

This commit is contained in:
dahanzimin
2024-10-26 12:36:47 +08:00
parent 99e168f363
commit ee411033e2

View File

@@ -32,7 +32,7 @@ class ESPNow(espnow.ESPNow):
super().del_peer(unhexlify(peer)) super().del_peer(unhexlify(peer))
def send(self, peer='ffffffffffff', msg=''): def send(self, peer='ffffffffffff', msg=''):
'''Send data after error reporting and effective processing''' '''Send data after error reporting and effective processing'''
try: try:
_peer = unhexlify(peer) _peer = unhexlify(peer)
return super().send(_peer, str(msg)) return super().send(_peer, str(msg))
@@ -40,30 +40,30 @@ class ESPNow(espnow.ESPNow):
if len(err.args) < 2: if len(err.args) < 2:
raise err raise err
if err.args[1] == 'ESP_ERR_ESPNOW_NOT_INIT': if err.args[1] == 'ESP_ERR_ESPNOW_NOT_INIT':
raise OSError("Radio(ESPNOW) is not activated, unable to transmit data") raise OSError("Radio(ESPNOW) is not activated, unable to transmit data")
elif err.args[1] == 'ESP_ERR_ESPNOW_IF': elif err.args[1] == 'ESP_ERR_ESPNOW_IF':
self._nic.active(True) self._nic.active(True)
elif err.args[1] == 'ESP_ERR_ESPNOW_NOT_FOUND': elif err.args[1] == 'ESP_ERR_ESPNOW_NOT_FOUND':
super().add_peer(_peer) super().add_peer(_peer)
return super().send(_peer, str(msg)) return super().send(_peer, str(msg))
elif err.args[1] == 'ESP_ERR_ESPNOW_NO_MEM': elif err.args[1] == 'ESP_ERR_ESPNOW_NO_MEM':
raise OSError("internal ESP-NOW buffers are full") raise OSError("internal ESP-NOW buffers are full")
elif err.args[1] == 'ESP_ERR_ESPNOW_ARG': elif err.args[1] == 'ESP_ERR_ESPNOW_ARG':
raise OSError("invalid argument") raise OSError("invalid argument")
else: else:
raise err raise err
def recv(self): def recv(self):
'''Receive data''' '''Receive data'''
if self.any(): if self.any():
host, msg = super().recv() host, msg = super().recv()
return hexlify(host).decode(),msg.decode() return hexlify(host).decode(),msg.decode()
else : else :
return None,None return None,None
def set_channel(self,channel=None,txpower=None): def set_channel(self, channel=None, txpower=None):
self._channel = self._channel if channel is None else channel self._channel = self._channel if channel is None else channel
self._nic.config(hidden=True, channel=self._channel, txpower=self._txpower if txpower is None else txpower) self._nic.config(channel=self._channel, txpower=self._txpower if txpower is None else txpower)
def _cb_handle0(self, event_code, data): def _cb_handle0(self, event_code, data):
'''Callback processing conversion''' '''Callback processing conversion'''
@@ -74,11 +74,11 @@ class ESPNow(espnow.ESPNow):
if cmd != -1: if cmd != -1:
cmd=func.__name__[cmd+2:] cmd=func.__name__[cmd+2:]
if cmd == str(data[1].decode()): if cmd == str(data[1].decode()):
func(hexlify(data[0]).decode(),data[1].decode()) func(hexlify(data[0]).decode(), data[1].decode())
else: else:
func(hexlify(data[0]).decode(),data[1].decode()) func(hexlify(data[0]).decode(), data[1].decode())
else: else:
self._on_handle(hexlify(data[0]).decode(),data[1].decode()) self._on_handle(hexlify(data[0]).decode(), data[1].decode())
def _cb_handle1(self, ee): def _cb_handle1(self, ee):
'''Callback processing conversion''' '''Callback processing conversion'''
@@ -109,7 +109,7 @@ class ESPNow(espnow.ESPNow):
'''Get the paired Mac and rssi''' '''Get the paired Mac and rssi'''
_info=[] _info=[]
for i in self.peers_table: for i in self.peers_table:
_info.append((hexlify(i).decode(),self.peers_table[i][0])) _info.append((hexlify(i).decode(), self.peers_table[i][0]))
return _info return _info
@property @property