Add extracted tools: CitrineOS, OpenOCPP, ShapeShifter

- CitrineOS core extracted (CSMS OCPP 2.0.1)
- OpenOCPP extracted (firmware OCPP 1.6J/2.0.1)
- ShapeShifter library installed (pip install -e)
- ShapeShifter specification extracted
- EVerest extracted

TODO updated with progress
This commit is contained in:
Eric F
2026-06-08 00:38:27 -04:00
parent 468cfeaa50
commit d398a6ced2
7326 changed files with 1177561 additions and 7 deletions

View File

@@ -0,0 +1,249 @@
<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="701px" height="376px" viewBox="-0.5 -0.5 701 376" content="&lt;mxfile&gt;&lt;diagram id=&quot;4SK5cN6X-azEmNZbr7fQ&quot; name=&quot;Page-1&quot;&gt;7Vrbdto4FP0a1pp5KMu2sIFHHJJMQtPQZpJp5iVL2DJ2KiwqywT60G+fI1sCX4CQadKQCw8J2jq6nq3tc2Qa6GAyP+Z4Gp4xn9CGZfjzBuo3LMvptOGvBBY5gOxuDox55OeQuQIuoh9EgYZC08gnSclQMEZFNC2DHotj4okShjlnd2WzgNHyqFM8JjXgwsO0jv4T+SLM0Y5trPC/SDQO9cimoWomWBsrIAmxz+4KEDpsoAPOmMi/TeYHhMq90/uStzvaULucGCexWNPgMiH8fHQr98QyKB6BWzKjv9k3EgM05GwGW8vzbmjqRb4XYi7yNidqlPSmN7B634UxP+/nlnp8a7mE5dQSsdDbFoqJHM9sIJfNCA9otvIRZd43gLL/F1PsRfFYWd2FkSASkh3cAZUAC1gsFCNMp9lWyAGjjGejIIRbZgsDjmk0jgHzYC9gSchNlp13oQQzEBH4tKfMJpHvy5m6ieCwHet6zGvOZTdCUlf6FcaPKK1inKWxT3y1DjxKGE0F6XFPT12iy1JX9VIYM7ACFNjLMTXNjGYHsLqXlePlmsi8AClfHBM2IYIvwETVIkVAdQKtLsrLdys+W7adY2GByy2FYXWExsueVyyDL8r9uljg3VYebued3+wNqBlPrTBIy7xr7cq7WyLEQvugswPF0DpCOMj2g2AjIda5rEKIFRFg3i7xQV7UfBkXIRuzGNPDFQpdwm70pHSBScxiiZHY14g+QwAdRVQvlswj8TWbga1K17KmaRgdVR4SHoH75OnoG1l7cGWhiSzKNh8M3Ugi1VYb6ZiwlHukIA2g05iPibJyckiufitlC5xcKmmRk0uQE4pFNCur9DqmZmPA5uFFwWDKolgkNSIvJ7Ijt2uirE7MDNNUz6wJZaW5VpmrcHyhH7dAWU6S6AceZQZyt7Pj4mLv2zjjlKalTwKcUrFO9zYqXUZ0Nba5RkmzT/VANNFal7d2VqCdvbRBTzaJRy8FllgGRBsprGirkghQksVk8dFtX/bKSuK8P8Fe5hOsZXf24QmmI6kr8J2PBbsnlDoDIh4Y9s+z4MQrE7H9TsSXSUTHegGhlAG8+3z24Vy0To7LvOv83lCKdExUqNn/UAqS1YcHU6pRKZxq/1I45dTDqfbbCKe6tXDKauZlKbjkRkgF/iPy8y9/vp4Iq/PsEdb9mjI/obfuZYTKmmIajX0SFR8n4VI/gmjeh7IqyaohFuBV6UZYRna690+F2oZTUKFVerZdhlQrLUPmL6tQ+80mdaYOE1YyhKQMfSGJ1IhXIzr6yvUZVedwlhCZ1+EYj+XVpGHeE1Njd8B+dK5QaOKKDr3fT76UoLplV9I7w96HqLrGxXueiV+Ai7OfJ6f/fpm6FS6idy6+UC7a1l5wcTvzmpJ5X8mQ9x1eYd5vvi1/YSmejIp0+bpRvD3fGFll8ZdZDK0K9+ePld6Z6I1EVvX7cpyClzlQ4DWmdebz35xvV5LrE3fw6ah3OhjOFxUl2fm2/E29d9t4wvf36E7mQ4kVnnk63tI/0TArz7JcrVSrLR3ZbWN7R7nG1Tp6JDFp18TkCvPkFamHs+fq0QT1aN+E8XfWGVbU4/2q+c2oRzUS/t/qUe3oadWjftd8MPFfk3o8/53yBaGARUy+NPXJFM4C7K+RFYtVlI0jT1YEctj8Tf9khzf96NQduP1P6Gh25ZTlx9r5UvpxEnBjh/SbkkCUkm+UyVCVC4JN18hYPb9+nOw6+zxddo2Myk0PqmfXprVGzlrGg0n4gOxaZxoN1MuIwaVDZF6GMk+KxZRsqFK/OmUQZmQGWOlnRt1Mp5amU070eys/Nx4xRgsG28nNzeHg6ONw1j9j3Qq5zacndxJiuQd9n3npJPO/O8rJ9nGkey8cgE4TPc0J2P326eFn4Yk4b3Yrz0enW+e8seZGyXYeg/MArX5inD8qV7/TRof/AQ==&lt;/diagram&gt;&lt;/mxfile&gt;">
<defs/>
<g>
<rect x="25" y="0" width="255" height="45" rx="4.5" ry="4.5" fill="#f2f3f5" stroke="#3a414a" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 239px; height: 1px; padding-top: 23px; margin-left: 33px;">
<div data-drawio-colors="color: #3a414a; " style="box-sizing: border-box; font-size: 0px; text-align: center; width: 237px; max-height: 27px;">
<div style="display: inline-block; font-size: 16.7px; font-family: Helvetica; color: rgb(58, 65, 74); line-height: 1.2; pointer-events: all; width: 100%; white-space: normal; overflow-wrap: normal;">
Token Provider
</div>
</div>
</div>
</foreignObject>
<text x="153" y="28" fill="#3a414a" font-family="Helvetica" font-size="17px" text-anchor="middle">
Token Provider
</text>
</switch>
</g>
<path d="M 152.5 45.36 L 152.5 156.95" fill="none" stroke="#635dff" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 152.5 163.75 L 149.1 156.95 L 155.9 156.95 Z" fill="#635dff" stroke="#635dff" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 106px; margin-left: 153px;">
<div data-drawio-colors="color: #333333; background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 13.3px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; font-weight: bold; background-color: rgb(255, 255, 255); white-space: nowrap;">
1. Token
</div>
</div>
</div>
</foreignObject>
<text x="153" y="110" fill="#333333" font-family="Helvetica" font-size="13px" text-anchor="middle" font-weight="bold">
1. Token
</text>
</switch>
</g>
<rect x="25" y="165" width="255" height="45" rx="4.5" ry="4.5" fill="#f2f3f5" stroke="#3a414a" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 239px; height: 1px; padding-top: 188px; margin-left: 33px;">
<div data-drawio-colors="color: #3a414a; " style="box-sizing: border-box; font-size: 0px; text-align: center; width: 237px; max-height: 27px;">
<div style="display: inline-block; font-size: 16.7px; font-family: Helvetica; color: rgb(58, 65, 74); line-height: 1.2; pointer-events: all; width: 100%; white-space: normal; overflow-wrap: normal;">
Auth Module
</div>
</div>
</div>
</foreignObject>
<text x="153" y="193" fill="#3a414a" font-family="Helvetica" font-size="17px" text-anchor="middle">
Auth Module
</text>
</switch>
</g>
<rect x="25" y="330" width="255" height="45" rx="4.5" ry="4.5" fill="#f2f3f5" stroke="#3a414a" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 239px; height: 1px; padding-top: 353px; margin-left: 33px;">
<div data-drawio-colors="color: #3a414a; " style="box-sizing: border-box; font-size: 0px; text-align: center; width: 237px; max-height: 27px;">
<div style="display: inline-block; font-size: 16.7px; font-family: Helvetica; color: rgb(58, 65, 74); line-height: 1.2; pointer-events: all; width: 100%; white-space: normal; overflow-wrap: normal;">
Token Validator
</div>
</div>
</div>
</foreignObject>
<text x="153" y="358" fill="#3a414a" font-family="Helvetica" font-size="17px" text-anchor="middle">
Token Validator
</text>
</switch>
</g>
<path d="M 84.92 210.36 L 84.92 321.99" fill="none" stroke="#e81313" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 84.92 328.79 L 81.52 321.99 L 88.32 321.99 Z" fill="#e81313" stroke="#e81313" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 271px; margin-left: 85px;">
<div data-drawio-colors="color: #333333; background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 13.3px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; font-weight: bold; background-color: rgb(255, 255, 255); white-space: nowrap;">
2. validate_token(id_token)
</div>
</div>
</div>
</foreignObject>
<text x="85" y="275" fill="#333333" font-family="Helvetica" font-size="13px" text-anchor="middle" font-weight="bold">
2. validate_token(id_token)
</text>
</switch>
</g>
<path d="M 205.03 329.64 L 205.03 218.01" fill="none" stroke="#e81313" stroke-miterlimit="10" stroke-dasharray="3 8" pointer-events="stroke"/>
<path d="M 205.03 211.21 L 208.43 218.01 L 201.63 218.01 Z" fill="#e81313" stroke="#e81313" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 270px; margin-left: 206px;">
<div data-drawio-colors="color: #333333; background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 13.3px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; font-weight: bold; background-color: rgb(255, 255, 255); white-space: nowrap;">
3. Result
</div>
</div>
</div>
</foreignObject>
<text x="206" y="274" fill="#333333" font-family="Helvetica" font-size="13px" text-anchor="middle" font-weight="bold">
3. Result
</text>
</switch>
</g>
<rect x="445" y="112" width="255" height="45" rx="4.5" ry="4.5" fill="#f2f3f5" stroke="#3a414a" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 239px; height: 1px; padding-top: 135px; margin-left: 453px;">
<div data-drawio-colors="color: #3a414a; " style="box-sizing: border-box; font-size: 0px; text-align: center; width: 237px; max-height: 27px;">
<div style="display: inline-block; font-size: 16.7px; font-family: Helvetica; color: rgb(58, 65, 74); line-height: 1.2; pointer-events: all; width: 100%; white-space: normal; overflow-wrap: normal;">
Evse Manager 1
</div>
</div>
</div>
</foreignObject>
<text x="573" y="140" fill="#3a414a" font-family="Helvetica" font-size="17px" text-anchor="middle">
Evse Manager 1
</text>
</switch>
</g>
<rect x="445" y="232" width="255" height="45" rx="4.5" ry="4.5" fill="#f2f3f5" stroke="#3a414a" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 239px; height: 1px; padding-top: 255px; margin-left: 453px;">
<div data-drawio-colors="color: #3a414a; " style="box-sizing: border-box; font-size: 0px; text-align: center; width: 237px; max-height: 27px;">
<div style="display: inline-block; font-size: 16.7px; font-family: Helvetica; color: rgb(58, 65, 74); line-height: 1.2; pointer-events: all; width: 100%; white-space: normal; overflow-wrap: normal;">
Evse Manager 2
</div>
</div>
</div>
</foreignObject>
<text x="573" y="260" fill="#3a414a" font-family="Helvetica" font-size="17px" text-anchor="middle">
Evse Manager 2
</text>
</switch>
</g>
<path d="M 280.25 187.5 L 356.5 187.5 Q 362.5 187.5 362.5 193.5 L 362.5 248.5 Q 362.5 254.5 368.5 254.5 L 437.05 254.5" fill="none" stroke="#e81313" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 443.85 254.5 L 437.05 257.9 L 437.05 251.1 Z" fill="#e81313" stroke="#e81313" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 222px; margin-left: 363px;">
<div data-drawio-colors="color: #333333; background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 13.3px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; font-weight: bold; background-color: rgb(255, 255, 255); white-space: nowrap;">
authorize(id_token)
</div>
</div>
</div>
</foreignObject>
<text x="363" y="226" fill="#333333" font-family="Helvetica" font-size="13px" text-anchor="middle" font-weight="bold">
authorize(id_token)
</text>
</switch>
</g>
<path d="M 400 22 L 557.31 22" fill="none" stroke="#635dff" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 564.11 22 L 557.31 25.4 L 557.31 18.6 Z" fill="#635dff" stroke="#635dff" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 23px; margin-left: 484px;">
<div data-drawio-colors="color: #333333; background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 13.3px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; font-weight: bold; background-color: rgb(255, 255, 255); white-space: nowrap;">
Vars
</div>
</div>
</div>
</foreignObject>
<text x="484" y="26" fill="#333333" font-family="Helvetica" font-size="13px" text-anchor="middle" font-weight="bold">
Vars
</text>
</switch>
</g>
<path d="M 400 52 L 557.31 52" fill="none" stroke="#e81313" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 564.11 52 L 557.31 55.4 L 557.31 48.6 Z" fill="#e81313" stroke="#e81313" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 53px; margin-left: 484px;">
<div data-drawio-colors="color: #333333; background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 13.3px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; font-weight: bold; background-color: rgb(255, 255, 255); white-space: nowrap;">
Cmds
</div>
</div>
</div>
</foreignObject>
<text x="484" y="56" fill="#333333" font-family="Helvetica" font-size="13px" text-anchor="middle" font-weight="bold">
Cmds
</text>
</switch>
</g>
<rect x="295" y="142" width="120" height="40" rx="4.5" ry="4.5" fill-opacity="0" fill="#ffffff" stroke="rgb(0, 0, 0)" stroke-opacity="0" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 116px; height: 1px; padding-top: 145px; margin-left: 298px;">
<div data-drawio-colors="color: #3a414a; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 114px;">
<div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: rgb(58, 65, 74); line-height: 1.2; pointer-events: all; width: 100%; white-space: normal; overflow-wrap: normal;">
Selection depends on Selection logic of auth module
</div>
</div>
</div>
</foreignObject>
<text x="298" y="155" fill="#3a414a" font-family="Helvetica" font-size="10px">
Selection depends on Se...
</text>
</switch>
</g>
<path d="M 190 76 L 295 76 L 295 123.6 Q 268.75 108.48 242.5 123.6 Q 216.25 138.72 190 123.6 L 190 84.4 Z" fill="rgb(255, 255, 255)" stroke="#3a414a" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 101px; height: 1px; padding-top: 79px; margin-left: 193px;">
<div data-drawio-colors="color: #3a414a; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 99px;">
<div style="display: inline-block; font-size: 8.3px; font-family: Helvetica; color: rgb(58, 65, 74); line-height: 1.2; pointer-events: all; width: 100%; white-space: normal; overflow-wrap: normal;">
id_token: string
<br/>
type: string
<br/>
connectors: array of int
<br/>
prevalidated: bool
<div>
<br/>
</div>
</div>
</div>
</div>
</foreignObject>
<text x="193" y="87" fill="#3a414a" font-family="Helvetica" font-size="8px">
id_token: string...
</text>
</switch>
</g>
</g>
<switch>
<g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/>
<a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank">
<text text-anchor="middle" font-size="10px" x="50%" y="100%">
Viewer does not support full SVG 1.1
</text>
</a>
</switch>
</svg>

After

Width:  |  Height:  |  Size: 22 KiB