From: p15692025051 <846603105@qq.com> Date: Wed, 27 Aug 2025 09:20:19 +0000 (+0800) Subject: 更新 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=048f7cd06c6e1e7a2a444dec22a4625968bd9328;p=mirrors%2FASR1603_G5.git 更新 --- diff --git a/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/request.py b/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/request.py index dcb90e79..f6c06172 100644 --- a/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/request.py +++ b/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/request.py @@ -459,7 +459,7 @@ def request(method, url, data=None, json=None, files=None, stream=None, decode=T if chunked_encoding: resp = Response(uio.BytesIO(parse_chunked_data(s)), sizeof=con_len) else: - resp = Response(s,sizeof=con_len, flag=con_flag) + resp = Response(s,sizeof=con_len, decode=decode ,flag=con_flag) resp.status_code = status resp.reason = reason resp.headers = uheaders diff --git a/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modHsensor.c b/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modHsensor.c index 763725ab..62b0ef42 100644 --- a/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modHsensor.c +++ b/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modHsensor.c @@ -39,7 +39,7 @@ #if 1 // - +extern signed char SL_SC7A20_PEDO_KCAL_WRIST_SLEEP_SWAY_L_ALGO(void); #if CONFIG_GH301x extern const mp_obj_type_t Hsensor_GH3018_type; extern void GH3018_thread_do(void); diff --git a/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/uwebsocket.py b/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/uwebsocket.py index e68c636f..258d5f1d 100644 --- a/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/uwebsocket.py +++ b/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/uwebsocket.py @@ -10,7 +10,7 @@ import usocket as socket from ucollections import namedtuple import websocket_mask LOGGER = log.getLogger(__name__) -import usys + # Opcodes OP_CONT = 0x0 OP_TEXT = 0x1 @@ -77,7 +77,6 @@ class Websocket(object): self.open = True self.debug = debug - def __enter__(self): return self @@ -211,7 +210,7 @@ class Websocket(object): return data elif opcode == OP_CLOSE: self._close() - return "websocket close" + return elif opcode == OP_PONG: # Ignore this frame, keep waiting for a data frame continue @@ -249,18 +248,17 @@ class Websocket(object): """Close the websocket.""" if not self.open: return - try: - buf = struct.pack('!H', code) + reason.encode('utf-8') - self.write_frame(OP_CLOSE, buf) - except Exception as e: - usys.print_exception(e) + buf = struct.pack('!H', code) + reason.encode('utf-8') + + self.write_frame(OP_CLOSE, buf) self._close() def _close(self): if self.debug: LOGGER.info("Connection closed") - self.sock.close() self.open = False + self.sock.close() + class WebsocketClient(Websocket): is_client = True @@ -289,46 +287,40 @@ class Client(object): uri.hostname, uri.port) sock = socket.socket() - try: - #sock.settimeout(6) - addr = socket.getaddrinfo(uri.hostname, uri.port, socket.AF_INET) - sock.connect(addr[0][4]) - - - if uri.protocol == 'wss': - import ussl - sock = ussl.wrap_socket(sock) - - def send_header(header, *args): - if debug: LOGGER.info(str(header), *args) - sock.write(header % args + '\r\n') - - # Sec-WebSocket-Key is 16 bytes of random base64 encoded - key = binascii.b2a_base64(bytes(random.getrandbits(8) for _ in range(16)))[:-1] - send_header(b'GET %s HTTP/1.1', uri.path or '/') - send_header(b'Host: %s:%s', uri.hostname, uri.port) - send_header(b'Connection: Upgrade') - send_header(b'Upgrade: websocket') - send_header(b'Sec-WebSocket-Key: %s', key) - send_header(b'Sec-WebSocket-Version: 13') - send_header(b'Origin: http://{hostname}:{port}'.format( - hostname=uri.hostname, - port=uri.port) - ) - for k, v in headers.items(): - send_header('{}:{}'.format(k, v).encode()) - send_header(b'') - + addr = socket.getaddrinfo(uri.hostname, uri.port) + sock.connect(addr[0][4]) + + if uri.protocol == 'wss': + import ussl + sock = ussl.wrap_socket(sock) + + def send_header(header, *args): + if debug: LOGGER.info(str(header), *args) + sock.write(header % args + '\r\n') + + # Sec-WebSocket-Key is 16 bytes of random base64 encoded + key = binascii.b2a_base64(bytes(random.getrandbits(8) for _ in range(16)))[:-1] + send_header(b'GET %s HTTP/1.1', uri.path or '/') + send_header(b'Host: %s:%s', uri.hostname, uri.port) + send_header(b'Connection: Upgrade') + send_header(b'Upgrade: websocket') + send_header(b'Sec-WebSocket-Key: %s', key) + send_header(b'Sec-WebSocket-Version: 13') + send_header(b'Origin: http://{hostname}:{port}'.format( + hostname=uri.hostname, + port=uri.port) + ) + for k, v in headers.items(): + send_header('{}:{}'.format(k, v).encode()) + send_header(b'') + + header = sock.readline()[:-2] + assert header.startswith(b'HTTP/1.1 101 '), header + + # We don't (currently) need these headers + # FIXME: should we check the return key? + while header: + if debug: LOGGER.info(str(header)) header = sock.readline()[:-2] - assert header.startswith(b'HTTP/1.1 101 '), header - - # We don't (currently) need these headers - # FIXME: should we check the return key? - while header: - if debug: LOGGER.info(str(header)) - header = sock.readline()[:-2] - except Exception as e: - usys.print_exception(e) - sock.close() - return + return WebsocketClient(sock, debug) diff --git a/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/ai_VC.py b/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/ai_VC.py index 28cb2b66..79c8a2d3 100644 --- a/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/ai_VC.py +++ b/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/ai_VC.py @@ -3620,12 +3620,12 @@ class AI_VC(Abstract): # EventMesh.publish("publish_AI_btnInfo",{"func":self.VC_Play_Start}) pass elif jsload_data["event"] == "llm.delta" :#llm返回数据 - if self.is_VAD == 0: + if self.is_VAD == 0 and self.record_data_save_flag == 0: if self.VC_record_state_flag == 1:#llm返回数据还没停止,就先停止 EventMesh.publish("publish_AI_btnInfo",{"func":self.VC_Speech_End}) elif jsload_data["event"] == "tts.started" :#tts开始 self.VC_state = VC_State_TTSStart - if self.is_VAD == 0: + if self.is_VAD == 0 and self.record_data_save_flag == 0: EventMesh.publish("publish_AI_btnInfo",{"func":self.VC_Speech_End}) EventMesh.publish("publish_AI_btnInfo",{"func":self.VC_Play_Start})