27 lines
407 B
Go
27 lines
407 B
Go
|
package hardware
|
||
|
|
||
|
import (
|
||
|
"encoding/binary"
|
||
|
|
||
|
snap7 "github.com/danclive/snap7-go"
|
||
|
)
|
||
|
|
||
|
type Siemens struct {
|
||
|
client snap7.Snap7Client
|
||
|
}
|
||
|
|
||
|
func NewSiemens(client snap7.Snap7Client) Siemens {
|
||
|
return Siemens{client: client}
|
||
|
}
|
||
|
|
||
|
func (s Siemens) Read() (uint16, error) {
|
||
|
db, err := s.client.DBRead(1, 0, 8)
|
||
|
if err != nil {
|
||
|
return 0, err
|
||
|
}
|
||
|
|
||
|
value := binary.BigEndian.Uint16(db[2:4])
|
||
|
|
||
|
return value, nil
|
||
|
}
|