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 |
Pré-condições
Os parâmetros de configuração do LoRa devem estar gravados na base de setup do equipamento.
O par
STR_ID/SIZEdeve 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:
STR_ID |
SIZE |
Parâmetro |
|---|---|---|
4 |
8 |
Lê o valor de |
5 |
8 |
Lê o valor de |
6 |
16 |
Lê o valor de |
STR_ID |
SIZE |
Parâmetro |
|---|---|---|
4 |
4 |
Lê o valor de |
5 |
16 |
Lê o valor de |
6 |
16 |
Lê o valor de |
Ver também
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;