serial.go 736 B

1234567891011121314151617181920212223242526272829
  1. package serial
  2. import (
  3. "encoding/binary"
  4. "io"
  5. )
  6. // ReadUint16 reads first two bytes from the reader, and then converts them to an uint16 value.
  7. func ReadUint16(reader io.Reader) (uint16, error) {
  8. var b [2]byte
  9. if _, err := io.ReadFull(reader, b[:]); err != nil {
  10. return 0, err
  11. }
  12. return binary.BigEndian.Uint16(b[:]), nil
  13. }
  14. // WriteUint16 writes an uint16 value into writer.
  15. func WriteUint16(writer io.Writer, value uint16) (int, error) {
  16. var b [2]byte
  17. binary.BigEndian.PutUint16(b[:], value)
  18. return writer.Write(b[:])
  19. }
  20. // WriteUint64 writes an uint64 value into writer.
  21. func WriteUint64(writer io.Writer, value uint64) (int, error) {
  22. var b [8]byte
  23. binary.BigEndian.PutUint64(b[:], value)
  24. return writer.Write(b[:])
  25. }