private Page CreateWindPage()
        {
            VerticalLineGraphDisplayEntity windSpeedGraph =
                new VerticalLineGraphDisplayEntity(60, 0, 68, 63, 0, 25, DisplayVariables.WindSpeed, false, 5);
            CompassGraphDisplayEntity windDirGraph =
                new CompassGraphDisplayEntity(132, 0, 124, 63, DisplayVariables.WindDirection);

            BasicPageWithHelp page = new BasicPageWithHelp(this.oled);

            page.AddDisplayEntity(new FloatDisplayEntity(0, 0, 60, 32, Page.HalfHeightFont, DisplayVariables.SpeedOverGround, 10));
            page.AddDisplayEntity(new FloatDisplayEntity(0, 32, 60, 32, Page.HalfHeightFont, DisplayVariables.WindSpeed, 10));
            page.AddDisplayEntity(windSpeedGraph);
            page.AddDisplayEntity(new VerticalLineDisplayEntity(130, 0, 1, 63, 6));
            page.AddDisplayEntity(windDirGraph);

            page.AddHelpDisplayEntity(new LabelDisplayEntity(0, 8, 60, 10, Page.SmallFont, "Speed Over"));
            page.AddHelpDisplayEntity(new LabelDisplayEntity(0, 18, 60, 10, Page.SmallFont, "Ground"));
            page.AddHelpDisplayEntity(new LabelDisplayEntity(0, 40, 60, 10, Page.SmallFont, "Wind"));
            page.AddHelpDisplayEntity(new LabelDisplayEntity(0, 48, 60, 10, Page.SmallFont, "Speed"));
            page.AddHelpDisplayEntity(new LabelDisplayEntity(60, 22, 64, 10, Page.SmallFont, "Wind"));
            page.AddHelpDisplayEntity(new LabelDisplayEntity(60, 30, 64, 10, Page.SmallFont, "Speed"));
            page.AddHelpDisplayEntity(new LabelDisplayEntity(128, 22, 128, 10, Page.SmallFont, "Wind"));
            page.AddHelpDisplayEntity(new LabelDisplayEntity(128, 30, 128, 10, Page.SmallFont, "Direction"));
            page.AddHelpDisplayEntity(new VerticalLineDisplayEntity(130, 0, 1, 63, 6));
            page.AddHelpDisplayEntity(new VerticalLineDisplayEntity(60, 0, 1, 63, 6));
            page.AddHelpDisplayEntity(new HorizontalLineDisplayEntity(0, 32, 60, 1, 6));

            return(page);
        }
        private Page CreateSailingPage()
        {
            BasicPageWithHelp page = new BasicPageWithHelp(this.oled);

            // normal display
            page.AddDisplayEntity(new FloatDisplayEntity(0, 24, 80, 40, Page.MediumFont, DisplayVariables.WindSpeed, 20));
            page.AddDisplayEntity(new FloatDisplayEntity(84, 24, 84, 40, Page.MediumFont, DisplayVariables.Depth, 20));
            page.AddDisplayEntity(new FloatDisplayEntity(172, 24, 84, 40, Page.MediumFont, DisplayVariables.SpeedOverGround, 10));
            page.AddDisplayEntity(new TextDisplayEntity(220, 0, 36, 20, Page.SmallFont, DisplayVariables.WindDirection));
            page.AddDisplayEntity(new LineGraphCompassDisplayEntity(0, 0, 216, 20, DisplayVariables.WindDirection));
            page.AddDisplayEntity(new HorizontalLineDisplayEntity(0, 21, 256, 1, 6));
            page.AddDisplayEntity(new VerticalLineDisplayEntity(83, 22, 1, 40, 6));
            page.AddDisplayEntity(new VerticalLineDisplayEntity(171, 22, 1, 40, 6));

            // help display
            page.AddHelpDisplayEntity(new LabelDisplayEntity(0, 6, 256, 20, Page.SmallFont, "Wind Direction"));
            page.AddHelpDisplayEntity(new LabelDisplayEntity(0, 34, 80, 40, Page.SmallFont, "Wind Speed"));
            page.AddHelpDisplayEntity(new LabelDisplayEntity(84, 34, 84, 40, Page.SmallFont, "Depth"));
            page.AddHelpDisplayEntity(new LabelDisplayEntity(172, 34, 84, 40, Page.SmallFont, "Speed over"));
            page.AddHelpDisplayEntity(new LabelDisplayEntity(172, 44, 84, 40, Page.SmallFont, "Ground"));
            page.AddHelpDisplayEntity(new HorizontalLineDisplayEntity(0, 21, 256, 1, 6));
            page.AddHelpDisplayEntity(new VerticalLineDisplayEntity(83, 22, 1, 40, 6));
            page.AddHelpDisplayEntity(new VerticalLineDisplayEntity(171, 22, 1, 40, 6));

            return(page);
        }
        private Page CreateSpeedPage()
        {
            VerticalLineGraphDisplayEntity speedOverGroundGraph =
                new VerticalLineGraphDisplayEntity(60, 0, 68, 63, 0, 10, DisplayVariables.SpeedOverGround, false, 5);
            VerticalLineGraphDisplayEntity windSpeedGraph =
                new VerticalLineGraphDisplayEntity(188, 0, 68, 63, 0, 25, DisplayVariables.WindSpeed, false, 5);

            BasicPageWithHelp page = new BasicPageWithHelp(this.oled);

            page.AddDisplayEntity(new FloatDisplayEntity(0, 0, 60, 48, Page.MediumFont, DisplayVariables.SpeedOverGround, 10));
            page.AddDisplayEntity(new LabelDisplayEntity(0, 48, 60, 16, Page.SmallFont, "SpeedOG"));
            page.AddDisplayEntity(speedOverGroundGraph);
            page.AddDisplayEntity(new FloatDisplayEntity(128, 0, 60, 48, Page.MediumFont, DisplayVariables.WindSpeed, 10));
            page.AddDisplayEntity(new LabelDisplayEntity(128, 48, 60, 16, Page.SmallFont, "WindSpd"));
            page.AddDisplayEntity(windSpeedGraph);

            return(page);
        }