B. H. / Mbed 2 deprecated trolololol

Dependencies:   mbed

USBDevice/USBHID/.svn/text-base/RawHID.h.svn-base

Committer:
znuh
Date:
2011-11-29
Revision:
0:505207de8566

File content as of revision 0:505207de8566:

/* RawHID.h */
/* USB device example: send and receive raw HID data */
/* Copyright (c) 2011 ARM Limited. All rights reserved. */

#ifndef _USB_RAWHID_
#define _USB_RAWHID_

#include "USBHID.h"

class RawHID: public USBHID {
public:

    /**
    *   Constructor
    *
    * @param vendor_id Your vendor_id (default: 0x1234)
    * @param product_id Your product_id (default: 0x0001)
    * @param product_release Your preoduct_release (default: 0x0001)
    *
    */
    RawHID(uint16_t vendor_id = 0x1234, uint16_t product_id = 0x0006, uint16_t product_release = 0x0001): USBHID(vendor_id, product_id, product_release) {};

    /**
    *   Send a packet of 64 bytes maximum
    *
    * @param buf packet to be sent
    * @return true if successful
    */
    bool send(uint8_t * buf, uint8_t length);

    /**
    *   Receive a packet of 64 bytes maximum. Warning: blocking
    *
    * @param report report containing data (report.data) and the length (report.length)
    * @return true if successful
    */
    bool recv(HID_REPORT& report);
    
    /**
    *   Receive a packet of 64 bytes maximum. Warning: non blocking
    *
    * @param report report containing data (report.data) and the length (report.length)
    * @return true if successful
    */
    bool recvNB(HID_REPORT& report);

    /**
    * To define the report descriptor. Warning: this method has to store the length of the report descriptor in reportLength.
    *
    * @return pointer to the report descriptor
    */
    virtual uint8_t * ReportDesc();

    /**
    * To define the Configuration descriptor. (Here we have 2 endpoints in the interface descriptor)
    *
    * @return pointer to the configuration descriptor
    */
    virtual uint8_t * ConfigurationDesc();

    /*
    * Called by USBDevice layer. Set configuration of the device.
    * For instance, you can add all endpoints that you need on this function. Here, we enable EPINT_IN and EPINT_OUT
    *
    * @param configuration Number of the configuration
    */
    virtual bool USBCallback_setConfiguration(uint8_t configuration);
};

#endif