drivers/sensors: Update BOSON driver to use csi pointer.

This commit is contained in:
Kwabena W. Agyeman 2025-06-23 12:05:21 -07:00
parent 899d645e69
commit 6348cce98e
3 changed files with 17 additions and 4 deletions

View File

@ -17,6 +17,10 @@
#include <stdlib.h>
#include <stdint.h>
#include "omv_csi.h"
// Set the omv_csi_t pointer to use for serial port operations.
void FSLP_set_csi(omv_csi_t *csi);
// open port by id, using specified baud_rate.
// passes library errors up, 0 on success.

View File

@ -34,19 +34,24 @@
#include "serialPortAdapter.h"
#include "py/mphal.h"
#include "omv_csi.h"
#include "sc16is741a.h"
static omv_csi_t *omv_csi = NULL;
void FSLP_set_csi(omv_csi_t *csi) {
omv_csi = csi;
}
static uint8_t read_reg(uint8_t addr){
uint8_t buf;
omv_i2c_write_bytes(csi.i2c, csi.slv_addr, &addr, 1, OMV_I2C_XFER_NO_STOP);
omv_i2c_read_bytes(csi.i2c, csi.slv_addr, &buf, 1, OMV_I2C_XFER_NO_FLAGS);
omv_i2c_write_bytes(omv_csi->i2c, omv_csi->slv_addr, &addr, 1, OMV_I2C_XFER_NO_STOP);
omv_i2c_read_bytes(omv_csi->i2c, omv_csi->slv_addr, &buf, 1, OMV_I2C_XFER_NO_FLAGS);
return buf;
}
static void write_reg(uint8_t addr, uint8_t data) {
uint8_t buf[] = {addr, data};
omv_i2c_write_bytes(csi.i2c, csi.slv_addr, buf, 2, OMV_I2C_XFER_NO_FLAGS);
omv_i2c_write_bytes(omv_csi->i2c, omv_csi->slv_addr, buf, 2, OMV_I2C_XFER_NO_FLAGS);
}
uint8_t FSLP_open_port() {

View File

@ -43,6 +43,7 @@
#include "Client_API.h"
#include "UART_Connector.h"
#include "serialPortAdapter.h"
#define FLIR_BOSON_BOOT_TRY_COUNT (10)
#define FLIR_BOSON_BOOT_TIME_MS (1000)
@ -50,6 +51,7 @@
static int boson_framesize = 0;
static int reset(omv_csi_t *csi) {
FSLP_set_csi(csi);
csi->color_palette = NULL;
int i = 0;
@ -123,6 +125,8 @@ static int set_framesize(omv_csi_t *csi, omv_csi_framesize_t framesize) {
}
static int set_colorbar(omv_csi_t *csi, int enable) {
FSLP_set_csi(csi);
if (gaoSetTestRampState(enable ? FLR_ENABLE : FLR_DISABLE) != FLR_OK) {
return -1;
}