![]() |
ISSDK
1.8
IoT Sensing Software Development Kit
|
The fxpq3115_demo.c file implements the ISSDK FXPQ3115 sensor demo example demonstration with One-Shot mode. More...
#include "board.h"
#include "pin_mux.h"
#include "clock_config.h"
#include "Driver_I2C.h"
#include "Driver_USART.h"
#include "issdk_hal.h"
#include "gpio_driver.h"
#include "fxpq3115_drv.h"
#include "host_io_uart.h"
#include "systick_utils.h"
#include "auto_detection_service.h"
Go to the source code of this file.
Macros | |
#define | FXPQ3115_DATA_SIZE 5 /* 3 byte Pressure and 2 byte Temperature. */ |
#define | FXPQ3115_STREAM_DATA_SIZE 10 /* 6 byte Data */ |
#define | LED_TOGGLE_RATE 100 /* Toggle LED after every 100 samples. */ |
#define | APPLICATION_NAME "FXPQ3115BV BIO Pressure Demo" |
Unique Name for this application which should match the target GUI pkg name. More... | |
#define | APPLICATION_VERSION "2.5" |
Version to distinguish between instances the same application based on target Shield and updates. More... | |
Functions | |
void | fxpq3115_int_data_ready_callback (void *pUserData) |
bool | process_host_command (uint8_t tag, uint8_t *hostCommand, uint8_t *hostResponse, size_t *hostMsgSize, size_t respBufferSize) |
int | main (void) |
Main function. More... | |
Variables | |
const registerwritelist_t | cMpl3115ConfigINT [] |
Register settings for Interrupt (non buffered) Enablement with ONe-Shot Mode. More... | |
const registerwritelist_t | cMpl3115SetOST [] |
Register settings for Triggring One-Shot Sampling. More... | |
const registerreadlist_t | cMpl3115OutputNormal [] |
Address and size of Raw Pressure+Temperature Data in Normal Mode. More... | |
char | boardString [ADS_MAX_STRING_LENGTH] = {0} |
char | shieldString [ADS_MAX_STRING_LENGTH] = {0} |
char | embAppName [ADS_MAX_STRING_LENGTH] = {0} |
volatile bool | bStreamingEnabled = false |
volatile bool | bMpl3115DataReady = false |
volatile bool | bMpl3115Ready = false |
uint8_t | gStreamID |
int32_t | gSystick |
GENERIC_DRIVER_GPIO * | pGpioDriver = &Driver_GPIO_KSDK |
The fxpq3115_demo.c file implements the ISSDK FXPQ3115 sensor demo example demonstration with One-Shot mode.
Definition in file fxpq3115_demo.c.
#define APPLICATION_NAME "FXPQ3115BV BIO Pressure Demo" |
Unique Name for this application which should match the target GUI pkg name.
Definition at line 46 of file fxpq3115_demo.c.
Referenced by main().
#define APPLICATION_VERSION "2.5" |
Version to distinguish between instances the same application based on target Shield and updates.
Definition at line 48 of file fxpq3115_demo.c.
Referenced by main().
Definition at line 41 of file fxpq3115_demo.c.
Referenced by main().
#define FXPQ3115_STREAM_DATA_SIZE 10 /* 6 byte Data */ |
Definition at line 42 of file fxpq3115_demo.c.
Referenced by main().
#define LED_TOGGLE_RATE 100 /* Toggle LED after every 100 samples. */ |
Definition at line 43 of file fxpq3115_demo.c.
Referenced by main().
void fxpq3115_int_data_ready_callback | ( | void * | pUserData | ) |
Set flag to indicate Sensor has signalled data ready.
Definition at line 94 of file fxpq3115_demo.c.
References bMpl3115DataReady.
Referenced by main().
int main | ( | void | ) |
Main function.
Initialize the MCU hardware.
Initialize INT1 FXPQ3115 pin used by FRDM board
Initialize GREEN LED pin used by FRDM board
Initialize the I2C driver.
Set the I2C Power mode.
Set the I2C bus speed.
Initialize the UART driver.
Set the UART Power mode.
Set UART Baud Rate.
Initialize the FXPQ3115 sensor driver.
Set the task to be executed while waiting for I2C transactions to complete.
We do not call FXPQ3115_I2C_Configure() in this case as we are going to read samples on demand. We explicitly only enable ISR settings.
Initialize streaming and assign a Stream ID.
Populate streaming header.
Clear the data ready flag, it will be set again by the ODR CB.
Read raw sensor data from the FXPQ3115.
Convert the raw sensor data to signed 32-bit and 16-bit containers for display to the debug port.
Definition at line 183 of file fxpq3115_demo.c.
References ADS_MAX_STRING_LENGTH, APPLICATION_NAME, APPLICATION_VERSION, bMpl3115DataReady, bMpl3115Ready, BOARD_BootClockRUN, BOARD_DEBUG_UART_BAUDRATE, BOARD_RunADS(), BOARD_SystickElapsedTime_us(), BOARD_SystickEnable(), boardString, bStreamingEnabled, GENERIC_DRIVER_GPIO::clr_pin, data, fxpq3115_i2c_sensorhandle_t::deviceInfo, embAppName, FXPQ3115_DATA_SIZE, FXPQ3115_I2C_ADDR, FXPQ3115_I2C_Initialize(), FXPQ3115_I2C_ReadData(), FXPQ3115_I2C_SetIdleTask(), FXPQ3115_INT1, fxpq3115_int_data_ready_callback(), FXPQ3115_STREAM_DATA_SIZE, FXPQ3115_WHOAMI_VALUE, GPIO_DIRECTION_IN, GPIO_DIRECTION_OUT, GREEN_LED, gStreamID, gSystick, HOST_FORMAT_HDLC, Host_IO_Add_ISO_Header(), Host_IO_Init(), Host_IO_Receive(), Host_IO_Send(), HOST_S_DRIVER, HOST_S_SIGNAL_EVENT, I2C_S_DEVICE_INDEX, I2C_S_DRIVER, I2C_S_SIGNAL_EVENT, int32_t(), LED_TOGGLE_RATE, fxpq3115_i2c_sensorhandle_t::pCommDrv, GENERIC_DRIVER_GPIO::pin_init, fxpq3115_pressuredata_t::pressure, process_host_command(), rawData, SENSOR_ERROR_NONE, Sensor_I2C_Write(), SHIELD_NAME, shieldString, fxpq3115_i2c_sensorhandle_t::slaveAddress, SMC, SMC_SetPowerModeVlpr(), SMC_SetPowerModeWait(), status, STREAMING_HEADER_LEN, streamingPacket, fxpq3115_pressuredata_t::temperature, fxpq3115_pressuredata_t::timestamp, fxos8700_accelmagdata_t::timestamp, and GENERIC_DRIVER_GPIO::toggle_pin.
bool process_host_command | ( | uint8_t | tag, |
uint8_t * | hostCommand, | ||
uint8_t * | hostResponse, | ||
size_t * | hostMsgSize, | ||
size_t | respBufferSize | ||
) |
Definition at line 100 of file fxpq3115_demo.c.
References bMpl3115Ready, BOARD_SystickStart(), boardString, bStreamingEnabled, GENERIC_DRIVER_GPIO::clr_pin, embAppName, GREEN_LED, gStreamID, gSystick, HOST_CMD_START, HOST_CMD_STOP, HOST_MSG_CMD_ACT_OFFSET, HOST_MSG_LEN_LSB_OFFSET, HOST_PRO_CMD_W_CFG_TAG, HOST_PRO_INT_CMD_TAG, HOST_PRO_INT_DEV_TAG, and shieldString.
Referenced by main().
volatile bool bMpl3115DataReady = false |
Definition at line 85 of file fxpq3115_demo.c.
Referenced by fxpq3115_int_data_ready_callback(), and main().
volatile bool bMpl3115Ready = false |
Definition at line 85 of file fxpq3115_demo.c.
Referenced by main(), and process_host_command().
char boardString[ADS_MAX_STRING_LENGTH] = {0} |
Definition at line 83 of file fxpq3115_demo.c.
Referenced by main(), and process_host_command().
volatile bool bStreamingEnabled = false |
Definition at line 85 of file fxpq3115_demo.c.
Referenced by main(), and process_host_command().
const registerwritelist_t cMpl3115ConfigINT[] |
Register settings for Interrupt (non buffered) Enablement with ONe-Shot Mode.
Definition at line 54 of file fxpq3115_demo.c.
const registerreadlist_t cMpl3115OutputNormal[] |
Address and size of Raw Pressure+Temperature Data in Normal Mode.
Definition at line 77 of file fxpq3115_demo.c.
const registerwritelist_t cMpl3115SetOST[] |
Register settings for Triggring One-Shot Sampling.
Definition at line 71 of file fxpq3115_demo.c.
char embAppName[ADS_MAX_STRING_LENGTH] = {0} |
Definition at line 84 of file fxpq3115_demo.c.
Referenced by main(), and process_host_command().
uint8_t gStreamID |
Definition at line 86 of file fxpq3115_demo.c.
Referenced by main(), and process_host_command().
int32_t gSystick |
Definition at line 87 of file fxpq3115_demo.c.
Referenced by main(), and process_host_command().
GENERIC_DRIVER_GPIO* pGpioDriver = &Driver_GPIO_KSDK |
Definition at line 88 of file fxpq3115_demo.c.
char shieldString[ADS_MAX_STRING_LENGTH] = {0} |
Definition at line 83 of file fxpq3115_demo.c.
Referenced by main(), and process_host_command().