command.go 606 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package hid
  2. import (
  3. "time"
  4. )
  5. type Frame struct {
  6. Data []byte
  7. Delay time.Duration
  8. }
  9. func NewFrame(buf []byte, delay int) Frame {
  10. return Frame{
  11. Data: buf,
  12. Delay: time.Millisecond * time.Duration(delay),
  13. }
  14. }
  15. type Command struct {
  16. Mode byte
  17. HID byte
  18. Sleep int
  19. Frames []Frame
  20. }
  21. func (cmd *Command) AddFrame(buf []byte, delay int) {
  22. if cmd.Frames == nil {
  23. cmd.Frames = make([]Frame, 0)
  24. }
  25. cmd.Frames = append(cmd.Frames, NewFrame(buf, delay))
  26. }
  27. func (cmd Command) IsHID() bool {
  28. return cmd.HID != 0 || cmd.Mode != 0
  29. }
  30. func (cmd Command) IsSleep() bool {
  31. return cmd.Sleep > 0
  32. }