configure.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package main
  2. import (
  3. "log"
  4. "time"
  5. "imuslab.com/dezukvm/dezukvmd/mod/kvmhid"
  6. )
  7. func SetupHIDCommunication(config *UsbKvmConfig) error {
  8. // Initiate the HID controller
  9. usbKVM = kvmhid.NewHIDController(&kvmhid.Config{
  10. PortName: config.USBKVMDevicePath,
  11. BaudRate: config.USBKVMBaudrate,
  12. ScrollSensitivity: 0x01, // Set mouse scroll sensitivity
  13. })
  14. //Start the HID controller
  15. err := usbKVM.Connect()
  16. if err != nil {
  17. log.Fatal(err)
  18. }
  19. time.Sleep(1 * time.Second) // Wait for the controller to initialize
  20. log.Println("Updating chip baudrate to 115200...")
  21. //Configure the HID controller
  22. err = usbKVM.ConfigureChipTo115200()
  23. if err != nil {
  24. log.Fatalf("Failed to configure chip baudrate: %v", err)
  25. return err
  26. }
  27. time.Sleep(1 * time.Second)
  28. log.Println("Setting chip USB device properties...")
  29. time.Sleep(2 * time.Second) // Wait for the controller to initialize
  30. _, err = usbKVM.WriteChipProperties()
  31. if err != nil {
  32. log.Fatalf("Failed to write chip properties: %v", err)
  33. return err
  34. }
  35. log.Println("Configuration command sent. Unplug the device and plug it back in to apply the changes.")
  36. return nil
  37. }