PixArt Optical Track Sensor, OTS, library initial release v1.0. Supports PAT9125, PAT9126, PAT9130, PAA5101. Future to support PAT9150.
Fork of Pixart_OTS by
Pixart_OTS.h@1:95917b856631, 2019-03-26 (annotated)
- Committer:
- PixArtHC
- Date:
- Tue Mar 26 22:32:06 2019 +0000
- Revision:
- 1:95917b856631
- Parent:
- 0:2a85075b8467
* V1.1 library changes:; * Add support to 5101 LD/LED switching.; * Add support to PAT9150.; * Fixed bug on loading initialization setting.; * Optimized register read timing.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
PixArtHC | 0:2a85075b8467 | 1 | /* PixArt Optical Finger Navigation, OFN, sensor driver. |
PixArtHC | 0:2a85075b8467 | 2 | * By PixArt Imaging Inc. |
PixArtHC | 0:2a85075b8467 | 3 | * Primary Engineer: Hill Chen (PixArt USA) |
PixArtHC | 0:2a85075b8467 | 4 | * |
PixArtHC | 0:2a85075b8467 | 5 | * License: Apache-2.0; http://www.apache.org/licenses/LICENSE-2.0 |
PixArtHC | 0:2a85075b8467 | 6 | */ |
PixArtHC | 0:2a85075b8467 | 7 | |
PixArtHC | 0:2a85075b8467 | 8 | #pragma once |
PixArtHC | 0:2a85075b8467 | 9 | #include "mbed.h" |
PixArtHC | 0:2a85075b8467 | 10 | #include "Build_info.h" |
PixArtHC | 0:2a85075b8467 | 11 | #include "Pixart_ComPort.h" |
PixArtHC | 0:2a85075b8467 | 12 | #include "Pixart_OTS_GrabData.h" |
PixArtHC | 1:95917b856631 | 13 | #include "Pixart_OTS_Task.h" |
PixArtHC | 0:2a85075b8467 | 14 | #include "Pixart_OTS_InitSetting.h" |
PixArtHC | 0:2a85075b8467 | 15 | |
PixArtHC | 0:2a85075b8467 | 16 | #include <vector> |
PixArtHC | 0:2a85075b8467 | 17 | #include <string> |
PixArtHC | 0:2a85075b8467 | 18 | |
PixArtHC | 0:2a85075b8467 | 19 | enum Pixart_OTS_Model |
PixArtHC | 0:2a85075b8467 | 20 | { |
PixArtHC | 0:2a85075b8467 | 21 | PIXART_OTS_MODEL_9125, |
PixArtHC | 0:2a85075b8467 | 22 | PIXART_OTS_MODEL_9126, |
PixArtHC | 0:2a85075b8467 | 23 | PIXART_OTS_MODEL_9150, |
PixArtHC | 0:2a85075b8467 | 24 | PIXART_OTS_MODEL_9130, |
PixArtHC | 0:2a85075b8467 | 25 | PIXART_OTS_MODEL_5101, |
PixArtHC | 0:2a85075b8467 | 26 | }; |
PixArtHC | 0:2a85075b8467 | 27 | |
PixArtHC | 0:2a85075b8467 | 28 | struct Pixart_OTS_Register |
PixArtHC | 0:2a85075b8467 | 29 | { |
PixArtHC | 0:2a85075b8467 | 30 | uint8_t addr; |
PixArtHC | 0:2a85075b8467 | 31 | uint8_t value; |
PixArtHC | 0:2a85075b8467 | 32 | }; |
PixArtHC | 0:2a85075b8467 | 33 | |
PixArtHC | 0:2a85075b8467 | 34 | |
PixArtHC | 0:2a85075b8467 | 35 | class Pixart_OTS |
PixArtHC | 0:2a85075b8467 | 36 | { |
PixArtHC | 0:2a85075b8467 | 37 | public: |
PixArtHC | 1:95917b856631 | 38 | Pixart_OTS(Serial &pc, Pixart_ComPort *comPort, Pixart_OTS_GrabData *grabData, Pixart_OTS_Task *task, const std::vector<Pixart_OTS_Register> &initRegisters, const std::string &model, const std::string &HwVer); |
PixArtHC | 0:2a85075b8467 | 39 | |
PixArtHC | 0:2a85075b8467 | 40 | bool sensor_init(); |
PixArtHC | 0:2a85075b8467 | 41 | void periodic_callback(); |
PixArtHC | 0:2a85075b8467 | 42 | static int get_default_i2c_slave_address(); |
PixArtHC | 0:2a85075b8467 | 43 | std::string get_model() const; |
PixArtHC | 0:2a85075b8467 | 44 | std::string get_HwVer() const; |
PixArtHC | 0:2a85075b8467 | 45 | |
PixArtHC | 0:2a85075b8467 | 46 | private: |
PixArtHC | 0:2a85075b8467 | 47 | Serial &m_pc; |
PixArtHC | 0:2a85075b8467 | 48 | Pixart_ComPort *m_comPort; |
PixArtHC | 0:2a85075b8467 | 49 | Pixart_OTS_GrabData *m_grabData; |
PixArtHC | 1:95917b856631 | 50 | Pixart_OTS_Task *m_task; |
PixArtHC | 0:2a85075b8467 | 51 | std::vector<Pixart_OTS_Register> m_initRegisters; |
PixArtHC | 0:2a85075b8467 | 52 | std::string m_model; |
PixArtHC | 0:2a85075b8467 | 53 | std::string m_HwVer; |
PixArtHC | 0:2a85075b8467 | 54 | |
PixArtHC | 0:2a85075b8467 | 55 | int16_t m_totalX; |
PixArtHC | 0:2a85075b8467 | 56 | int16_t m_totalY; |
PixArtHC | 0:2a85075b8467 | 57 | |
PixArtHC | 0:2a85075b8467 | 58 | void print_build_info(); |
PixArtHC | 0:2a85075b8467 | 59 | }; |
PixArtHC | 0:2a85075b8467 | 60 | |
PixArtHC | 0:2a85075b8467 | 61 | Pixart_OTS* create_pixart_ots(Pixart_OTS_Model model, Serial &pc, I2C &i2c); |
PixArtHC | 0:2a85075b8467 | 62 | Pixart_OTS* create_pixart_ots(Pixart_OTS_Model model, Serial &pc, SPI &spi, DigitalOut &cs); |
PixArtHC | 1:95917b856631 | 63 | Pixart_OTS* create_pixart_ots(Pixart_OTS_Model model, Serial &pc, SPI &spi, DigitalOut &cs, DigitalOut &ldp_enl_pin); |