2016-11-20 4 views
0

Ich führe eine Reihe von SNMP-Anfragen an einen Hytera DMR-Repeater. Allerdings sieht der SNMP-Objektdefinition wie folgt aus:Umwandlung von SNMP-Oktett-String in Fließkomma (lesbare Zeichenfolge)

rptVswr OBJECT-TYPE 
     SYNTAX OCTET STRING(SIZE(4)) 
     MAX-ACCESS read-only 
     STATUS mandatory 
     DESCRIPTION 
       "The VSWR. 
       It should be changed to float format. " 
     -- 1.3.6.1.4.1.40297.1.2.1.2.4 
     ::= { rptDataInfo 4 } 

Nach dem Ausführen der Abfrage, bekam ich ein Ergebnis wie folgt aus:

Name/OID: rptVswr.0; 
Value (OctetString): 0x76 D5 8B 3F 

Hat jemand eine Idee, wie diese Zeichenfolge in ein lesbares Format umwandeln ? Es sollte wie folgt sein: 1.15 or 2.15

Vielen Dank für Ihre Hilfe,

BR - Nils

Antwort

0

Hier ist ziemlich einfach C++ Anwendung, die Hex-Daten und wandelt sie schweben decodiert:

#include <iostream> 
#include <algorithm> 

using namespace std; 

int main() 
{ 
    unsigned char ptr[] = {0x76, 0xD5, 0x8B, 0x3F}; 
    reverse(ptr, ptr + 4); 
    float f = *reinterpret_cast<float*>(ptr); 

    cout << f << endl; 

    return 0; 
} 

Das Ergebnis ist 2.16559e+33

Verwandte Themen