643 lines
31 KiB
C++
643 lines
31 KiB
C++
#if defined BOARD_OBP60S3 || defined BOARD_OBP40S3
|
|
|
|
#include "Pagedata.h"
|
|
#include "OBP60Extensions.h"
|
|
#include "N2kMessages.h"
|
|
|
|
#define front_width 120
|
|
#define front_height 162
|
|
static unsigned char front_bits[] PROGMEM = {
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x80, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x03,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0xf0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0xf0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x0f, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x1f,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0xfc, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0xfe, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf7, 0x7f,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
|
0xff, 0xf3, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0xc0, 0xff, 0xe1, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xc1, 0xff, 0x01, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x80, 0xff,
|
|
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0,
|
|
0x7f, 0x80, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0xf0, 0x7f, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x3f, 0x00, 0xfe, 0x0f, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0xfe,
|
|
0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc,
|
|
0x1f, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0xfc, 0x0f, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0xf8, 0x3f, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x00, 0xf0,
|
|
0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
|
|
0x03, 0x00, 0xe0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x80, 0xff, 0x03, 0x00, 0xe0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x01, 0x00, 0xc0, 0xff, 0x01, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x00, 0x80,
|
|
0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff,
|
|
0x00, 0x00, 0x80, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0xe0, 0x7f, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0xfe, 0x07, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, 0x00, 0x00, 0x00,
|
|
0xfe, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f,
|
|
0x00, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, 0x00,
|
|
0xf0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x07,
|
|
0x00, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0xfe, 0x03, 0x00, 0x00, 0x00, 0xe0, 0x7f, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0x00,
|
|
0xc0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x00,
|
|
0x00, 0x00, 0x00, 0x80, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0xc0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0xc0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x7f, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x3f, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x3f,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0xc0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0xfe, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80,
|
|
0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00,
|
|
0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc,
|
|
0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0xe0,
|
|
0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00,
|
|
0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0,
|
|
0x07, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf0,
|
|
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x00,
|
|
0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0,
|
|
0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfc,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00,
|
|
0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x3f,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00,
|
|
0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0xfc, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x80, 0x0f,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00,
|
|
0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0xf0, 0x03, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0xc0, 0x03,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00,
|
|
0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0xe0, 0x07, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0xf0, 0x01,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00,
|
|
0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x80, 0x0f, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x78, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00,
|
|
0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x3e, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x3c, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00,
|
|
0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x7c, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x0e, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00,
|
|
0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0xf8, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x07, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01,
|
|
0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0xe0, 0x01, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x80, 0x03, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03,
|
|
0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0xc0, 0x03, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0xc0, 0x01, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07,
|
|
0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x80, 0x07, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0xe0, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
|
|
0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x0f, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x70, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e,
|
|
0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x0e, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x30, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c,
|
|
0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x1c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x18, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c,
|
|
0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1c, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38,
|
|
0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x38, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x0c, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
|
|
0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x70, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x0e, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
|
|
0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x60, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x06, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60,
|
|
0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x60, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x06, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0,
|
|
0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0,
|
|
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0,
|
|
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xc0 };
|
|
|
|
class PageWind : public Page
|
|
{
|
|
bool keylock = false; // Keylock
|
|
int8_t lp = 80; // Pointer length
|
|
char mode = 'N'; // page mode (N)ormal | (L)ens | e(X)ample
|
|
char source = 'A'; // data source (A)pparent | (T)rue
|
|
|
|
public:
|
|
PageWind(CommonData &common){
|
|
commonData = &common;
|
|
common.logger->logDebug(GwLog::LOG,"Instantiate PageWind");
|
|
if (hasFRAM) {
|
|
lp = fram.read(FRAM_WIND_SIZE);
|
|
source = fram.read(FRAM_WIND_SRC);
|
|
mode = fram.read(FRAM_WIND_MODE);
|
|
}
|
|
}
|
|
|
|
virtual void setupKeys(){
|
|
Page::setupKeys();
|
|
commonData->keydata[0].label = "MODE";
|
|
if (mode == 'X') {
|
|
commonData->keydata[1].label = "#MINUS";
|
|
commonData->keydata[4].label = "#PLUS";
|
|
} else {
|
|
commonData->keydata[1].label = "SRC";
|
|
}
|
|
}
|
|
|
|
// Key functions
|
|
virtual int handleKey(int key){
|
|
|
|
if(key == 1){ // Mode switch
|
|
if(mode == 'N'){
|
|
mode = 'L';
|
|
} else if (mode == 'L') {
|
|
mode = 'X';
|
|
} else {
|
|
mode = 'N';
|
|
}
|
|
if (hasFRAM) fram.write(FRAM_WIND_MODE, mode);
|
|
setupKeys();
|
|
return 0; // Commit the key
|
|
}
|
|
|
|
// Set source or reduce instrument size
|
|
if(key == 2){
|
|
if(mode == 'X'){
|
|
// Code for reduce
|
|
lp = lp - 10;
|
|
if(lp < 10){
|
|
lp = 10;
|
|
}
|
|
if (hasFRAM) fram.write(FRAM_WIND_SIZE, lp);
|
|
} else {
|
|
// Code for set source
|
|
if(source == 'A'){
|
|
source = 'T';
|
|
} else {
|
|
source = 'A';
|
|
}
|
|
if (hasFRAM) fram.write(FRAM_WIND_SRC, source);
|
|
}
|
|
return 0; // Commit the key
|
|
}
|
|
|
|
// Enlarge instrument size
|
|
if(key == 5 && mode == 'X'){ // Code for enlarge
|
|
lp = lp + 10;
|
|
if(lp > 80){
|
|
lp = 80;
|
|
}
|
|
if (hasFRAM) fram.write(FRAM_WIND_SIZE, lp);
|
|
return 0; // Commit the key
|
|
}
|
|
|
|
// Keylock function
|
|
if(key == 11){ // Code for keylock
|
|
commonData->keylock = !commonData->keylock;
|
|
return 0; // Commit the key
|
|
}
|
|
return key;
|
|
}
|
|
|
|
virtual void displayPage(PageData &pageData)
|
|
{
|
|
GwConfigHandler *config = commonData->config;
|
|
GwLog *logger = commonData->logger;
|
|
|
|
static String svalue1old = "";
|
|
static String unit1old = "";
|
|
static String svalue2old = "";
|
|
static String unit2old = "";
|
|
|
|
// Get config data
|
|
String lengthformat = config->getString(config->lengthFormat);
|
|
bool simulation = config->getBool(config->useSimuData);
|
|
bool holdvalues = config->getBool(config->holdvalues);
|
|
String flashLED = config->getString(config->flashLED);
|
|
String backlightMode = config->getString(config->backlight);
|
|
|
|
GwApi::BoatValue *bvalue1; // Value 1 for speed on top
|
|
GwApi::BoatValue *bvalue2; // Value 2 for angle on bottom
|
|
|
|
// Get boat values for speed (AWS/TWS)
|
|
if (source == 'A') {
|
|
bvalue1 = pageData.values[0];
|
|
} else {
|
|
bvalue1 = pageData.values[2];
|
|
}
|
|
String name1 = bvalue1->getName().c_str(); // Value name
|
|
name1 = name1.substring(0, 6); // String length limit for value name
|
|
double value1 = bvalue1->value; // Value as double in SI unit
|
|
// bool valid1 = bvalue1->valid; // Valid information
|
|
String svalue1 = formatValue(bvalue1, *commonData).svalue; // Formatted value as string including unit conversion and switching decimal places
|
|
String unit1 = formatValue(bvalue1, *commonData).unit; // Unit of value
|
|
|
|
// Get boat values for angle (AWD/TWD)
|
|
if (source == 'A') {
|
|
bvalue2 = pageData.values[1];
|
|
} else {
|
|
bvalue2 = pageData.values[3];
|
|
}
|
|
String name2 = bvalue2->getName().c_str(); // Value name
|
|
name2 = name2.substring(0, 6); // String length limit for value name
|
|
double value2 = bvalue2->value; // Value as double in SI unit
|
|
// bool valid2 = bvalue2->valid; // Valid information
|
|
if (simulation) {
|
|
value2 = 0.62731; // some random value
|
|
}
|
|
String svalue2 = formatValue(bvalue2, *commonData).svalue; // Formatted value as string including unit conversion and switching decimal places
|
|
String unit2 = formatValue(bvalue2, *commonData).unit; // Unit of value
|
|
|
|
// Optical warning by limit violation (unused)
|
|
if(String(flashLED) == "Limit Violation"){
|
|
setBlinkingLED(false);
|
|
setFlashLED(false);
|
|
}
|
|
|
|
// Logging boat values
|
|
if (bvalue1 == NULL) return;
|
|
LOG_DEBUG(GwLog::LOG,"Drawing at PageWind, %s:%f, %s:%f", name1.c_str(), value1, name2.c_str(), value2);
|
|
|
|
// Draw page
|
|
//***********************************************************
|
|
|
|
// Set display in partial refresh mode
|
|
getdisplay().setPartialWindow(0, 0, getdisplay().width(), getdisplay().height()); // Set partial update
|
|
|
|
getdisplay().setTextColor(commonData->fgcolor);
|
|
|
|
|
|
if (mode == 'X') {
|
|
// Original example code with scaling circle
|
|
|
|
// Show values AWS/TWS
|
|
getdisplay().setFont(&Ubuntu_Bold20pt7b);
|
|
getdisplay().setCursor(20, 50);
|
|
getdisplay().print(name1); // Value name
|
|
getdisplay().print(": ");
|
|
if(holdvalues == false){
|
|
getdisplay().print(svalue1); // Value
|
|
getdisplay().print(" ");
|
|
getdisplay().print(unit1); // Unit
|
|
}
|
|
else{
|
|
getdisplay().print(svalue1old); // Value old
|
|
getdisplay().print(" ");
|
|
getdisplay().print(unit1old); // Unit old
|
|
}
|
|
|
|
// Show values AWD/TWD
|
|
getdisplay().setFont(&Ubuntu_Bold20pt7b);
|
|
getdisplay().setCursor(20, 260);
|
|
getdisplay().print(name2); // Value name
|
|
getdisplay().print(": ");
|
|
if(holdvalues == false){
|
|
getdisplay().print(svalue2); // Value
|
|
getdisplay().print(" ");
|
|
getdisplay().print(unit2); // Unit
|
|
}
|
|
else{
|
|
getdisplay().print(svalue2old); // Value old
|
|
getdisplay().print(" ");
|
|
getdisplay().print(unit2old); // Unit old
|
|
}
|
|
|
|
Point c = {200, 145};
|
|
|
|
// Draw instrument
|
|
getdisplay().fillCircle(c.x, c.y, lp + 5, commonData->fgcolor);
|
|
getdisplay().fillCircle(c.x, c.y, lp + 1, commonData->bgcolor);
|
|
|
|
// Wind pointer
|
|
if (bvalue2->valid or simulation) {
|
|
uint8_t lp0 = lp * 0.6; // effective pointer outside size
|
|
uint8_t lp1 = lp * 0.4; // effective pointer inside size
|
|
// zero position
|
|
std::vector<Point> pts = {
|
|
{c.x, c.y - lp},
|
|
{c.x - 7, c.y - lp + lp0},
|
|
{c.x, c.y - lp + lp1},
|
|
{c.x + 7, c.y - lp + lp0}
|
|
};
|
|
fillPoly4(rotatePoints(c, pts, RadToDeg(value2)), commonData->fgcolor);
|
|
} else {
|
|
getdisplay().setFont(&Ubuntu_Bold12pt7b);
|
|
drawTextCenter(c.x, c.y, "no data");
|
|
}
|
|
|
|
} else if (mode == 'L') { // Mode (L)ens
|
|
|
|
Point c = {200, 155};
|
|
uint16_t r = 150;
|
|
|
|
Point p;
|
|
std::vector<Point> pts = { // polygon lines
|
|
{c.x - 2, c.y - r},
|
|
{c.x + 2, c.y - r},
|
|
{c.x + 2, c.y - (r - 16)},
|
|
{c.x - 2, c.y - (r - 16)}
|
|
};
|
|
int angle;
|
|
|
|
getdisplay().setFont(&Ubuntu_Bold12pt7b);
|
|
|
|
// starbord
|
|
// text with line
|
|
angle = 20;
|
|
for (int i = 30; i < 150; i += 30) {
|
|
p = rotatePoint(c, {c.x, c.y - r + 40}, i);
|
|
drawTextCenter(p.x, p.y, String(angle));
|
|
angle += 10;
|
|
fillPoly4(rotatePoints(c, pts, i), commonData->fgcolor);
|
|
}
|
|
// dots
|
|
for (int i = 30; i < 138; i += 6) {
|
|
if (i % 15 != 0) {
|
|
p = rotatePoint(c, {c.x, c.y - r + 5}, i);
|
|
getdisplay().fillCircle(p.x, p.y, 2, commonData->fgcolor);
|
|
}
|
|
}
|
|
|
|
// port
|
|
angle = 50;
|
|
// text with line
|
|
for (int i = 240; i <= 330; i += 30) {
|
|
p = rotatePoint(c, {c.x, c.y - r + 40}, i);
|
|
drawTextCenter(p.x, p.y, String(angle));
|
|
angle -= 10;
|
|
fillPoly4(rotatePoints(c, pts, i), commonData->fgcolor);
|
|
}
|
|
// dots
|
|
for (int i = 228; i < 330; i += 6) {
|
|
if (i % 15 != 0) {
|
|
p = rotatePoint(c, {c.x, c.y - r + 5}, i);
|
|
getdisplay().fillCircle(p.x, p.y, 2, commonData->fgcolor);
|
|
}
|
|
}
|
|
|
|
// data source
|
|
getdisplay().setFont(&Ubuntu_Bold12pt7b);
|
|
getdisplay().setCursor(8, 50);
|
|
if (source == 'A') {
|
|
getdisplay().print("APP");
|
|
} else {
|
|
getdisplay().print("TRUE");
|
|
}
|
|
|
|
// Wind pointer (angle)
|
|
if (bvalue2->valid or simulation) {
|
|
float alpha = RadToDeg(value2);
|
|
bool port = (alpha > 180);
|
|
if (port) {
|
|
alpha = 360 - alpha;
|
|
}
|
|
if (alpha < 15) {
|
|
alpha = 15; // stop at start of scale
|
|
} else if (alpha > 55) {
|
|
alpha = 55; // stop at end of scale
|
|
}
|
|
alpha = 3 * alpha - 30; // convert to lens scale
|
|
if (port) {
|
|
alpha *= -1;
|
|
}
|
|
|
|
getdisplay().fillCircle(c.x, c.y, 8, commonData->fgcolor);
|
|
pts = {
|
|
{c.x - 1, c.y - (r - 20)},
|
|
{c.x + 1, c.y - (r - 20)},
|
|
{c.x + 6, c.y + 15},
|
|
{c.x - 6, c.y + 15}
|
|
};
|
|
fillPoly4(rotatePoints(c, pts, alpha), commonData->fgcolor);
|
|
getdisplay().fillCircle(c.x, c.y, 6, commonData->bgcolor);
|
|
} else {
|
|
getdisplay().setFont(&Ubuntu_Bold12pt7b);
|
|
drawTextCenter(c.x, c.y, "no data");
|
|
}
|
|
|
|
// Wind speed as decimal number
|
|
getdisplay().setFont(&DSEG7Classic_BoldItalic20pt7b);
|
|
getdisplay().setCursor(150, 250);
|
|
if (holdvalues == false) {
|
|
getdisplay().print(svalue1);
|
|
} else {
|
|
getdisplay().print(svalue1old);
|
|
}
|
|
// unit
|
|
getdisplay().setFont(&Ubuntu_Bold8pt7b);
|
|
getdisplay().setCursor(220, 265);
|
|
getdisplay().print("kts");
|
|
}
|
|
else {
|
|
// Normal mode
|
|
|
|
// data source
|
|
getdisplay().setFont(&Ubuntu_Bold12pt7b);
|
|
getdisplay().setCursor(8, 50);
|
|
if (source == 'A') {
|
|
getdisplay().print("APP");
|
|
} else {
|
|
getdisplay().print("TRUE");
|
|
}
|
|
|
|
// draw ship front symbol (as bitmap)
|
|
getdisplay().drawXBitmap(140, 30, front_bits, front_width, front_height, commonData->fgcolor);
|
|
|
|
Point c = {200, 155};
|
|
uint16_t r = 150;
|
|
|
|
Point p;
|
|
std::vector<Point> pts = { // polygon lines
|
|
{c.x - 2, c.y - r},
|
|
{c.x + 2, c.y - r},
|
|
{c.x + 2, c.y - (r - 16)},
|
|
{c.x - 2, c.y - (r - 16)}
|
|
};
|
|
int angle;
|
|
|
|
// starbord
|
|
// text with line
|
|
for (int i = 30; i < 150; i += 30) {
|
|
p = rotatePoint(c, {c.x, c.y - r + 40}, i);
|
|
drawTextCenter(p.x, p.y, String(i));
|
|
fillPoly4(rotatePoints(c, pts, i), commonData->fgcolor);
|
|
}
|
|
// dots
|
|
for (int i = 30; i < 150; i += 10) {
|
|
if (i % 30 != 0) {
|
|
p = rotatePoint(c, {c.x, c.y - r + 5}, i);
|
|
getdisplay().fillCircle(p.x, p.y, 3, commonData->fgcolor);
|
|
}
|
|
}
|
|
|
|
// port
|
|
// text with line
|
|
angle = 120;
|
|
for (int i = 240; i <= 330; i += 30) {
|
|
p = rotatePoint(c, {c.x, c.y - r + 40}, i);
|
|
drawTextCenter(p.x, p.y, String(angle));
|
|
angle -= 30;
|
|
fillPoly4(rotatePoints(c, pts, i), commonData->fgcolor);
|
|
}
|
|
// dots
|
|
for (int i = 210; i < 340; i += 10) {
|
|
if (i % 30 != 0) {
|
|
p = rotatePoint(c, {c.x, c.y - r + 5}, i);
|
|
getdisplay().fillCircle(p.x, p.y, 3, commonData->fgcolor);
|
|
}
|
|
}
|
|
|
|
// Wind speed as decimal number
|
|
getdisplay().setFont(&DSEG7Classic_BoldItalic20pt7b);
|
|
getdisplay().setCursor(150, 250);
|
|
if (holdvalues == false) {
|
|
getdisplay().print(svalue1);
|
|
} else {
|
|
getdisplay().print(svalue1old);
|
|
}
|
|
// unit
|
|
getdisplay().setFont(&Ubuntu_Bold8pt7b);
|
|
getdisplay().setCursor(220, 265);
|
|
getdisplay().print("kts");
|
|
|
|
// Wind pointer (angle)
|
|
if (bvalue2->valid or simulation) {
|
|
float alpha = RadToDeg(value2);
|
|
getdisplay().fillCircle(c.x, c.y, 8, commonData->fgcolor);
|
|
pts = {
|
|
{c.x - 1, c.y - (r - 20)},
|
|
{c.x + 1, c.y - (r - 20)},
|
|
{c.x + 6, c.y + 15},
|
|
{c.x - 6, c.y + 15}
|
|
};
|
|
fillPoly4(rotatePoints(c, pts, alpha), commonData->fgcolor);
|
|
getdisplay().fillCircle(c.x, c.y, 6, commonData->bgcolor);
|
|
} else {
|
|
getdisplay().setFont(&Ubuntu_Bold12pt7b);
|
|
drawTextCenter(c.x, c.y, "no data");
|
|
}
|
|
|
|
}
|
|
|
|
// Update display
|
|
getdisplay().nextPage(); // Partial update (fast)
|
|
|
|
};
|
|
};
|
|
|
|
static Page *createPage(CommonData &common){
|
|
return new PageWind(common);
|
|
}
|
|
/**
|
|
* with the code below we make this page known to the PageTask
|
|
* we give it a type (name) that can be selected in the config
|
|
* we define which function is to be called
|
|
* and we provide the number of user parameters we expect (0 here)
|
|
* and will will provide the names of the fixed values we need
|
|
*/
|
|
PageDescription registerPageWind(
|
|
"Wind", // Page name
|
|
createPage, // Action
|
|
0, // Number of bus values depends on selection in Web configuration
|
|
{"AWS","AWA", "TWS", "TWA"}, // Bus values we need in the page
|
|
true // Show display header on/off
|
|
);
|
|
|
|
#endif
|