Les paramètres reçus directement de l’appareil peuvent être convertis. Pour cela, vous devez spécifier l’opération de conversion dans le champ Paramètre des propriétés du capteur. Les situations où cette opération peut être appliquée sont décrites ci-dessous.
Le contrôle des paramètres au niveau de bit
Le contrôle des paramètres au niveau de bit vous permet de contrôler pas un paramètre entier, mais un bit spécifique d’un paramètre. Cette opération est utilisée si l’appareil affiche des données différentes dans un paramètre : le premier bit peut correspondre à l’état de l’alarme (on/off), tandis que le deuxième — l’état de la portière du conducteur (ouvert/fermé), le troisième peut être l’état des phares, etc.
La numérotation des bits commence à partir de 1 dans le système de surveillance. Pour contrôler, par exemple, le troisième bit du paramètre param199, mettez deux-points et le numéro du bit après son nom :
param199:3
De cette façon, vous pouvez créer plusieurs capteurs sur la base d’un paramètre pour contrôler différents bits.
Les paramètres de type double sont automatiquement convertis en type int, après quoi un bit est retiré.
Le contrôle des paramètres au niveau de bit peut également être appliqué aux valeurs de paramètres 64 bits, mais en tenant compte de ce qui suit. Lors de l'affichage d'un nombre avec le 64ème bit rempli, ce bit est considéré par le système comme un signe moins pour le nombre contenu dans les 63 bits restants. Ainsi, les valeurs de paramètre supérieures à (2^63 - 1) = 9223372036854775807 sont affichées sous forme de valeurs négatives.
Conversion des paramètres textuels
Les valeurs des paramètres textuels peuvent être converties en nombres entiers décimaux. Par exemple, si un paramètre pour un capteur est spécifié sous forme d'une expression contenant un paramètre textuel, la valeur du texte doit être convertie en un nombre entier décimal pour obtenir le résultat correct. Pour ce faire, après le nom du paramètre, utilisez deux points pour spécifier le système de numération à partir duquel vous souhaitez convertir la valeur originale en valeur décimale. La conversion des systèmes binaire, octal, décimal et hexadécimal est possible.
Système de numérotation de la valeur initiale | Formule de conversion au système décimal | Explication |
Binaire |
| Cette formule permet de traiter les valeurs des paramètres de texte comme des valeurs binaires et de les convertir en valeurs décimales. Par exemple, si la valeur originale est 100, la valeur finale est 4. |
Octal |
| Cette formule permet de traiter les valeurs des paramètres de texte en octal et de les convertir en décimal. Par exemple, si la valeur originale est 100, la valeur finale est 64. |
Décimal |
| Cette formule permet de traiter les valeurs d'un paramètre de texte comme des valeurs décimales et de les afficher comme décimales. Par exemple, si la valeur initiale est 100, la valeur finale est également 100. |
Hexadécimal |
| Cette formule permet de traiter les valeurs des paramètres de texte en hexadécimal et de les convertir en décimal. Par exemple, si la valeur originale est 100, la valeur résultante est 256. |
Définition du nombre d’un jour de l’année
Vous pouvez convertir l’heure UNIX du message en nombre d’un jour par rapport au 1er janvier. Pour cela, créez un capteur personnalisé avec le paramètre time:d.
Par exemple, pour 11:00:00 UTC le 28 mars 2017, l’heure UNIX correspond à la valeur 1490698800. Ainsi,
time = 1490698800 time:d = 87
Conversion des paramètres pour les capteurs des conducteurs, remorques et passagers
La conversion des valeurs des paramètres textuels et numériques est disponible pour les types des capteurs Affectation d’un conducteur, Affectation d’une remorque et Capteur de passagers. Pour convertir un paramètre, vous devez spécifier une expression dans le champ Paramètre des propriétés du capteur, qui peut inclure des fonctions et des opérations mathématiques.
Les fonctions ne peuvent être appliquées qu’à des valeurs textuelles, les opérations mathématiques peuvent être appliquées à des valeurs numériques.
Les valeurs converties sont utilisées comme suit :
- lorsque les notifications d'affectation d’un conducteur, remorque ou passager sont déclenchées ;
- dans les infobulles et les informations détaillées sur les unités ;
- dans les messages de données ;
- dans les rapports, par exemple, dans le tableau Traçage du capteur, dans la colonne Valeur formatée.
Fonctions
Les fonctions ne s'appliquent qu'aux valeurs textuelles des paramètres. Le tableau ci-dessous contient leur description. Dans ce tableau, param est le nom du paramètre dans lequel l'appareil envoie la valeur de texte.
Fonction | Description | Exemple de la valeur avant | Exemple de la valeur après |
---|---|---|---|
ltrim(param) ou ltrim(param,'0') | Coupe tous les zéros à gauche. Par défaut, c'est le "0" qui est coupé, mais cela peut également s'appliquer à d'autres caractères. Le caractère est spécifié entre guillemets simples. | 0000A | A |
rtrim(param) ou rtrim(param,'0') | Coupe tous les zéros à droite. Par défaut, c'est le "0" qui est coupé, mais cela peut également s'appliquer à d'autres caractères. Le caractère est spécifié entre guillemets simples. | A0000 | A |
lower(param) | Convertit les caractères en minuscules. | A | a |
upper(param) | Convertit les caractères en majuscules. | a | A |
reverse(param) | Change l'ordre des caractères en ordre inverse. | A1234 | 4321A |
reverseb(param) | Change l'ordre des caractères en les inversant par deux. Si une chaîne a un nombre impair de caractères, elle est d'abord ajoutée avec un zéro à gauche, puis l’ordre est inversée. | C1B2A | 2A1B0C |
lfill(param,5,'0') | Ajoute le caractère spécifié (troisième paramètre de la fonction) à gauche jusqu'à ce que la chaîne contienne le nombre de caractères requis (deuxième paramètre de la fonction). Le caractère ajouté est spécifié entre guillemets simples. | A | 0000A |
rfill(param,5,'0') | Ajoute le caractère spécifié (troisième paramètre de la fonction) à droite jusqu'à ce que la chaîne contienne le nombre de caractères requis (deuxième paramètre de la fonction). Le caractère ajouté est spécifié entre guillemets simples. | A | A0000 |
sequence(param,2,3,5,4,1,0,1414) | Change l'ordre des caractères. Les caractères sont disposés dans l'ordre spécifié après le nom du paramètre. Si un indice inexistant est spécifié, 0 est substitué à ce caractère. Les indices sont comptés de gauche à droite, en commençant par 0. | 0C1B2A | 1BA2C00 |
hex(param) | Convertit les données décimales en système hexadécimal. | 10 | a |
dec(param) | Convertit les données hexadécimales en système décimal. | 00A | 10 |
hextoascii(param) | Convertit les données hexadécimales en données ASCII. | 3A29 | :) |
concat(param,substr(param,1,4),'00') | Joint les chaînes. Plus de deux chaînes peuvent être jointes. Dans l'exemple donné, cette fonction est utilisée avec la fonction substr (voir ci-dessous), c'est-à-dire qu'une partie (sous-chaîne) extraite du même paramètre est jointe à la chaîne du paramètre. Les caractères "00" sont également ajoutés. Les caractères sont spécifiés entre guillemets simples. | 0C1B2AD35E | 0C1B2AD35EC1B200 |
substr(param,1,4) | Sélectionne des caractères spécifiques dans la valeur du paramètre. Les caractères sélectionnés forment une sous-chaîne. La fonction comporte trois paramètres obligatoires :
Les indices sont comptés de gauche à droite, en commençant par 0. Les indices sont comptés de gauche à droite, en commençant par 0. La sous-chaîne extraite peut être combinée avec une autre chaîne à l'aide de la fonction concat, comme dans l'exemple ci-dessus. | 0C1B2AD35E | C1B2 |
len(param) | Renvoie un nombre qui spécifie le nombre de caractères de la chaîne. Vous pouvez effectuer des opérations mathématiques sur le résultat car il s'agit d'un nombre. Par exemple, dans l’expression substr(param,len(param)-4,4) l’expression len(param)-4 est utilisée comme indice. Cela signifie que la sous-chaîne sera comptée à partir du quatrième caractère à partir de la fin. | 0C1B2AD35E | 10 |
Opérations mathématiques
Les opérations mathématiques d'addition (+) et de soustraction (-) ne sont possibles qu'avec des valeurs numériques, et avec des valeurs textuelles elles sont possibles uniquement après leur conversion en valeurs numériques (voir l'exemple de la fonction len ci-dessus).
Si l’un des éléments d'une expression comportant une opération mathématique n'est pas numérique, aucun résultat ne sera obtenu.