What is a good way to show a floating point number via SNMP?

我与影子孤独终老i 提交于 2019-11-30 20:40:36

The usual, standard way this is done is to define a TEXTUAL-CONVENTION with an integral type (such as Integer32 or Unsigned32) and a DISPLAY-HINT with "d-N" format, where N is the number of places the decimal should be shifted for display purposes.

Thus, for a value with a single decimal place ranging from (say) 0.0 to 10.0, you would use a TEXTUAL-CONVENTION of type Unsigned32(0..100) and a DISPLAY-HINT of "d-1". On the wire, the value ranges from 0 to 100, but the manager (by way of the MIB module being loaded) will shift the decimal one place to display a range of 0.0 to 10.0.

Other ways of doing it are not conducive to interoperability.

as an octect-stream in IEEE-754 format (8 Octets). See: http://en.wikipedia.org/wiki/IEEE_754-2008

I rather send that data via OCTET STRING/DisplayString. Numbers such as "1.5" can be sent easily.

However, if the data need to be accurate, you may use Kyle's suggestion by sending bytes (octets). Noticeably that is also sent via OCTET STRING as it is a perfect byte container.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!