Example demonstrating real-time output uncertainty estimation for calibrated ADC values from the SHT4xI sensor1.
The SHT4xI is a humidity and temperature sensor IC1.
The correct way to clone this repository to get the submodules is:
git clone --recursive [email protected]:signaloid/Signaloid-Demo-Sensors-SensirionSHT4xIConversionRoutines.git
If you forgot to clone with --recursive
and end up with empty submodule directories, you can remedy this with:
git submodule update --init
Apart from using Signaloid's Cloud Compute Platform, you can compile and run this application
locally. Local execution is essentially a native Monte Carlo implementation,
that uses GNU Scientific Library (GSL)2 to generate samples for the different input distributions.
In this mode the application stores the generated output samples, in a file called data.out
.
The first line of data.out
contains the execution time of the Monte Carlo implementation
in microseconds (μs), and each
next line contains a floating-point value corresponding to an output sample value.
Please note, that for the Monte Carlo output mode, you need to select a single output
to calculate, using (-S
) command-line option.
In order to compile and run this application in the native Monte Carlo mode:
- Install dependencies (e.g., on Linux):
sudo apt-get install libgsl-dev libgslcblas0
- Compile natively (e.g., on Linux):
cd src/
gcc -I. -I/opt/local/include main.c utilities.c common.c uxhw.c -L/opt/local/lib -o native-exe -lgsl -lgslcblas -lm
- Run the application in the MonteCarlo mode, using (
-M
) command-line option:
./native-exe -M 10000 -S 0
The above program runs 10000 Monte Carlo iterations, calculating the output chosen by (-S 0
) command-line option.
3. See the output samples generated by the local Monte Carlo execution:
cat data.out
The inputs to the SHT4xI sensor conversion algorithms are the ratiometric analog voltage output of the sensor
for the relative humidity measurement in Volts(
The uncertainty in UniformDist(2.3, 2.7)
) Volts.
The uncertainty in UniformDist(2.3, 2.7)
) Volts.
The uncertainty in UniformDist(4.8, 5.4)
) Volts.
The output can be the calibrated relative humidity in percentage, the calibrated temperatrue in Celsius or
in Farenheit. Select between the different outputs using the -S
command-line parameter:
-S 0
: Calculates the Relative Humidity, given by
Following is an example output, using Signaloid's C0Pro-S core:
-S 1
: Calculates the Temperature in Celcius, given by
Following is an example output, using Signaloid's C0Pro-S core:
-S 2
: Calculates Temperature in Fahrenheit, given by
Following is an example output, using Signaloid's C0Pro-S core:
-S 3
: Calculates all previous calibrated outputs. Selected by default.
Example: SHT4xI sensor conversion routines - Signaloid version
Usage: Valid command-line arguments are:
[-o, --output <Path to output CSV file : str>] (Specify the output file.)
[-S, --select-output <output : int>] (Compute 0-indexed output. Calculate all possible outputs if equal to 3. Default value: 3.)
[-M, --multiple-executions <Number of executions : int (Default: 1)>] (Repeated execute kernel for benchmarking.)
[-T, --time] (Timing mode: Times and prints the timing of the kernel execution.)
[-b, --benchmarking] (Benchmarking mode: Generate outputs in format for benchmarking.)
[-j, --json] (Print output in JSON format.)
[-h, --help] (Display this help message.)