serial.go 685 B

1234567891011121314151617181920212223242526272829303132
  1. package vio
  2. import (
  3. "encoding/binary"
  4. "io"
  5. )
  6. func ReadUint16(reader io.Reader) (uint16, error) {
  7. var b [2]byte
  8. if _, err := io.ReadFull(reader, b[:]); err != nil {
  9. return 0, err
  10. }
  11. return binary.BigEndian.Uint16(b[:]), nil
  12. }
  13. func WriteUint16(writer io.Writer, value uint16) (int, error) {
  14. var b [2]byte
  15. binary.BigEndian.PutUint16(b[:], value)
  16. return writer.Write(b[:])
  17. }
  18. func WriteUint32(writer io.Writer, value uint32) (int, error) {
  19. var b [4]byte
  20. binary.BigEndian.PutUint32(b[:], value)
  21. return writer.Write(b[:])
  22. }
  23. func WriteUint64(writer io.Writer, value uint64) (int, error) {
  24. var b [8]byte
  25. binary.BigEndian.PutUint64(b[:], value)
  26. return writer.Write(b[:])
  27. }