Commit Graph

655 Commits

Author SHA1 Message Date
Cristian Maglie f28a1f3674 Merge branch 'fix-flush' of https://github.com/cmaglie/Arduino 2015-11-18 10:06:01 +01:00
Federico Fissore 0327740d28 Modified AVR preproc recipe to match the one used by arduino-builder 2015-11-18 09:34:33 +01:00
agdl c2ca3ff34e Added defines for gemma
As pointed out in #4063
2015-11-17 15:04:11 +01:00
Cristian Maglie 5bc0a1c056 SoftwareSerial: fix flush() behaviour
Fix #4029
2015-11-11 16:28:48 +01:00
Sandeep Mistry c581cec8bf Remove tx_pin_write from SoftwareSerial.h
It’s not implemented anywhere and unused.
2015-11-05 15:39:11 -05:00
Sandeep Mistry b31b6b8efd Remove unused param warning 2015-11-05 14:28:40 -05:00
Sandeep Mistry 271a3b7b2a Add inline to recv and setRxIntMsk to remove warning (#4078) 2015-11-05 14:28:29 -05:00
Cristian Maglie 0c2d320ee2 Updated avr core version to 1.6.9 2015-11-03 11:34:03 +01:00
Cristian Maglie 67be29640d [PUSB] Fixed return value for HID_::SendReport 2015-10-30 13:00:33 +01:00
Nico 25d1a2a67c [PHID] send data if report ID was sent successful
If the first sending was not successful it is better to abort. Then we get a return value of -1 (instead of -2 if the 2nd call will also fail) and we do not need to block even longer, with another timeout.
2015-10-30 12:58:14 +01:00
NicoHood fff2677c82 Added return value to HID SendReport 2015-10-30 12:58:14 +01:00
Cristian Maglie 47f7712611 Merge branch 'arduinoGemmaInterrupts' of https://github.com/agdl/Arduino 2015-10-23 11:00:25 +02:00
Arturo Guadalupi c2a58fe4cd Gemma digitalPinToInterrupt support
Added support for Arduino Gemma as required in #3929
2015-10-23 10:44:02 +02:00
Arturo Guadalupi 43f902c8c3 Ethernet digitalPinToInterrupt support
Added support for Arduino Ethernet as required in #3929
2015-10-23 10:16:43 +02:00
Sandeep Mistry aa0687e8c3 check TWWC (Write Collision Flag) bit after setting TWDR
as suggested by @earlyprogrammer in #2173, to ensure TWDR value is set
if there is a write collision
2015-10-22 16:33:00 +02:00
Sandeep Mistry 6562a2e3a6 release TWI bus right after stop or repeated start is condition
this resolves timing issues seen in #1477
2015-10-22 16:29:43 +02:00
Cristian Maglie a3cfc4dccf Merge remote-tracking branch 'arduino/master' into HEAD 2015-10-21 15:53:59 +02:00
Martino Facchin b9bb55584c [USB] use plugged modules name to create iSerial field 2015-10-21 15:23:56 +02:00
NicoHood 281546bccb [PHID] Fixes protocol on reenumeration 2015-10-12 18:05:34 +02:00
Cristian Maglie b8eeeff166 [HID] renamed HIDDescriptorListNode to HIDSubDescriptor 2015-10-12 12:24:07 +02:00
Cristian Maglie 80e228483d [PUSB] Renamed PUSBListNode to PluggableUSBModule 2015-10-12 12:14:07 +02:00
Cristian Maglie 84b3d7ac2b [HID] made HIDDescriptorListNode.length constant 2015-10-12 11:59:08 +02:00
NicoHood 7cef3b3410 [PHID] Added missing GET_IDLE Request 2015-10-11 14:39:36 +02:00
NicoHood 31f93d2c4e [PHID] Added some hints for further optional implementations 2015-10-10 13:11:31 +02:00
NicoHood 2c38941e90 Added official HID definitions
Since the HID library adds some general HID definitions and structs, it is very useful to also include this in a custom library.
If you dupe the information you have problems of redeclaration.
Having those defintions inside the official HID library is essential for a good working additional  HID API.
2015-10-10 12:49:45 +02:00
Nico 4cbaa304fb [PUSB] Minor Style change 2015-10-09 22:10:45 +02:00
Nico a5b1f68aae Remove unnecessary include
Its included by HID.h anyways.
2015-10-08 17:24:09 +02:00
Cristian Maglie 8b6b796f94 [HID] Improved checks in getDescriptor() method 2015-10-08 16:38:57 +02:00
NicoHood ec2cf46acf [PUSB] Removed unnecessary endpoint and interface function 2015-10-07 20:39:50 +02:00
NicoHood 1f5fc56429 [PHID] Added SetReport function
This commit just shows other that this option is available and not implemented.
You may use this to determine the Led Lights state of a keyboard or transmit data via RAWHID from the PC.

Quick usage guide:
int length = ((setup.wValueH << 8) | setup.wLength);
USB_RecvControl((uint8_t* data, USB_EP_SIZE); // Needs to be splitted into USB_EP_SIZE packets, not shown here. See HID Project.
2015-10-07 20:37:05 +02:00
NicoHood fdb1fd384b [PUSB] Made getDescriptor() and setup() more flexible
Alternatively we can only pass the wIndex to getDescriptor but I suggest to just pass the pointer aka reference of the whole setup.
In guess (havent tested this) that this results in more or less the code size but its a) idential with the other functions and b) we late have more flexibility here.
The Code got a quick SerialKeyboard.ino test
2015-10-07 19:02:40 +02:00
NicoHood b75da2a1e5 [PUSB] Changed Interface + Endpoint to unsigned variables
The iterations in the for loop also use unsigned and the setup struct etc as well.
There was no change in HID required since we just init the inherited variables via constructor and the type is never mentioned.
2015-10-07 18:45:10 +02:00
Cristian Maglie f0f10cb290 [PUSB] renamed some parameters 2015-10-07 13:21:21 +02:00
NicoHood b2e48cd627 Small return value error check correction 2015-10-07 12:39:18 +02:00
NicoHood 9196eaed87 Removed not needed public statement for root node 2015-10-03 07:56:48 +02:00
Martino Facchin a6c4a6395e [PUSB] Fix static initialization order fiasco
For details see:
https://isocpp.org/wiki/faq/ctors#static-init-order-on-first-use
2015-10-02 11:59:24 +02:00
Cristian Maglie a185073969 [HID] removed HIDDescriptor field
The field is now built on-the-fly on the stack and sent over USB.
This change increase Flash usage and decrease SRAM usage:

before: 6114 / 241
after:  6152 / 216 (removed HIDDescriptor field)

delta:   +38 / -25

SRAM is a much more scarse resource and this change free up to
about 10% of the "base" usage.
2015-10-02 11:59:24 +02:00
Cristian Maglie f9e6ef1913 [HID] Code cleanup (no semantic changes) 2015-10-02 11:59:23 +02:00
Cristian Maglie 9c93e1d446 [HID] removed unused modules_count field 2015-10-02 11:59:23 +02:00
Cristian Maglie efe6bc0b7b [PUSB] Fixed checks on return values 2015-10-02 11:59:23 +02:00
Cristian Maglie 631e056806 [USB] Fixed some compiler warnings 2015-10-02 11:59:23 +02:00
Cristian Maglie 3cce436602 [PUSB] Fixed the correct number of endpoints 2015-10-02 11:59:23 +02:00
Cristian Maglie 4d6ab7431b [PUSB] Fixed check for available endpoints
The check for available slot in PluggableUSB is done on the endpoint
and not on the number of plugged modules.

The modulesCount field is no longer useful and it has been removed.
2015-10-02 11:59:23 +02:00
Cristian Maglie c5fd3853e6 [PUSB] No more static fields in PluggableUSB class 2015-10-02 11:59:23 +02:00
Cristian Maglie 58b3755853 [PUSB] epType array is now part of HID class 2015-10-02 11:59:23 +02:00
Cristian Maglie 1e7f1fa35e [HID] Removed static fields in HID class
There is still the epType[] array to be handled in some way.
2015-10-02 11:59:23 +02:00
Cristian Maglie a044f89f01 [PUSB] The latest fields are now set via constructor 2015-10-02 11:59:23 +02:00
Cristian Maglie 93e7f0b91b [PUSB] callbacks are now pure virtual methods
This change allows the compiler to handle callbacks resolution.

Callbacks now must be implemented on the class that extends
PUSBListNode and this is forced by compiler by means of pure
virtual methods.

Also the calls to HID.interface() and HID.endpoint() can now
be simplified to interface() and endpoint() respectively since
the methods are no more static.
2015-10-02 11:59:23 +02:00
Cristian Maglie ac0847f257 [PUSB] Moved static members inside HID_ class
This commit prepares for the next refactoring
2015-10-02 11:59:22 +02:00
Cristian Maglie 4245515325 [PUSB] replaced u8 with uint8_t 2015-10-02 11:59:22 +02:00