1234567891011121314151617181920212223242526272829303132333435363738394041 |
- /*
- * AP_IRLock_I2C.h
- *
- */
- #pragma once
- #include "IRLock.h"
- #include <AP_HAL/AP_HAL.h>
- class AP_IRLock_I2C : public IRLock
- {
- public:
- // init - initialize sensor library
- void init(int8_t bus) override;
- // retrieve latest sensor data - returns true if new data is available
- bool update() override;
- private:
- AP_HAL::OwnPtr<AP_HAL::Device> dev;
- struct PACKED frame {
- uint16_t checksum;
- uint16_t signature;
- uint16_t pixel_x;
- uint16_t pixel_y;
- uint16_t pixel_size_x;
- uint16_t pixel_size_y;
- };
- bool timer(void);
- bool sync_frame_start(void);
- bool read_block(struct frame &irframe);
- void read_frames(void);
- void pixel_to_1M_plane(float pix_x, float pix_y, float &ret_x, float &ret_y);
- HAL_Semaphore sem;
- uint32_t _last_read_ms;
- };
|