ATIM AGT/NS Guide D'utilisation page 31

Table des Matières

Publicité

Vous devez configurer l'application Appareil / Nœud sur backend et saisir un nom de Groupe pour cet
appareil/nœud. Le Groupe de périphériques/nœuds doit correspondre au nom du Groupe de
gestionnaires.
Si le Connecteur n'est pas défini, le Gestionnaire s'appliquera à une connexion en WebSocket
exclusivement.
Le Parse Uplink est une function Erlang qui convertit un nombre binaire en une liste JSON encodée
dans les attributs fields. Le résultat se résumera à une fonction fun avec deux paramètres, qui
convertit le nombre binaire en une représentation Erlang de JSON.
Exemple :
fun(_Port, <<LED, Press:16, Temp:16, AltBar:16, Batt, Lat:24, Lon:24,
AltGps:16>>) ->
#{led => LED, pressure => Press, temp => Temp/100, alt_bar => AltBar,
batt => Batt}
end.
<<A, B, C>> est un modèle binaire, où A, B, C sont des "variables" correspondants aux valeurs
binaires encodées. Erlang fait correspondre les données binaires entrantes du modèle et complète
les « variables » avec leurs valeurs binaires respectives. Ci-dessous, quelques exemples :
• <<A>> correspond à 1 valeur, d'une longueur 1 byte.
• <<A, B>> correspond à 2 valeurs, chacun d'une longueur 1 byte.
• <<A:16>> correspond à 1 valeur int non assignée, d'une longueur de 2 bytes big-endian
• <<A:16/little-signed-integer>> correspond à 1 valeur int assignée, d'une
longueur de 2 bytes in little-endian
• <<A:2/binary>> correspond à une matrice de 2 bytes
Pour faire correspondre une matrice de bytes de dimension variable, vous devriez :
fun(_Port, <<Count, Data:Count/binary>>) ->
#{data => binary_to_list(Data)}
end.
Une fois que vous avez fait correspondre les variables, vous les insérer dans une structure encodée
en JSON. Le #{name1 => A, name2 => B, name3 => C} crée un fields attribué en JSON
{"name1":A, "name2":B, "name3":C}.
Build Downlink revient à appliquer la démarche inverse. Cette opération convertit n'importe quel
attribut fields en binaire. Le résultat se résumera à une fonction fun avec deux paramètres, qui se
représente avec Erlang en JSON, et qui convertit en données binaires. Si vous programmez
{"fields":{"led":1}},vous obtiendrez la fonction suivante :
fun(_Port, #{led := LED}) ->
<<LED>>
end.
#{name1 := A, name2 := B, name3 := C} correspond à l'attribut fields qui contient
la structure JSON {"name1":A, "name2":B, "name3":C}. L'ordre n'est pas important, mais
tous les champs sont obligatoires.
ATIM_1GATE_UG_FR_V2.0
31

Publicité

Table des Matières
loading

Table des Matières