// HAL_OK = 0x00, // HAL_ERROR = 0x01, // HAL_BUSY = 0x02, // HAL_TIMEOUT = 0x03 HAL_StatusTypeDef init_lepton_command_interface(void) { LEP_RESULT result; result = LEP_OpenPort(0, LEP_CCI_TWI, 400, &hport_desc); if (result != LEP_OK) { DEBUG_PRINTF("Could not open Lepton I2C port! %d\r\n", result); return HAL_ERROR; } DEBUG_PRINTF("Lepton I2C command interface opened, device %02x\r\n", hport_desc.deviceAddress); if (print_sdk_version() != HAL_OK) return HAL_ERROR; if (print_cust_serial_number() != HAL_OK) return HAL_ERROR; if (print_flir_serial_number() != HAL_OK) return HAL_ERROR; if (print_camera_uptime() != HAL_OK) return HAL_ERROR; if (print_fpa_temp_celcius() != HAL_OK) return HAL_ERROR; if (print_aux_temp_celcius() != HAL_OK) return HAL_ERROR; return HAL_OK; }
int lepton_connect() { LEP_OpenPort(1, LEP_CCI_TWI, 400, &_port); _connected = true; return 0; }
void FLIR_Tasks ( void ) { LEP_RESULT result; /* Check the application's current state. */ switch ( flirData.state ) { /* Application's initial state. */ case FLIR_STATE_INIT: { bool appInitialized = true; if (flirData.handleTmrDrv == DRV_HANDLE_INVALID) { flirData.handleTmrDrv = DRV_TMR_Open(FLIR_TMR_DRV, DRV_IO_INTENT_EXCLUSIVE); appInitialized &= ( DRV_HANDLE_INVALID != flirData.handleTmrDrv ); } if (appInitialized) { TimerSetup(); BSP_LEDOn(BSP_LED_1); flirData.state = FLIR_OPEN_PORT; } break; } case FLIR_OPEN_PORT: { BSP_LEDOn(BSP_LED_2); result = LEP_OpenPort(0, LEP_CCI_TWI, #ifdef BB_ENABLED DRV_I2C_BIT_BANG_BAUD_RATE_IDX0 #else DRV_I2C_BAUD_RATE_IDX0 #endif /1000,&flirData.lepton.cameraPort); if(result != LEP_OK) { flirData.state = FLIR_ERROR; } else { BSP_LEDOff(BSP_LED_1); BSP_LEDOff(BSP_LED_2); BSP_LEDOff(BSP_LED_3); BSP_LEDOn(BSP_LED_4); flirData.state = FLIR_STATE_SERVICE_TASKS; } break; } case FLIR_STATE_SERVICE_TASKS: { LedTask(); break; } /* TODO: implement your application state machine.*/ case FLIR_ERROR: default: { BSP_LEDOn(BSP_LED_1); BSP_LEDOn(BSP_LED_2); BSP_LEDOn(BSP_LED_3); BSP_LEDOn(BSP_LED_4); break; } } }