Je codise un agent SNMP. Je dois envoyer des valeurs qui ont un point décimal à un gestionnaire SNMP. P>
J'ai quelques options: P>
Si je tronque le numéro, je perds beaucoup d'informations dont j'ai besoin. P>
Si je me multiplie par une constante, le gestionnaire affichera des unités étranges que l'utilisateur final préférerait ne pas voir. (grammes au lieu de kilogrammes). p>
Alors, je fais une option 3. Que dois-je faire? P>
3 Réponses :
comme un flux d'octet dans le format IEEE-754 (8 octets). Voir: http://fr.wikipedia.org/wiki/eeee_754-2008 << / p>
C'est en fait l'une des représentations dans Float-TC-MIB. Cette mib est décrite dans Outils.ietf.org/html/rfc6340 , et a été publié en 2011 .
La manière habituelle et standard Ceci est fait consiste à définir une convention textuelle avec un type intégré (tel que Integer32 ou non signé32) et un indice d'affichage avec "DN" au format "DN", où n est le nombre de places que la décimale devrait être décalé à des fins d'affichage. p>
Ainsi, pour une valeur avec un seul endroit décimal allant de (dire) 0,0 à 10,0, vous utiliseriez une convention textuelle de type non signé32 (0..100) et un indice d'affichage de "D-1". Sur le fil, la valeur varie de 0 à 100, mais le gestionnaire (à la charge du module MIB en cours de chargement) déplacera la décimale un endroit pour afficher une plage de 0,0 à 10,0. P>
D'autres façons de le faire ne sont pas propices à l'interopérabilité. P>
Je préfère envoyer ces données via Octet String / RayureString. Des chiffres tels que "1,5" peuvent être envoyés facilement. p>
Toutefois, si les données doivent être exactes, vous pouvez utiliser la suggestion de Kyle en envoyant des octets (octets). Sensiblement qui est également envoyé via une chaîne d'octet car il s'agit d'un conteneur d'octet parfait. P>
Mon souci d'envoyer la représentation des tests est que le gestionnaire SNMP ne peut effectuer aucun calcul avec ces données.