I messed up the merge, so pushing it over to another repo so I don't lose it. Will tidy up and remove later
Dependencies: BufferedSerial FatFileSystemCpp mbed
FIZ_readers/FIZReader.h@80:0b7f1b85b626, 2022-08-30 (annotated)
- Committer:
- JamieB
- Date:
- Tue Aug 30 09:33:44 2022 +0000
- Revision:
- 80:0b7f1b85b626
- Parent:
- 17:5ce3fe98e76d
Added Lens map configuration options
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AndyA | 3:14d241e29be3 | 1 | #ifndef __FIZReader_H__ |
AndyA | 3:14d241e29be3 | 2 | #define __FIZReader_H__ |
AndyA | 3:14d241e29be3 | 3 | #include "BufferedSerial.h" |
JamieB | 80:0b7f1b85b626 | 4 | #include <vector> |
AndyA | 3:14d241e29be3 | 5 | |
AndyA | 3:14d241e29be3 | 6 | class FIZReader { |
AndyA | 3:14d241e29be3 | 7 | |
AndyA | 3:14d241e29be3 | 8 | public: |
AndyA | 3:14d241e29be3 | 9 | FIZReader(const PinName Tx, const PinName Rx); |
AndyA | 16:a8d3a0dbe4bf | 10 | virtual void requestCurrent() = 0; |
AndyA | 3:14d241e29be3 | 11 | |
AndyA | 3:14d241e29be3 | 12 | /// true if the values have been updated since the last update. |
AndyA | 17:5ce3fe98e76d | 13 | // focus and zoom are in mm, iris is in 100ths of a stop |
AndyA | 16:a8d3a0dbe4bf | 14 | bool getMostRecent(uint32_t *focus, uint16_t *iris, uint16_t *zoom); |
AndyA | 3:14d241e29be3 | 15 | |
AndyA | 16:a8d3a0dbe4bf | 16 | protected: |
AndyA | 16:a8d3a0dbe4bf | 17 | int hexValue(char ascii); |
JamieB | 80:0b7f1b85b626 | 18 | unsigned int getAbsoluteValue(unsigned int encoder_pos, vector<unsigned int> &encoder_range, vector<unsigned int> &absolute_range); |
JamieB | 80:0b7f1b85b626 | 19 | uint32_t getAbsoluteFocus(uint32_t encoder_pos); |
JamieB | 80:0b7f1b85b626 | 20 | uint16_t getAbsoluteIris(uint16_t encoder_pos); |
JamieB | 80:0b7f1b85b626 | 21 | uint16_t getAbsoluteZoom(uint16_t encoder_pos); |
AndyA | 6:61274e214f46 | 22 | RawSerial _port; |
AndyA | 16:a8d3a0dbe4bf | 23 | |
AndyA | 16:a8d3a0dbe4bf | 24 | uint32_t _focus; // in mm |
AndyA | 16:a8d3a0dbe4bf | 25 | uint16_t _iris; // in 100ths of F stop |
AndyA | 16:a8d3a0dbe4bf | 26 | uint16_t _zoom; // in mm |
AndyA | 3:14d241e29be3 | 27 | bool newData; |
AndyA | 16:a8d3a0dbe4bf | 28 | |
AndyA | 3:14d241e29be3 | 29 | }; |
AndyA | 3:14d241e29be3 | 30 | |
AndyA | 3:14d241e29be3 | 31 | #endif |