maix.protocol

maix.protocol module

You can use maix.protocol to access this module with MaixPy
This module is generated from MaixCDK

Module

No module

Enum

CMD

item doc
brief protocol cmd, more doc see MaixCDK document's convention doc
note max app custom CMD value should < CMD_APP_MAX
values CMD_APP_MAX: 200, max app custom CMD value should < CMD_APP_MAX
CMD_SET_UPLOAD: set auto upload data mode
CMD_APP_LIST:
CMD_START_APP:
CMD_EXIT_APP:
CMD_CUR_APP_INFO:
CMD_APP_INFO:
CMD_KEY:
CMD_TOUCH:

C++ defination code:

enum CMD
        {
            CMD_APP_MAX = 0xC8,     //  200, max app custom CMD value should < CMD_APP_MAX

            CMD_SET_UPLOAD   = 0xF8, // set auto upload data mode
            CMD_APP_LIST     = 0xF9,
            CMD_START_APP    = 0xFA,
            CMD_EXIT_APP     = 0xFB,
            CMD_CUR_APP_INFO = 0xFC,
            CMD_APP_INFO     = 0xFD,
            CMD_KEY          = 0xFE,
            CMD_TOUCH        = 0xFF,
        }

FLAGS

item doc
brief protocol flags, more doc see MaixCDK document's convention doc
values FLAG_REQ:
FLAG_RESP:
FLAG_IS_RESP_MASK:
FLAG_RESP_OK:
FLAG_RESP_ERR:
FLAG_RESP_OK_MASK:
FLAG_REPORT:
FLAG_REPORT_MASK:
FLAG_VERSION_MASK:

C++ defination code:

enum FLAGS
        {
            FLAG_REQ = 0x00,
            FLAG_RESP = 0x80,
            FLAG_IS_RESP_MASK = 0x80,

            FLAG_RESP_OK = 0x40,
            FLAG_RESP_ERR = 0x00,
            FLAG_RESP_OK_MASK = 0x40,

            FLAG_REPORT = 0x20,
            FLAG_REPORT_MASK = 0x20,

            FLAG_VERSION_MASK = 0x03
        }

Variable

VERSION

item doc
brief protocol version
value 1
readonly True

C++ defination code:

const uint8_t VERSION = 1
item doc
brief protocol header
value 0xBBACCAAA
readonly True

C++ defination code:

const uint32_t HEADER = 0xBBACCAAA

Function

crc16_IBM

def crc16_IBM(data: maix.Bytes(bytes)) -> int
item doc
brief CRC16-IBM
param data: data, bytes type.
return CRC16-IBM value, uint16_t type.

C++ defination code:

uint16_t crc16_IBM(const Bytes *data)

Class

MSG

item doc
brief protocol msg

C++ defination code:

class MSG

version

item doc
type var
brief protocol version
static False
readonly False

C++ defination code:

uint8_t version

resp_ok

item doc
type var
brief Is success response or not, (only for response msg)
static False
readonly False

C++ defination code:

uint8_t resp_ok

cmd

item doc
type var
brief CMD value
static False
readonly False

C++ defination code:

uint8_t cmd

is_resp

item doc
type var
brief message is response or not, contrast with is_req
static False
readonly False

C++ defination code:

bool is_resp

body_len

item doc
type var
brief Message body length, read only, use set_body() to update
attention DO NOT manually change this value
static False
readonly False

C++ defination code:

int body_len

encode_resp_ok

def encode_resp_ok(*args, **kwargs)
item doc
type func
brief Encode response ok(success) message
param body: response body, can be null
return encoded data, if nullptr, means error, and the error code is -err.Err
static False

C++ defination code:

Bytes *encode_resp_ok(Bytes *body = nullptr)

encode_report

def encode_report(*args, **kwargs)
item doc
type func
brief Encode proactively report message
param body: report body, can be null
return encoded data, if nullptr, means error, and the error code is -err.Err
static False

C++ defination code:

Bytes *encode_report(Bytes *body = nullptr)

encode_resp_err

def encode_resp_err(*args, **kwargs)
item doc
type func
brief Encode response error message
param code: error code
msg: error message
return encoded data, if nullptr, means error, and the error code is -err.Err
static False

C++ defination code:

Bytes *encode_resp_err(err::Err code, const std::string &msg)

set_body

def set_body(self, body_new: maix.Bytes(bytes)) -> None
item doc
type func
brief Update message body
param body_new: new body data
static False

C++ defination code:

void set_body(Bytes *body_new)

get_body

def get_body(*args, **kwargs)
item doc
type func
brief Get message body
return message body, bytes type
static False

C++ defination code:

Bytes *get_body()

Protocol

item doc
brief Communicate protocol

C++ defination code:

class Protocol

__init__

item doc
type func
brief Construct a new Protocol object
param buff_size: Data queue buffer size
static False

C++ defination code:

Protocol(int buff_size = 1024)

buff_size

item doc
type func
brief Data queue buffer size
static False

C++ defination code:

int buff_size()

push_data

item doc
type func
brief Add data to data queue
param new_data: new data
return error code, maybe err.Err.ERR_BUFF_FULL
static False

C++ defination code:

err::Err push_data(const Bytes *new_data)

decode

item doc
type func
brief Decode data in data queue and return a message
param new_data: new data add to data queue, if null, only decode.
return decoded message, if nullptr, means no message decoded.
static False

C++ defination code:

protocol::MSG *decode(const Bytes *new_data = nullptr)

encode_resp_ok

item doc
type func
brief Encode response ok(success) message to buffer
param cmd: CMD value
body: response body, can be null
return encoded data, if nullptr, means error, and the error code is -err.Err
static False

C++ defination code:

Bytes *encode_resp_ok(uint8_t cmd, Bytes *body = nullptr)

encode_report

item doc
type func
brief Encode proactively report message to buffer
param cmd: CMD value
body: report body, can be null
return encoded data, if nullptr, means error, and the error code is -err.Err
static False

C++ defination code:

Bytes *encode_report(uint8_t cmd, Bytes *body = nullptr)

encode_resp_err

item doc
type func
brief Encode response error message to buffer
param cmd: CMD value
code: error code
msg: error message
return encoded data, if nullptr, means error, and the error code is -err.Err
static False

C++ defination code:

Bytes *encode_resp_err(uint8_t cmd, err::Err code, const std::string &msg)