uint64

Fohnbit

Top Contributor
Hallo,

ich bekomme von einem Wechselrichter über Modbus TCP einen uint64 Wert. Gehalten in einem ByteBuffer.

Wie kann ich diesen in einen int umrechnen? Es stellt die Tagesenergie in Wh dar, kann Sie aber in kWh anzeigen.

Danke!
 

Flown

Administrator
Mitarbeiter
Ist BigInteger eine Lösung für dich? ByteBuffer in ein byte-array verwandeln und dann den Konstruktor mit signum und byte-array aufrufen. Wenn du signum als positiv wählst, dann wird die Zahl als positive Zahl interpretiert.
 

Fohnbit

Top Contributor
Danke, hat funktioniert!

bb = ByteBuffer

Java:
byte[] ba = new byte[8];
            bb.position(9);
            bb.get(ba);
            BigInteger f_site_energy_day = new BigInteger(1, ba);
            double energy_day = round(f_site_energy_day.doubleValue() / 1000, 2);
            if (getOutputFsiteenergyday() != energy_day || init) {
                updateOutputFsiteenergyday(energy_day);
            }
 

Neue Themen


Oben