tiz
Dependencies: TextLCD X_NUCLEO_IKS01A1 func mbed-src mbed
Fork of mas by
func/RawData.cpp@5:100310ea8fba, 2016-08-23 (annotated)
- Committer:
- herenvarno
- Date:
- Tue Aug 23 15:59:59 2016 +0000
- Revision:
- 5:100310ea8fba
- Parent:
- 4:3fecfc9eeadd
final
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
herenvarno | 3:4355890e55b4 | 1 | #include "RawData.h" |
herenvarno | 3:4355890e55b4 | 2 | |
herenvarno | 3:4355890e55b4 | 3 | char buffer2[32]; |
herenvarno | 5:100310ea8fba | 4 | const uint32_t __pressure_table[16]={1013, 995, 976, 959, 942, 925, 908, 892, 875, 859, 843, 812, 782, 752, 724, 696}; |
herenvarno | 5:100310ea8fba | 5 | const uint32_t __altitude_table[16]={0, 500, 1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500, 5000, 6000, 7000, 8000, 9000, 10000}; |
herenvarno | 5:100310ea8fba | 6 | const uint8_t __dir_table[5] = {'E', 'N', 'W', 'S', 'E'}; |
herenvarno | 5:100310ea8fba | 7 | |
herenvarno | 5:100310ea8fba | 8 | RawData::RawData() |
herenvarno | 5:100310ea8fba | 9 | { |
herenvarno | 5:100310ea8fba | 10 | this->__temp_offset=0; |
herenvarno | 5:100310ea8fba | 11 | this->__humi_offset=0; |
herenvarno | 5:100310ea8fba | 12 | this->__pressure_offset=0; |
herenvarno | 5:100310ea8fba | 13 | this->__altitude_offset=0; |
herenvarno | 5:100310ea8fba | 14 | this->__acc_offset[0]=0; |
herenvarno | 5:100310ea8fba | 15 | this->__acc_offset[1]=0; |
herenvarno | 5:100310ea8fba | 16 | this->__acc_offset[2]=0; |
herenvarno | 5:100310ea8fba | 17 | this->__gyr_offset[0]=0; |
herenvarno | 5:100310ea8fba | 18 | this->__gyr_offset[1]=0; |
herenvarno | 5:100310ea8fba | 19 | this->__gyr_offset[2]=0; |
herenvarno | 5:100310ea8fba | 20 | this->__mag_offset[0]=0; |
herenvarno | 5:100310ea8fba | 21 | this->__mag_offset[1]=0; |
herenvarno | 5:100310ea8fba | 22 | this->__mag_offset[2]=0; |
herenvarno | 5:100310ea8fba | 23 | } |
herenvarno | 3:4355890e55b4 | 24 | |
herenvarno | 3:4355890e55b4 | 25 | void RawData::str_date(char *buffer) |
herenvarno | 3:4355890e55b4 | 26 | { |
herenvarno | 3:4355890e55b4 | 27 | struct tm *timeinfo = localtime (&(this->__time)); |
herenvarno | 3:4355890e55b4 | 28 | strftime (buffer, 16, "%y-%m-%d", timeinfo); |
herenvarno | 3:4355890e55b4 | 29 | } |
herenvarno | 3:4355890e55b4 | 30 | void RawData::str_time(char *buffer) |
herenvarno | 3:4355890e55b4 | 31 | { |
herenvarno | 3:4355890e55b4 | 32 | struct tm *timeinfo = localtime (&(this->__time)); |
herenvarno | 3:4355890e55b4 | 33 | strftime (buffer, 16, "%T", timeinfo); |
herenvarno | 3:4355890e55b4 | 34 | } |
herenvarno | 3:4355890e55b4 | 35 | void RawData::str_temperature(char *buffer) |
herenvarno | 3:4355890e55b4 | 36 | { |
herenvarno | 5:100310ea8fba | 37 | if(this->calc_temperature()>=0) |
herenvarno | 5:100310ea8fba | 38 | snprintf(buffer, 16, "T: %sC", this->printDouble(buffer2, (this->calc_temperature()))); |
herenvarno | 4:3fecfc9eeadd | 39 | else |
herenvarno | 5:100310ea8fba | 40 | snprintf(buffer, 16, "T:-%sC", this->printDouble(buffer2, -1*(this->calc_temperature()))); |
herenvarno | 3:4355890e55b4 | 41 | } |
herenvarno | 3:4355890e55b4 | 42 | void RawData::str_humidity(char *buffer) |
herenvarno | 3:4355890e55b4 | 43 | { |
herenvarno | 5:100310ea8fba | 44 | if(this->calc_humidity()<100) |
herenvarno | 5:100310ea8fba | 45 | snprintf(buffer, 16, "H: %sPer", this->printDouble(buffer2, (this->calc_humidity()))); |
herenvarno | 4:3fecfc9eeadd | 46 | else |
herenvarno | 5:100310ea8fba | 47 | snprintf(buffer, 16, "H: 00.0Per"); |
herenvarno | 3:4355890e55b4 | 48 | } |
herenvarno | 3:4355890e55b4 | 49 | void RawData::str_altitude(char *buffer) |
herenvarno | 3:4355890e55b4 | 50 | { |
herenvarno | 5:100310ea8fba | 51 | snprintf(buffer, 16, "A: %4uM", this->calc_altitude()); |
herenvarno | 3:4355890e55b4 | 52 | } |
herenvarno | 3:4355890e55b4 | 53 | void RawData::str_direction(char *buffer) |
herenvarno | 3:4355890e55b4 | 54 | { |
herenvarno | 5:100310ea8fba | 55 | uint32_t dir = this->calc_cpassdir(); |
herenvarno | 5:100310ea8fba | 56 | snprintf(buffer, 16, "D: %c%3uDeg", __dir_table[(dir+45)/90], dir); |
herenvarno | 3:4355890e55b4 | 57 | } |
herenvarno | 3:4355890e55b4 | 58 | |
herenvarno | 5:100310ea8fba | 59 | char* RawData::printDouble(char* str, double v, int integerDigits, int decimalDigits) |
herenvarno | 3:4355890e55b4 | 60 | { |
herenvarno | 3:4355890e55b4 | 61 | int i = 1; |
herenvarno | 3:4355890e55b4 | 62 | int intPart, fractPart; |
herenvarno | 3:4355890e55b4 | 63 | int len; |
herenvarno | 3:4355890e55b4 | 64 | char *ptr; |
herenvarno | 3:4355890e55b4 | 65 | |
herenvarno | 3:4355890e55b4 | 66 | /* prepare decimal digits multiplicator */ |
herenvarno | 3:4355890e55b4 | 67 | for (;decimalDigits!=0; i*=10, decimalDigits--); |
herenvarno | 3:4355890e55b4 | 68 | |
herenvarno | 3:4355890e55b4 | 69 | /* calculate integer & fractinal parts */ |
herenvarno | 5:100310ea8fba | 70 | int powval=1; |
herenvarno | 5:100310ea8fba | 71 | for(int xx=0; xx<integerDigits;xx++) |
herenvarno | 5:100310ea8fba | 72 | powval = powval*10; |
herenvarno | 5:100310ea8fba | 73 | |
herenvarno | 5:100310ea8fba | 74 | if(integerDigits>0) |
herenvarno | 5:100310ea8fba | 75 | intPart = (int)(v) % powval; |
herenvarno | 5:100310ea8fba | 76 | else |
herenvarno | 5:100310ea8fba | 77 | intPart = (int)(v); |
herenvarno | 3:4355890e55b4 | 78 | fractPart = (int)((v-(double)(int)v)*i); |
herenvarno | 3:4355890e55b4 | 79 | |
herenvarno | 3:4355890e55b4 | 80 | /* fill in integer part */ |
herenvarno | 3:4355890e55b4 | 81 | sprintf(str, "%i.", intPart); |
herenvarno | 3:4355890e55b4 | 82 | |
herenvarno | 3:4355890e55b4 | 83 | /* prepare fill in of fractional part */ |
herenvarno | 3:4355890e55b4 | 84 | len = strlen(str); |
herenvarno | 3:4355890e55b4 | 85 | ptr = &str[len]; |
herenvarno | 3:4355890e55b4 | 86 | |
herenvarno | 3:4355890e55b4 | 87 | /* fill in leading fractional zeros */ |
herenvarno | 3:4355890e55b4 | 88 | for (i/=10;i>1; i/=10, ptr++) { |
herenvarno | 3:4355890e55b4 | 89 | if(fractPart >= i) break; |
herenvarno | 3:4355890e55b4 | 90 | *ptr = '0'; |
herenvarno | 3:4355890e55b4 | 91 | } |
herenvarno | 3:4355890e55b4 | 92 | |
herenvarno | 3:4355890e55b4 | 93 | /* fill in (rest of) fractional part */ |
herenvarno | 3:4355890e55b4 | 94 | sprintf(ptr, "%i", fractPart); |
herenvarno | 3:4355890e55b4 | 95 | |
herenvarno | 3:4355890e55b4 | 96 | return str; |
herenvarno | 3:4355890e55b4 | 97 | } |
herenvarno | 3:4355890e55b4 | 98 | |
herenvarno | 5:100310ea8fba | 99 | |
herenvarno | 5:100310ea8fba | 100 | float RawData::calc_temperature() |
herenvarno | 5:100310ea8fba | 101 | { |
herenvarno | 5:100310ea8fba | 102 | return this->__temp+this->__temp_offset; |
herenvarno | 5:100310ea8fba | 103 | } |
herenvarno | 5:100310ea8fba | 104 | float RawData::calc_humidity() |
herenvarno | 5:100310ea8fba | 105 | { |
herenvarno | 5:100310ea8fba | 106 | return this->__humi+this->__humi_offset; |
herenvarno | 5:100310ea8fba | 107 | } |
herenvarno | 5:100310ea8fba | 108 | int32_t RawData::calc_altitude() |
herenvarno | 5:100310ea8fba | 109 | { |
herenvarno | 5:100310ea8fba | 110 | uint32_t altitude=0; |
herenvarno | 5:100310ea8fba | 111 | uint32_t bound_h=0, bound_l=16; |
herenvarno | 5:100310ea8fba | 112 | float pressure = (this->__prss+this->__pressure_offset)/10; |
herenvarno | 5:100310ea8fba | 113 | for(uint32_t i=0; i<16; i++) |
herenvarno | 5:100310ea8fba | 114 | { |
herenvarno | 5:100310ea8fba | 115 | if(__pressure_table[i]<= pressure) |
herenvarno | 5:100310ea8fba | 116 | { |
herenvarno | 5:100310ea8fba | 117 | bound_h=i; |
herenvarno | 5:100310ea8fba | 118 | break; |
herenvarno | 5:100310ea8fba | 119 | } |
herenvarno | 5:100310ea8fba | 120 | bound_l=i; |
herenvarno | 5:100310ea8fba | 121 | } |
herenvarno | 5:100310ea8fba | 122 | if(bound_h==bound_l){ |
herenvarno | 5:100310ea8fba | 123 | this->__pressure_offset = __pressure_table[bound_l]-this->__prss; |
herenvarno | 5:100310ea8fba | 124 | altitude = __altitude_table[bound_l]; |
herenvarno | 5:100310ea8fba | 125 | }else{ |
herenvarno | 5:100310ea8fba | 126 | altitude = __altitude_table[bound_l]+(__altitude_table[bound_h]-__altitude_table[bound_l])/double(__pressure_table[bound_l]-__pressure_table[bound_h])*(__pressure_table[bound_l]-pressure); |
herenvarno | 5:100310ea8fba | 127 | } |
herenvarno | 5:100310ea8fba | 128 | int32_t a=int32_t(altitude+__altitude_offset); |
herenvarno | 5:100310ea8fba | 129 | return a; |
herenvarno | 5:100310ea8fba | 130 | } |
herenvarno | 5:100310ea8fba | 131 | int32_t RawData::calc_cpassdir() |
herenvarno | 5:100310ea8fba | 132 | { |
herenvarno | 5:100310ea8fba | 133 | int32_t dir =0; |
herenvarno | 5:100310ea8fba | 134 | float x = this->__mag[0]+this->__mag_offset[0]; |
herenvarno | 5:100310ea8fba | 135 | float y = this->__mag[1]+this->__mag_offset[1]; |
herenvarno | 5:100310ea8fba | 136 | if(y==0){ |
herenvarno | 5:100310ea8fba | 137 | if(x>=0) |
herenvarno | 5:100310ea8fba | 138 | dir = 0; |
herenvarno | 5:100310ea8fba | 139 | else |
herenvarno | 5:100310ea8fba | 140 | dir = 180; |
herenvarno | 5:100310ea8fba | 141 | }else if(y>0){ |
herenvarno | 5:100310ea8fba | 142 | dir = uint32_t(90-(atan(x/y))*180/3.14); |
herenvarno | 5:100310ea8fba | 143 | }else{ |
herenvarno | 5:100310ea8fba | 144 | dir = uint32_t(270-(atan(x/y))*180/3.14); |
herenvarno | 5:100310ea8fba | 145 | } |
herenvarno | 5:100310ea8fba | 146 | return dir; |
herenvarno | 5:100310ea8fba | 147 | } |
herenvarno | 5:100310ea8fba | 148 | |
herenvarno | 5:100310ea8fba | 149 | |
herenvarno | 5:100310ea8fba | 150 | |
herenvarno | 5:100310ea8fba | 151 | |
herenvarno | 5:100310ea8fba | 152 | |
herenvarno | 5:100310ea8fba | 153 | |
herenvarno | 5:100310ea8fba | 154 | |
herenvarno | 3:4355890e55b4 | 155 | void RawData::add_year_10() |
herenvarno | 3:4355890e55b4 | 156 | { |
herenvarno | 3:4355890e55b4 | 157 | struct tm *timeinfo = localtime (&(this->__time)); |
herenvarno | 4:3fecfc9eeadd | 158 | int year= timeinfo->tm_year; |
herenvarno | 4:3fecfc9eeadd | 159 | year+=10; |
herenvarno | 4:3fecfc9eeadd | 160 | if(year>=(2100-1900)) |
herenvarno | 4:3fecfc9eeadd | 161 | year=timeinfo->tm_year-90; |
herenvarno | 4:3fecfc9eeadd | 162 | timeinfo->tm_year=year; |
herenvarno | 3:4355890e55b4 | 163 | this->__time=mktime(timeinfo); |
herenvarno | 5:100310ea8fba | 164 | set_time(this->__time); |
herenvarno | 3:4355890e55b4 | 165 | } |
herenvarno | 3:4355890e55b4 | 166 | void RawData::add_year_1() |
herenvarno | 3:4355890e55b4 | 167 | { |
herenvarno | 3:4355890e55b4 | 168 | struct tm *timeinfo = localtime (&(this->__time)); |
herenvarno | 3:4355890e55b4 | 169 | timeinfo->tm_year+=1; |
herenvarno | 3:4355890e55b4 | 170 | if(timeinfo->tm_year%10==0) |
herenvarno | 3:4355890e55b4 | 171 | timeinfo->tm_year-=10; |
herenvarno | 3:4355890e55b4 | 172 | this->__time=mktime(timeinfo); |
herenvarno | 5:100310ea8fba | 173 | set_time(this->__time); |
herenvarno | 3:4355890e55b4 | 174 | } |
herenvarno | 3:4355890e55b4 | 175 | void RawData::add_month() |
herenvarno | 3:4355890e55b4 | 176 | { |
herenvarno | 3:4355890e55b4 | 177 | struct tm *timeinfo = localtime (&(this->__time)); |
herenvarno | 3:4355890e55b4 | 178 | int mon=timeinfo->tm_mon; |
herenvarno | 3:4355890e55b4 | 179 | mon+=1; |
herenvarno | 3:4355890e55b4 | 180 | if(mon>11) |
herenvarno | 3:4355890e55b4 | 181 | mon=0; |
herenvarno | 3:4355890e55b4 | 182 | timeinfo->tm_mon=mon; |
herenvarno | 3:4355890e55b4 | 183 | this->__time=mktime(timeinfo); |
herenvarno | 5:100310ea8fba | 184 | set_time(this->__time); |
herenvarno | 3:4355890e55b4 | 185 | } |
herenvarno | 3:4355890e55b4 | 186 | void RawData::add_day() |
herenvarno | 3:4355890e55b4 | 187 | { |
herenvarno | 3:4355890e55b4 | 188 | struct tm *timeinfo = localtime (&(this->__time)); |
herenvarno | 3:4355890e55b4 | 189 | timeinfo->tm_yday=0; |
herenvarno | 3:4355890e55b4 | 190 | timeinfo->tm_wday=0; |
herenvarno | 3:4355890e55b4 | 191 | int day=timeinfo->tm_mday; |
herenvarno | 3:4355890e55b4 | 192 | day+=1; |
herenvarno | 3:4355890e55b4 | 193 | if(timeinfo->tm_mon==0 || timeinfo->tm_mon==2 || timeinfo->tm_mon==4 || timeinfo->tm_mon==6 || timeinfo->tm_mon==7 || timeinfo->tm_mon==9 || timeinfo->tm_mon==11) |
herenvarno | 3:4355890e55b4 | 194 | { |
herenvarno | 4:3fecfc9eeadd | 195 | if(day>31) |
herenvarno | 4:3fecfc9eeadd | 196 | day=1; |
herenvarno | 3:4355890e55b4 | 197 | } |
herenvarno | 3:4355890e55b4 | 198 | else if(timeinfo->tm_mon==1) |
herenvarno | 3:4355890e55b4 | 199 | { |
herenvarno | 3:4355890e55b4 | 200 | if((timeinfo->tm_year+1900)%400==0 || ((timeinfo->tm_year+1900)%100!=0 && (timeinfo->tm_year+1900)%4==0) ) |
herenvarno | 3:4355890e55b4 | 201 | { |
herenvarno | 4:3fecfc9eeadd | 202 | if(day>29) |
herenvarno | 4:3fecfc9eeadd | 203 | day=1; |
herenvarno | 3:4355890e55b4 | 204 | } |
herenvarno | 3:4355890e55b4 | 205 | else |
herenvarno | 3:4355890e55b4 | 206 | { |
herenvarno | 4:3fecfc9eeadd | 207 | if(day>28) |
herenvarno | 4:3fecfc9eeadd | 208 | day=1; |
herenvarno | 3:4355890e55b4 | 209 | } |
herenvarno | 3:4355890e55b4 | 210 | } |
herenvarno | 3:4355890e55b4 | 211 | else |
herenvarno | 3:4355890e55b4 | 212 | { |
herenvarno | 4:3fecfc9eeadd | 213 | if(day>30) |
herenvarno | 4:3fecfc9eeadd | 214 | day=1; |
herenvarno | 3:4355890e55b4 | 215 | } |
herenvarno | 3:4355890e55b4 | 216 | timeinfo->tm_mday=day; |
herenvarno | 3:4355890e55b4 | 217 | this->__time=mktime(timeinfo); |
herenvarno | 5:100310ea8fba | 218 | set_time(this->__time); |
herenvarno | 4:3fecfc9eeadd | 219 | } |
herenvarno | 4:3fecfc9eeadd | 220 | void RawData::add_hour() |
herenvarno | 4:3fecfc9eeadd | 221 | { |
herenvarno | 4:3fecfc9eeadd | 222 | struct tm *timeinfo = localtime (&(this->__time)); |
herenvarno | 4:3fecfc9eeadd | 223 | int hour=timeinfo->tm_hour; |
herenvarno | 4:3fecfc9eeadd | 224 | hour+=1; |
herenvarno | 4:3fecfc9eeadd | 225 | if(hour>23) |
herenvarno | 4:3fecfc9eeadd | 226 | hour=0; |
herenvarno | 4:3fecfc9eeadd | 227 | timeinfo->tm_hour=hour; |
herenvarno | 4:3fecfc9eeadd | 228 | this->__time=mktime(timeinfo); |
herenvarno | 5:100310ea8fba | 229 | set_time(this->__time); |
herenvarno | 4:3fecfc9eeadd | 230 | } |
herenvarno | 4:3fecfc9eeadd | 231 | void RawData::add_min_10() |
herenvarno | 4:3fecfc9eeadd | 232 | { |
herenvarno | 4:3fecfc9eeadd | 233 | struct tm *timeinfo = localtime (&(this->__time)); |
herenvarno | 4:3fecfc9eeadd | 234 | int min=timeinfo->tm_min; |
herenvarno | 4:3fecfc9eeadd | 235 | min+=10; |
herenvarno | 4:3fecfc9eeadd | 236 | if(min>=60) |
herenvarno | 4:3fecfc9eeadd | 237 | min-=60; |
herenvarno | 4:3fecfc9eeadd | 238 | timeinfo->tm_min=min; |
herenvarno | 4:3fecfc9eeadd | 239 | this->__time=mktime(timeinfo); |
herenvarno | 5:100310ea8fba | 240 | set_time(this->__time); |
herenvarno | 4:3fecfc9eeadd | 241 | } |
herenvarno | 4:3fecfc9eeadd | 242 | void RawData::add_min_1() |
herenvarno | 4:3fecfc9eeadd | 243 | { |
herenvarno | 4:3fecfc9eeadd | 244 | struct tm *timeinfo = localtime (&(this->__time)); |
herenvarno | 4:3fecfc9eeadd | 245 | int min=timeinfo->tm_min; |
herenvarno | 4:3fecfc9eeadd | 246 | min+=1; |
herenvarno | 4:3fecfc9eeadd | 247 | if(min%10==0) |
herenvarno | 4:3fecfc9eeadd | 248 | min-=10; |
herenvarno | 4:3fecfc9eeadd | 249 | timeinfo->tm_min=min; |
herenvarno | 4:3fecfc9eeadd | 250 | this->__time=mktime(timeinfo); |
herenvarno | 5:100310ea8fba | 251 | set_time(this->__time); |
herenvarno | 4:3fecfc9eeadd | 252 | } |
herenvarno | 4:3fecfc9eeadd | 253 | void RawData::add_sec_10() |
herenvarno | 4:3fecfc9eeadd | 254 | { |
herenvarno | 4:3fecfc9eeadd | 255 | struct tm *timeinfo = localtime (&(this->__time)); |
herenvarno | 4:3fecfc9eeadd | 256 | int sec=timeinfo->tm_sec; |
herenvarno | 4:3fecfc9eeadd | 257 | sec+=10; |
herenvarno | 4:3fecfc9eeadd | 258 | if(sec>=60) |
herenvarno | 4:3fecfc9eeadd | 259 | sec-=60; |
herenvarno | 4:3fecfc9eeadd | 260 | timeinfo->tm_sec=sec; |
herenvarno | 4:3fecfc9eeadd | 261 | this->__time=mktime(timeinfo); |
herenvarno | 5:100310ea8fba | 262 | set_time(this->__time); |
herenvarno | 4:3fecfc9eeadd | 263 | } |
herenvarno | 4:3fecfc9eeadd | 264 | void RawData::add_sec_1() |
herenvarno | 4:3fecfc9eeadd | 265 | { |
herenvarno | 4:3fecfc9eeadd | 266 | struct tm *timeinfo = localtime (&(this->__time)); |
herenvarno | 4:3fecfc9eeadd | 267 | int sec=timeinfo->tm_sec; |
herenvarno | 4:3fecfc9eeadd | 268 | sec+=1; |
herenvarno | 4:3fecfc9eeadd | 269 | if(sec%10==0) |
herenvarno | 4:3fecfc9eeadd | 270 | sec-=10; |
herenvarno | 4:3fecfc9eeadd | 271 | timeinfo->tm_sec=sec; |
herenvarno | 4:3fecfc9eeadd | 272 | this->__time=mktime(timeinfo); |
herenvarno | 5:100310ea8fba | 273 | set_time(this->__time); |
herenvarno | 4:3fecfc9eeadd | 274 | } |
herenvarno | 4:3fecfc9eeadd | 275 | void RawData::add_temp_sign() |
herenvarno | 4:3fecfc9eeadd | 276 | { |
herenvarno | 5:100310ea8fba | 277 | this->__temp_offset= -1*(this->calc_temperature())-this->__temp; |
herenvarno | 4:3fecfc9eeadd | 278 | } |
herenvarno | 4:3fecfc9eeadd | 279 | void RawData::add_temp_10() |
herenvarno | 4:3fecfc9eeadd | 280 | { |
herenvarno | 5:100310ea8fba | 281 | float val = this->__temp_offset; |
herenvarno | 5:100310ea8fba | 282 | if(this->__temp+val>=0) |
herenvarno | 4:3fecfc9eeadd | 283 | val+=10; |
herenvarno | 4:3fecfc9eeadd | 284 | else |
herenvarno | 4:3fecfc9eeadd | 285 | val-=10; |
herenvarno | 5:100310ea8fba | 286 | if(this->__temp+val>=100) |
herenvarno | 4:3fecfc9eeadd | 287 | val-=100; |
herenvarno | 5:100310ea8fba | 288 | else if(this->__temp+val<=-100) |
herenvarno | 4:3fecfc9eeadd | 289 | val+=100; |
herenvarno | 5:100310ea8fba | 290 | this->__temp_offset=val; |
herenvarno | 4:3fecfc9eeadd | 291 | } |
herenvarno | 4:3fecfc9eeadd | 292 | void RawData::add_temp_1() |
herenvarno | 4:3fecfc9eeadd | 293 | { |
herenvarno | 5:100310ea8fba | 294 | float val= this->__temp_offset; |
herenvarno | 5:100310ea8fba | 295 | if(this->__temp+val>=0) |
herenvarno | 4:3fecfc9eeadd | 296 | val+=1; |
herenvarno | 4:3fecfc9eeadd | 297 | else |
herenvarno | 4:3fecfc9eeadd | 298 | val-=1; |
herenvarno | 5:100310ea8fba | 299 | if((this->__temp+val)>=0 && (int)(this->__temp+val)%10==0) |
herenvarno | 4:3fecfc9eeadd | 300 | val-=10; |
herenvarno | 5:100310ea8fba | 301 | else if((this->__temp+val)<0 && (int)(this->__temp+val)%10==0) |
herenvarno | 4:3fecfc9eeadd | 302 | val+=10; |
herenvarno | 5:100310ea8fba | 303 | this->__temp_offset=val; |
herenvarno | 4:3fecfc9eeadd | 304 | } |
herenvarno | 4:3fecfc9eeadd | 305 | void RawData::add_temp_1_10() |
herenvarno | 4:3fecfc9eeadd | 306 | { |
herenvarno | 5:100310ea8fba | 307 | float val=(this->__temp_offset*10); |
herenvarno | 5:100310ea8fba | 308 | if(this->__temp*10+val>=0) |
herenvarno | 4:3fecfc9eeadd | 309 | val+=1; |
herenvarno | 4:3fecfc9eeadd | 310 | else |
herenvarno | 4:3fecfc9eeadd | 311 | val-=1; |
herenvarno | 5:100310ea8fba | 312 | if(this->__temp*10+val>=0 && (int)(this->__temp*10+val)%10==0) |
herenvarno | 4:3fecfc9eeadd | 313 | val-=10; |
herenvarno | 5:100310ea8fba | 314 | else if(this->__temp*10+val<0 && (int)(this->__temp*10+val)%10==0) |
herenvarno | 4:3fecfc9eeadd | 315 | val+=10; |
herenvarno | 5:100310ea8fba | 316 | this->__temp_offset=val/10.0; |
herenvarno | 4:3fecfc9eeadd | 317 | } |
herenvarno | 4:3fecfc9eeadd | 318 | void RawData::add_humi_10() |
herenvarno | 4:3fecfc9eeadd | 319 | { |
herenvarno | 5:100310ea8fba | 320 | float val=this->__humi_offset; |
herenvarno | 4:3fecfc9eeadd | 321 | val+=10; |
herenvarno | 5:100310ea8fba | 322 | if((int)(this->__humi+val)>=100) |
herenvarno | 4:3fecfc9eeadd | 323 | val-=100; |
herenvarno | 5:100310ea8fba | 324 | this->__humi_offset=val; |
herenvarno | 4:3fecfc9eeadd | 325 | } |
herenvarno | 4:3fecfc9eeadd | 326 | void RawData::add_humi_1() |
herenvarno | 4:3fecfc9eeadd | 327 | { |
herenvarno | 5:100310ea8fba | 328 | float val=this->__humi_offset; |
herenvarno | 5:100310ea8fba | 329 | int delta = (int)(this->__humi_offset); |
herenvarno | 5:100310ea8fba | 330 | val = val-delta; |
herenvarno | 5:100310ea8fba | 331 | delta+=1; |
herenvarno | 5:100310ea8fba | 332 | if((int)(this->__humi+delta)%10==0) |
herenvarno | 5:100310ea8fba | 333 | delta-=10; |
herenvarno | 5:100310ea8fba | 334 | this->__humi_offset=val+delta; |
herenvarno | 4:3fecfc9eeadd | 335 | } |
herenvarno | 4:3fecfc9eeadd | 336 | void RawData::add_humi_1_10() |
herenvarno | 4:3fecfc9eeadd | 337 | { |
herenvarno | 5:100310ea8fba | 338 | int delta=(int)(this->__humi_offset*10); |
herenvarno | 5:100310ea8fba | 339 | delta+=1; |
herenvarno | 5:100310ea8fba | 340 | if((int)(this->__humi*10+delta)%10==0) |
herenvarno | 5:100310ea8fba | 341 | delta-=10; |
herenvarno | 5:100310ea8fba | 342 | this->__humi_offset=delta/10.0; |
herenvarno | 5:100310ea8fba | 343 | } |
herenvarno | 5:100310ea8fba | 344 | |
herenvarno | 5:100310ea8fba | 345 | // ALTITUDE |
herenvarno | 5:100310ea8fba | 346 | void RawData::add_altitude_1000() |
herenvarno | 5:100310ea8fba | 347 | { |
herenvarno | 5:100310ea8fba | 348 | this->__altitude_offset+=1000; |
herenvarno | 5:100310ea8fba | 349 | if(this->calc_altitude()>=10000) |
herenvarno | 5:100310ea8fba | 350 | this->__altitude_offset-=10000; |
herenvarno | 4:3fecfc9eeadd | 351 | } |
herenvarno | 5:100310ea8fba | 352 | void RawData::add_altitude_100() |
herenvarno | 5:100310ea8fba | 353 | { |
herenvarno | 5:100310ea8fba | 354 | this->__altitude_offset+=100; |
herenvarno | 5:100310ea8fba | 355 | if((this->calc_altitude()/100)%10==0) |
herenvarno | 5:100310ea8fba | 356 | this->__altitude_offset-=1000; |
herenvarno | 5:100310ea8fba | 357 | } |
herenvarno | 5:100310ea8fba | 358 | void RawData::add_altitude_10() |
herenvarno | 4:3fecfc9eeadd | 359 | { |
herenvarno | 5:100310ea8fba | 360 | this->__altitude_offset+=10; |
herenvarno | 5:100310ea8fba | 361 | if((this->calc_altitude()/10)%10==0) |
herenvarno | 5:100310ea8fba | 362 | this->__altitude_offset-=100; |
herenvarno | 5:100310ea8fba | 363 | } |
herenvarno | 5:100310ea8fba | 364 | void RawData::add_altitude_1() |
herenvarno | 5:100310ea8fba | 365 | { |
herenvarno | 5:100310ea8fba | 366 | this->__altitude_offset+=1; |
herenvarno | 5:100310ea8fba | 367 | if(this->calc_altitude()%10==0) |
herenvarno | 5:100310ea8fba | 368 | this->__altitude_offset-=10; |
herenvarno | 3:4355890e55b4 | 369 | } |