Skip to content

Tipos e constantes wire

NomeValorDescrição
wire::kMaxArgs24Máximo de argumentos por comando parseado
wire::kArgCap160Máximo de bytes por buffer de argumento
wire::kNameCap64Comprimento máximo do nome do comando
wire::kPackBudget240Orçamento de bytes para empacotar header de lista + bodies em uma mensagem BLE

Representação parseada de um segmento wire nome(modo,role,...);.

CampoTipoDescrição
namechar[kNameCap]Nome do comando (ex.: param_list)
modechars single, h header, b body
rolecharr requisição, s resposta
bodyIndexintÍndice da linha quando mode == 'b'; caso contrário -1
argcintTotal de tokens em argv (inclui modo e role)
argvchar[kMaxArgs][kArgCap]Argumentos brutos após unquote

Preenchido por parseSegment e parseMessage.


Campos extraídos de um comando header de lista nome(h,role,T,C,B,j);.

CampoSignificado
TTotal de linhas na lista
CLinhas de body nesta mensagem
BTotal de mensagens que compõem a lista
jÍndice desta mensagem (0B-1)

Preenchido por parseListHeader.


Vista conveniente dos argumentos de payload, ignorando modo, role e (em bodies) o índice da linha.

Construa a partir de um Command:

wire::WireView view{cmd};
int payloadStart() const

Retorna 3 quando cmd.mode == 'b', caso contrário 2.

O(1).


int payloadArgc() const

Retorna o número de argumentos de payload (exclui modo, role e índice de body).

O(1).


const char* arg(int i) const

Retorna o argumento de payload no índice relativo i (0 = primeiro argumento útil). Retorna "" se estiver fora do intervalo.

// Para param_get(s,r,"temperature");
const char* name = view.arg(0); // "temperature"

O(1).


bool asInt(int i, int& out) const

Faz parse de arg(i) como inteiro decimal. Retorna false se o token for inválido.

int pin;
if (view.asInt(0, pin)) {
digitalWrite(pin, HIGH);
}

O(k), em que k é o comprimento do token.


bool asFloat(int i, float& out) const

Faz parse de arg(i) como ponto flutuante. Retorna false se for inválido.

O(k), em que k é o comprimento do token.


bool asStr(int i, char* buf, size_t cap) const

Copia arg(i) para buf. Retorna false se o valor não couber em cap bytes (incluindo terminador nulo).

O(k), em que k é o comprimento do token.