24 lines
612 B
Go
24 lines
612 B
Go
|
package main
|
||
|
|
||
|
import "encoding/binary"
|
||
|
|
||
|
// Helpers for converting straight from modbus data to floats.
|
||
|
|
||
|
func u16(data []byte) float64 {
|
||
|
return float64(binary.BigEndian.Uint16(data))
|
||
|
}
|
||
|
|
||
|
func s16(data []byte) float64 {
|
||
|
return float64(int16(binary.BigEndian.Uint16(data)))
|
||
|
}
|
||
|
|
||
|
func u32(data []byte) float64 {
|
||
|
// Little-endian big-endian :#
|
||
|
return float64(uint32(binary.BigEndian.Uint16(data)) + uint32(binary.BigEndian.Uint16(data[2:]))<<16)
|
||
|
}
|
||
|
|
||
|
func s32(data []byte) float64 {
|
||
|
// Little-endian big-endian :#
|
||
|
return float64(int32(binary.BigEndian.Uint16(data)) + int32(binary.BigEndian.Uint16(data[2:]))<<16)
|
||
|
}
|