Aurduino Leonardo Mouse Sorunu

Profesor342

Bronz Üye
Katılım
5 Ara 2024
Mesajlar
31
Beğeniler
4
Merhaba Aurduino Leonardo + Usb Host Shield'a sahibim. Mouse olarak logitech superlight g pro2 kullanıyorum. aurduino kodumu çalıştırdığımda mouse sadece sağa ve sola gidiyor. tüm click işlemleri çalışıyor. fakat tüm eksenlere doğru hareket etmiyor. Sorunu çözebilmeme yardımcı olur musunuz?


Kod:
#include <avr/pgmspace.h>
#include <Usb.h>
#include <usbhub.h>
#include <hidboot.h>
#include <hiduniversal.h>
#include <Keyboard.h>
#include <Mouse.h>

USB Usb;
HIDUniversal HidMouse(&Usb);

#define MOUSE_BACK 4
#define MOUSE_FORWARD 5

class MouseRptParser : public MouseReportParser {
protected:
    virtual void OnMouseMove(MOUSEINFO* mi) {
        Mouse.begin();
        // X ve Y değerlerini ters çevirelim
        Mouse.move(mi->dY, mi->dX, 0);  // X ve Y'yi değiştirdik
        Mouse.end();
    }
    
    virtual void OnLeftButtonUp(MOUSEINFO* mi) {
        Mouse.begin();
        Mouse.release(MOUSE_LEFT);
        Mouse.end();
    }
    
    virtual void OnLeftButtonDown(MOUSEINFO* mi) {
        Mouse.begin();
        Mouse.press(MOUSE_LEFT);
        Mouse.end();
    }
    
    virtual void OnRightButtonUp(MOUSEINFO* mi) {
        Mouse.begin();
        Mouse.release(MOUSE_RIGHT);
        Mouse.end();
    }
    
    virtual void OnRightButtonDown(MOUSEINFO* mi) {
        Mouse.begin();
        Mouse.press(MOUSE_RIGHT);
        Mouse.end();
    }
    
    virtual void OnMiddleButtonUp(MOUSEINFO* mi) {
        Mouse.begin();
        Mouse.release(MOUSE_MIDDLE);
        Mouse.end();
    }
    
    virtual void OnMiddleButtonDown(MOUSEINFO* mi) {
        Mouse.begin();
        Mouse.press(MOUSE_MIDDLE);
        Mouse.end();
    }
};

MouseRptParser Prs;

void setup() {
    Serial.begin(115200);
    if (Usb.Init() == -1) {
        Serial.println("USB Baslatilamadi.");
    }
    HidMouse.SetReportParser(0, (HIDReportParser*)&Prs);
}

byte buffer[3];

void loop() {
    Usb.Task();
    
    if (Serial.available() >= 3) {
        Serial.readBytes(buffer, 3);
        
        Mouse.begin();
        // Buffer değerlerini de aynı şekilde ters çevirelim
        Mouse.move(buffer[1], buffer[0], 0);  // X ve Y'yi değiştirdik
        Mouse.end();
        
        if (buffer[2] == 1) {
            Mouse.begin();
            Mouse.click(MOUSE_LEFT);
            Mouse.end();
        }
    }
}
 

  Şuanda konuyu görüntüleyen kullanıcılar


Üst Alt