1

hello guys i have a problem ,

i have a usb host shield v2.0 from circuits @home attached to an arduino mega and to a usb wireless reciever mouse , this is the serial monitor output :

x=0 dy=3
dx=0 dy=-1
dx=0 dy=-1
dx=0 dy=-1
dx=0 dy=-1
dx=0 dy=-1
dx=0 dy=1
dx=0 dy=-2
dx=0 dy=-2
dx=0 dy=2
dx=0 dy=9
dx=0 dy=6
dx=0 dy=-1
dx=0 dy=2
dx=0 dy=-1
dx=0 dy=-1
dx=1 dy=0
dx=2 dy=0
dx=1 dy=0
dx=2 dy=0

and this is the code from the library usbhidbootmouse :

#include <hidboot.h>
#include <usbhub.h>

// Satisfy the IDE, which needs to see the include statment in the ino too.
#ifdef dobogusinclude
#include <spi4teensy3.h>
#endif
#include <SPI.h>

class MouseRptParser : public MouseReportParser
{
protected:
    void OnMouseMove    (MOUSEINFO *mi);
    void OnLeftButtonUp (MOUSEINFO *mi);
    void OnLeftButtonDown   (MOUSEINFO *mi);
    void OnRightButtonUp    (MOUSEINFO *mi);
    void OnRightButtonDown  (MOUSEINFO *mi);
    void OnMiddleButtonUp   (MOUSEINFO *mi);
    void OnMiddleButtonDown (MOUSEINFO *mi);
};
void MouseRptParser::OnMouseMove(MOUSEINFO *mi)
{
    Serial.print("dx=");
    Serial.print(mi->dX, DEC);
    Serial.print(" dy=");
    Serial.println(mi->dY, DEC);
};
void MouseRptParser::OnLeftButtonUp (MOUSEINFO *mi)
{
    Serial.println("L Butt Up");
};
void MouseRptParser::OnLeftButtonDown   (MOUSEINFO *mi)
{
    Serial.println("L Butt Dn");
};
void MouseRptParser::OnRightButtonUp    (MOUSEINFO *mi)
{
    Serial.println("R Butt Up");
};
void MouseRptParser::OnRightButtonDown  (MOUSEINFO *mi)
{
    Serial.println("R Butt Dn");
};
void MouseRptParser::OnMiddleButtonUp   (MOUSEINFO *mi)
{
    Serial.println("M Butt Up");
};
void MouseRptParser::OnMiddleButtonDown (MOUSEINFO *mi)
{
    Serial.println("M Butt Dn");
};

USB     Usb;
USBHub     Hub(&Usb);
HIDBoot<USB_HID_PROTOCOL_MOUSE>    HidMouse(&Usb);

MouseRptParser                               Prs;

void setup()
{
    Serial.begin( 115200 );
#if !defined(__MIPSEL__)
    while (!Serial); // Wait for serial port to connect - used on Leonardo, Teensy and other boards with built-in USB CDC serial connection
#endif
    Serial.println("Start");

    if (Usb.Init() == -1)
        Serial.println("OSC did not start.");

    delay( 200 );

    HidMouse.SetReportParser(0, &Prs);
}

void loop()
{
  Usb.Task();
}

i wanna know the dx is equal to 1 when i press the left button on mouse and is equal to 2 when i press the right button on mouse and the dy is responsible for the x and y coordinates from - to + ? how a single value is responsible for x and y both ?

2
  • what is preventing you from reading the value of dx when you press the left mouse button? ... your question is somewhat unclear ... what single value are you talking about?
    – jsotola
    Jun 25, 2020 at 1:45
  • the dy value is responsible for both x and y co-ordinates together ... it should be responsible for only 1 movement so now how to extract the 2 coordinates? ithink there is a correction with the library i dunno Jun 25, 2020 at 2:03

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.