From 9ce37507e90e75abfaccb0734876f4cc3fc6112e Mon Sep 17 00:00:00 2001 From: Peter Akers Date: Mon, 10 Jun 2024 13:47:00 +1000 Subject: [PATCH] initial setup of GitHub Docs --- docs/_static/css/dccex_theme.css | 884 ++++++++++++++++++ docs/_static/css/sphinx_design_overrides.css | 9 + docs/_static/images/favicon.ico | Bin 0 -> 641670 bytes docs/_static/images/logo.png | Bin 0 -> 26344 bytes .../product-logo-native-protocol-library.png | Bin 0 -> 25957 bytes docs/conf.py | 95 ++ docs/include/include.rst | 53 ++ docs/index.rst | 47 + docs/library.rst | 5 + docs/make.bat | 35 + docs/make2 github.bat | 4 + docs/make2.bat | 52 ++ docs/robots.txt | 2 + library.properties | 2 +- src/WiThrottleProtocol.h | 4 +- 15 files changed, 1190 insertions(+), 2 deletions(-) create mode 100644 docs/_static/css/dccex_theme.css create mode 100644 docs/_static/css/sphinx_design_overrides.css create mode 100644 docs/_static/images/favicon.ico create mode 100644 docs/_static/images/logo.png create mode 100644 docs/_static/images/product-logo-native-protocol-library.png create mode 100644 docs/conf.py create mode 100644 docs/include/include.rst create mode 100644 docs/index.rst create mode 100644 docs/library.rst create mode 100644 docs/make.bat create mode 100644 docs/make2 github.bat create mode 100644 docs/make2.bat create mode 100644 docs/robots.txt diff --git a/docs/_static/css/dccex_theme.css b/docs/_static/css/dccex_theme.css new file mode 100644 index 0000000..1529dbe --- /dev/null +++ b/docs/_static/css/dccex_theme.css @@ -0,0 +1,884 @@ +@import url(https://fonts.googleapis.com/css?family=Audiowide); +@import url(https://fonts.googleapis.com/css?family=Roboto); + +h1, .h1 { + font-family: Audiowide,Helvetica,Arial,sans-serif !important; + font-weight: 500 !important; + color: #00353d !important; + /* font-size: 200% !important; */ + font-size: 180% !important; + text-shadow: 1px 1px #ffffff78; +} +html[data-theme='dark'] h1, .h1 { + color: #ffffff !important; + text-shadow: 1px 1px #00353d; +} + +h2, .h2 { + font-family: Roboto,Helvetica,Arial,sans-serif !important; + color: #00353d !important; + /* font-size: 190% !important; */ + font-size: 160% !important; + text-shadow: 1px 1px #ffffff78; +} +html[data-theme='dark'] h2, .h2 { + color: #ffffff !important; + text-shadow: 1px 1px #00353d; +} +html[data-theme='dark'] h2 a, +html[data-theme='dark'] h2 a:visited { + color: #00a3b9ff !important; +} + +h3, .h3 { + font-family: Roboto,Helvetica,Arial,sans-serif !important; + color: #00353d !important; + /* font-size: 160% !important; */ + font-size: 140% !important; + font-style: italic !important; + text-shadow: 1px 1px #ffffff78; +} +html[data-theme='dark'] h3, .h3 { + color: #ffffff !important; + text-shadow: 1px 1px #00353d; +} +html[data-theme='dark'] h3 a, +html[data-theme='dark'] h3 a:visited { + color: #00a3b9ff !important; +} +h4, .h4 { + font-family: Roboto,Helvetica,Arial,sans-serif !important; + color: #00353d !important; + /* font-size: 130% !important; */ + font-size: 120% !important; + text-shadow: 1px 1px #ffffff78; +} +html[data-theme='dark'] h4, .h4 { + color: #00a3b9ff !important; + text-shadow: 1px 1px #00353d; +} +html[data-theme='dark'] h4 a, +html[data-theme='dark'] h4 a:visited { + color: #00a3b9ff !important; + text-shadow: 1px 1px #00353d; +} +h5, .h5 { + font-family: Roboto,Helvetica,Arial,sans-serif !important; + color: #00a3b9ff !important; + /* font-size: 110% !important; */ + font-size: 100% !important; +} + +h6, .h6 { + font-family: Roboto,Helvetica,Arial,sans-serif !important; + color: #00a3b9ff !important; + font-size: 90% !important; + font-style: italic !important; +} + +.clearer { + clear: both; +} + +.wy-nav-side { + background: #031c20 !important; + /* background: #031214 !important; */ +} + +.caption-text { + color: #00a3b9ff !important; +} + +.wy-nav-top { + background:#00a3b9ff !important; + font-size: 80% !important; +} + +.wy-nav-top a { + font-family: Audiowide,Helvetica,Arial,sans-serif !important; + font-weight: 100 !important; +} + +.wy-nav-content { + max-width: 1024px; +} + +.wy-breadcrumbs { + font-family: Roboto,Helvetica,Arial,sans-serif !important; + font-size: 80% !important; +} + +.wy-side-nav-search>a img.logo { + width: 100%; +} + +.rst-content table.docutils th { + background-color: #F3F6F6; +} + +.rst-content table.docutils td { + background-color: #F3F6F6; +} + +.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td { + background-color: #E0E0E0; +} +html[data-theme='dark'] .rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td { + background-color: #ffffff08 !important; +} + +.caption-number { + font-size: small !important; +} + +.caption-text { + font-size: small !important; +} + +table.intro-table { + max-width: 600px; +} + +.intro-table img { + width: 70%; + height: auto; + margin: 5% 15%; +} + +html[data-theme='dark'] .btn-neutral { + color: #c1c1c1 !important; +} + +#ex-rail-command-summary .wy-table-responsive { + overflow: visible; +} + +/* product titles */ +.ex-prefix { + font-weight: bold; + color: #00a3b9; + font-size: 110%; +} +.ex-suffix { + font-weight: bold; + color: #00353d; + font-size: 110%; +} +html[data-theme='dark'] .ex-suffix { + font-weight: bold; + color: #006979; + font-size: 110%; +} + +/* main dcc-ex text only */ +.dccex-prefix { + font-family: Audiowide,Helvetica,Arial,sans-serif; + font-weight: 600; + color: #00353d; + font-size: 110%; +} +html[data-theme='dark'] .dccex-prefix { + font-family: Audiowide,Helvetica,Arial,sans-serif; + font-weight: 600; + color: #006979; + font-size: 110%; +} +.dccex-suffix { + font-family: Audiowide,Helvetica,Arial,sans-serif; + font-weight: 600; + color: #00a3b9; + font-size: 110%; +} + +/***************************/ + +.command-table thead th { + text-align: center; +} + +.command-table tbody td { + white-space: normal; + margin: 10px; + padding: 8px 8px 8px 8px !important; +} + +.command-table tbody tr:first-child td p code { + white-space: nowrap !important; +} + +.command-table tbody tr td p code { + font-size: 110% !important; +} + +.command-table tbody tr td p { + font-size: 90% !important; +} + +.command-table tbody tr td ol li p { + font-size: 90% !important; +} + +.command-table tbody tr td ol { + margin-bottom: 0px !important; +} + +.command-table .category { + display: block; + text-align: center; +} + +.command-table tr:nth-child(odd) { + background-color: #f1f1f1 !important; +} + +.command-table tr:nth-child(even) { + background-color: #f8f8f8 !important; +} +html[data-theme='dark'] .command-table tr:nth-child(even) { + background-color: #ffffff08 !important; +} + +.command-table td { + background-color: #ffffff00 !important; +} + +/* html[data-theme='dark'] .rst-content table.docutils tr:nth-child(odd) { + background-color: #ffffff08 !important; +} */ +html[data-theme='dark'] .rst-content table.docutils td, .wy-table-bordered-all td { + background-color: #fff40000 !important; +} +/* html[data-theme='dark'] .rst-content table.docutils .row-odd { + background-color: #36ff0000 !important; +} */ + +html[data-theme='dark'] .rst-content table.docutils th { + background-color: #36ff0000 !important; + color: white !important; + font-style: italic !important;; + font-weight: 700 !important;; +} + +/* *************************************** */ + +html[data-theme='dark'] .sd-card { + background-color: #0000008a; + box-shadow: 0 0.5rem 1rem rgb(32 88 91 / 25%) !important; +} + + +/* *************************************** */ + +.dcclink a { + background-color: #00a3b9ff; + box-shadow: 0 2px 0 #00353dff; + color: white !important; + padding: 0.5em 0.5em; + position: relative; + text-decoration: none; + text-transform: none; + border-radius: 5px; +} + +.dcclink-right a { + background-color: #00a3b9ff; + box-shadow: 0 2px 0 #00353dff; + color: white !important; + padding: 0.5em 0.5em; + position: relative; + text-decoration: none; + text-transform: none; + border-radius: 10px; + float:right; + margin: 0px 0px 0px 10px; +} + +.dcclink a:visited { + color: whitesmoke !important; +} + +.dcclink a:hover { + background-color: darkslategrey; + cursor: pointer; +} + +.dcclink a:active { + box-shadow: none; + top: 5px; +} + +html[data-theme='dark'] .rst-content .guilabel { + color: black; +} + +.hr-dashed { + margin: -10px 0px -10px 0px; + border-top: 1px dashed #d2dfe3; +} + +.hr-heavy { + margin: -10px 0px -10px 0px; + border-top: 5px solid #d2dfe3; +} + +html[data-theme='dark'] .hr-dashed { + border-top: 1px dashed #114759; +} + +/* *************************************** */ + +a.githublink, .githublink a { + background-color: #f7b656; + box-shadow: 0 2px 0 #00353dff; + color: white; + padding: 3px 5px 3px 5px; + position: relative; + font-size: 90% !important; + text-decoration: none; + text-transform: none; + border-radius: 5px; +} + +.githublink-right a { + background-color: #f7b656; + box-shadow: 0 2px 0 #00353dff; + color: white; + padding: 3px 5px 3px 5px; + position: relative; + font-size: 90% !important; + text-decoration: none; + text-transform: none; + border-radius: 10px; + float:right; + margin: 0px 0px 0px 0px; +} + +.githublink a:visited { + color: whitesmoke +} + +.githublink a:hover { + background-color: rgb(172, 95, 7); + cursor: pointer; +} + +.githublink a:active { + box-shadow: none; + top: 5px; +} + +/* *************************************** */ + +svg { + max-width: 100%; + height: auto; +} + +.responsive-image { + max-width: 100%; + height: auto; +} + +/* *************************************** */ + +.warning-float-right { + float: right; + width: 40%; +} + +.warning-float-right-narrow { + float: right; + width: 20%; +} + +.warning-float-right-wide { + float: right; + width: 60%; +} + +.note-float-right { + float: right; + width: 40%; +} + +.note-float-right-narrow { + float: right; + width: 20%; +} + +.code-block-float-right { + float: right; + width: 40%; + margin: 0px 0px 0px 24px; +} + +.note { + background: #f7fcff !important; + clear: none !important; +} +html[data-theme='dark'] .note { + background: #ffffff24 !important; +} + +.note p.admonition-title { + background: #cbe1ef !important; +} +html[data-theme='dark'] .note p.admonition-title { + background: #256a97 !important; +} + +.tip { + background: #eef5f4 !important; + clear: none !important; +} +html[data-theme='dark'] .tip { + background: #ffffff24 !important; + clear: none !important; +} + +.tip p.admonition-title { + background: #9cd7cb !important; +} +html[data-theme='dark'] .tip p.admonition-title { + background: #256a97 !important; +} + +.admonition-todo { + background: #f9f0e0 !important; + clear: none !important; +} +html[data-theme='dark'] .admonition-todo { + background: #ffffff24 !important; + clear: none !important; +} + +.admonition-todo p.admonition-title { + background: #f7d1b0 !important; +} +html[data-theme='dark'] .admonition-todo p.admonition-title { + background: #6d3403 !important; +} + +/* *************************************** */ + +.menuselection { + font-style: italic; + font-weight: 700; +} + +/* *************************************** */ + +.wy-table-responsive { + margin-bottom: 12px !important; +} + +/* override table width restrictions */ +.table-wrap-text p, .table-grid-homepage p, .table-list-homepage p { + white-space: normal !important; + font-size: 110% !important; + line-height: 140% !important; +} + +.table-wrap-text tr:nth-child(odd), .table-grid-homepage tr:nth-child(odd), .table-list-homepage tr:nth-child(odd) { + background-color: white !important; + border-style: none !important; + border-width:0px !important; +} +html[data-theme='dark'] tr:nth-child(odd), .table-grid-homepage tr:nth-child(odd), .table-list-homepage tr:nth-child(odd) { + background-color: #ffffff08 !important; +} + +.table-wrap-text tr:nth-child(even), .table-grid-homepage tr:nth-child(even), .table-list-homepage tr:nth-child(even) { + background-color: #ffffff00 !important; + border-style: none !important; + border-width:0px !important; +} + +.table-wrap-text td { + background-color: white !important; + border-style: none !important; + border-width:0px !important; +} +html[data-theme='dark'] .table-wrap-text td { + background-color: ffffff08 !important; +} + +.table-grid-homepage td, .table-list-homepage td { + font-size: 80% !important; + color: #666666 !important; + vertical-align:top !important; + background-color: #ffffff00 !important; + border-style: none !important; + border-width: 0px !important; +} + +.table-wrap-text, .table-grid-homepage, .table-list-homepage { + margin-bottom: 24px; + max-width: 100% !important; + overflow: visible !important; + border-style: none !important; + border-width: 0px !important; +} + +@media screen and (max-width: 900px) { + .table-grid-homepage { + display: none; + } + .table-list-homepage { + display: block; + } +} + +@media not screen and (max-width: 900px) { + .table-grid-homepage { + display: block; + } + .table-list-homepage { + display: none; + } +} + + +.table-wrap-text th p, table-wrap-text-align-top th p { + margin-bottom: unset; +} + +/* *************************************** */ + +.image-min-width-144 { + min-width: 144px; + height: auto !important; +} + +.image-min-width-72 { + min-width: 72px; + height: auto !important; +} + +.image-float-right img { + float:right; +} + +.image-product-logo-float-right img { + float:right; +} + +@media screen and (max-width: 1000px) { + .image-product-logo-float-right img { + display: none; + } +} + +/* *************************************** */ +/* Google search */ + +.gsc-input-box { + border: 0px !important; +} + +.gsib_a input { + padding: 5px !important; + background-color: #141414 !important; + color:white !important; +} + +.gsc-search-button .gsc-search-button-v2 { + width: 40px !important; + height: 21px !important; + padding: 4px 4px !important; + background-color: #00a3b9ff !important; + border-color: #00a3b9ff !important; + border-radius: 5px; +} + +/* .gsc-search-button .gsc-search-button-v2 { + width: 0px !important; + padding: 7px 7px !important; + border-color: #009300 !important; + background-color: #009300 !important; +} */ + +/* *************************************** */ + +/* sidebar level 3 bullet points */ +nav#on-this-page ul.simple li ul li p { + font-family: Roboto,Helvetica,Arial,sans-serif !important; + font-size: 80% !important; + line-height: 120% !important; + margin-bottom: 0px !important; +} + +/* sidebar level 3 bullet points */ +nav#on-this-page ul.simple li ul li { + font-family: Roboto,Helvetica,Arial,sans-serif !important; + line-height: 120% !important; + margin-bottom: 0px !important; +} + +/* sidebar level 2 bullet points */ +nav#on-this-page ul.simple li p { + font-family: Roboto,Helvetica,Arial,sans-serif !important; + font-size: 80% !important; + line-height: 120% !important; + margin-bottom: 0px !important; +} + +/* sidebar level 2 bullet points */ +nav#on-this-page ul.simple li { + font-family: Roboto,Helvetica,Arial,sans-serif !important; + line-height: 120% !important; + margin-bottom: 0px !important; +} + +nav#on-this-page ul.simple { + font-family: Roboto,Helvetica,Arial,sans-serif !important; + margin-bottom: 0px !important; +} + +nav#on-this-page p { + font-family: Roboto,Helvetica,Arial,sans-serif !important; + margin-top: 0px !important; + margin-bottom: 6px !important; +} + +nav#on-this-page { + margin-bottom: 10px !important; +} + + +/* in-this-section level 3 bullet points */ +nav.in-this-section ul.simple li ul li p { + font-family: Roboto,Helvetica,Arial,sans-serif !important; + font-size: 80% !important; + line-height: 120% !important; + margin-bottom: 0px !important; +} + +/* in-this-section level 3 bullet points */ +nav.in-this-section ul.simple li ul li { + font-family: Roboto,Helvetica,Arial,sans-serif !important; + line-height: 120% !important; + margin-bottom: 0px !important; +} + +/* in-this-section level 2 bullet points */ +nav.in-this-section ul.simple li p { + font-family: Roboto,Helvetica,Arial,sans-serif !important; + font-size: 80% !important; + line-height: 120% !important; + margin-bottom: 0px !important; +} + +/* in-this-section level 2 bullet points */ +nav.in-this-section ul.simple li { + font-family: Roboto,Helvetica,Arial,sans-serif !important; + line-height: 120% !important; + margin-bottom: 0px !important; +} + +nav.in-this-section ul.simple { + font-family: Roboto,Helvetica,Arial,sans-serif !important; + margin-bottom: 0px !important; +} + +nav.in-this-section p { + font-family: Roboto,Helvetica,Arial,sans-serif !important; + font-style: italic; + font-size: 90%; + margin-top: 0px !important; + margin-bottom: 6px !important; + margin-left: -30px; +} + +nav.in-this-section { + margin-bottom: 20px !important; + margin-left: 30px; +} + + +/* sidebars */ +.rst-content .sidebar { + padding: 12px 24px 12px 24px !important; + border-radius: 10px; +} + +html[data-theme='dark'] .rst-content .sidebar { + background: #000000ff !important; + border:#000000ff !important; +} + +.sidebar-title { + border-radius: 10px; +} + +html[data-theme='dark'] .sidebar-title { + background: #002735 !important; +} + + + + +/* news */ +section#dcc-ex-model-railroading aside p.sidebar-title { + font-size: 110% !important; + font-family: Audiowide,Helvetica,Arial,sans-serif !important; + font-weight: 500 !important; + color: #00a3b9ff; + text-shadow: 1px 1px 0 #00353dff; + margin: -24px -24px 12px !important; +} + +/* news */ +p.ablog-post-title { + font-family: Roboto,Helvetica,Arial,sans-serif !important; + font-size: 90% !important; + line-height: 130% !important; + margin-bottom: 0px !important; + font-weight: bold !important; +} + +p.ablog-post-excerpt { + font-family: Roboto,Helvetica,Arial,sans-serif !important; + font-size: 90% !important; + line-height: 130% !important; + margin-bottom: 0px !important; + margin-top: 6px !important; +} + +p.ablog-post-expand { + font-family: Roboto,Helvetica,Arial,sans-serif !important; + font-size: 80% !important; + line-height: 130% !important; + margin-bottom: 10px !important; + margin-top: 0px !important; + margin-left: 20px; +} + +li.ablog-post { + list-style-type: none !important; + margin: 0px !important; +} + +img.sd-card-img-top { + max-width: 30% !important; + display: block !important; + margin-left: auto !important; + margin-right: auto !important; + margin-top: 10px; + margin-bottom: -5px !important; +} + +.sd-card-header { + margin-bottom: -10px !important; + margin-top: 10px !important; + padding-top: 0px !important; + padding-bottom: 0px !important; +} + +.sd-card-header p { + line-height: 18px !important; +} + +html[data-theme='dark'] .sd-card-header { + border-bottom: 1px solid rgb(255 253 253 / 13%); +} + +.sd-card-body ul li p { + margin-bottom: 5px !important; +} + +.sd-card-text { + margin: 0 0 12px !important; +} + +/* code */ +.rst-content code { + font-size: 100% !important; +} +.rst-content code.literal, .rst-content tt.literal { + color: #ba2121 !important; + font-size: 100% important; +} +html[data-theme='dark'] .rst-content code.literal, .rst-content tt.literal { + color: #ff6000 !important; +} + +/* general purpose */ + +.dcc-ex-red { + color:red; +} + +.dcc-ex-red-bold { + color:red; + font-weight: bold !important; +} + +.dcc-ex-red-bold-italic { + color:red; + font-weight: bold !important; + font-style: italic !important; +} + +.dcc-ex-code { + color:#ba2121; + font-weight: bold !important; +} + +.dcc-ex-text-size-200pct { + font-size: 200% !important; + line-height: 110% !important; +} + +.dcc-ex-text-size-80pct { + font-size: 80% !important; +} + +.dcc-ex-text-size-60pct { + font-size: 80% !important; +} + +.new-in-v5 { + font-family: Audiowide,Helvetica,Arial,sans-serif; + font-weight: bold; + font-style: italic; + color: #00a3b9; + font-size: 110%; +} + +html[data-theme='dark'] .new-in-v5 { + font-weight: normal; + color: #ffffff; + text-shadow: 0px 0px 10px #00a3b9; +} + +/* *************************************** */ + +@media not screen and (max-width: 900px) { + div.rst-footer-buttons { + position: fixed; + bottom:5px; + width:350px; + background: #c9c9c999; + padding: 10px; + border-radius: 10px; + border-color: white !important; + border: 4px solid; + transform: translateX(50%); + } + html[data-theme='dark'] div.rst-footer-buttons { + border-color: #141414 !important; + background: #c9c9c92e; + } + footer { + padding-bottom: 40px; + font-size: 80% !important; + } +} + +@media screen and (max-width: 900px) { + div.rst-footer-buttons { + display:block; + font-size: 80% !important; + } +} diff --git a/docs/_static/css/sphinx_design_overrides.css b/docs/_static/css/sphinx_design_overrides.css new file mode 100644 index 0000000..3c31155 --- /dev/null +++ b/docs/_static/css/sphinx_design_overrides.css @@ -0,0 +1,9 @@ +/* Override for the sphinx-design extension classes */ +.sd-card-header { + font-size: 110% !important; + font-family: Audiowide,Helvetica,Arial,sans-serif !important; + font-weight: 500 !important; + color: #00a3b9ff; + text-shadow: 1px 1px 0 #00353dff; + margin-bottom: .5rem !important; +} \ No newline at end of file diff --git a/docs/_static/images/favicon.ico b/docs/_static/images/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..52843ddc050290cacb86061f8bf9b29aac6563e1 GIT binary patch literal 641670 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

r*(2agGodH@JMZgrYQ5v> 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 J@c^y*{{y+Z#smNW literal 0 HcmV?d00001 diff --git a/docs/_static/images/logo.png b/docs/_static/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a9720ed8ac4d18ff06aab0cb64d9fda1c58bb7ef GIT binary patch literal 26344 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 literal 0 HcmV?d00001 diff --git a/docs/_static/images/product-logo-native-protocol-library.png b/docs/_static/images/product-logo-native-protocol-library.png new file mode 100644 index 0000000000000000000000000000000000000000..afb5475f7ad6c0e1e9640350e5eeb122b60b480d GIT binary patch literal 25957 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 V6UyT`^e<8XWd#lSGFh{b{|ACHmA?Q0 literal 0 HcmV?d00001 diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000..0480388 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,95 @@ +# Configuration file for the Sphinx documentation builder. +# +# For the full list of built-in configuration values, see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# from sphinx.builders.html import StandaloneHTMLBuilder +import subprocess +# import os + +# Doxygen +subprocess.call('doxygen Doxyfile.in', shell=True) + +# -- Project information ----------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information + +project = 'DCCEXProtocol' +copyright = '2023 - Peter Cole, Peter Akers' +author = 'Peter Cole, Peter Akers' + +# -- General configuration --------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration + +extensions = [ + 'sphinx_sitemap', + 'sphinxcontrib.spelling', + 'sphinx_rtd_dark_mode', + 'breathe' +] + +autosectionlabel_prefix_document = True + +# Don't make dark mode the user default +default_dark_mode = False + +spelling_lang = 'en_UK' +tokenizer_lang = 'en_UK' +spelling_word_list_filename = ['spelling_wordlist.txt'] + +templates_path = ['_templates'] +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + +highlight_language = 'c++' + +numfig = True + +numfig_format = {'figure': 'Figure %s'} + +# -- Options for HTML output ------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output + +html_theme = 'sphinx_rtd_theme' +html_static_path = ['_static'] + +html_logo = "./_static/images/product-logo-native-protocol-library.png" + +html_favicon = "./_static/images/favicon.ico" + +html_theme_options = { + 'style_nav_header_background': 'white', + 'logo_only': True, + # Toc options + 'includehidden': True, + 'titles_only': False, + # 'titles_only': True, + 'collapse_navigation': False, + # 'navigation_depth': 3, + 'navigation_depth': -1, + 'analytics_id': 'G-L5X0KNBF0W', +} + +html_context = { + 'display_github': True, + 'github_user': 'DCC-EX', + 'github_repo': 'dccexprotocol', + 'github_version': 'sphinx/docs/', +} + +html_css_files = [ + 'css/dccex_theme.css', + 'css/sphinx_design_overrides.css', +] + +# Sphinx sitemap +html_baseurl = 'https://dcc-ex.com/DCCEXProtocol/' +html_extra_path = [ + 'robots.txt', +] + +# -- Breathe configuration ------------------------------------------------- + +breathe_projects = { + "DCCEXProtocol": "_build/xml/" +} +breathe_default_project = "DCCEXProtocol" +breathe_default_members = () diff --git a/docs/include/include.rst b/docs/include/include.rst new file mode 100644 index 0000000..428de02 --- /dev/null +++ b/docs/include/include.rst @@ -0,0 +1,53 @@ +.. meta:: + :keywords: DCC-EX DCC DCC++ EX DCC++EX +.. +.. |DCC-EX| raw:: html + + DCC-EX +.. +.. |EX-CS| raw:: html + + EX‑CommandStation +.. +.. |EX-NCL| raw:: html + + DCC-EX + Native command protocol library +.. +.. |EX-P| raw:: html + + DCCEXProtocol +.. +.. |EX-PL| raw:: html + + DCCEXProtocol library +.. +.. |EX-NCP| raw:: html + + DCC-EX + native command protocol +.. +.. |br| raw:: html + +
+.. +.. role:: dcc-ex-red +.. role:: dcc-ex-red-bold +.. role:: dcc-ex-red-bold-italic +.. role:: dcc-ex-code +.. +.. role:: dcc-ex-text-size-80pct +.. role:: dcc-ex-text-size-60pct +.. role:: dcc-ex-text-size-200pct +.. +.. |_| unicode:: 0xA0 + :trim: +.. +.. |force-break| raw:: html + +

+.. +.. |image-note| raw:: html + + Note that you can click on any of the images to make them larger. +.. \ No newline at end of file diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000..320f7be --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,47 @@ +.. include:: /include/include.rst + +Documentation for the WiThrotle protocol library - WiThrottleProtocol +===================================================================== + +.. toctree:: + :maxdepth: 4 + :hidden: + + WiThrottle protocol library + library + +WiThrottle protocol library +--------------------------- + +This library implements the WiThrottleProtocol (as used in JMRI, the |DCC-EX| |EX-CS| and manya other DCc Command Stations), allowing a device to connect to the server and act as a client (such as a hardware based throttle). + +The implementation of this library is tested on ESP32 based devices running the Arduino framework. There's nothing in here that's specific to the ESP32, and little of Arduino that couldn't be replaced as needed. + +Credits +------- + +The original version of the code in this library is taken directly from the WiThrottle library by **Copyright © 2018-2019 Blue Knobby Systems Inc.** and additioanl changes by lucadentella. +The rest of the code has been developed by Peter Akers (Flash62au). + +----- + +Differences from the original library +===================================== + + - Removed dependencies with external libraries (Chrono.h, ArduinoTime.h, TimeLib.h) + - Added NullStream class to disable (by default) logging + - Changed begin() method to setLogStream() + - Added a setter method for delegate class: setDelegate() + - Added the ability to parse roster messages and to receive the roster list via delegate class + +Differences from the lucadentella version of the library +======================================================== + + - Added the trademark changes from the original library + - supports multi-throttle commands (max 6) (Added in version 1.1.0) + - Support added for on-the-fly consists + - Support added for turnouts/points + - Support added for routes + - Heartbeat sends the device name, which forces the WiThrottle server to respond (used to confirm it is still connected) + - minimum time separation/delay between commands sent (introduced in v1.1.7) + - bug fixes diff --git a/docs/library.rst b/docs/library.rst new file mode 100644 index 0000000..1c08e8f --- /dev/null +++ b/docs/library.rst @@ -0,0 +1,5 @@ +Library +======= + +.. doxygenindex:: + :project: WiThrottleProtocol diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000..954237b --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "" goto help + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/make2 github.bat b/docs/make2 github.bat new file mode 100644 index 0000000..0976a44 --- /dev/null +++ b/docs/make2 github.bat @@ -0,0 +1,4 @@ +"C:\Program Files\doxygen\bin\doxygen" Doxyfile.in + +call make2 github +pause diff --git a/docs/make2.bat b/docs/make2.bat new file mode 100644 index 0000000..e2b8b2e --- /dev/null +++ b/docs/make2.bat @@ -0,0 +1,52 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build +@REM set SPHINXOPTS=-E -a + +if "%1" == "" goto help + +if "%1" == "github" ( + %SPHINXBUILD% -M html %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% + echo "dcc-ex.com" /y > docs\_build\html\CNAME + echo "" /y > docs\_build\html\.nojekyll + goto end +) + +@REM if "%1" == "clean" ( +@REM rmdir /S /Q %BUILDDIR% +@REM mkdir %BUILDDIR% +@REM @REM %SPHINXBUILD% -M html %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% +@REM @REM echo "dcc-ex.com" /y > docs\_build\html\CNAME +@REM @REM echo "" /y > docs\_build\html\.nojekyll +@REM goto end +@REM ) + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/robots.txt b/docs/robots.txt new file mode 100644 index 0000000..54fb989 --- /dev/null +++ b/docs/robots.txt @@ -0,0 +1,2 @@ +User-agent: * + diff --git a/library.properties b/library.properties index bcf1ed8..19f8e81 100644 --- a/library.properties +++ b/library.properties @@ -3,7 +3,7 @@ version=1.1.17 author=Peter Akers , David Zuhn , Luca Dentella maintainer=Peter Akers sentence=JMRI WiThrottle Protocol implementation for ESP32 -paragraph=This library implements the WiThrottle protocol (as used in JMRI and other servers), allowing an device to connect to the server and act as a client (such as a dedicated fast clock device or a hardware based throttle). +paragraph=This library implements the WiThrottle protocol (as used in JMRI and other servers), allowing an Ardunio device to connect to the server and act as a client (such as a dedicated fast clock device or a hardware based throttle). category=Other url=https://github.com/flash62au/WiThrottleProtocol architectures=* \ No newline at end of file diff --git a/src/WiThrottleProtocol.h b/src/WiThrottleProtocol.h index a9dc4cc..61376ad 100644 --- a/src/WiThrottleProtocol.h +++ b/src/WiThrottleProtocol.h @@ -110,10 +110,12 @@ class NullStream : public Stream { size_t write(const uint8_t *buffer, size_t size) { return size; } }; +/// @brief Class for the class WiThrottleProtocolDelegate { public: - + /// @brief Constructor + /// @param id Route ID virtual void receivedVersion(String version) {} virtual void receivedServerType(String type) {} virtual void receivedServerDescription(String description) {}