GET_HEXASC_STR

Converte um parâmetro de configuração do LoRa gravado na base de setup em uma STRING ASCII para uso na aplicação (modo OTAA: dev_eui, app_eui, app_key; modo ABP: dev_addr, NwkSKey, AppSKey). É uma função.

Biblioteca: HI_STD · Namespace: HILS · Tipo: função

Função

            GET_HEXASC_STR
           +---------------+
 USINT ----|STR_ID         |
           |               |
 USINT ----|SIZE           |
           |               |
STRING ----|STR_OUT ------ |----
           +---------------+

A função lê do firmware o parâmetro de configuração LoRa identificado por STR_ID, com o número de bytes indicado em SIZE, e devolve o resultado como STRING ASCII em STR_OUT. O par STR_ID/SIZE seleciona qual parâmetro é lido e depende do modo de operação (OTAA ou ABP) — ver Observações.

Parâmetros

Nome

Direção

Tipo

Padrão

Faixa / Unidade

Descrição

STR_ID

IN

USINT

0

—

Identificador da string (parâmetro LoRa) a ser obtida.

SIZE

IN

USINT

0

bytes

Tamanho do buffer a ser lido.

STR_OUT

IN_OUT

STRING

—

—

Retorna a string especificada por STR_ID.

Pré-condições

  • Os parâmetros de configuração do LoRa devem estar gravados na base de setup do equipamento.

  • O par STR_ID/SIZE deve corresponder ao parâmetro e ao modo (OTAA ou ABP) desejados.

Observações

Combinações válidas de STR_ID e SIZE por modo de operação:

Table 4 Modo OTAA

STR_ID

SIZE

Parâmetro

4

8

Lê o valor de dev_eui.

5

8

Lê o valor de app_eui.

6

16

Lê o valor de app_key.

Table 5 Modo ABP

STR_ID

SIZE

Parâmetro

4

4

Lê o valor de dev_addr.

5

16

Lê o valor de NwkSKey.

6

16

Lê o valor de AppSKey.

Ver também

GET_SYSVAR, HTTP_QUERY

Exemplo

Código ST

VAR
    LORA_MODE    : USINT;  (* Modo de operacao LoRa lido da base de setup *)
    DEV_EUI_ADDR : STRING; (* dev_eui (OTAA) ou dev_addr (ABP) *)
    APP_EUI_NWKS : STRING; (* app_eui (OTAA) ou NwkSKey (ABP) *)
    APP_APPS_KEY : STRING; (* app_key (OTAA) ou AppSKey (ABP) *)
END_VAR

(* Le o modo de operacao lora programado na base *)
LORA_MODE := HILS.GET_SYSVAR(137);

(* Obtem do firmware os parametros de configuracao do lora *)
IF (LORA_MODE = 3) THEN    (* OTAA *)
  HILS.GET_HEXASC_STR(4, 8,  DEV_EUI_ADDR);    (* Le o valor do dev_eui *)
  HILS.GET_HEXASC_STR(5, 8,  APP_EUI_NWKS);    (* Le o valor do app_eui *)
  HILS.GET_HEXASC_STR(6, 16, APP_APPS_KEY);    (* Le o valor do app_key *)
  LORA_MODE := 1;
ELSIF (LORA_MODE = 4) THEN  (* ABP *)
  HILS.GET_HEXASC_STR(4, 4,  DEV_EUI_ADDR);    (* Le o valor do dev_addr *)
  HILS.GET_HEXASC_STR(5, 16, APP_EUI_NWKS);    (* Le o valor da NwkSKey *)
  HILS.GET_HEXASC_STR(6, 16, APP_APPS_KEY);    (* Le o valor da AppSKey *)
  LORA_MODE := 2;
ELSE
  (* SINALIZA CONDICAO DE ERRO *)
  ;
END_IF;