46 #include "task_template_list.h"
53 #ifdef USE_ACCELEROMETER
54 # define ACCEL_DATA_READY_EVENT ((uint32)(1 << 0))
56 # define ACCEL_DATA_READY_EVENT (0L)
59 #ifdef USE_MAGNETOMETER
60 # define MAG_DATA_READY_EVENT ((uint32)(1 << 1))
62 # define MAG_DATA_READY_EVENT (0L)
66 # define GYRO_DATA_READY_EVENT ((uint32)(1 << 2))
68 # define GYRO_DATA_READY_EVENT (0L)
71 #ifdef USE_PRESSURE_SENSOR
72 # define PRESSURE_DATA_READY_EVENT ((uint32)(1 << 3))
74 # define PRESSURE_DATA_READY_EVENT (0L)
77 #define MAGCAL_EVENT_FLAG (1L)
79 #define SENSOR_DATA_READY_EVENT GYRO_DATA_READY_EVENT | ACCEL_DATA_READY_EVENT | MAG_DATA_READY_EVENT | PRESSURE_DATA_READY_EVENT
80 #define HYBRID_SENSOR_DATA_READY_EVENT GYRO_DATA_READY_EVENT | MAG_DATA_READY_EVENT | PRESSURE_DATA_READY_EVENT
105 static void set_current_sample_buffer(
134 if (NULL == pSensorHandle) {
149 if (NULL == pDeviceDescriptor) {
154 if (MQX_OK != _lwsem_create(&(pDeviceDescriptor->
deviceSemaphore), 1)){
160 if (MQX_OK != _lwevent_create(&(pDeviceDescriptor->
MagCalEventStruct), LWEVENT_AUTO_CLEAR)){
165 if (MQX_OK != _lwevent_create(&(pDeviceDescriptor->
sensorLWEvent), LWEVENT_AUTO_CLEAR)){
169 #ifdef USE_MAGNETOMETER
173 #ifdef USE_PRESSURE_SENSOR
177 #ifdef USE_ACCELEROMETER
178 if ( pSensorSpecificConfig->magnetometerSensorId != pSensorSpecificConfig->accelerometerSensorId )
190 if ( pSensorSpecificConfig->magnetometerSensorId != pSensorSpecificConfig->accelerometerSensorId )
208 _task_id task_id = _task_get_id_from_name(
"fusion_task");
209 pointer td = _task_get_td(task_id);
211 _task_set_parameter_for((
uint32)pSensorHandle, task_id);
216 _task_id task_id = _task_get_id_from_name(
"magcal_task");
217 pointer td = _task_get_td(task_id);
219 _task_set_parameter_for((
uint32)pSensorHandle, task_id);
252 if ((NULL == pSensorHandle) || (NULL == pSensorSettings)) {
263 samplePeriod = (pSensorSettings->
nSamplePeriod) / (pSpecificSettings->algorithmConfig.gyroOversampleRatio);
268 if ( pSpecificSettings->magnetometerSensorId == pSpecificSettings->accelerometerSensorId )
270 if (pSpecificSettings->algorithmConfig.magOversampleRatio != pSpecificSettings->algorithmConfig.accelOversampleRatio )
276 retStat = pDeviceDescriptor->gyroHandle.pSensorStaticConfig->pAdapter->control.ValidateSettings(&(pDeviceDescriptor->gyroHandle), &settings);
316 if ((NULL == pSensorHandle) || (NULL == pSensorSettings)) {
326 if ((NULL == pDeviceDescriptor) || (NULL == pSpecificSettings))
336 goto unlockdescriptor;
339 #ifdef USE_MAGNETOMETER
343 if ( pSpecificSettings->magnetometerSensorId != pSpecificSettings->accelerometerSensorId )
354 &(pDeviceDescriptor->magFifo),
362 #ifdef USE_PRESSURE_SENSOR
365 &pDeviceDescriptor->pressureFifo,
372 #ifdef USE_ACCELEROMETER
373 if ( pSpecificSettings->magnetometerSensorId != pSpecificSettings->accelerometerSensorId )
377 &(pDeviceDescriptor->accelFifo),
388 &(pDeviceDescriptor->gyroFifo),
395 #ifdef USE_ACCELEROMETER
399 if ( pSpecificSettings->magnetometerSensorId != pSpecificSettings->accelerometerSensorId )
409 &(pDeviceDescriptor->accelHandle),
411 &(pDeviceDescriptor->accelFifo));
416 &(pDeviceDescriptor->accelHandle),
418 &(pDeviceDescriptor->accelFifo));
424 #ifdef USE_MAGNETOMETER
429 if ( pSpecificSettings->magnetometerSensorId != pSpecificSettings->accelerometerSensorId )
444 &pDeviceDescriptor->magHandle,
446 &pDeviceDescriptor->magFifo
451 &(pDeviceDescriptor->magHandle),
453 &(pDeviceDescriptor->magFifo));
469 &(pDeviceDescriptor->gyroHandle),
471 &(pDeviceDescriptor->gyroFifo)
477 goto unlockdescriptor;
482 #ifdef USE_PRESSURE_SENSOR
492 &pDeviceDescriptor->pressureHandle,
494 &pDeviceDescriptor->pressureFifo
500 goto unlockdescriptor;
531 if (NULL == pSensorHandle) {
541 if (NULL == pDeviceDescriptor)
552 goto unlockdescriptor;
555 #ifdef USE_MAGNETOMETER
566 #ifdef USE_PRESSURE_SENSOR
570 pst =
start_sensor(&(pDeviceDescriptor->pressureHandle));
576 #ifdef USE_ACCELEROMETER
579 if ( pSpecificSettings->magnetometerSensorId != pSpecificSettings->accelerometerSensorId )
624 if (NULL == pSensorHandle) {
634 if (NULL == pDeviceDescriptor)
645 goto unlockdescriptor;
648 #ifdef USE_MAGNETOMETER
652 mst =
stop_sensor(&(pDeviceDescriptor->magHandle));
658 #ifdef USE_PRESSURE_SENSOR
662 pst =
stop_sensor(&(pDeviceDescriptor->pressureHandle));
668 #ifdef USE_ACCELEROMETER
671 if ( pSpecificSettings->magnetometerSensorId != pSpecificSettings->accelerometerSensorId )
673 ast =
stop_sensor(&(pDeviceDescriptor->accelHandle));
684 gst =
stop_sensor(&(pDeviceDescriptor->gyroHandle));
733 if(NULL == pSensorHandle){
745 #ifdef USE_PRESSURE_SENSOR
749 #ifdef USE_ACCELEROMETER
750 if ( pSpecificSettings->magnetometerSensorId != pSpecificSettings->accelerometerSensorId )
788 uint32 signalledEvents = _lwevent_get_signalled();
790 if (pState->softReset)
793 pState->softReset = 0;
796 #ifdef USE_ACCELEROMETER
799 ((pSpecificSettings->magnetometerSensorId == pSpecificSettings->accelerometerSensorId) && (signalledEvents &
MAG_DATA_READY_EVENT))
804 if ( pSpecificSettings->magnetometerSensorId != pSpecificSettings->accelerometerSensorId )
806 pAccelFifo = &(pDesc->accelFifo);
810 pAccelFifo = &(pDesc->magFifo);
820 int8 sampleCount = 0;
823 if ( pSpecificSettings->magnetometerSensorId == pSpecificSettings->accelerometerSensorId )
825 pSample = &tmpSample;
834 if ( pSpecificSettings->magnetometerSensorId == pSpecificSettings->accelerometerSensorId )
840 pSample = pSampleIter;
847 sumX += pState->thisAccel.fGpFast[
X];
848 sumY += pState->thisAccel.fGpFast[
Y];
849 sumZ += pState->thisAccel.fGpFast[
Z];
854 pState->accelTimestamp = pSample->
timestamp;
856 if ( pSpecificSettings->magnetometerSensorId != pSpecificSettings->accelerometerSensorId )
862 pState->thisAccel.fGp[
X] = sumX / sampleCount;
863 pState->thisAccel.fGp[
Y] = sumY / sampleCount;
864 pState->thisAccel.fGp[
Z] = sumZ / sampleCount;
866 pState->thisAccel.iGp[
X] = pState->thisAccel.fGp[
X] * 10000.0F;
867 pState->thisAccel.iGp[
Y] = pState->thisAccel.fGp[
Y] * 10000.0F;
868 pState->thisAccel.iGp[
Z] = pState->thisAccel.fGp[
Z] * 10000.0F;
873 #ifdef USE_MAGNETOMETER
874 if (signalledEvents & MAG_DATA_READY_EVENT)
883 int8 sampleCount = 0;
886 if ( pSpecificSettings->magnetometerSensorId == pSpecificSettings->accelerometerSensorId )
888 pSample = &tmpSample;
897 if ( pSpecificSettings->magnetometerSensorId == pSpecificSettings->accelerometerSensorId )
903 pSample = pSampleIter;
910 sumX += pState->thisMag.fBpFast[
X];
911 sumY += pState->thisMag.fBpFast[
Y];
912 sumZ += pState->thisMag.fBpFast[
Z];
916 pState->magTimestamp = pSample->
timestamp;
920 pState->thisMag.fBp[
X] = sumX / sampleCount;
921 pState->thisMag.fBp[
Y] = sumY / sampleCount;
922 pState->thisMag.fBp[
Z] = sumZ / sampleCount;
930 pState->thisMag.iBp[
X] = (
int16)(pState->thisMag.fBp[
X] * 10.0F);
931 pState->thisMag.iBp[
Y] = (
int16)(pState->thisMag.fBp[
Y] * 10.0F);
932 pState->thisMag.iBp[
Z] = (
int16)(pState->thisMag.fBp[
Z] * 10.0F);
939 #ifdef USE_PRESSURE_SENSOR
951 pState->thisPressure.fHp = pPressureSample->
altitude;
954 pState->pressureTimestamp = pPressureSample->
timestamp;
983 pState->gyroTimestamp = pGyroSample->
timestamp;
997 initiatemagcal =
Fusion_Run(pState, &(pSpecificSettings->algorithmConfig));
999 if ( pSpecificSettings->magnetometerSensorId == pSpecificSettings->accelerometerSensorId )
1025 set_current_sample_buffer(¤tSampleBuffer, pState, pSpecificSettings);
1031 ¤tSampleBuffer,
1062 if (NULL == pSensorHandle) {
1080 _mqx_uint readyFlags;
1082 if ( pSpecificSettings->magnetometerSensorId == pSpecificSettings->accelerometerSensorId )
1131 #if defined COMPUTE_6DOF_GB_BASIC || defined COMPUTE_9DOF_GBY_KALMAN
1147 void *pNativeSample,
1148 void *pConvertedSample,
1162 switch (convertToType)
1165 pConverter = accel_converter;
1168 pConverter = mag_converter;
1171 pConverter = gyro_converter;
1174 pConverter = quaternion_converter;
1177 pConverter = euler_converter;
1180 pConverter = dircosine_converter;
1186 if (pConverter == NULL) {
1190 retStat = pConverter(
1192 (fsl_orientation_DataBuffer_t *)pNativeSample,
1203 convertedSample->
scalar = nativeSample->
fq.
q0;
1204 convertedSample->
xvect = nativeSample->
fq.
q1;
1205 convertedSample->
yvect = nativeSample->
fq.
q2;
1206 convertedSample->
zvect = nativeSample->
fq.
q3;
1214 convertedSample->
fThe = nativeSample->
fThe;
1215 convertedSample->
fPhi = nativeSample->
fPhi;
1216 convertedSample->
fPsi = nativeSample->
fPsi;
1240 convertedSample->
accel[0] = nativeSample->accelData.accel[0];
1241 convertedSample->
accel[1] = nativeSample->accelData.accel[1];
1242 convertedSample->
accel[2] = nativeSample->accelData.accel[2];
1249 convertedSample->
fieldStrength[0] = nativeSample->magData.fieldStrength[0];
1250 convertedSample->
fieldStrength[1] = nativeSample->magData.fieldStrength[1];
1251 convertedSample->
fieldStrength[2] = nativeSample->magData.fieldStrength[2];
1258 convertedSample->
angularVelocity[0] = nativeSample->gyroData.angularVelocity[0];
1259 convertedSample->
angularVelocity[1] = nativeSample->gyroData.angularVelocity[1];
1260 convertedSample->
angularVelocity[2] = nativeSample->gyroData.angularVelocity[2];
1264 void set_current_sample_buffer(
1273 #ifdef USE_PRESSURE_SENSOR
1274 pCurrentSampleBuffer->pressure = pState->thisPressure.fHp;
1276 #ifdef USE_ACCELEROMETER
1282 #ifdef USE_MAGNETOMETER
1283 #ifdef USE_CALIBRATED_MAG_VALUES
1284 pCurrentSampleBuffer->magData.fieldStrength[0] = pState->
thisMag.
fBc[0];
1285 pCurrentSampleBuffer->magData.fieldStrength[1] = pState->
thisMag.
fBc[1];
1286 pCurrentSampleBuffer->magData.fieldStrength[2] = pState->
thisMag.
fBc[2];
1288 pCurrentSampleBuffer->magData.fieldStrength[0] = pState->
thisMag.
fBpFast[0];
1289 pCurrentSampleBuffer->magData.fieldStrength[1] = pState->
thisMag.
fBpFast[1];
1290 pCurrentSampleBuffer->magData.fieldStrength[2] = pState->
thisMag.
fBpFast[2];
1294 #ifdef USE_GYROMETER
1295 pCurrentSampleBuffer->gyroData.angularVelocity[0] = pState->
thisGyro.
fYpBuffer[latestGyroSampleIdx][0];
1296 pCurrentSampleBuffer->gyroData.angularVelocity[1] = pState->
thisGyro.
fYpBuffer[latestGyroSampleIdx][1];
1297 pCurrentSampleBuffer->gyroData.angularVelocity[2] = pState->
thisGyro.
fYpBuffer[latestGyroSampleIdx][2];
1303 #ifdef COMPUTE_3DOF_G_BASIC
1312 pCurrentSampleBuffer->
fDelta = 0.0;
1321 pCurrentSampleBuffer->
faSe[i] = 0.0;
1322 pCurrentSampleBuffer->
fbErr[i] = 0.0;
1323 pCurrentSampleBuffer->
fb[i] = 0.0;
1324 pCurrentSampleBuffer->
fThErr[i] = 0.0;
1334 #ifdef COMPUTE_3DOF_B_BASIC
1342 pCurrentSampleBuffer->
fDelta = 0.0;
1351 pCurrentSampleBuffer->
faSe[i] = 0.0;
1352 pCurrentSampleBuffer->
fbErr[i] = 0.0;
1353 pCurrentSampleBuffer->
fb[i] = 0.0;
1354 pCurrentSampleBuffer->
fThErr[i] = 0.0;
1364 #ifdef COMPUTE_3DOF_Y_BASIC
1372 pCurrentSampleBuffer->
fDelta = 0.0;
1381 pCurrentSampleBuffer->
faSe[i] = 0.0;
1382 pCurrentSampleBuffer->
fbErr[i] = 0.0;
1383 pCurrentSampleBuffer->
fb[i] = 0.0;
1384 pCurrentSampleBuffer->
fThErr[i] = 0.0;
1395 #ifdef COMPUTE_6DOF_GB_BASIC
1412 pCurrentSampleBuffer->
faSe[i] = 0.0;
1413 pCurrentSampleBuffer->
fbErr[i] = 0.0;
1414 pCurrentSampleBuffer->
fb[i] = 0.0;
1415 pCurrentSampleBuffer->
fThErr[i] = 0.0;
1431 #ifdef COMPUTE_6DOF_GY_KALMAN
1439 pCurrentSampleBuffer->
fDelta = 0.0;
1463 #ifdef COMPUTE_9DOF_GBY_KALMAN
1472 pCurrentSampleBuffer->
fDelta = 0.0;
isf_timestamp_t timestamp
isf_orientation_euler_deg_float_t fPsi
void Fusion_Init(fusion_state_t *pState)
#define ACCEL_HAL_X_INDEX
void * pSensorSpecificSettings
isf_dsa_status_t fsl_fusion_virt_3D_orient_Initialize(isf_SensorHandle_t *pSensorHandle)
This is the concrete implementation of the orientation sensor adapter initialization.
fsl_i2c_master_driver.h defines structures and types for the i2c master driver.
#define ACCEL_GET_HAL_Z_VALUE(v)
isf_orientation_euler_deg_float_t fThe
int32 stop_sensor(isf_SensorHandle_t *pSensorAdapterHandle)
int8 Fusion_Run(fusion_state_t *pState, fusion_algorithmConfig_t *pAlgorithmConfig)
isf_timestamp_t timestamp
Standard fixed type for three axis accelerometers.
The isf_magnetometer_types.h file contains the ISF data type definitions for use with the ISF generic...
#define ACCEL_GET_HAL_X_VALUE(v)
isf_SensorDataTypes_t fsl_fusion_SupportedDataTypes[]
isf_dsa_status_t fsl_fusion_virt_3D_orient_Configure(isf_SensorHandle_t *pSensorHandle, isf_dsa_SensorSettings_t *pSensorSettings)
This is the concrete implementation of the fusion sensor adapter configuration function.
#define SENSOR_DATA_READY_EVENT
isf_timestamp_t timestamp
isf_dsa_ControlData_t controlData
isf_fifo_status_t isf_fifo_lock(isf_fifo_t *pFifo)
Lock a sample buffer for exclusive access.
quaternion_type algorithmToUse
void fsl_MagCal_task(uint32_t task_init_data)
uint8 gyroOversampleRatio
isf_fifo_status_t isf_fifo_unlock(isf_fifo_t *pFifo)
Release the exclusive access lock on a sample buffer.
isf_orientation_euler_deg_float_t fPhi
const isf_dsa_Adapter_t * pAdapter
isf_timestamp_t timestamp
struct SV_9DOF_GBY_KALMAN thisSV_9DOF_GBY_KALMAN
isf_fifo_status_t isf_fifo_el_increment(isf_fifo_t *pFifo)
Routine increments the insert pointer after direct access.
isf_sensors.h contains the ISF Generic Sensor definitions and data structures required when a client ...
isf_SensorTypes_t fsl_fusion_SupportedSensorTypes[]
Supported sensor and data types for the orientation sensor.
struct AccelSensor thisAccel
isf_fieldStrength_uT_float_t fieldStrength[3]
API definitions, types, and macros for the Intelligent Sensing Framework (ISF) Bus Manager (BM)...
isf_altitude_meters_float_t altitude
isf_orientation_quaternion_float_t xvect
This defines the DSA sensor device handle structure used to invoke the adapter access functions...
isf_fifo_status_t isf_fifo_el_clear(isf_fifo_t *pFifo)
Routine to clear the fifo.
isf_timestamp_t timestamp
isf_dsa_result_types_t resultFormat
The format of the data to be returned- 0=RAW, 1=FIXED, 2=FLOAT.
isf_timestamp_t gyroTimestamp
#define MAG_DATA_READY_EVENT
uint8 accelOversampleRatio
unsigned long uint32
This defines uint32 as unsigned long.
fusion_state_t fusionState
struct SV_6DOF_GY_KALMAN thisSV_6DOF_GY_KALMAN
isf_orientation_quaternion_float_t yvect
isf_dsa_status_t fsl_fusion_virt_3D_orient_Shutdown(isf_SensorHandle_t *pSensorHandle)
This is the concrete implementation of the orientation sensor adapter for shutdown ...
isf_orientation_quaternion_float_t scalar
uint8 nFifoDepth
1 = no FIFO, or another value < SM_MAX_FIFO_DEPTH
The isf_types.h file contains the ISF data type definitions and some of the globally used macros...
isf_dsa_status_t fsl_fusion_virt_3D_orient_EndData(isf_SensorHandle_t *pSensorHandle)
This is the concrete implementation of the orientation sensor adapter for End Data.
#define HYBRID_SENSOR_DATA_READY_EVENT
isf_dsa_DeviceInfoBlock_t devInfo
int32 isf_dsa_status_t
This is the Sensor Manager API return type definition.
The isf_gyrometer_types.h file contains the ISF data type definitions for use with the ISF generic gy...
#define MAG_GET_HAL_Z_VALUE(v)
Standard fixed type for three axis accelerometers.
isf_timestamp_t accelTimestamp
isf_acceleration_g_float_t accel[3]
#define ACCEL_HAL_Z_INDEX
The isf_sensor_types.h contains the enumerated list of sensor types used by ISF.
int32 init_sensor(uint8 nSensorID, isf_SensorHandle_t *pSensorAdapterHandle, LWEVENT_STRUCT *pEventGroup, uint32 nEventFieldIndex)
This function initializes the sensor adapters in the absence of the Sensor Manager.
struct SV_3DOF_B_BASIC thisSV_3DOF_B_BASIC
The isf_util.h file contains the utility method declarations and macros.
enum isf_dsa_result_enums isf_dsa_result_types_t
int32 configure_sensor(isf_SensorHandle_t *pSensorAdapterHandle, isf_SubscriptionSettings_t *pRequiredSettings, isf_fifo_t *pfifo)
uint32 float32_To_AcFixed(float fN, uint8 W, uint8 I, uint8 S, int32 *status)
This function converts an IEEE-754 32-bit floating point number into a fixed point integer format...
int32 start_sensor(isf_SensorHandle_t *pSensorAdapterHandle)
#define ACCEL_GET_HAL_Y_VALUE(v)
LWEVENT_STRUCT sensorLWEvent
const uint8_t * mqx_task_stack_pointers[]
isf_orientation_quaternion_float_t zvect
float fYpBuffer[GYRO_OVERSAMPLE_RATIO][3]
isf_fifo_status_t isf_fifo_init(isf_fifo_t *pFifo, void *pData, uint16 sampleSize, uint16 bufferCapacity)
Initializes a new fifo structure with a provided buffer.
quaternion_type algorithmToUse
The fusion_config.h file contains additional static configuration for the Sensor Fusion based Virtual...
isf_dsa_result_types_t resultFormat
fusion_algorithmConfig_t algorithmConfig
#define MAG_GET_HAL_Y_VALUE(v)
#define PRESSURE_DATA_READY_EVENT
isf_orientation_rot_float_t rMatrix[3][3]
const isf_SensorConfig_t * pSensorStaticConfig
int32 convert_sensor_data(isf_SensorHandle_t *pSensorAdapterHandle, isf_SensorDataTypes_t convertToType, isf_dsa_result_types_t resultType, void *nativeSample, void *convertedSample)
long int32
This defines int32 as long.
struct SV_6DOF_GB_BASIC thisSV_6DOF_GB_BASIC
#define GYRO_DATA_READY_EVENT
isf_SensorDataTypes_t resultType
The desired data type of the subscription.
isf_timestamp_t timestamp
isf_SensorDataTypes_t resultType
Main ISF header file. Contains code common to all ISF components.
LWEVENT_STRUCT * pEventGroup
short int16
This defines int16 as short.
isf_dsa_AdapterStatus_t adapterStatus
isf_dsa_status_t fsl_fusion_virt_3D_orient_ValidateSettings(isf_SensorHandle_t *pSensorHandle, isf_dsa_SensorSettings_t *pSensorSettings)
This is the concrete implementation of the orientation sensor adapter for validating current settings...
void fsl_fusion_virt_3D_orient_PeriodicCallback(void *pSensorHandle)
The orientation sensor adapter's periodic processing function.
uint8 nSettingsToUse
1 = current; 2=given; 3=best possible
Standard float type for three axis accelerometers.
isf_dsa_status_t fsl_fusion_virt_3D_orient_StartData(isf_SensorHandle_t *pSensorHandle)
This is the concrete implementation of the orientation sensor adapter for start Data.
#define GYRO_GET_HAL_Y_VALUE(v)
uint32 nSamplePeriod
Sample period in microseconds.
isf_timestamp_t magTimestamp
struct SV_3DOF_G_BASIC thisSV_3DOF_G_BASIC
#define ACCEL_DATA_READY_EVENT
isf_fifo_t * pSampleBufferInfo
#define GYRO_GET_HAL_X_VALUE(v)
#define MAGCAL_EVENT_FLAG
unsigned short uint16
This defines uint16 as unsigned short.
isf_timestamp_t timestamp
#define GYRO_GET_HAL_Z_VALUE(v)
isf_gyrometer_dps_float_t angularVelocity[3]
int32 isf_status_t
ISF return status type.
void fsl_fusion_task(uint32_t task_init_data)
Standard floating point type for single axis altitude sensor.
void MagCal_Run(fusion_state_t *pState)
This defines the DSA sensor configuration parameter structure configuring the sensor settings by a su...
isf_comm.h defines the common types for the Communications Service Family of the Intelligent Sensing ...
isf_timestamp_t timestamp
isf_dsa_SensorSettings_t sensorSettings
struct SV_3DOF_Y_BASIC thisSV_3DOF_Y_BASIC
struct GyroSensor thisGyro
#define MAG_GET_HAL_X_VALUE(v)
#define ISF_FIFO_NO_MORE_ENTRIES
void * isf_fifo_el_get_insert_pointer(isf_fifo_t *pFifo)
Routine returns the insert pointer for direct access.
isf_dsa_status_t fsl_fusion_virt_3D_orient_Convert(volatile isf_SensorHandle_t *pSensorHandle, isf_SensorDataTypes_t convertToType, isf_dsa_result_types_t resultType, void *pNativeSample, void *pConvertedSample, int32 *numBytes)
This function coverts the raw sample data to the desired output type.
int32 shutdown_sensor(isf_SensorHandle_t *pSensorAdapterHandle)
LWEVENT_STRUCT MagCalEventStruct
LWSEM_STRUCT deviceSemaphore
The isf_accelerometer_types.h file contains the ISF data type definitions for use with the ISF generi...
#define ACCEL_HAL_Y_INDEX
isf_fifo_status_t isf_fifo_el_traverse(isf_fifo_t *pFifo, void **pSamplePtr)
Routine to traverse a fifo To initiate the traversal set pSamplePtr to NULL. The function will set th...
isf_dsa_status_t fsl_fusion_virt_3D_orient_Calibrate(isf_SensorHandle_t *pSensorHandle, void *pCalData)
This is the concrete implementation of the orientation sensor adapter for calibration ...