Rohan Gurav
/
Sean_AdiSense1000_V21
ADISense1000 Version 2.1 code base
Fork of AdiSense1000_V21 by
sample_lut_data.c
- Committer:
- RGurav
- Date:
- 2018-09-18
- Revision:
- 33:640b6bebda17
File content as of revision 33:640b6bebda17:
/* * File: sample_lut_data.c * The following example illustrates how individual tables can be declared, and * later assembled into a complete LUT data structure using adi_sense_1000_AssembleLutData(). * That LUT data structure can then be written to the ADI Sense 1000 device * using adi_sense_1000_SetLutData(). */ #include "adi_sense_1000_lut_data.h" #include "adi_sense_1000_sensor_types.h" /* * The following table provide linearisation data for a 4-wire bridge sensor * identified with the ADI_SENSE_1000_ADC_SENSOR_BRIDGE_4WIRE_1_DEF_L2 * sensor type. The Look-Up Table provided maps a range of input (X) * values to a corresponding range of output (Y) values. In this example, * the bridge sensor input in millivolts is effectively translated to volts. */ ADI_SENSE_1000_LUT_DESCRIPTOR loadcell_1 = { .geometry = ADI_SENSE_1000_LUT_GEOMETRY_NES_1D, .equation = ADI_SENSE_1000_LUT_EQUATION_LUT, .dir = ADI_SENSE_1000_LUT_TC_DIRECTION_FORWARD, .sensor = ADI_SENSE_1000_ADC_SENSOR_BRIDGE_4WIRE_3_DEF_L2, .dataType = ADI_SENSE_1000_LUT_DATA_TYPE_FLOAT32, .length = 0, /* Filled by adi_sense_1000_AssembleLutData() */ .crc16 = 0 /* Filled by adi_sense_1000_AssembleLutData() */ }; ADI_SENSE_1000_LUT_1D_NES loadcell_1_data = { .nElements = 10, .lut = { -3300.0f, /* x(min) || mV */ -0.7556152f, -0.626709f, -0.5058594f, -0.3776855f, -0.1120605f, 0.5334473f, 1.1896973f, 13.340413f, +3300.0f, /* x(max) || mV */ -0.001f, /* y(min) || kg */ 0.0f, 0.1f, 0.2f, 0.3f, 0.5f, 1.0f, 1.5f, 10.0f, +100.0f, /* y(max) || kg */ }, }; ADI_SENSE_1000_LUT_DESCRIPTOR loadcell_2 = { .geometry = ADI_SENSE_1000_LUT_GEOMETRY_NES_1D, .equation = ADI_SENSE_1000_LUT_EQUATION_LUT, .dir = ADI_SENSE_1000_LUT_TC_DIRECTION_FORWARD, .sensor = ADI_SENSE_1000_ADC_SENSOR_BRIDGE_4WIRE_2_DEF_L2, .dataType = ADI_SENSE_1000_LUT_DATA_TYPE_FLOAT32, .length = 0, /* Filled by adi_sense_1000_AssembleLutData() */ .crc16 = 0 /* Filled by adi_sense_1000_AssembleLutData() */ }; ADI_SENSE_1000_LUT_1D_NES loadcell_2_data = { .nElements = 10, .lut = { -3300.0f, /* x(min) || mV */ 0.2766113f, 0.4162598f, 0.5400391f, 0.6694336f, 0.9326172f, 1.5837402f, 2.2387695f, 12.25284823f, +3300.0f, /* x(max) || mV */ -0.001f, /* y(min) || kg */ 0.0f, 0.1f, 0.2f, 0.3f, 0.5f, 1.0f, 1.5f, 10.0f, +100.0f, /* y(max) || kg */ }, }; ADI_SENSE_1000_LUT_DESCRIPTOR loadcell_3 = { .geometry = ADI_SENSE_1000_LUT_GEOMETRY_NES_1D, .equation = ADI_SENSE_1000_LUT_EQUATION_LUT, .dir = ADI_SENSE_1000_LUT_TC_DIRECTION_FORWARD, .sensor = ADI_SENSE_1000_ADC_SENSOR_BRIDGE_4WIRE_1_DEF_L2, .dataType = ADI_SENSE_1000_LUT_DATA_TYPE_FLOAT32, .length = 0, /* Filled by adi_sense_1000_AssembleLutData() */ .crc16 = 0 /* Filled by adi_sense_1000_AssembleLutData() */ }; ADI_SENSE_1000_LUT_1D_NES loadcell_3_data = { .nElements = 10, .lut = { -3300.0f, /* x(min) || mV */ 0.2521973f, 0.3740234f, 0.5178223f, 0.6574707f, 0.9311523f, 1.6118164f, 2.3029785f, 13.96175153f, +3300.0f, /* x(max) || mV */ -0.001f, /* y(min) || kg */ 0.0f, 0.1f, 0.2f, 0.3f, 0.5f, 1.0f, 1.5f, 10.0f, +100.0f, /* y(max) || kg */ }, }; ADI_SENSE_1000_LUT_DESCRIPTOR loadcell_4 = { .geometry = ADI_SENSE_1000_LUT_GEOMETRY_NES_1D, .equation = ADI_SENSE_1000_LUT_EQUATION_LUT, .dir = ADI_SENSE_1000_LUT_TC_DIRECTION_FORWARD, .sensor = ADI_SENSE_1000_ADC_SENSOR_BRIDGE_4WIRE_4_DEF_L2, .dataType = ADI_SENSE_1000_LUT_DATA_TYPE_FLOAT32, .length = 0, /* Filled by adi_sense_1000_AssembleLutData() */ .crc16 = 0 /* Filled by adi_sense_1000_AssembleLutData() */ }; ADI_SENSE_1000_LUT_1D_NES loadcell_4_data = { .nElements = 10, .lut = { -3300.0f, /* x(min) || mV */ 0.4609375f, 0.5895996f, 0.7226562f, 0.857666f, 1.1184082f, 1.7749023f, 2.432373f, 13.60091103f, +3300.0f, /* x(max) || mV */ -0.001f, /* y(min) || kg */ 0.0f, 0.1f, 0.2f, 0.3f, 0.5f, 1.0f, 1.5f, 10.0f, +100.0f, /* y(max) || kg */ }, }; /* * The following variables can be passed as parameters to * adi_sense_1000_AssembleLutData() */ ADI_SENSE_1000_LUT_DESCRIPTOR *sample_lut_desc_list[] = { &loadcell_1, &loadcell_2, &loadcell_3, &loadcell_4, }; ADI_SENSE_1000_LUT_TABLE_DATA *sample_lut_data_list[] = { (ADI_SENSE_1000_LUT_TABLE_DATA *) &loadcell_1_data, (ADI_SENSE_1000_LUT_TABLE_DATA *) &loadcell_2_data, (ADI_SENSE_1000_LUT_TABLE_DATA *) &loadcell_3_data, (ADI_SENSE_1000_LUT_TABLE_DATA *) &loadcell_4_data, }; unsigned sample_lut_num_tables = (sizeof(sample_lut_desc_list) / sizeof(sample_lut_desc_list[0]));