maix.protocol
maix.protocol module
You can use
maix.protocol
to access this module with MaixPy
This module is generated from MaixPy and MaixCDK
Module
No module
Enum
CMD
protocol cmd, more doc see MaixCDK document's convention doc
item | describe |
---|---|
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_REPORT: 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_REPORT = 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
protocol flags, more doc see MaixCDK document's convention doc
item | describe |
---|---|
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
protocol version
item | description |
---|---|
value | 1 |
readonly | True |
C++ defination code:
const uint8_t VERSION = 1
HEADER
protocol header
item | description |
---|---|
readonly | False |
C++ defination code:
extern uint32_t HEADER
Function
crc16_IBM
def crc16_IBM(data: maix.Bytes(bytes)) -> int
CRC16-IBM
item | description |
---|---|
param | data: data, bytes type. |
return | CRC16-IBM value, uint16_t type. |
C++ defination code:
uint16_t crc16_IBM(const Bytes *data)
Class
MSG
protocol msg
C++ defination code:
class MSG
version
protocol version
item | description |
---|---|
type | var |
static | False |
readonly | False |
C++ defination code:
uint8_t version
resp_ok
Indicate response message type, true means CMD valid and the CMD processed correctly, (only for response msg)
item | description |
---|---|
type | var |
static | False |
readonly | False |
C++ defination code:
uint8_t resp_ok
has_been_replied
Flag whether CMD has been processed and responded to CMD sender.\nE.g. CMD CMD_START_APP will be automatically processed in CommProtocol.get_msg function,\nso the return msg will set this flag to true.
item | description |
---|---|
type | var |
static | False |
readonly | False |
C++ defination code:
bool has_been_replied{false}
cmd
CMD value
item | description |
---|---|
type | var |
static | False |
readonly | False |
C++ defination code:
uint8_t cmd
is_resp
message is response or not, contrast with is_req
item | description |
---|---|
type | var |
static | False |
readonly | False |
C++ defination code:
bool is_resp
body_len
Message body length, read only, use set_body() to update
item | description |
---|---|
type | var |
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)
Encode response ok(success) message
item | description |
---|---|
type | func |
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)
Encode proactively report message
item | description |
---|---|
type | func |
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)
Encode response error message
item | description |
---|---|
type | func |
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
Update message body
item | description |
---|---|
type | func |
param | body_new: new body data |
static | False |
C++ defination code:
void set_body(Bytes *body_new)
get_body
def get_body(*args, **kwargs)
Get message body
item | description |
---|---|
type | func |
return | message body, bytes type |
static | False |
C++ defination code:
Bytes *get_body()
Protocol
Communicate protocol
C++ defination code:
class Protocol
__init__
def __init__(self, buff_size: int = 1024, header: int = 3148663466) -> None
Construct a new Protocol object
item | description |
---|---|
type | func |
param | buff_size: Data queue buffer size |
static | False |
C++ defination code:
Protocol(int buff_size = 1024, uint32_t header=maix::protocol::HEADER)
buff_size
def buff_size(self) -> int
Data queue buffer size
item | description |
---|---|
type | func |
static | False |
C++ defination code:
int buff_size()
push_data
def push_data(self, new_data: maix.Bytes(bytes)) -> maix.err.Err
Add data to data queue
item | description |
---|---|
type | func |
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
def decode(self, new_data: maix.Bytes(bytes) = None) -> MSG
Decode data in data queue and return a message
item | description |
---|---|
type | func |
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
def encode_resp_ok(*args, **kwargs)
Encode response ok(success) message to buffer
item | description |
---|---|
type | func |
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
def encode_report(*args, **kwargs)
Encode proactively report message to buffer
item | description |
---|---|
type | func |
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
def encode_resp_err(*args, **kwargs)
Encode response error message to buffer
item | description |
---|---|
type | func |
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)