*
* This routine checks to ensure that the attached device's VID and PID matches Google's for Android devices.
*
- * \return An error code from the \ref BluetoothHost_GetDeviceDescriptorDataCodes_t enum.
+ * \return An error code from the \ref AndroidHost_GetDeviceDescriptorDataCodes_t enum.
*/
uint8_t ProcessDeviceDescriptor(void)
{
if (DeviceDescriptor.Header.Type != DTYPE_Device)
return InvalidDeviceDataReturned;
- /* Validate returned device Class, SubClass and Protocol values against the Bluetooth spec values */
+ /* Validate returned device Vendor ID against the Android ADK spec values */
if (DeviceDescriptor.VendorID != ANDROID_VENDOR_ID)
- return IncorrectAndroidDevice;
+ return IncorrectAndroidDevice;
/* Check the product ID to determine if the Android device is in accessory mode */
if ((DeviceDescriptor.ProductID != ANDROID_ACCESSORY_PRODUCT_ID) &&
{
uint8_t ErrorCode = PIPE_RWSTREAM_NoError;
- /* Each transmission should have a unique tag value, increment before use */
- SCSICommandBlock->Tag = ++MassStore_Tag;
-
/* Wrap Tag value when invalid - MS class defines tag values of 0 and 0xFFFFFFFF to be invalid */
- if (MassStore_Tag == 0xFFFFFFFF)
+ if (++MassStore_Tag == 0xFFFFFFFF)
MassStore_Tag = 1;
+ /* Each transmission should have a unique tag value, increment before use */
+ SCSICommandBlock->Tag = MassStore_Tag;
+
/* Select the OUT data pipe for CBW transmission */
Pipe_SelectPipe(MASS_STORE_DATA_OUT_PIPE);
Pipe_Unfreeze();
/* Freeze pipe after use */
Pipe_Freeze();
- /* Send data if any */
+ /* Send data if any has been given */
if ((BufferPtr != NULL) &&
((ErrorCode = MassStore_SendReceiveData(SCSICommandBlock, BufferPtr)) != PIPE_READYWAIT_NoError))
{
};
/** Circular buffer to hold data from the host before it is sent to the device via the serial port. */
-RingBuffer_t USBtoUART_Buffer;
+RingBuffer_t USBtoUART_Buffer;
/** Underlying data buffer for \ref USBtoUART_Buffer, where the stored bytes are located. */
-static uint8_t USBtoUART_Buffer_Data[128];
+static uint8_t USBtoUART_Buffer_Data[128];
/** Circular buffer to hold data from the serial port before it is sent to the host. */
-RingBuffer_t UARTtoUSB_Buffer;
+RingBuffer_t UARTtoUSB_Buffer;
/** Underlying data buffer for \ref UARTtoUSB_Buffer, where the stored bytes are located. */
-static uint8_t UARTtoUSB_Buffer_Data[128];
+static uint8_t UARTtoUSB_Buffer_Data[128];
/** Main program entry point. This routine contains the overall program flow, including initial