Thermocouple mV conversion library

Dependents:   CN0391

Committer:
adisuciu
Date:
Mon Nov 07 16:04:51 2016 +0000
Revision:
1:5421fc992678
Parent:
0:a878bf59a337
Updated include filename case

Who changed what in which revision?

UserRevisionLine numberNew contents of line
adisuciu 0:a878bf59a337 1 #include "mbed.h"
adisuciu 0:a878bf59a337 2 #ifndef _THERMOCOUPLE_H_
adisuciu 0:a878bf59a337 3 #define _THERMOCOUPLE_H_
adisuciu 0:a878bf59a337 4
adisuciu 0:a878bf59a337 5 #define DEFINE_LOOKUP_TABLES
adisuciu 0:a878bf59a337 6 #ifdef DEFINE_LOOKUP_TABLES
adisuciu 0:a878bf59a337 7 #define TYPE_B_LUT
adisuciu 0:a878bf59a337 8 #define TYPE_E_LUT
adisuciu 0:a878bf59a337 9 #define TYPE_J_LUT
adisuciu 0:a878bf59a337 10 #define TYPE_K_LUT
adisuciu 0:a878bf59a337 11 #define TYPE_N_LUT
adisuciu 0:a878bf59a337 12 #define TYPE_R_LUT
adisuciu 0:a878bf59a337 13 #define TYPE_S_LUT
adisuciu 0:a878bf59a337 14 #define TYPE_T_LUT
adisuciu 0:a878bf59a337 15 #endif
adisuciu 0:a878bf59a337 16
adisuciu 0:a878bf59a337 17 class Thermocouple
adisuciu 0:a878bf59a337 18 {
adisuciu 0:a878bf59a337 19 private:
adisuciu 0:a878bf59a337 20
adisuciu 0:a878bf59a337 21 public:
adisuciu 0:a878bf59a337 22 typedef struct
adisuciu 0:a878bf59a337 23 {
adisuciu 0:a878bf59a337 24 float min_voltage_range;
adisuciu 0:a878bf59a337 25 float max_voltage_range;
adisuciu 0:a878bf59a337 26 float coef[16];
adisuciu 0:a878bf59a337 27 float power[16];
adisuciu 0:a878bf59a337 28 int n;
adisuciu 0:a878bf59a337 29 }thermocouple_poly_subrange;
adisuciu 0:a878bf59a337 30 Thermocouple();
adisuciu 0:a878bf59a337 31 virtual ~Thermocouple();
adisuciu 0:a878bf59a337 32 static float convert(float voltage, const thermocouple_poly_subrange range[], const int n);
adisuciu 0:a878bf59a337 33 static float lookup(const int32_t *lut, float voltage,uint16_t size,int16_t offset);
adisuciu 0:a878bf59a337 34 virtual float convert(float voltage) = 0;
adisuciu 0:a878bf59a337 35 virtual float convert_inv(float temp) = 0;
adisuciu 0:a878bf59a337 36 virtual float lookup(float voltage) = 0;
adisuciu 0:a878bf59a337 37 virtual float lookup_inv(float temp) = 0;
adisuciu 0:a878bf59a337 38
adisuciu 0:a878bf59a337 39 };
adisuciu 0:a878bf59a337 40