The MGC3130 is the world’s first electrical-field (E-field) based three-dimensional (3D) tracking and gesture controller
Dependents: NucleoMGC3130 i2c_master
MGC3130.h@1:621c4e9238ef, 2015-10-07 (annotated)
- Committer:
- yangcq88517
- Date:
- Wed Oct 07 20:43:39 2015 +0000
- Revision:
- 1:621c4e9238ef
- Parent:
- 0:92f17b057d6b
- Child:
- 2:c7d984193741
add new functions
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yangcq88517 | 0:92f17b057d6b | 1 | #ifndef UK_AC_HERTS_SMARTLAB_MGC3130 |
yangcq88517 | 0:92f17b057d6b | 2 | #define UK_AC_HERTS_SMARTLAB_MGC3130 |
yangcq88517 | 0:92f17b057d6b | 3 | |
yangcq88517 | 0:92f17b057d6b | 4 | #include "mbed.h" |
yangcq88517 | 0:92f17b057d6b | 5 | #include "GestICMsg.h" |
yangcq88517 | 0:92f17b057d6b | 6 | #include "SensorData.h" |
yangcq88517 | 1:621c4e9238ef | 7 | #include "Parameter.h" |
yangcq88517 | 1:621c4e9238ef | 8 | #include "TouchDetection.h" |
yangcq88517 | 1:621c4e9238ef | 9 | #include "AirWheelDetection.h" |
yangcq88517 | 1:621c4e9238ef | 10 | #include "ApproachDetection.h" |
yangcq88517 | 1:621c4e9238ef | 11 | #include "TouchInfo.h" |
yangcq88517 | 1:621c4e9238ef | 12 | #include "OutputEnable.h" |
yangcq88517 | 0:92f17b057d6b | 13 | |
yangcq88517 | 0:92f17b057d6b | 14 | class MGC3130 |
yangcq88517 | 0:92f17b057d6b | 15 | { |
yangcq88517 | 0:92f17b057d6b | 16 | private: |
yangcq88517 | 0:92f17b057d6b | 17 | static const int FREQUENCY_STANDARD = 100000; |
yangcq88517 | 0:92f17b057d6b | 18 | static const int FREQUENCY_FULL = 400000; |
yangcq88517 | 0:92f17b057d6b | 19 | static const int FREQUENCY_FAST = 1000000; |
yangcq88517 | 0:92f17b057d6b | 20 | static const int FREQUENCY_HIGH = 3200000; |
yangcq88517 | 0:92f17b057d6b | 21 | |
yangcq88517 | 0:92f17b057d6b | 22 | // EI0 Pin |
yangcq88517 | 0:92f17b057d6b | 23 | // The TS line is used to check whether the I2C data is valid and can be sent from MGC3X30 to the host controller. |
yangcq88517 | 0:92f17b057d6b | 24 | DigitalInOut TS_Line; |
yangcq88517 | 0:92f17b057d6b | 25 | |
yangcq88517 | 0:92f17b057d6b | 26 | I2C _i2c_bus; |
yangcq88517 | 0:92f17b057d6b | 27 | int _speed; |
yangcq88517 | 0:92f17b057d6b | 28 | int _addr; |
yangcq88517 | 0:92f17b057d6b | 29 | GestICMsg msg; |
yangcq88517 | 0:92f17b057d6b | 30 | SensorData sensor; |
yangcq88517 | 0:92f17b057d6b | 31 | |
yangcq88517 | 1:621c4e9238ef | 32 | protected: |
yangcq88517 | 1:621c4e9238ef | 33 | GestICMsg * readMsg(); |
yangcq88517 | 1:621c4e9238ef | 34 | |
yangcq88517 | 0:92f17b057d6b | 35 | public: |
yangcq88517 | 0:92f17b057d6b | 36 | MGC3130(PinName sda, PinName scl, PinName EI0, bool IS2); |
yangcq88517 | 0:92f17b057d6b | 37 | |
yangcq88517 | 0:92f17b057d6b | 38 | SensorData * readSensorData(); |
yangcq88517 | 1:621c4e9238ef | 39 | |
yangcq88517 | 1:621c4e9238ef | 40 | /* |
yangcq88517 | 1:621c4e9238ef | 41 | Structure: 16-bit Word containing dedicated values (see list below) |
yangcq88517 | 1:621c4e9238ef | 42 | Possible values: |
yangcq88517 | 1:621c4e9238ef | 43 | These error codes are sent by the Library Loader, Library Loader Updater and Library: |
yangcq88517 | 1:621c4e9238ef | 44 | 0x0000 NoError OK |
yangcq88517 | 1:621c4e9238ef | 45 | 0x0001 UnknownCommand Message ID is unknown |
yangcq88517 | 1:621c4e9238ef | 46 | These error codes are sent by the Library Loader: |
yangcq88517 | 1:621c4e9238ef | 47 | 0x0002 InvalidSessionId Session ID is invalid or |
yangcq88517 | 1:621c4e9238ef | 48 | does not match |
yangcq88517 | 1:621c4e9238ef | 49 | (0x0 is not allowed) (message |
yangcq88517 | 1:621c4e9238ef | 50 | Fw_Update_Start, |
yangcq88517 | 1:621c4e9238ef | 51 | Fw_Update_Completed) |
yangcq88517 | 1:621c4e9238ef | 52 | 0x003 InvalidCrc CRC is invalid |
yangcq88517 | 1:621c4e9238ef | 53 | thrown by messages: |
yangcq88517 | 1:621c4e9238ef | 54 | Fw_Update_Block, |
yangcq88517 | 1:621c4e9238ef | 55 | Fw_Update_Start, |
yangcq88517 | 1:621c4e9238ef | 56 | Fw_Update_Completed |
yangcq88517 | 1:621c4e9238ef | 57 | 0x0004 InvalidLength Length is invalid (message |
yangcq88517 | 1:621c4e9238ef | 58 | Fw_Update_Block) |
yangcq88517 | 1:621c4e9238ef | 59 | 0x0005 InvalidAddress Address is invalid (message |
yangcq88517 | 1:621c4e9238ef | 60 | Fw_Update_Block) |
yangcq88517 | 1:621c4e9238ef | 61 | 0x0006 InvalidFunction Function-Id is invalid (message |
yangcq88517 | 1:621c4e9238ef | 62 | Fw_Update_Start, |
yangcq88517 | 1:621c4e9238ef | 63 | Fw_Update_Block, |
yangcq88517 | 1:621c4e9238ef | 64 | Fw_Update_Completed) |
yangcq88517 | 1:621c4e9238ef | 65 | 0x0008 ContentMismatch The VerifyOnly function found a mismatch |
yangcq88517 | 1:621c4e9238ef | 66 | between content and Flash memory (message: |
yangcq88517 | 1:621c4e9238ef | 67 | Fw_Update_Block) |
yangcq88517 | 1:621c4e9238ef | 68 | 0x000B WrongParameterAddr Parameter Start address, contained in the new |
yangcq88517 | 1:621c4e9238ef | 69 | Library FW to be loaded, does not match |
yangcq88517 | 1:621c4e9238ef | 70 | Library Loader assumption. |
yangcq88517 | 1:621c4e9238ef | 71 | The Library Update is therefore aborted. |
yangcq88517 | 1:621c4e9238ef | 72 | (message: Fw_Update_Start) |
yangcq88517 | 1:621c4e9238ef | 73 | These error codes are sent by the Library: |
yangcq88517 | 1:621c4e9238ef | 74 | 0x0014 WrongParameterValue The value of the Argument/Parameter of a |
yangcq88517 | 1:621c4e9238ef | 75 | RuntimeParameter command is out of the valid |
yangcq88517 | 1:621c4e9238ef | 76 | range (message: Request_Message and |
yangcq88517 | 1:621c4e9238ef | 77 | Set_Runtime_Parameter) |
yangcq88517 | 1:621c4e9238ef | 78 | 0x0015 UnknownParameterID The MessageID or RuntimeParameterID is |
yangcq88517 | 1:621c4e9238ef | 79 | unknown or out of the valid range (message: |
yangcq88517 | 1:621c4e9238ef | 80 | Request_Message and |
yangcq88517 | 1:621c4e9238ef | 81 | Set_Runtime_Parameter) |
yangcq88517 | 1:621c4e9238ef | 82 | 0x001A WakeupHappend A wake-up by Host was detected |
yangcq88517 | 1:621c4e9238ef | 83 | These error codes are sent by the Library Loader Updater: |
yangcq88517 | 1:621c4e9238ef | 84 | 0x0080 LoaderUpdateStarted The Library Loader update started |
yangcq88517 | 1:621c4e9238ef | 85 | 0x0081 LoaderUpdateFinished The Library Loader update finished |
yangcq88517 | 1:621c4e9238ef | 86 | */ |
yangcq88517 | 1:621c4e9238ef | 87 | int setRuntimeParameter(Parameter * para); |
yangcq88517 | 0:92f17b057d6b | 88 | }; |
yangcq88517 | 0:92f17b057d6b | 89 | |
yangcq88517 | 0:92f17b057d6b | 90 | #endif |