Example demonstrating real-time output uncertainty estimation for calibrated ADC values from the TMCS112x sensor1.
The TMCS1123 is a precision Hall-effect current sensor.
The correct way to clone this repository to get the submodules is:
git clone --recursive [email protected]:signaloid/Signaloid-Demo-Sensors-TexasInstrumentsTMCS112xConversionRoutines.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.
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
The above program runs 10000 Monte Carlo iterations. 3. See the output samples generated by the local Monte Carlo execution:
cat data.out
The inputs to the TMCS1123x3A sensor conversion algorithms are the analog output voltage of the sensor (
The uncertainty in UniformDist(3.2, 3.4)
) Volts.
The uncertainty in UniformDist(2.4, 2.6)
) Volts.
The output is the calibrated electric current (in Ampere):
where S is the sensitivity of the specific device and is modeled as a constant:
Following is an example output, using Signaloid's C0Pro-S core.
Example: TMCS1123x3A 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, by default 0.)
[-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.)