1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package remdeshid
- import "github.com/tarm/serial"
- type EventType int
- const (
- EventTypeKeyPress EventType = iota
- EventTypeKeyRelease
- EventTypeMouseMove
- EventTypeMousePress
- EventTypeMouseRelease
- EventTypeMouseScroll
- EventTypeHIDCommand
- )
- const MinCusorEventInterval = 36 // Minimum interval between cursor events in milliseconds
- type Config struct {
- /* Serial port configs */
- PortName string
- BaudRate int
- ScrollSensitivity uint8 // Mouse scroll sensitivity, range 0x00 to 0x7E
- }
- type HIDState struct {
- /* Keyboard state */
- Modkey uint8 // Modifier key state
- KeyboardButtons [6]uint8 // Keyboard buttons state
- Leds uint8 // LED state
- /* Mouse state */
- MouseButtons uint8 // Mouse buttons state
- MouseX int16 // Mouse X movement
- MouseY int16 // Mouse Y movement
- }
- // Controller is a struct that represents a HID controller
- type Controller struct {
- Config *Config
- serialPort *serial.Port
- hidState HIDState // Current state of the HID device
- serialRunning bool
- writeQueue chan []byte
- incomgDataQueue chan []byte // Queue for incoming data
- lastCursorEventTime int64
- }
- type HIDCommand struct {
- Event EventType `json:"event"`
- Keycode int `json:"keycode,omitempty"`
- IsRightModKey bool `json:"is_right_modifier_key,omitempty"` // true if the key is a right modifier key (Ctrl, Shift, Alt, GUI)
- MouseAbsX int `json:"mouse_x,omitempty"` // Absolute mouse position in X direction
- MouseAbsY int `json:"mouse_y,omitempty"` // Absolute mouse position in Y direction
- MouseRelX int `json:"mouse_rel_x,omitempty"` // Relative mouse movement in X direction
- MouseRelY int `json:"mouse_rel_y,omitempty"` // Relative mouse movement in Y direction
- MouseButton int `json:"mouse_button,omitempty"` //0x01 for left click, 0x02 for right click, 0x03 for middle clicks
- MouseScroll int `json:"mouse_scroll,omitempty"` // Positive for scroll up, negative for scroll down, max 127
- }
|