kopia lustrzana https://github.com/espressif/esp-idf
33 wiersze
1.1 KiB
Python
33 wiersze
1.1 KiB
Python
|
# SPDX-FileCopyrightText: 2018-2022 Espressif Systems (Shanghai) CO LTD
|
||
|
# SPDX-License-Identifier: Apache-2.0
|
||
|
#
|
||
|
|
||
|
# APIs for interpreting and creating protobuf packets for Wi-Fi State Controlling
|
||
|
|
||
|
import proto
|
||
|
from utils import str_to_bytes
|
||
|
|
||
|
|
||
|
def print_verbose(security_ctx, data):
|
||
|
if (security_ctx.verbose):
|
||
|
print(f'\x1b[32;20m++++ {data} ++++\x1b[0m')
|
||
|
|
||
|
|
||
|
def ctrl_reset_request(security_ctx):
|
||
|
# Form protobuf request packet for CtrlReset command
|
||
|
cmd = proto.wifi_ctrl_pb2.WiFiCtrlPayload()
|
||
|
cmd.msg = proto.wifi_ctrl_pb2.TypeCmdCtrlReset
|
||
|
enc_cmd = security_ctx.encrypt_data(cmd.SerializeToString())
|
||
|
print_verbose(security_ctx, f'Client -> Device (Encrypted CmdCtrlReset): 0x{enc_cmd.hex()}')
|
||
|
return enc_cmd.decode('latin-1')
|
||
|
|
||
|
|
||
|
def ctrl_reset_response(security_ctx, response_data):
|
||
|
# Interpret protobuf response packet from CtrlReset command
|
||
|
dec_resp = security_ctx.decrypt_data(str_to_bytes(response_data))
|
||
|
resp = proto.wifi_ctrl_pb2.WiFiCtrlPayload()
|
||
|
resp.ParseFromString(dec_resp)
|
||
|
print_verbose(security_ctx, f'CtrlReset status: 0x{str(resp.status)}')
|
||
|
if resp.status != 0:
|
||
|
raise RuntimeError
|