tiz

Dependents:   mas

Committer:
youle1119
Date:
Wed Sep 14 08:55:41 2016 +0000
Revision:
0:d60c26d5fddc
tiz

Who changed what in which revision?

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