/** \file
 *
 *  This file contains special DoxyGen information for the generation of the main page and other special
 *  documentation pages. It is not a project source file.
 */
 
/** \mainpage USB to Serial I2C Converter Project
 *
 *  \section SSec_Compat Project Compatibility:
 *
 *  The following list indicates what microcontrollers are compatible with this project.
 *
 *  - Series 7 USB AVRs
 *  - Series 6 USB AVRs
 *  - Series 4 USB AVRs
 *  - Series 2 USB AVRs
 *
 *  \section SSec_Info USB Information:
 *
 *  The following table gives a rundown of the USB utilization of this project.
 *
 *  <table>
 *   <tr>
 *    <td><b>USB Mode:</b></td>
 *    <td>Device</td>
 *   </tr>
 *   <tr>
 *    <td><b>USB Class:</b></td>
 *    <td>Communications Device Class (CDC)</td>
 *   </tr>
 *   <tr> 
 *    <td><b>USB Subclass:</b></td>
 *    <td>Abstract Control Model (ACM)</td>
 *   </tr>
 *   <tr>
 *    <td><b>Relevant Standards:</b></td>
 *    <td>USBIF CDC Class Standard</td>
 *   </tr>
 *   <tr>
 *    <td><b>Usable Speeds:</b></td>
 *    <td>Full Speed Mode</td>
 *   </tr>
 *  </table>
 *
 *  \section SSec_Description Project Description: 
 *
 *  USBVirtualSerial Project. This project allows a USB AVR to emulate
 *  a serial port and communicate with I2C-based devices.
 *  When programmed into a USB AVR, the AVR will enumerate as a
 *  virtual COM Port.  Using serial port communication software and
 *  following the defined protocol allows communication with I2C devices.
 *
 *  Usage Protocol is:
 *  <R/^W , DeviceAddress , Sub-Address/Register , DataLength , DataBytesArray>
 *  Over a serial terminal or using serial software:
 *  1st byte to send is read/write bit, where 1 is write and 0 is read
 *  2nd byte is the proper non-RW-adjusted device address from its' datasheet
 *  3rd byte is the Sub-Address or Register address inside the device
 *  4th byte is length of data
 *  5th and later bytes are the data array to send
 *
 *  Note the firmware is currently set up for a maximum of 32 bytes of data
 *
 *  Receive(read data from I2C device):
 *    Note byte array (5th and later bytes) is ignored
 *    This firmware will return: 1st byte will be length of data, then the data
 *  Send(write data to I2C device):
 *  Just takes the array and sends it
 *
 *  All data is in byte (8-bits) form.
 *
 *  After running this project for the first time on a new computer,
 *  you will need to supply the .INF file located in this project
 *  project's directory as the device's driver when running under
 *  Windows. This will enable Windows to use its inbuilt CDC drivers,
 *  negating the need for custom drivers for the device. Other
 *  Operating Systems should automatically use their own inbuilt
 *  CDC-ACM drivers.
 *
 *  \section SSec_Options Project Options
 *
 *  The following defines can be found in this project, which can control the project behaviour when defined, or changed in value.
 *
 *  <table>
 *   <tr>
 *    <td><b>Define Name:</b></td>
 *    <td><b>Location:</b></td>
 *    <td><b>Description:</b></td>
 *   </tr>
 *  </table>
 */