Library to allo USB PTP device to be hosted by the mbed platform

Dependents:   class_project_main

Revision:
10:fc1cb68fc91e
Child:
11:3b072cf16df8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PIMA15740/PIMAPropDescr.h	Wed Sep 18 01:48:07 2013 +0000
@@ -0,0 +1,144 @@
+/**
+*  @file PIMAPropDesc.h
+*  @brief PIMA Property Description class definition
+*  @author Dwayne Dilbeck
+*  @date 9/16/2013
+* 
+* mbed USBHostPTP Library(PIMA15740 String definition)
+* @par Copyright:
+*  Copyright (c) 2013 Dwayne Dilbeck
+* @par License:
+*  This software is distributed under the terms of the GNU Lesser General Public License
+*/
+#include "PIMADTS.h"
+
+/**
+*  Class Property Description
+*
+*  The PIMA15740 standard defines 
+*
+*/
+class PIMAPropDesc {
+public:
+
+    
+
+   int FillPropDesc(uint8_t *currentPtr) {
+     devicePropertyCode = *((uint16_t *)currentPtr);
+     dataType = *((uint16_t *)(currentPtr+sizeof(uint16_t)));
+     getSet=*((uint8_t *)(currentPtr+2*sizeof(uint16_t)));
+     switch(dataType) {
+         case PIMA_DATATYPE_CODE_INT8:
+              factoryDefault.ptri8 = new DTS<int8_t>;
+              currentValue.ptri8   = new DTS<int8_t>;
+              break;
+         case PIMA_DATATYPE_CODE_UINT8:
+              factoryDefault.ptru8 = new DTS<uint8_t>;
+              currentValue.ptru8   = new DTS<uint8_t>;
+              break;
+         case PIMA_DATATYPE_CODE_INT16:
+              factoryDefault.ptri16 = new DTS<int16_t>;
+              currentValue.ptri16   = new DTS<int16_t>;
+              break;
+         case PIMA_DATATYPE_CODE_UINT16:
+              factoryDefault.ptru16 = new DTS<uint16_t>;
+              currentValue.ptru16   = new DTS<uint16_t>;
+              break;
+         case PIMA_DATATYPE_CODE_INT32:
+              factoryDefault.ptri32 = new DTS<int32_t>;
+              currentValue.ptri32   = new DTS<int32_t>;
+              break;
+         case PIMA_DATATYPE_CODE_UINT32:
+              factoryDefault.ptru32 = new DTS<uint32_t>;
+              currentValue.ptru32   = new DTS<uint32_t>;
+              break;
+         case PIMA_DATATYPE_CODE_INT64:
+              factoryDefault.ptri64 = new DTS<int64_t>;
+              currentValue.ptri64   = new DTS<int64_t>;
+              break;
+         case PIMA_DATATYPE_CODE_UINT64:
+              factoryDefault.ptru64 = new DTS<uint64_t>;
+              currentValue.ptru64   = new DTS<uint64_t>;
+              break;
+         case PIMA_DATATYPE_CODE_INT128:
+              break;
+         case PIMA_DATATYPE_CODE_UINT128:
+              break;
+         case PIMA_DATATYPE_CODE_AINT8:
+              factoryDefault.ptri8 = new PIMAArray<int8_t>;
+              currentValue.ptri8   = new PIMAArray<int8_t>;
+              break;
+         case PIMA_DATATYPE_CODE_AUINT8:
+              factoryDefault.ptri8 = new PIMAArray<uint8_t> ;
+              currentValue.ptri8   = new PIMAArray<uint8_t>;
+              break;
+         case PIMA_DATATYPE_CODE_AINT16:
+              factoryDefault.ptri8 = new DTS<PIMAArray<int8_t> >;
+              currentValue.ptri8   = new DTS<PIMAArray<int8_t> >;
+              break;
+         case PIMA_DATATYPE_CODE_AUINT16:
+              factoryDefault.ptri8 = new DTS<PIMAArray<int8_t> >;
+              currentValue.ptri8   = new DTS<PIMAArray<int8_t> >;
+              break;
+         case PIMA_DATATYPE_CODE_AINT32:
+              factoryDefault.ptri8 = new DTS<PIMAArray<int8_t> >;
+              currentValue.ptri8   = new DTS<PIMAArray<int8_t> >;
+              break;
+         case PIMA_DATATYPE_CODE_AUINT32:
+              factoryDefault.ptri8 = new DTS<PIMAArray<int8_t> >;
+              currentValue.ptri8   = new DTS<PIMAArray<int8_t> >;
+              break;
+         case PIMA_DATATYPE_CODE_AINT64:
+              factoryDefault.ptri8 = new DTS<PIMAArray<int8_t> >;
+              currentValue.ptri8   = new DTS<PIMAArray<int8_t> >;
+              break;
+         case PIMA_DATATYPE_CODE_AUINT64:
+              factoryDefault.ptri8 = new DTS<PIMAArray<int8_t> >;
+              currentValue.ptri8   = new DTS<PIMAArray<int8_t> >;
+              break;
+         case PIMA_DATATYPE_CODE_AINT128:
+              break;
+         case PIMA_DATATYPE_CODE_AUINT128:
+              break;
+         case PIMA_DATATYPE_CODE_STR:
+              factoryDefault.ptri8 = new DTS<PIMAString>;
+              currentValue.ptri8   = new DTS<PIMAString>;
+              break;
+         default:
+              break;
+     }
+     factoryDefault.fill(currentPtr);
+     currentValue.fill(currentPtr);
+     //(sizeof(TYPE)*numberOfElements) + 
+     return (sizeof(uint32_t)); //TODO: Finish Fill function.
+   }
+
+private:
+     ///PIMA 15740:2000 Section 13, table 23
+     uint16_t   devicePropertyCode;
+     uint16_t   dataType;
+     uint8_t    getSet;
+     typedef union DTSPTR {
+       DTS<int8_t> *ptri8;
+       DTS<uint8_t> *ptru8;
+       DTS<int16_t> *ptri16;
+       DTS<uint16_t> *ptru16;
+       DTS<int32_t> *ptri32;
+       DTS<uint32_t> *ptru32;
+       DTS<int64_t> *ptri64;
+       DTS<uint64_t> *ptru64;
+     } DTSPTR;
+     DTSPTR factoryDefault;
+     DTSPTR currentValue;
+      
+     uint8_t   formFlag;
+     typedef union {
+         struct {
+           DTSPTR minimumValue;
+           DTSPTR maximumValue;
+           DTSPTR stepSize;
+         } rangeForm;
+         DTSPTR enumerationForm;
+      }  FORMS;
+      FORMS FORM;     
+};