Mercurial > public > ostc4
comparison Discovery/Src/t7.c @ 110:cc8e24374b83 FlipDisplay
Added option to handled mirrored display to existing functions
| author | Ideenmodellierer |
|---|---|
| date | Tue, 01 Jan 2019 21:02:17 +0100 |
| parents | 8f8ea3a32e82 |
| children | 3834b6272ee5 |
comparison
equal
deleted
inserted
replaced
| 109:65a6e352ce08 | 110:cc8e24374b83 |
|---|---|
| 185 * right of box are 249 px (551 .. 799) | 185 * right of box are 249 px (551 .. 799) |
| 186 */ | 186 */ |
| 187 | 187 |
| 188 #define CUSTOMBOX_LINE_LEFT (250) | 188 #define CUSTOMBOX_LINE_LEFT (250) |
| 189 #define CUSTOMBOX_LINE_RIGHT (549) | 189 #define CUSTOMBOX_LINE_RIGHT (549) |
| 190 #define CUSTOMBOX_LINE_TOP (0) | |
| 191 #define CUSTOMBOX_LINE_MIDDLE (142) | |
| 192 #define CUSTOMBOX_LINE_BOTTOM (318) | |
| 190 #define CUSTOMBOX_INSIDE_OFFSET (2) | 193 #define CUSTOMBOX_INSIDE_OFFSET (2) |
| 191 #define CUSTOMBOX_OUTSIDE_OFFSET (2) | 194 #define CUSTOMBOX_OUTSIDE_OFFSET (2) |
| 192 #define CUSTOMBOX_SPACE_INSIDE (CUSTOMBOX_LINE_RIGHT + 1 - (CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET + CUSTOMBOX_INSIDE_OFFSET)) | 195 #define CUSTOMBOX_SPACE_INSIDE (CUSTOMBOX_LINE_RIGHT + 1 - (CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET + CUSTOMBOX_INSIDE_OFFSET)) |
| 193 | 196 #define TOP_LINE_HIGHT (25) |
| 194 | 197 |
| 195 /* Exported functions --------------------------------------------------------*/ | 198 /* Exported functions --------------------------------------------------------*/ |
| 196 | 199 |
| 197 void t7_init(void) | 200 void t7_init(void) |
| 198 { | 201 { |
| 202 | |
| 203 SSettings* pSettings; | |
| 204 pSettings = settingsGetPointer(); | |
| 205 | |
| 206 | |
| 199 if(getLicence() == LICENCEBONEX) | 207 if(getLicence() == LICENCEBONEX) |
| 200 { | 208 { |
| 201 customviewsDive = customviewsDiveScooter; | 209 customviewsDive = customviewsDiveScooter; |
| 202 customviewsSurface = customviewsSurfaceScooter; | 210 customviewsSurface = customviewsSurfaceScooter; |
| 203 } | 211 } |
| 213 t7screenCompass.FBStartAdress = 0; | 221 t7screenCompass.FBStartAdress = 0; |
| 214 t7screenCompass.ImageHeight = 240; | 222 t7screenCompass.ImageHeight = 240; |
| 215 t7screenCompass.ImageWidth = 1600; | 223 t7screenCompass.ImageWidth = 1600; |
| 216 t7screenCompass.LayerIndex = 0; | 224 t7screenCompass.LayerIndex = 0; |
| 217 | 225 |
| 226 if(!pSettings->FlipDisplay) | |
| 227 { | |
| 228 t7l1.Image = &t7screen; | |
| 229 t7l1.WindowNumberOfTextLines = 2; | |
| 230 t7l1.WindowLineSpacing = 19; // Abstand von Y0 | |
| 231 t7l1.WindowTab = 100; // vermtl. ohne Verwendung in diesem Fenster | |
| 232 t7l1.WindowX0 = 0; | |
| 233 t7l1.WindowX1 = CUSTOMBOX_LINE_LEFT - CUSTOMBOX_OUTSIDE_OFFSET; | |
| 234 t7l1.WindowY0 = 318; | |
| 235 t7l1.WindowY1 = 479; | |
| 236 | |
| 237 t7l2.Image = &t7screen; | |
| 238 t7l2.WindowNumberOfTextLines = 2; | |
| 239 t7l2.WindowLineSpacing = 22; // Abstand von Y0 | |
| 240 t7l2.WindowTab = 100; // vermtl. ohne Verwendung in diesem Fenster | |
| 241 t7l2.WindowX0 = 0; | |
| 242 t7l2.WindowX1 = t7l1.WindowX1; | |
| 243 t7l2.WindowY0 = 142; | |
| 244 t7l2.WindowY1 = t7l1.WindowY0 - 5; | |
| 245 | |
| 246 t7l3.Image = &t7screen; | |
| 247 t7l3.WindowNumberOfTextLines = 2; | |
| 248 t7l3.WindowLineSpacing = 58; // Abstand von Y0 | |
| 249 t7l3.WindowTab = 100; // vermtl. ohne Verwendung in diesem Fenster | |
| 250 t7l3.WindowX0 = 0; | |
| 251 t7l3.WindowX1 = t7l1.WindowX1; | |
| 252 t7l3.WindowY0 = 0; | |
| 253 t7l3.WindowY1 = t7l2.WindowY0 - 5; | |
| 254 | |
| 255 t7r1.Image = &t7screen; | |
| 256 t7r1.WindowNumberOfTextLines = 2; | |
| 257 t7r1.WindowLineSpacing = t7l1.WindowLineSpacing; | |
| 258 t7r1.WindowTab = 100; | |
| 259 t7r1.WindowX0 = 550; | |
| 260 t7r1.WindowX1 = 799; | |
| 261 t7r1.WindowY0 = t7l1.WindowY0; | |
| 262 t7r1.WindowY1 = 479; | |
| 263 | |
| 264 t7r2.Image = &t7screen; | |
| 265 t7r2.WindowNumberOfTextLines = 2; | |
| 266 t7r2.WindowLineSpacing = t7l2.WindowLineSpacing; | |
| 267 t7r2.WindowTab = 100; | |
| 268 t7r2.WindowX0 = 550; | |
| 269 t7r2.WindowX1 = 799; | |
| 270 t7r2.WindowY0 = t7l2.WindowY0; | |
| 271 t7r2.WindowY1 = t7l2.WindowY1; | |
| 272 | |
| 273 t7r3.Image = &t7screen; | |
| 274 t7r3.WindowNumberOfTextLines = 2; | |
| 275 t7r3.WindowLineSpacing = 0;//t7l3.WindowLineSpacing; | |
| 276 t7r3.WindowTab = 100; | |
| 277 t7r3.WindowX0 = CUSTOMBOX_LINE_RIGHT + CUSTOMBOX_OUTSIDE_OFFSET; | |
| 278 t7r3.WindowX1 = 799; | |
| 279 t7r3.WindowY0 = t7l3.WindowY0; | |
| 280 t7r3.WindowY1 = t7l3.WindowY1; | |
| 281 | |
| 282 t7cC.Image = &t7screen; | |
| 283 t7cC.WindowNumberOfTextLines = 3; | |
| 284 t7cC.WindowLineSpacing = 95; // Abstand von Y0 | |
| 285 t7cC.WindowTab = 100; | |
| 286 t7cC.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; | |
| 287 t7cC.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; | |
| 288 t7cC.WindowY0 = 90; | |
| 289 t7cC.WindowY1 = 434 - 95; | |
| 290 | |
| 291 t7cH.Image = &t7screen; | |
| 292 t7cH.WindowNumberOfTextLines = 1; | |
| 293 t7cH.WindowLineSpacing = 95; // Abstand von Y0 | |
| 294 t7cH.WindowTab = 100; | |
| 295 t7cH.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; | |
| 296 t7cH.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; | |
| 297 t7cH.WindowY0 = 434 - 94; | |
| 298 t7cH.WindowY1 = 434; | |
| 299 | |
| 300 t7cW.Image = &t7screen; | |
| 301 t7cW.WindowNumberOfTextLines = 3; | |
| 302 t7cW.WindowLineSpacing = 95; // Abstand von Y0 | |
| 303 t7cW.WindowTab = 100; | |
| 304 t7cW.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; | |
| 305 t7cW.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; | |
| 306 t7cW.WindowY0 = 90; | |
| 307 t7cW.WindowY1 = 434 - 95; | |
| 308 | |
| 309 | |
| 310 t7surfaceL.Image = &t7screen; | |
| 311 t7surfaceL.WindowNumberOfTextLines = 9; | |
| 312 t7surfaceL.WindowLineSpacing = 53; | |
| 313 t7surfaceL.WindowTab = 100; | |
| 314 t7surfaceL.WindowX0 = 0; | |
| 315 t7surfaceL.WindowX1 = CUSTOMBOX_LINE_LEFT - CUSTOMBOX_OUTSIDE_OFFSET; | |
| 316 t7surfaceL.WindowY0 = 0; | |
| 317 t7surfaceL.WindowY1 = 480; | |
| 318 | |
| 319 t7surfaceR.Image = &t7screen; | |
| 320 t7surfaceR.WindowNumberOfTextLines = 9; | |
| 321 t7surfaceR.WindowLineSpacing = 53; | |
| 322 t7surfaceR.WindowTab = 100; | |
| 323 t7surfaceR.WindowX0 = CUSTOMBOX_LINE_RIGHT + CUSTOMBOX_OUTSIDE_OFFSET; | |
| 324 t7surfaceR.WindowX1 = 800; | |
| 325 t7surfaceR.WindowY0 = 0; | |
| 326 t7surfaceR.WindowY1 = 480; | |
| 327 | |
| 328 t7cY0free.Image = &t7screen; | |
| 329 t7cY0free.WindowNumberOfTextLines = 1; | |
| 330 t7cY0free.WindowLineSpacing = 95; | |
| 331 t7cY0free.WindowTab = 100; | |
| 332 t7cY0free.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; | |
| 333 t7cY0free.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; | |
| 334 t7cY0free.WindowY0 = 90; | |
| 335 t7cY0free.WindowY1 = 434 - 95; | |
| 336 | |
| 337 t7batt.Image = &t7screen; | |
| 338 t7batt.WindowNumberOfTextLines = 1; | |
| 339 t7batt.WindowLineSpacing = 10; | |
| 340 t7batt.WindowTab = 100; | |
| 341 t7batt.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; | |
| 342 t7batt.WindowX0 = t7batt.WindowX1 - (52+52); | |
| 343 t7batt.WindowY1 = 479; | |
| 344 t7batt.WindowY0 = t7batt.WindowY1 - 25; | |
| 345 | |
| 346 t7charge.Image = &t7screen; | |
| 347 t7charge.WindowNumberOfTextLines = 1; | |
| 348 t7charge.WindowLineSpacing = 10; | |
| 349 t7charge.WindowTab = 100; | |
| 350 t7charge.WindowX1 = t7batt.WindowX1 - 18; | |
| 351 t7charge.WindowX0 = t7charge.WindowX1 - 14; | |
| 352 t7charge.WindowY1 = 479; | |
| 353 t7charge.WindowY0 = t7batt.WindowY1 - 25; | |
| 354 | |
| 355 t7voltage.Image = &t7screen; | |
| 356 t7voltage.WindowNumberOfTextLines = 1; | |
| 357 t7voltage.WindowLineSpacing = 10; | |
| 358 t7voltage.WindowTab = 100; | |
| 359 t7voltage.WindowX0 = t7charge.WindowX0 - 30; //10 | |
| 360 t7voltage.WindowX1 = t7voltage.WindowX0 + (18*3)+ 9; | |
| 361 t7voltage.WindowY1 = 479; | |
| 362 t7voltage.WindowY0 = t7batt.WindowY1 - 25; | |
| 363 | |
| 364 t7c1.Image = &t7screen; | |
| 365 t7c1.WindowNumberOfTextLines = 1; | |
| 366 t7c1.WindowLineSpacing = 10; | |
| 367 t7c1.WindowTab = 100; | |
| 368 t7c1.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; | |
| 369 t7c1.WindowX1 = t7batt.WindowX0 - 18; | |
| 370 t7c1.WindowY0 = 435; | |
| 371 t7c1.WindowY1 = 479; | |
| 372 | |
| 373 t7c2.Image = &t7screen; | |
| 374 t7c2.WindowNumberOfTextLines = 1; | |
| 375 t7c2.WindowLineSpacing = 0; // Abstand von Y0 | |
| 376 t7c2.WindowTab = 100; | |
| 377 t7c2.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; | |
| 378 t7c2.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; | |
| 379 t7c2.WindowY0 = 0; | |
| 380 t7c2.WindowY1 = 69; | |
| 381 | |
| 382 t7pCompass.Image = &t7screenCompass; | |
| 383 t7pCompass.WindowNumberOfTextLines = 1; | |
| 384 t7pCompass.WindowLineSpacing = 100; // Abstand von Y0 | |
| 385 t7pCompass.WindowTab = 100; | |
| 386 t7pCompass.WindowX0 = 0; | |
| 387 t7pCompass.WindowX1 = 1600-1; | |
| 388 t7pCompass.WindowY0 = 0; | |
| 389 t7pCompass.WindowY1 = 100-1; | |
| 390 } | |
| 391 else | |
| 392 { | |
| 393 /* 6 segments (left / right) used to show data during dive */ | |
| 394 | |
| 218 t7l1.Image = &t7screen; | 395 t7l1.Image = &t7screen; |
| 219 t7l1.WindowNumberOfTextLines = 2; | 396 t7l1.WindowNumberOfTextLines = 2; |
| 220 t7l1.WindowLineSpacing = 19; // Abstand von Y0 | 397 t7l1.WindowLineSpacing = 19; // Abstand von Y0 |
| 221 t7l1.WindowTab = 100; // vermtl. ohne Verwendung in diesem Fenster | 398 t7l1.WindowTab = 100; // vermtl. ohne Verwendung in diesem Fenster |
| 222 t7l1.WindowX0 = 0; | 399 t7l1.WindowX0 = CUSTOMBOX_LINE_RIGHT + CUSTOMBOX_OUTSIDE_OFFSET; |
| 223 t7l1.WindowX1 = CUSTOMBOX_LINE_LEFT - CUSTOMBOX_OUTSIDE_OFFSET; | 400 t7l1.WindowX1 = 799; |
| 224 t7l1.WindowY0 = 318; | 401 t7l1.WindowY0 = CUSTOMBOX_LINE_TOP; |
| 225 t7l1.WindowY1 = 479; | 402 t7l1.WindowY1 = 150 + TOP_LINE_HIGHT; |
| 226 | 403 |
| 227 t7l2.Image = &t7screen; | 404 t7l2.Image = &t7screen; |
| 228 t7l2.WindowNumberOfTextLines = 2; | 405 t7l2.WindowNumberOfTextLines = 2; |
| 229 t7l2.WindowLineSpacing = 22; // Abstand von Y0 | 406 t7l2.WindowLineSpacing = 22; // Abstand von Y0 |
| 230 t7l2.WindowTab = 100; // vermtl. ohne Verwendung in diesem Fenster | 407 t7l2.WindowTab = 100; // vermtl. ohne Verwendung in diesem Fenster |
| 231 t7l2.WindowX0 = 0; | 408 t7l2.WindowX0 = t7l1.WindowX0; |
| 232 t7l2.WindowX1 = t7l1.WindowX1; | 409 t7l2.WindowX1 = t7l1.WindowX1; |
| 233 t7l2.WindowY0 = 142; | 410 t7l2.WindowY0 = t7l1.WindowY1 + 5; |
| 234 t7l2.WindowY1 = t7l1.WindowY0 - 5; | 411 t7l2.WindowY1 = t7l2.WindowY0 + 146; |
| 235 | 412 |
| 236 t7l3.Image = &t7screen; | 413 t7l3.Image = &t7screen; |
| 237 t7l3.WindowNumberOfTextLines = 2; | 414 t7l3.WindowNumberOfTextLines = 2; |
| 238 t7l3.WindowLineSpacing = 58; // Abstand von Y0 | 415 t7l3.WindowLineSpacing = 58; // Abstand von Y0 |
| 239 t7l3.WindowTab = 100; // vermtl. ohne Verwendung in diesem Fenster | 416 t7l3.WindowTab = 100; // vermtl. ohne Verwendung in diesem Fenster |
| 240 t7l3.WindowX0 = 0; | 417 t7l3.WindowX0 = t7l1.WindowX0; |
| 241 t7l3.WindowX1 = t7l1.WindowX1; | 418 t7l3.WindowX1 = t7l1.WindowX1;; |
| 242 t7l3.WindowY0 = 0; | 419 t7l3.WindowY0 = 479 - 150; |
| 243 t7l3.WindowY1 = t7l2.WindowY0 - 5; | 420 t7l3.WindowY1 = 479; |
| 244 | 421 |
| 245 t7r1.Image = &t7screen; | 422 t7r1.Image = &t7screen; |
| 246 t7r1.WindowNumberOfTextLines = 2; | 423 t7r1.WindowNumberOfTextLines = 2; |
| 247 t7r1.WindowLineSpacing = t7l1.WindowLineSpacing; | 424 t7r1.WindowLineSpacing = t7l1.WindowLineSpacing; |
| 248 t7r1.WindowTab = 100; | 425 t7r1.WindowTab = 100; |
| 249 t7r1.WindowX0 = 550; | 426 t7r1.WindowX0 = 0; |
| 250 t7r1.WindowX1 = 799; | 427 t7r1.WindowX1 = CUSTOMBOX_LINE_LEFT - CUSTOMBOX_OUTSIDE_OFFSET; |
| 251 t7r1.WindowY0 = t7l1.WindowY0; | 428 t7r1.WindowY0 = t7l1.WindowY0; |
| 252 t7r1.WindowY1 = 479; | 429 t7r1.WindowY1 = t7l1.WindowY1; |
| 253 | 430 |
| 254 t7r2.Image = &t7screen; | 431 t7r2.Image = &t7screen; |
| 255 t7r2.WindowNumberOfTextLines = 2; | 432 t7r2.WindowNumberOfTextLines = 2; |
| 256 t7r2.WindowLineSpacing = t7l2.WindowLineSpacing; | 433 t7r2.WindowLineSpacing = t7l2.WindowLineSpacing; |
| 257 t7r2.WindowTab = 100; | 434 t7r2.WindowTab = 100; |
| 258 t7r2.WindowX0 = 550; | 435 t7r2.WindowX0 = t7r1.WindowX0; |
| 259 t7r2.WindowX1 = 799; | 436 t7r2.WindowX1 = t7r1.WindowX1; |
| 260 t7r2.WindowY0 = t7l2.WindowY0; | 437 t7r2.WindowY0 = t7l2.WindowY0; |
| 261 t7r2.WindowY1 = t7l2.WindowY1; | 438 t7r2.WindowY1 = t7l2.WindowY1; |
| 262 | 439 |
| 263 t7r3.Image = &t7screen; | 440 t7r3.Image = &t7screen; |
| 264 t7r3.WindowNumberOfTextLines = 2; | 441 t7r3.WindowNumberOfTextLines = 2; |
| 265 t7r3.WindowLineSpacing = 0;//t7l3.WindowLineSpacing; | 442 t7r3.WindowLineSpacing = 0;//t7l3.WindowLineSpacing; |
| 266 t7r3.WindowTab = 100; | 443 t7r3.WindowTab = 100; |
| 267 t7r3.WindowX0 = CUSTOMBOX_LINE_RIGHT + CUSTOMBOX_OUTSIDE_OFFSET; | 444 t7r3.WindowX0 = t7r1.WindowX0; |
| 268 t7r3.WindowX1 = 799; | 445 t7r3.WindowX1 = t7r1.WindowX1; |
| 269 t7r3.WindowY0 = t7l3.WindowY0; | 446 t7r3.WindowY0 = t7l3.WindowY0; |
| 270 t7r3.WindowY1 = t7l3.WindowY1; | 447 t7r3.WindowY1 = t7l3.WindowY1; |
| 271 | 448 |
| 449 /* screen for CustomText / serial number */ | |
| 272 t7cC.Image = &t7screen; | 450 t7cC.Image = &t7screen; |
| 273 t7cC.WindowNumberOfTextLines = 3; | 451 t7cC.WindowNumberOfTextLines = 3; |
| 274 t7cC.WindowLineSpacing = 95; // Abstand von Y0 | 452 t7cC.WindowLineSpacing = 95; // Abstand von Y0 |
| 275 t7cC.WindowTab = 100; | 453 t7cC.WindowTab = 100; |
| 276 t7cC.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; | 454 t7cC.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; |
| 277 t7cC.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; | 455 t7cC.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; |
| 278 t7cC.WindowY0 = 90; | 456 t7cC.WindowY0 = 165; //90; |
| 279 t7cC.WindowY1 = 434 - 95; | 457 t7cC.WindowY1 = 415; |
| 280 | 458 |
| 459 /* used by warning message box */ | |
| 281 t7cH.Image = &t7screen; | 460 t7cH.Image = &t7screen; |
| 282 t7cH.WindowNumberOfTextLines = 1; | 461 t7cH.WindowNumberOfTextLines = 1; |
| 283 t7cH.WindowLineSpacing = 95; // Abstand von Y0 | 462 t7cH.WindowLineSpacing = 95; // Abstand von Y0 |
| 284 t7cH.WindowTab = 100; | 463 t7cH.WindowTab = 100; |
| 285 t7cH.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; | 464 t7cH.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; |
| 286 t7cH.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; | 465 t7cH.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; |
| 287 t7cH.WindowY0 = 434 - 94; | 466 t7cH.WindowY0 = 46; //480 - 434; |
| 288 t7cH.WindowY1 = 434; | 467 t7cH.WindowY1 = 390 - 46;// - 90; //46 + 390; //480 - (434 - 94); //434; |
| 289 | 468 |
| 469 /* used by warning custom box */ | |
| 290 t7cW.Image = &t7screen; | 470 t7cW.Image = &t7screen; |
| 291 t7cW.WindowNumberOfTextLines = 3; | 471 t7cW.WindowNumberOfTextLines = 3; |
| 292 t7cW.WindowLineSpacing = 95; // Abstand von Y0 | 472 t7cW.WindowLineSpacing = 95; // Abstand von Y0 |
| 293 t7cW.WindowTab = 100; | 473 t7cW.WindowTab = 100; |
| 294 t7cW.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; | 474 t7cW.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; |
| 295 t7cW.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; | 475 t7cW.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; |
| 296 t7cW.WindowY0 = 90; | 476 t7cW.WindowY0 = 480 - (434 - 90); |
| 297 t7cW.WindowY1 = 434 - 95; | 477 t7cW.WindowY1 = 480 - 90; //434 - 95; |
| 298 | 478 |
| 479 /* time and environment */ | |
| 299 t7surfaceL.Image = &t7screen; | 480 t7surfaceL.Image = &t7screen; |
| 300 t7surfaceL.WindowNumberOfTextLines = 9; | 481 t7surfaceL.WindowNumberOfTextLines = 9; |
| 301 t7surfaceL.WindowLineSpacing = 53; | 482 t7surfaceL.WindowLineSpacing = 53; |
| 302 t7surfaceL.WindowTab = 100; | 483 t7surfaceL.WindowTab = 100; |
| 303 t7surfaceL.WindowX0 = 0; | 484 t7surfaceL.WindowX0 = CUSTOMBOX_LINE_RIGHT + CUSTOMBOX_OUTSIDE_OFFSET; |
| 304 t7surfaceL.WindowX1 = CUSTOMBOX_LINE_LEFT - CUSTOMBOX_OUTSIDE_OFFSET; | 485 t7surfaceL.WindowX1 = 799; |
| 305 t7surfaceL.WindowY0 = 0; | 486 t7surfaceL.WindowY0 = 0; |
| 306 t7surfaceL.WindowY1 = 480; | 487 t7surfaceL.WindowY1 = 479; |
| 307 | 488 |
| 308 t7surfaceR.Image = &t7screen; | 489 t7surfaceR.Image = &t7screen; |
| 309 t7surfaceR.WindowNumberOfTextLines = 9; | 490 t7surfaceR.WindowNumberOfTextLines = 9; |
| 310 t7surfaceR.WindowLineSpacing = 53; | 491 t7surfaceR.WindowLineSpacing = 53; |
| 311 t7surfaceR.WindowTab = 100; | 492 t7surfaceR.WindowTab = 100; |
| 312 t7surfaceR.WindowX0 = CUSTOMBOX_LINE_RIGHT + CUSTOMBOX_OUTSIDE_OFFSET; | 493 t7surfaceR.WindowX0 = 0; |
| 313 t7surfaceR.WindowX1 = 800; | 494 t7surfaceR.WindowX1 = CUSTOMBOX_LINE_LEFT - CUSTOMBOX_OUTSIDE_OFFSET; |
| 314 t7surfaceR.WindowY0 = 0; | 495 t7surfaceR.WindowY0 = 0; |
| 315 t7surfaceR.WindowY1 = 480; | 496 t7surfaceR.WindowY1 = 479; |
| 316 | 497 |
| 498 /* info screen in the middle */ | |
| 317 t7cY0free.Image = &t7screen; | 499 t7cY0free.Image = &t7screen; |
| 318 t7cY0free.WindowNumberOfTextLines = 1; | 500 t7cY0free.WindowNumberOfTextLines = 1; |
| 319 t7cY0free.WindowLineSpacing = 95; | 501 t7cY0free.WindowLineSpacing = 95; |
| 320 t7cY0free.WindowTab = 100; | 502 t7cY0free.WindowTab = 100; |
| 321 t7cY0free.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; | 503 t7cY0free.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; |
| 322 t7cY0free.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; | 504 t7cY0free.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; |
| 323 t7cY0free.WindowY0 = 90; | 505 t7cY0free.WindowY0 = 115; |
| 324 t7cY0free.WindowY1 = 434 - 95; | 506 t7cY0free.WindowY1 = 365; |
| 325 | 507 |
| 508 /* voltage value (V or %) */ | |
| 509 t7voltage.Image = &t7screen; | |
| 510 t7voltage.WindowNumberOfTextLines = 1; | |
| 511 t7voltage.WindowLineSpacing = 10; | |
| 512 t7voltage.WindowTab = 100; | |
| 513 t7voltage.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; | |
| 514 t7voltage.WindowX1 = t7voltage.WindowX0 + (18*3) +9; | |
| 515 t7voltage.WindowY1 = TOP_LINE_HIGHT; | |
| 516 t7voltage.WindowY0 = 0; | |
| 517 | |
| 518 /* battery symbol */ | |
| 326 t7batt.Image = &t7screen; | 519 t7batt.Image = &t7screen; |
| 327 t7batt.WindowNumberOfTextLines = 1; | 520 t7batt.WindowNumberOfTextLines = 1; |
| 328 t7batt.WindowLineSpacing = 10; | 521 t7batt.WindowLineSpacing = 10; |
| 329 t7batt.WindowTab = 100; | 522 t7batt.WindowTab = 100; |
| 330 t7batt.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; | 523 t7batt.WindowX0 = t7voltage.WindowX1; |
| 331 t7batt.WindowX0 = t7batt.WindowX1 - (52+52); | 524 t7batt.WindowX1 = t7batt.WindowX0 + (52); |
| 332 t7batt.WindowY1 = 479; | 525 t7batt.WindowY1 = TOP_LINE_HIGHT; |
| 333 t7batt.WindowY0 = t7batt.WindowY1 - 25; | 526 t7batt.WindowY0 = 0; |
| 334 | 527 |
| 528 /* charger symbol */ | |
| 335 t7charge.Image = &t7screen; | 529 t7charge.Image = &t7screen; |
| 336 t7charge.WindowNumberOfTextLines = 1; | 530 t7charge.WindowNumberOfTextLines = 1; |
| 337 t7charge.WindowLineSpacing = 10; | 531 t7charge.WindowLineSpacing = 10; |
| 338 t7charge.WindowTab = 100; | 532 t7charge.WindowTab = 100; |
| 339 t7charge.WindowX1 = t7batt.WindowX1 - 18; | 533 t7charge.WindowX1 = t7batt.WindowX0 - 18; |
| 340 t7charge.WindowX0 = t7charge.WindowX1 - 14; | 534 t7charge.WindowX0 = t7charge.WindowX1 - 14; |
| 341 t7charge.WindowY1 = 479; | 535 |
| 342 t7charge.WindowY0 = t7batt.WindowY1 - 25; | 536 t7charge.WindowY1 = TOP_LINE_HIGHT; |
| 343 | 537 t7charge.WindowY0 = 0; |
| 344 t7voltage.Image = &t7screen; | 538 |
| 345 t7voltage.WindowNumberOfTextLines = 1; | 539 /* show dive mode OC / CC */ |
| 346 t7voltage.WindowLineSpacing = 10; | |
| 347 t7voltage.WindowTab = 100; | |
| 348 t7voltage.WindowX0 = t7charge.WindowX0 - 10; | |
| 349 t7voltage.WindowX1 = t7voltage.WindowX0 + (18*3)+ 9; | |
| 350 t7voltage.WindowY1 = 479; | |
| 351 t7voltage.WindowY0 = t7batt.WindowY1 - 25; | |
| 352 | |
| 353 t7c1.Image = &t7screen; | 540 t7c1.Image = &t7screen; |
| 354 t7c1.WindowNumberOfTextLines = 1; | 541 t7c1.WindowNumberOfTextLines = 1; |
| 355 t7c1.WindowLineSpacing = 10; | 542 t7c1.WindowLineSpacing = 10; |
| 356 t7c1.WindowTab = 100; | 543 t7c1.WindowTab = 100; |
| 357 t7c1.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; | 544 t7c1.WindowX0 = t7batt.WindowX1 + 18; //CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; |
| 358 t7c1.WindowX1 = t7batt.WindowX0 - 18; | 545 t7c1.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; //t7batt.WindowX1 + 18; |
| 359 t7c1.WindowY0 = 435; | 546 t7c1.WindowY0 = 0; |
| 360 t7c1.WindowY1 = 479; | 547 t7c1.WindowY1 = 479 - 435; |
| 361 | 548 |
| 549 /* Gas warnings and exit Sim*/ | |
| 362 t7c2.Image = &t7screen; | 550 t7c2.Image = &t7screen; |
| 363 t7c2.WindowNumberOfTextLines = 1; | 551 t7c2.WindowNumberOfTextLines = 1; |
| 364 t7c2.WindowLineSpacing = 0; // Abstand von Y0 | 552 t7c2.WindowLineSpacing = 0; // Abstand von Y0 |
| 365 t7c2.WindowTab = 100; | 553 t7c2.WindowTab = 100; |
| 366 t7c2.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; | 554 t7c2.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; |
| 367 t7c2.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; | 555 t7c2.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; |
| 368 t7c2.WindowY0 = 0; | 556 t7c2.WindowY0 = 480 - 69; |
| 369 t7c2.WindowY1 = 69; | 557 t7c2.WindowY1 = 479; |
| 370 | 558 |
| 559 /* Rotating compass */ | |
| 371 t7pCompass.Image = &t7screenCompass; | 560 t7pCompass.Image = &t7screenCompass; |
| 372 t7pCompass.WindowNumberOfTextLines = 1; | 561 t7pCompass.WindowNumberOfTextLines = 1; |
| 373 t7pCompass.WindowLineSpacing = 100; // Abstand von Y0 | 562 t7pCompass.WindowLineSpacing = 100; // Abstand von Y0 |
| 374 t7pCompass.WindowTab = 100; | 563 t7pCompass.WindowTab = 100; |
| 375 t7pCompass.WindowX0 = 0; | 564 t7pCompass.WindowX0 = 0; |
| 376 t7pCompass.WindowX1 = 1600-1; | 565 t7pCompass.WindowX1 = 1600-1; |
| 377 t7pCompass.WindowY0 = 0; | 566 t7pCompass.WindowY0 = 479 - 75; |
| 378 t7pCompass.WindowY1 = 100-1; | 567 t7pCompass.WindowY1 = 479; |
| 568 | |
| 569 } | |
| 379 | 570 |
| 380 init_t7_compass(); | 571 init_t7_compass(); |
| 381 } | 572 } |
| 382 | 573 |
| 383 | 574 |
| 536 | 727 |
| 537 uint8_t oxygen_percentage, gasOffset, actualGasID; | 728 uint8_t oxygen_percentage, gasOffset, actualGasID; |
| 538 // uint16_t bottleFirstGas_bar; | 729 // uint16_t bottleFirstGas_bar; |
| 539 point_t start, stop;//, other; | 730 point_t start, stop;//, other; |
| 540 | 731 |
| 732 SSettings* pSettings; | |
| 733 pSettings = settingsGetPointer(); | |
| 734 | |
| 735 | |
| 541 // update in all customview modes | 736 // update in all customview modes |
| 542 if(DataEX_check_RTE_version__needs_update() || font_update_required()) | 737 if(DataEX_check_RTE_version__needs_update() || font_update_required()) |
| 543 updateNecessary = 1; | 738 updateNecessary = 1; |
| 544 else | 739 else |
| 545 updateNecessary = 0; | 740 updateNecessary = 0; |
| 546 | 741 |
| 547 /* buttons */ | 742 /* buttons */ |
| 548 text[0] = TXT_2BYTE; | 743 text[0] = TXT_2BYTE; |
| 549 text[1] = TXT2BYTE_ButtonLogbook; | 744 text[1] = TXT2BYTE_ButtonLogbook; |
| 550 text[2] = 0; | 745 text[2] = 0; |
| 551 write_content_simple(&t7screen, 0, 800, 480-24, &FontT24,text,CLUT_ButtonSurfaceScreen); | 746 write_content_simple(&t7screen, 0, 799, 479-TOP_LINE_HIGHT, &FontT24,text,CLUT_ButtonSurfaceScreen); |
| 552 | 747 |
| 553 text[0] = '\001'; | 748 text[0] = '\001'; |
| 554 text[1] = TXT_2BYTE; | 749 text[1] = TXT_2BYTE; |
| 555 text[2] = TXT2BYTE_ButtonView; | 750 text[2] = TXT2BYTE_ButtonView; |
| 556 text[3] = 0; | 751 text[3] = 0; |
| 557 write_content_simple(&t7screen, 0, 800, 480-24, &FontT24,text,CLUT_ButtonSurfaceScreen); | 752 write_content_simple(&t7screen, 0, 799, 479-TOP_LINE_HIGHT, &FontT24,text,CLUT_ButtonSurfaceScreen); |
| 558 | 753 |
| 559 text[0] = '\002'; | 754 text[0] = '\002'; |
| 560 text[1] = TXT_2BYTE; | 755 text[1] = TXT_2BYTE; |
| 561 text[2] = TXT2BYTE_ButtonMenu; | 756 text[2] = TXT2BYTE_ButtonMenu; |
| 562 text[3] = 0; | 757 text[3] = 0; |
| 563 write_content_simple(&t7screen, 0, 800, 480-24, &FontT24,text,CLUT_ButtonSurfaceScreen); | 758 write_content_simple(&t7screen, 0, 799, 479-TOP_LINE_HIGHT, &FontT24,text,CLUT_ButtonSurfaceScreen); |
| 564 | 759 |
| 565 /* | 760 /* |
| 566 // scooter connected? | 761 // scooter connected? |
| 567 if(bC_getData(0,0,0,0) == BC_CONNECTED) | 762 if(bC_getData(0,0,0,0) == BC_CONNECTED) |
| 568 { | 763 { |
| 863 } | 1058 } |
| 864 */ | 1059 */ |
| 865 // after gas name :-) | 1060 // after gas name :-) |
| 866 if(actualGasID > gasOffset) // security | 1061 if(actualGasID > gasOffset) // security |
| 867 { | 1062 { |
| 868 start.y = t7surfaceL.WindowY0 + (3 * t7surfaceL.WindowLineSpacing); | 1063 if(!pSettings->FlipDisplay) |
| 869 start.x = t7surfaceL.WindowX0 + ((stateUsed->lifeData.actualGas.GasIdInSettings - gasOffset - 1) * 35); | 1064 { |
| 1065 start.y = t7surfaceL.WindowY0 + (3 * t7surfaceL.WindowLineSpacing); | |
| 1066 start.x = t7surfaceL.WindowX0 + ((stateUsed->lifeData.actualGas.GasIdInSettings - gasOffset - 1) * 35); | |
| 1067 } | |
| 1068 else | |
| 1069 { | |
| 1070 start.y = t7surfaceR.WindowY0 + (3 * t7surfaceR.WindowLineSpacing); | |
| 1071 start.x = t7surfaceR.WindowX0 + ((stateUsed->lifeData.actualGas.GasIdInSettings - gasOffset - 1) * 35); | |
| 1072 } | |
| 1073 | |
| 870 stop.x = start.x + 25; | 1074 stop.x = start.x + 25; |
| 871 stop.y = start.y + 52; | 1075 stop.y = start.y + 52; |
| 872 GFX_draw_box2(&t7screen, start, stop, CLUT_Font020, 1); | 1076 GFX_draw_box2(&t7screen, start, stop, CLUT_Font020, 1); |
| 873 } | 1077 } |
| 874 } | 1078 } |
| 919 if((stateUsed->lifeData.battery_charge > 0) && (stateUsed->lifeData.battery_charge < 140)) | 1123 if((stateUsed->lifeData.battery_charge > 0) && (stateUsed->lifeData.battery_charge < 140)) |
| 920 { | 1124 { |
| 921 snprintf(text,16,"\004\025\f\002%u%%",(uint8_t)stateUsed->lifeData.battery_charge); | 1125 snprintf(text,16,"\004\025\f\002%u%%",(uint8_t)stateUsed->lifeData.battery_charge); |
| 922 if(warning_count_high_time) | 1126 if(warning_count_high_time) |
| 923 text[0] = '\a'; | 1127 text[0] = '\a'; |
| 924 GFX_write_string(&FontT24,&t7batt,text,0); | 1128 GFX_write_string(&FontT24,&t7voltage,text,0); |
| 925 } | 1129 } |
| 926 else | 1130 else |
| 927 { | 1131 { |
| 928 snprintf(text,6,"\f%.1fV",stateUsed->lifeData.battery_voltage); | 1132 snprintf(text,6,"\f%.1fV",stateUsed->lifeData.battery_voltage); |
| 929 GFX_write_string(&FontT24,&t7voltage,text,0); | 1133 GFX_write_string(&FontT24,&t7voltage,text,0); |
| 934 GFX_write_string_color(&Batt24,&t7batt,text,0,CLUT_BatteryStandard); | 1138 GFX_write_string_color(&Batt24,&t7batt,text,0,CLUT_BatteryStandard); |
| 935 | 1139 |
| 936 if((stateUsed->lifeData.battery_charge > 0) && (stateUsed->lifeData.battery_charge < 140)) | 1140 if((stateUsed->lifeData.battery_charge > 0) && (stateUsed->lifeData.battery_charge < 140)) |
| 937 { | 1141 { |
| 938 snprintf(text,16,"\f\002%u%%",(uint8_t)stateUsed->lifeData.battery_charge); | 1142 snprintf(text,16,"\f\002%u%%",(uint8_t)stateUsed->lifeData.battery_charge); |
| 939 GFX_write_string(&FontT24,&t7batt,text,0); | 1143 // GFX_write_string(&FontT24,&t7batt,text,0); |
| 1144 GFX_write_string(&FontT24,&t7voltage,text,0); | |
| 940 } | 1145 } |
| 941 else | 1146 else |
| 942 { | 1147 { |
| 943 snprintf(text,6,"\f%.1fV",stateUsed->lifeData.battery_voltage); | 1148 snprintf(text,6,"\f%.1fV",stateUsed->lifeData.battery_voltage); |
| 944 GFX_write_string(&FontT24,&t7voltage,text,0); | 1149 GFX_write_string(&FontT24,&t7voltage,text,0); |
| 1401 } | 1606 } |
| 1402 | 1607 |
| 1403 | 1608 |
| 1404 void t7_refresh_customview(void) | 1609 void t7_refresh_customview(void) |
| 1405 { | 1610 { |
| 1406 if((selection_customview == CVIEW_Scooter) && (getLicence() != LICENCEBONEX)) | |
| 1407 t7_change_customview(); | |
| 1408 if((selection_customview == CVIEW_Scooter) && (!DataEX_scooterFoundAndValidLicence() && (stateRealGetPointer()->mode == MODE_DIVE))) | |
| 1409 t7_change_customview(); | |
| 1410 if((selection_customview == CVIEW_sensors) &&(stateUsed->diveSettings.ccrOption == 0)) | |
| 1411 t7_change_customview(); | |
| 1412 if((selection_customview == CVIEW_sensors_mV) &&(stateUsed->diveSettings.ccrOption == 0)) | |
| 1413 t7_change_customview(); | |
| 1414 if((selection_customview == CVIEW_sensors) &&(stateUsed->diveSettings.ccrOption == 0)) | |
| 1415 t7_change_customview(); | |
| 1416 | 1611 |
| 1417 char text[256]; | 1612 char text[256]; |
| 1418 uint16_t textpointer = 0; | 1613 uint16_t textpointer = 0; |
| 1419 int16_t start; | 1614 int16_t start; |
| 1420 uint8_t lineCountCustomtext = 0; | 1615 uint8_t lineCountCustomtext = 0; |
| 1423 RTC_TimeTypeDef Stime; | 1618 RTC_TimeTypeDef Stime; |
| 1424 float fPpO2limitHigh, fPpO2limitLow, fPpO2ofGasAtThisDepth; // CVIEW_Gaslist | 1619 float fPpO2limitHigh, fPpO2limitLow, fPpO2ofGasAtThisDepth; // CVIEW_Gaslist |
| 1425 const SGasLine * pGasLine; // CVIEW_Gaslist | 1620 const SGasLine * pGasLine; // CVIEW_Gaslist |
| 1426 uint8_t oxygen, helium; // CVIEW_Gaslist | 1621 uint8_t oxygen, helium; // CVIEW_Gaslist |
| 1427 float depth, surface, fraction_nitrogen, fraction_helium, ead, end; // CVIEW_EADTime | 1622 float depth, surface, fraction_nitrogen, fraction_helium, ead, end; // CVIEW_EADTime |
| 1623 | |
| 1624 SSettings* pSettings; | |
| 1625 pSettings = settingsGetPointer(); | |
| 1626 | |
| 1627 | |
| 1628 if((selection_customview == CVIEW_Scooter) && (getLicence() != LICENCEBONEX)) | |
| 1629 t7_change_customview(); | |
| 1630 if((selection_customview == CVIEW_Scooter) && (!DataEX_scooterFoundAndValidLicence() && (stateRealGetPointer()->mode == MODE_DIVE))) | |
| 1631 t7_change_customview(); | |
| 1632 if((selection_customview == CVIEW_sensors) &&(stateUsed->diveSettings.ccrOption == 0)) | |
| 1633 t7_change_customview(); | |
| 1634 if((selection_customview == CVIEW_sensors_mV) &&(stateUsed->diveSettings.ccrOption == 0)) | |
| 1635 t7_change_customview(); | |
| 1636 if((selection_customview == CVIEW_sensors) &&(stateUsed->diveSettings.ccrOption == 0)) | |
| 1637 t7_change_customview(); | |
| 1428 | 1638 |
| 1429 switch(selection_customview) | 1639 switch(selection_customview) |
| 1430 { | 1640 { |
| 1431 case CVIEW_noneOrDebug: | 1641 case CVIEW_noneOrDebug: |
| 1432 if(settingsGetPointer()->showDebugInfo) | 1642 if(settingsGetPointer()->showDebugInfo) |
| 1545 // header | 1755 // header |
| 1546 snprintf(text,100,"\032\f\001%c%c",TXT_2BYTE,TXT2BYTE_Gaslist); | 1756 snprintf(text,100,"\032\f\001%c%c",TXT_2BYTE,TXT2BYTE_Gaslist); |
| 1547 GFX_write_string(&FontT42,&t7cH,text,0); | 1757 GFX_write_string(&FontT42,&t7cH,text,0); |
| 1548 // content | 1758 // content |
| 1549 textpointer = 0; | 1759 textpointer = 0; |
| 1550 t7cY0free.WindowY0 = t7cC.WindowY0 - 10; | 1760 |
| 1761 if(!pSettings->FlipDisplay) | |
| 1762 { | |
| 1763 t7cY0free.WindowY0 = t7cC.WindowY0 - 10; | |
| 1764 } | |
| 1765 else | |
| 1766 { | |
| 1767 t7cY0free.WindowY1 = 400; | |
| 1768 } | |
| 1551 t7cY0free.WindowLineSpacing = 48+9; | 1769 t7cY0free.WindowLineSpacing = 48+9; |
| 1552 t7cY0free.WindowNumberOfTextLines = 5; // NUM_GASES == 5 | 1770 t7cY0free.WindowNumberOfTextLines = 5; // NUM_GASES == 5 |
| 1553 t7cY0free.WindowTab = 420; | 1771 t7cY0free.WindowTab = 420; |
| 1554 | 1772 |
| 1555 pGasLine = settingsGetPointer()->gas; | 1773 pGasLine = settingsGetPointer()->gas; |
| 1586 snprintf(text,100,"\032\f\001%c%c",TXT_2BYTE,TXT2BYTE_Info ); | 1804 snprintf(text,100,"\032\f\001%c%c",TXT_2BYTE,TXT2BYTE_Info ); |
| 1587 GFX_write_string(&FontT42,&t7cH,text,0); | 1805 GFX_write_string(&FontT42,&t7cH,text,0); |
| 1588 textpointer = 0; | 1806 textpointer = 0; |
| 1589 | 1807 |
| 1590 t7cY0free.WindowY0 = t7cC.WindowY0 - 10; | 1808 t7cY0free.WindowY0 = t7cC.WindowY0 - 10; |
| 1809 if(pSettings->FlipDisplay) | |
| 1810 { | |
| 1811 t7cY0free.WindowY1 = 400; | |
| 1812 } | |
| 1591 t7cY0free.WindowLineSpacing = 48; | 1813 t7cY0free.WindowLineSpacing = 48; |
| 1592 t7cY0free.WindowNumberOfTextLines = 6; | 1814 t7cY0free.WindowNumberOfTextLines = 6; |
| 1593 | 1815 |
| 1594 // time | 1816 // time |
| 1595 snprintf(text,100,"\032\001%c%c",TXT_2BYTE,TXT2BYTE_Clock ); | 1817 snprintf(text,100,"\032\001%c%c",TXT_2BYTE,TXT2BYTE_Clock ); |
| 1714 case CVIEW_Compass: | 1936 case CVIEW_Compass: |
| 1715 default: | 1937 default: |
| 1716 snprintf(text,100,"\032\f\001%c%c",TXT_2BYTE, TXT2BYTE_Compass); | 1938 snprintf(text,100,"\032\f\001%c%c",TXT_2BYTE, TXT2BYTE_Compass); |
| 1717 GFX_write_string(&FontT42,&t7cH,text,0); | 1939 GFX_write_string(&FontT42,&t7cH,text,0); |
| 1718 t7_compass((uint16_t)stateUsed->lifeData.compass_heading, stateUsed->diveSettings.compassHeading); | 1940 t7_compass((uint16_t)stateUsed->lifeData.compass_heading, stateUsed->diveSettings.compassHeading); |
| 1719 t7cY0free.WindowY0 = 230; | 1941 |
| 1720 t7cY0free.WindowX0 += 15; | 1942 if(!pSettings->FlipDisplay) |
| 1943 { | |
| 1944 t7cY0free.WindowX0 += 15; | |
| 1945 t7cY0free.WindowY0 = 230; | |
| 1946 } | |
| 1947 else | |
| 1948 { | |
| 1949 t7cY0free.WindowX0 -= 15; | |
| 1950 t7cY0free.WindowY0 = 0; | |
| 1951 t7cY0free.WindowY1 = 250; | |
| 1952 } | |
| 1721 snprintf(text,100,"\030\001%03i`",(uint16_t)stateUsed->lifeData.compass_heading); | 1953 snprintf(text,100,"\030\001%03i`",(uint16_t)stateUsed->lifeData.compass_heading); |
| 1722 GFX_write_string(&FontT54,&t7cY0free,text,0); | 1954 GFX_write_string(&FontT54,&t7cY0free,text,0); |
| 1723 t7cY0free.WindowX0 -= 15; | 1955 if(!pSettings->FlipDisplay) |
| 1956 { | |
| 1957 t7cY0free.WindowX0 -= 15; | |
| 1958 } | |
| 1959 else | |
| 1960 { | |
| 1961 t7cY0free.WindowX0 += 15; | |
| 1962 } | |
| 1724 break; | 1963 break; |
| 1725 | 1964 |
| 1726 case CVIEW_Decolist: | 1965 case CVIEW_Decolist: |
| 1727 snprintf(text,100,"\032\f\001 %c%c", TXT_2BYTE, TXT2BYTE_Decolist); | 1966 snprintf(text,100,"\032\f\001 %c%c", TXT_2BYTE, TXT2BYTE_Decolist); |
| 1728 GFX_write_string(&FontT42,&t7cH,text,0); | 1967 GFX_write_string(&FontT42,&t7cH,text,0); |
| 1763 textpointer += snprintf(&text[textpointer],20,"\030\034 %2u\016\016%c%c\017%3i'\n\r",depthNext, unit_depth_char1(), unit_depth_char2(), (pDecoinfo->output_stop_length_seconds[i]+59)/60); | 2002 textpointer += snprintf(&text[textpointer],20,"\030\034 %2u\016\016%c%c\017%3i'\n\r",depthNext, unit_depth_char1(), unit_depth_char2(), (pDecoinfo->output_stop_length_seconds[i]+59)/60); |
| 1764 else | 2003 else |
| 1765 textpointer += snprintf(&text[textpointer],20,"\031\034 %2u\016\016%c%c\017\n\r",depthNext, unit_depth_char1(), unit_depth_char2()); | 2004 textpointer += snprintf(&text[textpointer],20,"\031\034 %2u\016\016%c%c\017\n\r",depthNext, unit_depth_char1(), unit_depth_char2()); |
| 1766 if(textpointer > 200) break; | 2005 if(textpointer > 200) break; |
| 1767 } | 2006 } |
| 1768 t7cY0free.WindowY0 = t7cC.WindowY0 - 10; | 2007 if(!pSettings->FlipDisplay) |
| 2008 { | |
| 2009 t7cY0free.WindowY0 = t7cC.WindowY0 - 10; | |
| 2010 } | |
| 2011 else | |
| 2012 { | |
| 2013 t7cY0free.WindowY0 = t7cC.WindowY0 - 10; | |
| 2014 t7cY0free.WindowY1 = 400; | |
| 2015 } | |
| 2016 | |
| 1769 t7cY0free.WindowLineSpacing = 48; | 2017 t7cY0free.WindowLineSpacing = 48; |
| 1770 t7cY0free.WindowNumberOfTextLines = 6; | 2018 t7cY0free.WindowNumberOfTextLines = 6; |
| 1771 GFX_write_string(&FontT42, &t7cY0free, text, 1); | 2019 GFX_write_string(&FontT42, &t7cY0free, text, 1); |
| 1772 break; | 2020 break; |
| 1773 } | 2021 } |
| 1801 SDivetime SafetyStopTime = {0,0,0,0}; | 2049 SDivetime SafetyStopTime = {0,0,0,0}; |
| 1802 SDivetime TimeoutTime = {0,0,0,0}; | 2050 SDivetime TimeoutTime = {0,0,0,0}; |
| 1803 uint8_t customview_warnings = 0; | 2051 uint8_t customview_warnings = 0; |
| 1804 const SDecoinfo * pDecoinfo; | 2052 const SDecoinfo * pDecoinfo; |
| 1805 | 2053 |
| 2054 SSettings* pSettings; | |
| 2055 pSettings = settingsGetPointer(); | |
| 2056 | |
| 1806 Divetime.Total = stateUsed->lifeData.dive_time_seconds_without_surface_time; | 2057 Divetime.Total = stateUsed->lifeData.dive_time_seconds_without_surface_time; |
| 1807 Divetime.Minutes = Divetime.Total / 60; | 2058 Divetime.Minutes = Divetime.Total / 60; |
| 1808 Divetime.Seconds = Divetime.Total - ( Divetime.Minutes * 60 ); | 2059 Divetime.Seconds = Divetime.Total - ( Divetime.Minutes * 60 ); |
| 1809 | 2060 |
| 1810 SafetyStopTime.Total = timer_Safetystop_GetCountDown(); | 2061 SafetyStopTime.Total = timer_Safetystop_GetCountDown(); |
| 1896 GFX_write_string(&FontT105,&t7l2,TextL2,1); | 2147 GFX_write_string(&FontT105,&t7l2,TextL2,1); |
| 1897 | 2148 |
| 1898 /* ascentrate graph */ | 2149 /* ascentrate graph */ |
| 1899 if(stateUsed->lifeData.ascent_rate_meter_per_min > 0) | 2150 if(stateUsed->lifeData.ascent_rate_meter_per_min > 0) |
| 1900 { | 2151 { |
| 1901 start.y = t7l1.WindowY0 - 1; | 2152 if(!pSettings->FlipDisplay) |
| 2153 { | |
| 2154 start.y = t7l1.WindowY0 - 1; | |
| 2155 } | |
| 2156 else | |
| 2157 { | |
| 2158 start.y = t7l3.WindowY0 - 25; | |
| 2159 } | |
| 2160 | |
| 1902 for(int i = 0; i<4;i++) | 2161 for(int i = 0; i<4;i++) |
| 1903 { | 2162 { |
| 1904 start.y += 5*6; | 2163 start.y += 5*6; |
| 1905 stop.y = start.y; | 2164 stop.y = start.y; |
| 1906 start.x = CUSTOMBOX_LINE_LEFT - 1; | 2165 start.x = CUSTOMBOX_LINE_LEFT - 1; |
| 1911 // GFX_draw_line(&t7screen, start, stop, 0); | 2170 // GFX_draw_line(&t7screen, start, stop, 0); |
| 1912 } | 2171 } |
| 1913 // new thick bar design Sept. 2015 | 2172 // new thick bar design Sept. 2015 |
| 1914 start.x = CUSTOMBOX_LINE_LEFT - CUSTOMBOX_OUTSIDE_OFFSET - 3 - 5; | 2173 start.x = CUSTOMBOX_LINE_LEFT - CUSTOMBOX_OUTSIDE_OFFSET - 3 - 5; |
| 1915 stop.x = start.x; | 2174 stop.x = start.x; |
| 1916 start.y = t7l1.WindowY0 - 1; | 2175 if(!pSettings->FlipDisplay) |
| 2176 { | |
| 2177 start.y = t7l1.WindowY0 - 1; | |
| 2178 } | |
| 2179 else | |
| 2180 { | |
| 2181 start.y = t7l3.WindowY0 - 25; | |
| 2182 } | |
| 1917 stop.y = start.y + (uint16_t)(stateUsed->lifeData.ascent_rate_meter_per_min * 6); | 2183 stop.y = start.y + (uint16_t)(stateUsed->lifeData.ascent_rate_meter_per_min * 6); |
| 1918 stop.y -= 3; // wegen der Liniendicke von 12 anstelle von 9 | 2184 stop.y -= 3; // wegen der Liniendicke von 12 anstelle von 9 |
| 1919 if(stop.y >= 470) | 2185 if(stop.y >= 470) |
| 1920 stop.y = 470; | 2186 stop.y = 470; |
| 1921 start.y += 7; // starte etwas weiter oben | 2187 start.y += 7; // starte etwas weiter oben |
| 2225 if((stateUsed->lifeData.battery_charge > 0) && (stateUsed->lifeData.battery_charge < 140)) | 2491 if((stateUsed->lifeData.battery_charge > 0) && (stateUsed->lifeData.battery_charge < 140)) |
| 2226 { | 2492 { |
| 2227 snprintf(TextC1,16,"\004\025\f\002%u%%",(uint8_t)stateUsed->lifeData.battery_charge); | 2493 snprintf(TextC1,16,"\004\025\f\002%u%%",(uint8_t)stateUsed->lifeData.battery_charge); |
| 2228 if(warning_count_high_time) | 2494 if(warning_count_high_time) |
| 2229 TextC1[0] = '\a'; | 2495 TextC1[0] = '\a'; |
| 2230 GFX_write_string(&FontT24,&t7batt,TextC1,0); | 2496 GFX_write_string(&FontT24,&t7voltage,TextC1,0); |
| 2231 } | 2497 } |
| 2232 } | 2498 } |
| 2233 else | 2499 else |
| 2234 { | 2500 { |
| 2235 t7_colorscheme_mod(TextC1); | 2501 t7_colorscheme_mod(TextC1); |
| 2237 | 2503 |
| 2238 if((stateUsed->lifeData.battery_charge > 0) && (stateUsed->lifeData.battery_charge < 140)) | 2504 if((stateUsed->lifeData.battery_charge > 0) && (stateUsed->lifeData.battery_charge < 140)) |
| 2239 { | 2505 { |
| 2240 snprintf(TextC1,16,"\020\f\002%u%%",(uint8_t)stateUsed->lifeData.battery_charge); | 2506 snprintf(TextC1,16,"\020\f\002%u%%",(uint8_t)stateUsed->lifeData.battery_charge); |
| 2241 t7_colorscheme_mod(TextC1); | 2507 t7_colorscheme_mod(TextC1); |
| 2242 GFX_write_string(&FontT24,&t7batt,TextC1,0); | 2508 GFX_write_string(&FontT24,&t7voltage,TextC1,0); // t7batt |
| 2243 } | 2509 } |
| 2244 } | 2510 } |
| 2245 | 2511 |
| 2246 /* customizable left lower corner */ | 2512 /* customizable left lower corner */ |
| 2247 t7_refresh_divemode_userselected_left_lower_corner(); | 2513 t7_refresh_divemode_userselected_left_lower_corner(); |
| 2482 void draw_frame(_Bool PluginBoxHeader, _Bool LinesOnTheSides, uint8_t colorBox, uint8_t colorLinesOnTheSide) | 2748 void draw_frame(_Bool PluginBoxHeader, _Bool LinesOnTheSides, uint8_t colorBox, uint8_t colorLinesOnTheSide) |
| 2483 { | 2749 { |
| 2484 point_t LeftLow, WidthHeight; | 2750 point_t LeftLow, WidthHeight; |
| 2485 point_t start, stop; | 2751 point_t start, stop; |
| 2486 | 2752 |
| 2753 SSettings* pSettings; | |
| 2754 pSettings = settingsGetPointer(); | |
| 2755 | |
| 2487 // plugin box | 2756 // plugin box |
| 2488 LeftLow.x = CUSTOMBOX_LINE_LEFT; | 2757 LeftLow.x = CUSTOMBOX_LINE_LEFT; |
| 2489 WidthHeight.x = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_LINE_LEFT; | 2758 WidthHeight.x = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_LINE_LEFT; |
| 2490 LeftLow.y = 60; | 2759 LeftLow.y = 60; |
| 2491 WidthHeight.y = 440 - LeftLow.y; | 2760 WidthHeight.y = 440 - LeftLow.y; |
| 2503 if(LinesOnTheSides) | 2772 if(LinesOnTheSides) |
| 2504 { | 2773 { |
| 2505 // aufteilung links | 2774 // aufteilung links |
| 2506 start.x = 0; | 2775 start.x = 0; |
| 2507 stop.x = CUSTOMBOX_LINE_LEFT; | 2776 stop.x = CUSTOMBOX_LINE_LEFT; |
| 2508 stop.y = start.y = t7l1.WindowY0 - 1; | 2777 if(!pSettings->FlipDisplay) |
| 2778 { | |
| 2779 stop.y = start.y = t7l1.WindowY0 - 1; | |
| 2780 } | |
| 2781 else | |
| 2782 { | |
| 2783 stop.y = start.y = 480 - t7l1.WindowY1 - 1; | |
| 2784 } | |
| 2785 | |
| 2509 GFX_draw_line(&t7screen, start, stop, colorLinesOnTheSide); | 2786 GFX_draw_line(&t7screen, start, stop, colorLinesOnTheSide); |
| 2510 stop.y = start.y = t7l2.WindowY0 -1; | 2787 if(!pSettings->FlipDisplay) |
| 2788 { | |
| 2789 stop.y = start.y = t7l2.WindowY0 -1; | |
| 2790 } | |
| 2791 else | |
| 2792 { | |
| 2793 stop.y = start.y = 480 - t7l2.WindowY1 -1; | |
| 2794 } | |
| 2511 GFX_draw_line(&t7screen, start, stop, colorLinesOnTheSide); | 2795 GFX_draw_line(&t7screen, start, stop, colorLinesOnTheSide); |
| 2512 | 2796 |
| 2513 // aufteilung rechts | 2797 // aufteilung rechts |
| 2514 start.x = CUSTOMBOX_LINE_RIGHT; | 2798 start.x = CUSTOMBOX_LINE_RIGHT; |
| 2515 stop.x = 799; | 2799 stop.x = 799; |
| 2516 stop.y = start.y = t7l1.WindowY0 - 1; | 2800 if(!pSettings->FlipDisplay) |
| 2801 { | |
| 2802 stop.y = start.y = t7l1.WindowY0 - 1; | |
| 2803 } | |
| 2804 else | |
| 2805 { | |
| 2806 stop.y = start.y = 480 - t7l1.WindowY1 - 1; | |
| 2807 } | |
| 2808 | |
| 2517 GFX_draw_line(&t7screen, start, stop, colorLinesOnTheSide); | 2809 GFX_draw_line(&t7screen, start, stop, colorLinesOnTheSide); |
| 2518 stop.y = start.y = t7l2.WindowY0 - 1; | 2810 if(!pSettings->FlipDisplay) |
| 2811 { | |
| 2812 stop.y = start.y = t7l2.WindowY0 - 1; | |
| 2813 } | |
| 2814 else | |
| 2815 { | |
| 2816 stop.y = start.y = 480 - t7l2.WindowY1 - 1; | |
| 2817 } | |
| 2519 GFX_draw_line(&t7screen, start, stop, colorLinesOnTheSide); | 2818 GFX_draw_line(&t7screen, start, stop, colorLinesOnTheSide); |
| 2520 } | 2819 } |
| 2521 } | 2820 } |
| 2522 | 2821 |
| 2523 | 2822 |
| 2539 const int radius[4] = {95,105,115,100}; | 2838 const int radius[4] = {95,105,115,100}; |
| 2540 const point_t offset = {.x = 400, .y = 250}; | 2839 const point_t offset = {.x = 400, .y = 250}; |
| 2541 | 2840 |
| 2542 static point_t r[4][360] = { 0 }; | 2841 static point_t r[4][360] = { 0 }; |
| 2543 | 2842 |
| 2544 if(r[0][0].y == 0) | 2843 if(r[0][0].y == 0) /* calc table at first call only */ |
| 2545 { | 2844 { |
| 2546 for(int i=0;i<360;i++) | 2845 for(int i=0;i<360;i++) |
| 2547 { | 2846 { |
| 2548 fCos = cos(i * piMult); | 2847 fCos = cos(i * piMult); |
| 2549 fSin = sin(i * piMult); | 2848 fSin = sin(i * piMult); |
| 2574 float percent_N2; | 2873 float percent_N2; |
| 2575 float percent_He; | 2874 float percent_He; |
| 2576 float partial_pressure_N2; | 2875 float partial_pressure_N2; |
| 2577 float partial_pressure_He; | 2876 float partial_pressure_He; |
| 2578 | 2877 |
| 2878 SSettings* pSettings; | |
| 2879 pSettings = settingsGetPointer(); | |
| 2880 | |
| 2579 | 2881 |
| 2580 /* N2 */ | 2882 /* N2 */ |
| 2581 t7cY0free.WindowLineSpacing = 28 + 48 + 14; | 2883 t7cY0free.WindowLineSpacing = 28 + 48 + 14; |
| 2582 t7cY0free.WindowY0 = t7cH.WindowY0 - 5 - 2 * t7cY0free.WindowLineSpacing; | 2884 if(!pSettings->FlipDisplay) |
| 2885 { | |
| 2886 t7cY0free.WindowY0 = t7cH.WindowY0 - 5 - 2 * t7cY0free.WindowLineSpacing; | |
| 2887 } | |
| 2888 else | |
| 2889 { | |
| 2890 t7cY0free.WindowY0 = t7cH.WindowY0 + 15; | |
| 2891 t7cY0free.WindowY1 = t7cY0free.WindowY0 + 250; | |
| 2892 } | |
| 2583 t7cY0free.WindowNumberOfTextLines = 3; | 2893 t7cY0free.WindowNumberOfTextLines = 3; |
| 2584 | 2894 |
| 2585 text[textpointer++] = '\030'; | 2895 text[textpointer++] = '\030'; |
| 2586 text[textpointer++] = TXT_2BYTE; | 2896 text[textpointer++] = TXT_2BYTE; |
| 2587 text[textpointer++] = TXT2BYTE_Nitrogen; | 2897 text[textpointer++] = TXT2BYTE_Nitrogen; |
| 2595 text[textpointer++] = TXT2BYTE_CNS; | 2905 text[textpointer++] = TXT2BYTE_CNS; |
| 2596 text[textpointer++] = 0; | 2906 text[textpointer++] = 0; |
| 2597 | 2907 |
| 2598 GFX_write_string(&FontT24, &t7cY0free, text, 1); | 2908 GFX_write_string(&FontT24, &t7cY0free, text, 1); |
| 2599 | 2909 |
| 2600 start.y = t7cH.WindowY0 - 5; | 2910 if(!pSettings->FlipDisplay) |
| 2911 { | |
| 2912 start.y = t7cH.WindowY0 - 5; | |
| 2913 } | |
| 2914 else | |
| 2915 { | |
| 2916 start.y = t7cH.WindowY1 - 5; | |
| 2917 } | |
| 2601 start.x = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; | 2918 start.x = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; |
| 2602 stop.x = start.x + CUSTOMBOX_SPACE_INSIDE; | 2919 stop.x = start.x + CUSTOMBOX_SPACE_INSIDE; |
| 2603 | 2920 |
| 2604 for(int i=0;i<16;i++) | 2921 for(int i=0;i<16;i++) |
| 2605 { | 2922 { |
| 2692 decom_get_inert_gases(pState->lifeData.pressure_ambient_bar, &pState->lifeData.actualGas, &percent_N2, &percent_He); | 3009 decom_get_inert_gases(pState->lifeData.pressure_ambient_bar, &pState->lifeData.actualGas, &percent_N2, &percent_He); |
| 2693 partial_pressure_N2 = (pState->lifeData.pressure_ambient_bar - WATER_VAPOUR_PRESSURE) * percent_N2; | 3010 partial_pressure_N2 = (pState->lifeData.pressure_ambient_bar - WATER_VAPOUR_PRESSURE) * percent_N2; |
| 2694 partial_pressure_He = (pState->lifeData.pressure_ambient_bar - WATER_VAPOUR_PRESSURE) * percent_He; | 3011 partial_pressure_He = (pState->lifeData.pressure_ambient_bar - WATER_VAPOUR_PRESSURE) * percent_He; |
| 2695 | 3012 |
| 2696 // Nitrogen vertical bar | 3013 // Nitrogen vertical bar |
| 2697 start.y = t7cH.WindowY0 + 1 - 5; | 3014 if(!pSettings->FlipDisplay) |
| 3015 { | |
| 3016 start.y = t7cH.WindowY0 + 1 - 5; | |
| 3017 } | |
| 3018 else | |
| 3019 { | |
| 3020 start.y = t7cH.WindowY1 - 5; | |
| 3021 } | |
| 3022 | |
| 2698 stop.y = start.y - (3 * 15) - 1; | 3023 stop.y = start.y - (3 * 15) - 1; |
| 2699 if((percent_N2 > 0) && (partial_pressure_N2 > 0.8f))//(0.8f + 0.5f))) | 3024 if((percent_N2 > 0) && (partial_pressure_N2 > 0.8f))//(0.8f + 0.5f))) |
| 2700 { | 3025 { |
| 2701 value = partial_pressure_N2; | 3026 value = partial_pressure_N2; |
| 2702 value *= 80;//20 | 3027 value *= 80;//20 |
| 2716 stop.x = start.x; | 3041 stop.x = start.x; |
| 2717 GFX_draw_thick_line(2,&t7screen, start, stop, CLUT_EverythingOkayGreen); | 3042 GFX_draw_thick_line(2,&t7screen, start, stop, CLUT_EverythingOkayGreen); |
| 2718 | 3043 |
| 2719 | 3044 |
| 2720 // Helium vertical bar | 3045 // Helium vertical bar |
| 2721 start.y = t7cH.WindowY0 + 1 - 5 - 3*16 - 28 - 14; | 3046 if(!pSettings->FlipDisplay) |
| 3047 { | |
| 3048 start.y = t7cH.WindowY0 + 1 - 5 - 3*16 - 28 - 14; | |
| 3049 } | |
| 3050 else | |
| 3051 { | |
| 3052 start.y = t7cH.WindowY1 - 5 - 3*16 - 28 - 14; | |
| 3053 } | |
| 3054 | |
| 2722 stop.y = start.y - (3 * 15) - 1; | 3055 stop.y = start.y - (3 * 15) - 1; |
| 2723 if((percent_He > 0) && (partial_pressure_He > 0.01f)) // 0.5f | 3056 if((percent_He > 0) && (partial_pressure_He > 0.01f)) // 0.5f |
| 2724 { | 3057 { |
| 2725 | 3058 |
| 2726 value = partial_pressure_He; | 3059 value = partial_pressure_He; |
| 2741 start.x = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET + front; | 3074 start.x = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET + front; |
| 2742 stop.x = start.x; | 3075 stop.x = start.x; |
| 2743 GFX_draw_thick_line(2,&t7screen, start, stop, CLUT_EverythingOkayGreen); | 3076 GFX_draw_thick_line(2,&t7screen, start, stop, CLUT_EverythingOkayGreen); |
| 2744 | 3077 |
| 2745 // Oxygen vertical bar | 3078 // Oxygen vertical bar |
| 2746 start.y = t7cH.WindowY0 + 1 - 5 - 6*16 - 2*28 - 2*14; | 3079 if(!pSettings->FlipDisplay) |
| 3080 { | |
| 3081 start.y = t7cH.WindowY0 + 1 - 5 - 6*16 - 2*28 - 2*14; | |
| 3082 } | |
| 3083 else | |
| 3084 { | |
| 3085 start.y = t7cH.WindowY1 - 5 - 6*16 - 2*28 - 2*14; | |
| 3086 } | |
| 3087 | |
| 2747 stop.y = start.y - (3 * 15) - 1; | 3088 stop.y = start.y - (3 * 15) - 1; |
| 2748 | 3089 |
| 2749 start.x = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET + cns100pixel; | 3090 start.x = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET + cns100pixel; |
| 2750 stop.x = start.x; | 3091 stop.x = start.x; |
| 2751 GFX_draw_thick_line(2, &t7screen, start, stop, CLUT_WarningRed); | 3092 GFX_draw_thick_line(2, &t7screen, start, stop, CLUT_WarningRed); |
| 3093 | |
| 2752 } | 3094 } |
| 2753 | 3095 |
| 2754 | 3096 |
| 2755 void t7_debug(void) | 3097 void t7_debug(void) |
| 2756 { | 3098 { |
| 3365 else | 3707 else |
| 3366 ActualHeading = lastHeading - resultKalman; | 3708 ActualHeading = lastHeading - resultKalman; |
| 3367 | 3709 |
| 3368 lastHeading = ActualHeading; | 3710 lastHeading = ActualHeading; |
| 3369 */ | 3711 */ |
| 3712 uint16_t ActualHeadingRose; | |
| 3370 uint16_t LeftBorderHeading, LineHeading; | 3713 uint16_t LeftBorderHeading, LineHeading; |
| 3371 uint32_t offsetPicture; | 3714 uint32_t offsetPicture; |
| 3372 point_t start, stop, center; | 3715 point_t start, stop, center; |
| 3373 static int32_t LastHeading = 0; | 3716 static int32_t LastHeading = 0; |
| 3374 int32_t newHeading = 0; | 3717 int32_t newHeading = 0; |
| 3718 int32_t FlipHeading = 0; | |
| 3375 int32_t diff = 0; | 3719 int32_t diff = 0; |
| 3376 int32_t diff2 = 0; | 3720 int32_t diff2 = 0; |
| 3377 | 3721 |
| 3378 int32_t diffAbs = 0; | 3722 int32_t diffAbs = 0; |
| 3379 int32_t diffAbs2 = 0; | 3723 int32_t diffAbs2 = 0; |
| 3724 | |
| 3725 SSettings* pSettings; | |
| 3726 pSettings = settingsGetPointer(); | |
| 3380 | 3727 |
| 3381 newHeading = ActualHeading; | 3728 newHeading = ActualHeading; |
| 3382 | 3729 |
| 3383 diff = newHeading - LastHeading; | 3730 diff = newHeading - LastHeading; |
| 3384 | 3731 |
| 3407 if(newHeading >= 360) | 3754 if(newHeading >= 360) |
| 3408 newHeading -= 360; | 3755 newHeading -= 360; |
| 3409 | 3756 |
| 3410 LastHeading = newHeading; | 3757 LastHeading = newHeading; |
| 3411 ActualHeading = newHeading; | 3758 ActualHeading = newHeading; |
| 3759 ActualHeadingRose = ActualHeading; | |
| 3412 /* | 3760 /* |
| 3413 if (ActualHeading < 90) | 3761 if (ActualHeading < 90) |
| 3414 ActualHeading += 360; | 3762 ActualHeading += 360; |
| 3415 | 3763 |
| 3416 if(ActualHeading > LastHeading) | 3764 if(ActualHeading > LastHeading) |
| 3423 { | 3771 { |
| 3424 if((LastHeading - ActualHeading) < 25) | 3772 if((LastHeading - ActualHeading) < 25) |
| 3425 ActualHeading = LastHeading - 1; | 3773 ActualHeading = LastHeading - 1; |
| 3426 } | 3774 } |
| 3427 */ | 3775 */ |
| 3428 if (ActualHeading < 90) | 3776 if(pSettings->FlipDisplay) |
| 3429 ActualHeading += 360; | 3777 { |
| 3778 ActualHeadingRose = 360 - ActualHeadingRose; | |
| 3779 if (ActualHeadingRose < 170) ActualHeadingRose += 360; | |
| 3780 } | |
| 3781 else | |
| 3782 { | |
| 3783 if (ActualHeadingRose < 90) ActualHeadingRose += 360; | |
| 3784 ActualHeading = ActualHeadingRose; | |
| 3785 } | |
| 3430 | 3786 |
| 3431 // new hw 160822 | 3787 // new hw 160822 |
| 3432 // if (ActualHeading >= 360 + 90) | 3788 // if (ActualHeading >= 360 + 90) |
| 3433 // ActualHeading = 360; | 3789 // ActualHeading = 360; |
| 3434 | 3790 |
| 3435 LeftBorderHeading = 2 * (ActualHeading - (CUSTOMBOX_SPACE_INSIDE/4)); | 3791 LeftBorderHeading = 2 * (ActualHeadingRose - (CUSTOMBOX_SPACE_INSIDE/4)); |
| 3792 | |
| 3793 if(pSettings->FlipDisplay) /* add offset caused by mirrowed drawing */ | |
| 3794 { | |
| 3795 LeftBorderHeading += 2 * 80; | |
| 3796 } | |
| 3436 | 3797 |
| 3437 offsetPicture = LeftBorderHeading * t7screenCompass.ImageHeight * 2; | 3798 offsetPicture = LeftBorderHeading * t7screenCompass.ImageHeight * 2; |
| 3438 | 3799 |
| 3800 /* the background is used to draw the rotating compass rose */ | |
| 3439 background.pointer = t7screenCompass.FBStartAdress+offsetPicture; | 3801 background.pointer = t7screenCompass.FBStartAdress+offsetPicture; |
| 3440 background.x0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; | 3802 background.x0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; |
| 3441 background.y0 = 65; | 3803 if(!pSettings->FlipDisplay) |
| 3804 { | |
| 3805 background.y0 = 65; | |
| 3806 } | |
| 3807 else | |
| 3808 { | |
| 3809 background.y0 = 480 - t7screenCompass.ImageHeight - 65; | |
| 3810 } | |
| 3811 | |
| 3442 background.width = CUSTOMBOX_SPACE_INSIDE; | 3812 background.width = CUSTOMBOX_SPACE_INSIDE; |
| 3443 background.height = t7screenCompass.ImageHeight; | 3813 background.height = t7screenCompass.ImageHeight; |
| 3444 | 3814 |
| 3445 | 3815 |
| 3446 start.x = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET + (CUSTOMBOX_SPACE_INSIDE/2); | 3816 start.x = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET + (CUSTOMBOX_SPACE_INSIDE/2); |
| 3642 | 4012 |
| 3643 | 4013 |
| 3644 void t7_miniLiveLogProfile(void) | 4014 void t7_miniLiveLogProfile(void) |
| 3645 { | 4015 { |
| 3646 SWindowGimpStyle wintemp; | 4016 SWindowGimpStyle wintemp; |
| 4017 SSettings* pSettings; | |
| 4018 pSettings = settingsGetPointer(); | |
| 4019 | |
| 3647 wintemp.left = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; | 4020 wintemp.left = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; |
| 3648 wintemp.right = wintemp.left + CUSTOMBOX_SPACE_INSIDE; | 4021 wintemp.right = wintemp.left + CUSTOMBOX_SPACE_INSIDE; |
| 3649 wintemp.top = 480 - t7l1.WindowY0; | 4022 if(!pSettings->FlipDisplay) |
| 3650 wintemp.bottom = wintemp. top + 200; | 4023 { |
| 4024 wintemp.top = 480 - t7l1.WindowY0; | |
| 4025 wintemp.bottom = wintemp. top + 200; | |
| 4026 } | |
| 4027 else | |
| 4028 { | |
| 4029 wintemp.top = t7l1.WindowY1; | |
| 4030 wintemp.bottom = wintemp. top + 200; | |
| 4031 } | |
| 3651 | 4032 |
| 3652 uint16_t max_depth = (uint16_t)(stateUsed->lifeData.max_depth_meter * 10); | 4033 uint16_t max_depth = (uint16_t)(stateUsed->lifeData.max_depth_meter * 10); |
| 3653 | 4034 |
| 3654 GFX_graph_print(&t7screen, &wintemp, 0,1,0, max_depth, getMiniLiveLogbookPointerToData(), getMiniLiveLogbookActualDataLength(), CLUT_Font030, NULL); | 4035 GFX_graph_print(&t7screen, &wintemp, 0,1,0, max_depth, getMiniLiveLogbookPointerToData(), getMiniLiveLogbookActualDataLength(), CLUT_Font030, NULL); |
| 3655 } | 4036 } |
| 3656 | 4037 |
| 3657 void t7_logo_OSTC(void) | 4038 void t7_logo_OSTC(void) |
| 3658 { | 4039 { |
| 3659 SWindowGimpStyle windowGimp; | 4040 SWindowGimpStyle windowGimp; |
| 4041 SSettings* pSettings; | |
| 4042 pSettings = settingsGetPointer(); | |
| 4043 | |
| 3660 /* OSTC logo */ | 4044 /* OSTC logo */ |
| 3661 windowGimp.left = t7l1.WindowX1 + 32; | 4045 if(!pSettings->FlipDisplay) |
| 4046 { | |
| 4047 windowGimp.left = t7l1.WindowX1 + 32; | |
| 4048 } | |
| 4049 else | |
| 4050 { | |
| 4051 windowGimp.left = t7r1.WindowX1 + 32; | |
| 4052 } | |
| 4053 | |
| 3662 windowGimp.top = 40 + 32; | 4054 windowGimp.top = 40 + 32; |
| 3663 GFX_draw_image_monochrome(&t7screen, windowGimp, &ImgOSTC, 0); | 4055 GFX_draw_image_monochrome(&t7screen, windowGimp, &ImgOSTC, 0); |
| 3664 } | 4056 } |
