-
Notifications
You must be signed in to change notification settings - Fork 0
/
tank.h
65 lines (55 loc) · 2.1 KB
/
tank.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/*
@file tank.h
@author Don Thompson (raynham Engineering)
@license GNU (see license.txt)
oil tank class manages the heating oil sensor
calculates gallons remaining in tank based upon sensor level
Copyright (C) 2016 Don Thompson, Raynham Engineering
Raynham MA
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __TANK_H__
#define __TANK_H__
//define some standard home heating oil tank sizes
typedef enum {VERTICAL_275, HORIZONTAL_275, VERTICAL_330, HORIZONTAL_330}
TANK_STYLES;
const char* TANK_NAME[4] = {"Vertical 275", "Horizontal 275", "Vertical 330", "Horizontal 330"};
#define WIDTH 0
#define DIAMETER 1
#define LENGTH 2
#define CVT_IN2_GALLONS 0.004329
static const float tank_d[4][3] = {{27.0, 44.0, 60.0}, //VERTICAL_275
{27.0, 44.0, 60.0}, //HORIZONTAL_275
{27.0, 44.0, 72.0}, //VERTICAL_330
{44.0, 27.0, 72.0}}; //HORIZONTAL_330
static const float pi = 3.14159;
class Tank {
public:
Tank(uint8_t);
int calcOilLevel(int);
float tankGallons(int);
private:
int tankVolume(int);
int fullVolume();
float fullGallons();
float calcCurved(int);
float curReading; //sensor Reading in mm
float curLevel; //oil level in inches
uint8_t tankStyle;
int width;
int diameter;
float length;
float radius;
int volumeIN2; //volume in cubic inches
int cur_gallons; //current tank gallons
};
#endif