/*
do not edit:
auto-generated by github.com/seamia/protodot
*/
digraph protodot {
/* package: platform */
/* source: C:/Users/sle11/Documents/VSCode/squeezelite-esp32/protobuf/proto/configuration.proto */
/* selection: * */
rankdir=LR;
label="platform";
tooltip="platform";
bgcolor="transparent"
node [
shape=plaintext
fontsize=10
fontname="Ubuntu"
];
/* ------ nodes ------ */
Node_Ja_150 [shape=plaintext tooltip="platform.KnobOnly" label=<
KnobOnly |
| 1 | enable | bool |
| 2 | delay_ms | int32 |
>];
Node_Ja_163 [shape=plaintext tooltip="platform.WS2812" label=<WS2812 |
| 1 | length | int32 |
| 2 | gpio | GPIO |
>];
Node_Ja_153 [shape=plaintext tooltip="BatteryAttenEnum" label=<enum BatteryAttenEnum |
UNSPECIFIED_ATT | 0 |
ATT_0 | 1 |
ATT_1 | 2 |
ATT_2 | 3 |
ATT_3 | 4 |
>];
Node_Ja_117 [shape=plaintext tooltip="SampleRate" label=<enum SampleRate |
SAMPLE_RATE_UNSPECIFIED | 0 |
SAMPLE_RATE_8000 | 1 |
SAMPLE_RATE_11025 | 2 |
SAMPLE_RATE_12000 | 3 |
SAMPLE_RATE_16000 | 4 |
SAMPLE_RATE_22050 | 5 |
SAMPLE_RATE_24000 | 6 |
SAMPLE_RATE_32000 | 7 |
SAMPLE_RATE_44100 | 8 |
SAMPLE_RATE_48000 | 9 |
SAMPLE_RATE_88200 | 10 |
SAMPLE_RATE_96000 | 11 |
SAMPLE_RATE_176400 | 12 |
SAMPLE_RATE_192000 | 13 |
SAMPLE_RATE_352800 | 14 |
SAMPLE_RATE_384000 | 15 |
SAMPLE_RATE_705600 | 16 |
SAMPLE_RATE_768000 | 17 |
>];
Node_Ja_137 [shape=plaintext tooltip="Mode" label=<enum Mode |
REG_MODE_NOTHING | 0 |
REG_MODE_OR | 1 |
REG_MODE_AND | 2 |
>];
Node_Ja_139 [shape=plaintext tooltip="MCKEnum" label=<enum MCKEnum |
UNSPECIFIED_MCK | 0 |
MCK0 | 1 |
MCK1 | 2 |
MCK2 | 3 |
>];
Node_Ja_143 [shape=plaintext tooltip="platform.I2CDisplay" label=<>];
Node_Ja_141 [shape=plaintext tooltip="platform.DispOffsets" label=<DispOffsets |
| 1 | height | int32 |
| 2 | width | int32 |
>];
Node_Ja_126 [shape=plaintext tooltip="platform.Services" label=<Services |
| 1 | metadata | Metadata |
| 2 | sleep | SleepService |
| 3 | ota_url | string |
| 4 | cspot | Spotify |
| 5 | airplay | AirPlay |
| 6 | squeezelite | Squeezelite |
>];
Node_Ja_162 [shape=plaintext tooltip="platform.SPIBus" label=<SPIBus |
| 1 | mosi | GPIO |
| 2 | miso | GPIO |
| 3 | clk | GPIO |
| 4 | dc | GPIO |
| 5 | host | HostEnum |
>];
Node_Ja_130 [shape=plaintext tooltip="platform.ControlCommand" label=<ControlCommand |
| 1 | type | ControlCommandType |
[...] | 2 | items | ControlItem |
>];
Node_Ja_132 [shape=plaintext tooltip="platform.ControlItem" label=<ControlItem |
item_type |
| 1 | reg_action | RegisterAction |
| 2 | gpio_action | GpioAction |
| 3 | delay_action | DelayAction |
|
>];
Node_Ja_166 [shape=plaintext tooltip="platform.Config" label=<Config |
| 1 | gpios | Gpios |
| 2 | dev | Dev |
| 3 | services | Services |
| 4 | device_name | string |
>];
Node_Ja_164 [shape=plaintext tooltip="platform.LEDStrip" label=<>];
Node_Ja_128 [shape=plaintext tooltip="platform.I2CBus" label=<I2CBus |
| 1 | port | I2CPortEnum |
| 2 | speed | int32 |
| 3 | sda | GPIO |
| 4 | scl | GPIO |
>];
Node_Ja_148 [shape=plaintext tooltip="platform.ButtonActions" label=<ButtonActions |
| 1 | pressed | ButtonAction |
| 2 | released | ButtonAction |
>];
Node_Ja_107 [shape=plaintext tooltip="platform.GPIOExpSPI" label=<GPIOExpSPI |
| 1 | speed | int32 |
| 2 | host | HostEnum |
| 3 | cs | GPIO |
>];
Node_Ja_124 [shape=plaintext tooltip="platform.SleepService" label=<SleepService |
| 1 | delay | uint32 |
| 2 | spurious | int32 |
| 3 | sleep | GPIO |
[...] | 4 | wake | GPIO |
[...] | 5 | rtc | GPIO |
| 6 | batt | float |
>];
Node_Ja_100 [shape=plaintext tooltip="DeviceTypeEnum" label=<enum DeviceTypeEnum |
UNSPECIFIED_TYPE | 0 |
DEVTYPE_SPI | 1 |
DEVTYPE_I2C | 2 |
DEVTYPE__RMII | 3 |
>];
Node_Ja_101 [shape=plaintext tooltip="PortEnum" label=<enum PortEnum |
UNSPECIFIED_SYSTPORT | 0 |
SYSTEM | 1 |
DAC_PORT | 2 |
>];
Node_Ja_133 [shape=plaintext tooltip="platform.RegisterAction" label=<RegisterAction |
| 1 | reg | int32 |
| 2 | val | int32 |
| 3 | mode | Mode |
>];
Node_Ja_159 [shape=plaintext tooltip="platform.EthRMII" label=<>];
Node_Ja_131 [shape=plaintext tooltip="ControlCommandType" label=<enum ControlCommandType |
INIT | 0 |
POWER_ON | 1 |
POWER_OFF | 2 |
SPEAKER_ON | 3 |
SPEAKER_OFF | 4 |
HEADSET_ON | 5 |
HEADSET_OFF | 6 |
>];
Node_Ja_105 [shape=plaintext tooltip="platform.Gpios" label=<Gpios |
| 1 | greenLED | GPIO |
| 2 | redLED | GPIO |
| 3 | audioJack | GPIO |
| 4 | amp | GPIO |
| 5 | power | GPIO |
| 6 | ir | GPIO |
| 7 | jack | GPIO |
| 8 | spkfault | GPIO |
| 9 | Vcc | GPIO |
| 10 | GND | GPIO |
>];
Node_Ja_111 [shape=plaintext tooltip="platform.Spotify" label=<Spotify |
| 1 | enabled | bool |
| 2 | device_name | string |
| 3 | bitrate | uint32 |
| 4 | zeroconf | bool |
| 5 | volume | uint32 |
>];
Node_Ja_160 [shape=plaintext tooltip="platform.Eth" label=<Eth |
| 1 | type | DeviceTypeEnum |
| 2 | common | EthCommon |
ethType |
| 3 | spi | EthSPI |
| 4 | rmii | EthRMII |
|
>];
Node_Ja_109 [shape=plaintext tooltip="platform.GPIOExp" label=<GPIOExp |
| 1 | model | GPIOExpModelEnum |
| 2 | addr | int32 |
ExpType |
| 3 | i2c | GPIOExpI2C |
| 4 | spi | GPIOExpSPI |
|
| 5 | base | int32 |
| 6 | count | int32 |
| 7 | intr | GPIO |
>];
Node_Ja_129 [shape=plaintext tooltip="platform.DacControlSet" label=<DacControlSet |
[...] | 1 | commands | ControlCommand |
>];
Node_Ja_149 [shape=plaintext tooltip="platform.Button" label=<Button |
| 1 | gpio | GPIO |
| 2 | pull | bool |
| 3 | debounce | int32 |
| 4 | shifter | GPIO |
| 5 | longduration | int32 |
| 6 | normal | ButtonActions |
| 7 | longpress | ButtonActions |
| 8 | shifted | ButtonActions |
| 9 | longshifted | ButtonActions |
>];
Node_Ja_119 [shape=plaintext tooltip="DebugComponent" label=<enum DebugComponent |
NONE | 0 |
SLIMPROTO | 1 |
STREAM | 2 |
DECODE | 3 |
OUTPUT | 4 |
IR | 5 |
ALL | 6 |
>];
Node_Ja_147 [shape=plaintext tooltip="ButtonAction" label=<enum ButtonAction |
ACTRLS_NONE | 0 |
ACTRLS_POWER | 1 |
ACTRLS_VOLUP | 2 |
ACTRLS_VOLDOWN | 3 |
ACTRLS_TOGGLE | 4 |
ACTRLS_PLAY | 5 |
ACTRLS_PAUSE | 6 |
ACTRLS_STOP | 7 |
ACTRLS_REW | 8 |
ACTRLS_FWD | 9 |
ACTRLS_PREV | 10 |
ACTRLS_NEXT | 11 |
BCTRLS_UP | 12 |
BCTRLS_DOWN | 13 |
BCTRLS_LEFT | 14 |
BCTRLS_RIGHT | 15 |
BCTRLS_PS1 | 16 |
BCTRLS_PS2 | 17 |
BCTRLS_PS3 | 18 |
BCTRLS_PS4 | 19 |
BCTRLS_PS5 | 20 |
BCTRLS_PS6 | 21 |
BCTRLS_PS7 | 22 |
BCTRLS_PS8 | 23 |
BCTRLS_PS9 | 24 |
BCTRLS_PS10 | 25 |
KNOB_LEFT | 26 |
KNOB_RIGHT | 27 |
KNOB_PUSH | 28 |
ACTRLS_SLEEP | 29 |
>];
Node_Ja_134 [shape=plaintext tooltip="GpioActionLevel" label=<enum GpioActionLevel |
ACTION_LEVEL_UNDEFINED | 0 |
ACTION_LEVEL_1 | 1 |
ACTION_LEVEL_0 | 2 |
>];
Node_Ja_108 [shape=plaintext tooltip="platform.GPIOExpI2C" label=<>];
Node_Ja_125 [shape=plaintext tooltip="platform.Metadata" label=<Metadata |
| 1 | format | string |
| 2 | speed | uint32 |
| 3 | pause | uint32 |
| 4 | artwork | Artwork |
>];
Node_Ja_151 [shape=plaintext tooltip="platform.Rotary" label=<Rotary |
| 1 | A | GPIO |
| 2 | B | GPIO |
| 3 | SW | GPIO |
| 4 | knobonly | KnobOnly |
| 5 | volume | bool |
| 6 | longpress | bool |
>];
Node_Ja_120 [shape=plaintext tooltip="platform.RatesOption" label=<RatesOption |
| 1 | min | SampleRate |
| 2 | max | SampleRate |
[...] | 3 | list | SampleRate |
>];
Node_Ja_122 [shape=plaintext tooltip="platform.DebugOption" label=<DebugOption |
| 1 | component | DebugComponent |
| 2 | level | DebugLevelEnum |
>];
Node_Ja_106 [shape=plaintext tooltip="GPIOExpModelEnum" label=<enum GPIOExpModelEnum |
UNSPECIFIED_EXP | 0 |
PCA9535 | 1 |
PCA85XX | 2 |
MCP23017 | 3 |
MCP23S17 | 4 |
>];
Node_Ja_135 [shape=plaintext tooltip="platform.GpioAction" label=<GpioAction |
| 1 | gpio | int32 |
| 2 | level | GpioActionLevel |
>];
Node_Ja_154 [shape=plaintext tooltip="platform.Battery" label=<Battery |
| 1 | channel | BatteryChannelEnum |
| 2 | scale | float |
| 3 | cells | int32 |
| 4 | atten | BatteryAttenEnum |
>];
Node_Ja_161 [shape=plaintext tooltip="platform.SPDIF" label=<SPDIF |
| 1 | dc | GPIO |
| 2 | data | GPIO |
| 3 | clk | GPIO |
>];
Node_Ja_113 [shape=plaintext tooltip="OutputTypeEnum" label=<enum OutputTypeEnum |
OUTPUT_UNKNOWN | 0 |
OUTPUT_I2S | 1 |
OUTPUT_SPDIF | 2 |
OUTPUT_Bluetooth | 3 |
>];
Node_Ja_152 [shape=plaintext tooltip="BatteryChannelEnum" label=<enum BatteryChannelEnum |
UNSPECIFIED_CH | 0 |
CH0 | 1 |
CH1 | 2 |
CH2 | 3 |
CH3 | 4 |
CH4 | 5 |
CH5 | 6 |
CH6 | 7 |
CH7 | 8 |
>];
Node_Ja_157 [shape=plaintext tooltip="platform.EthCommon" label=<EthCommon |
| 1 | model | EthModelEnum |
| 2 | rst | GPIO |
>];
Node_Ja_112 [shape=plaintext tooltip="platform.AirPlay" label=<AirPlay |
| 1 | enabled | bool |
| 2 | device_name | string |
| 3 | port | uint32 |
>];
Node_Ja_165 [shape=plaintext tooltip="platform.Dev" label=<Dev |
| 1 | spi | SPIBus |
| 2 | i2c | I2CBus |
| 3 | dac | DAC |
| 4 | spdif | SPDIF |
| 5 | display | Display |
[...] | 6 | gpio_exp | GPIOExp |
| 7 | led_strip | LEDStrip |
| 8 | rotary | Rotary |
[...] | 9 | buttons | Button |
| 10 | eth | Eth |
| 11 | battery | Battery |
>];
Node_Ja_144 [shape=plaintext tooltip="platform.SPIDisplay" label=<SPIDisplay |
| 1 | cs | GPIO |
| 4 | speed | int32 |
| 5 | rotate | bool |
>];
Node_Ja_146 [shape=plaintext tooltip="platform.Display" label=<Display |
| 1 | type | DeviceTypeEnum |
| 2 | common | DispCommon |
dispType |
| 3 | i2c | I2CDisplay |
| 4 | spi | SPIDisplay |
|
>];
Node_Ja_114 [shape=plaintext tooltip="platform.OutputBT" label=<>];
Node_Ja_138 [shape=plaintext tooltip="DACModelEnum" label=<enum DACModelEnum |
UNSPECIFIED_MODEL | 0 |
TAS57xx | 1 |
TAS5713 | 2 |
AC101 | 3 |
WM8978 | 4 |
ES8388 | 5 |
I2S | 6 |
>];
Node_Ja_102 [shape=plaintext tooltip="HostEnum" label=<enum HostEnum |
UNSPECIFIED_HOST | 0 |
Host0 | 1 |
Host1 | 2 |
>];
Node_Ja_140 [shape=plaintext tooltip="platform.DAC" label=<DAC |
| 1 | bck | GPIO |
| 2 | ws | GPIO |
| 3 | dout | GPIO |
| 4 | mck | MCKEnum |
| 5 | mute | GPIO |
| 6 | model | DACModelEnum |
| 7 | i2c | I2CBus |
| 8 | daccontrolset | DacControlSet |
>];
Node_Ja_118 [shape=plaintext tooltip="DebugLevelEnum" label=<enum DebugLevelEnum |
DEFAULT | 0 |
INFO | 1 |
DEBUG | 2 |
SDEBUG | 3 |
>];
Node_Ja_123 [shape=plaintext tooltip="platform.Squeezelite" label=<Squeezelite |
| 1 | output_type | OutputTypeEnum |
| 2 | rates | RatesOption |
| 3 | amp_gpio_timeout | int32 |
| 4 | wav_aiff_header_parsing | bool |
| 5 | server_name_ip | string |
| 6 | server_port | uint32 |
| 7 | enabled | bool |
| 10 | device_name | string |
| 11 | bluetooth | OutputBT |
[...] | 12 | logging_options | DebugOption |
| 13 | max_rate | uint32 |
>];
Node_Ja_145 [shape=plaintext tooltip="platform.DispCommon" label=<DispCommon |
| 1 | width | int32 |
| 2 | height | int32 |
| 3 | HFlip | bool |
| 4 | VFlip | bool |
| 5 | driver | DisplayDriverEnum |
| 6 | bitDepth | int32 |
| 7 | back | GPIO |
| 8 | reset | GPIO |
| 9 | ready | GPIO |
| 10 | offsets | DispOffsets |
>];
Node_Ja_127 [shape=plaintext tooltip="I2CPortEnum" label=<enum I2CPortEnum |
UNSPECIFIED_PORT | 0 |
I2CPort0 | 1 |
I2CPort1 | 2 |
>];
Node_Ja_155 [shape=plaintext tooltip="EthModelEnum" label=<enum EthModelEnum |
UNSPECIFIED_ETHMODEL | 0 |
LAN8720 | 1 |
DM9051 | 2 |
W5500 | 3 |
>];
Node_Ja_104 [shape=plaintext tooltip="platform.GPIO" label=<>];
Node_Ja_110 [shape=plaintext tooltip="platform.Artwork" label=<Artwork |
| 1 | enabled | bool |
| 2 | resize | bool |
>];
Node_Ja_142 [shape=plaintext tooltip="DisplayDriverEnum" label=<enum DisplayDriverEnum |
UNSPECIFIED_DRIVER | 0 |
SSD1306 | 1 |
SSD1322 | 2 |
SSD1326 | 3 |
SSD1327 | 4 |
SH1106 | 5 |
SSD1675 | 6 |
ST7735 | 7 |
ST7789 | 8 |
ILI9341 | 9 |
ILI9341_24 | 10 |
SSD1351 | 11 |
>];
Node_Ja_136 [shape=plaintext tooltip="platform.DelayAction" label=<>];
Node_Ja_158 [shape=plaintext tooltip="platform.EthSPI" label=<EthSPI |
| 1 | cs | GPIO |
| 2 | speed | int32 |
| 3 | intr | GPIO |
| 4 | host | int32 |
>];
/* ------ connections ------ */
Node_Ja_162:poclk:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_162 --> Ja_104"];
Node_Ja_107:pohost:e -> Node_Ja_102 [color="#008000" tooltip="Ja_107 --> Ja_102"];
Node_Ja_140:pomck:e -> Node_Ja_139 [color="#008000" tooltip="Ja_140 --> Ja_139"];
Node_Ja_160:pormii:e -> Node_Ja_159:header [color="#000000" tooltip="Ja_160 --> Ja_159"];
Node_Ja_124:portc:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_124 --> Ja_104"];
Node_Ja_165:pospdif:e -> Node_Ja_161:header [color="#000000" tooltip="Ja_165 --> Ja_161"];
Node_Ja_105:poredLED:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_105 --> Ja_104"];
Node_Ja_125:poartwork:e -> Node_Ja_110:header [color="#000000" tooltip="Ja_125 --> Ja_110"];
Node_Ja_107:pocs:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_107 --> Ja_104"];
Node_Ja_166:poservices:e -> Node_Ja_126:header [color="#000000" tooltip="Ja_166 --> Ja_126"];
Node_Ja_162:pomosi:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_162 --> Ja_104"];
Node_Ja_120:pomax:e -> Node_Ja_117 [color="#008000" tooltip="Ja_120 --> Ja_117"];
Node_Ja_122:pocomponent:e -> Node_Ja_119 [color="#008000" tooltip="Ja_122 --> Ja_119"];
Node_Ja_123:porates:e -> Node_Ja_120:header [color="#000000" tooltip="Ja_123 --> Ja_120"];
Node_Ja_165:podisplay:e -> Node_Ja_146:header [color="#000000" tooltip="Ja_165 --> Ja_146"];
Node_Ja_162:pomiso:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_162 --> Ja_104"];
Node_Ja_126:posqueezelite:e -> Node_Ja_123:header [color="#000000" tooltip="Ja_126 --> Ja_123"];
Node_Ja_146:potype:e -> Node_Ja_100 [color="#008000" tooltip="Ja_146 --> Ja_100"];
Node_Ja_109:pomodel:e -> Node_Ja_106 [color="#008000" tooltip="Ja_109 --> Ja_106"];
Node_Ja_158:pointr:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_158 --> Ja_104"];
Node_Ja_105:poamp:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_105 --> Ja_104"];
Node_Ja_140:pomute:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_140 --> Ja_104"];
Node_Ja_146:pospi:e -> Node_Ja_144:header [color="#000000" tooltip="Ja_146 --> Ja_144"];
Node_Ja_109:pointr:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_109 --> Ja_104"];
Node_Ja_159:pomdc:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_159 --> Ja_104"];
Node_Ja_132:podelay_action:e -> Node_Ja_136:header [color="#000000" tooltip="Ja_132 --> Ja_136"];
Node_Ja_132:poreg_action:e -> Node_Ja_133:header [color="#000000" tooltip="Ja_132 --> Ja_133"];
Node_Ja_105:poaudioJack:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_105 --> Ja_104"];
Node_Ja_105:popower:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_105 --> Ja_104"];
Node_Ja_140:pomodel:e -> Node_Ja_138 [color="#008000" tooltip="Ja_140 --> Ja_138"];
Node_Ja_157:porst:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_157 --> Ja_104"];
Node_Ja_126:pocspot:e -> Node_Ja_111:header [color="#000000" tooltip="Ja_126 --> Ja_111"];
Node_Ja_151:poSW:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_151 --> Ja_104"];
Node_Ja_160:pocommon:e -> Node_Ja_157:header [color="#000000" tooltip="Ja_160 --> Ja_157"];
Node_Ja_128:posda:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_128 --> Ja_104"];
Node_Ja_128:poscl:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_128 --> Ja_104"];
Node_Ja_159:pomdio:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_159 --> Ja_104"];
Node_Ja_126:poairplay:e -> Node_Ja_112:header [color="#000000" tooltip="Ja_126 --> Ja_112"];
Node_Ja_105:poVcc:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_105 --> Ja_104"];
Node_Ja_165:poi2c:e -> Node_Ja_128:header [color="#000000" tooltip="Ja_165 --> Ja_128"];
Node_Ja_160:potype:e -> Node_Ja_100 [color="#008000" tooltip="Ja_160 --> Ja_100"];
Node_Ja_109:poi2c:e -> Node_Ja_108:header [color="#000000" tooltip="Ja_109 --> Ja_108"];
Node_Ja_129:pocommands:e -> Node_Ja_130:header [color="#000000" tooltip="Ja_129 --> Ja_130"];
Node_Ja_154:pochannel:e -> Node_Ja_152 [color="#008000" tooltip="Ja_154 --> Ja_152"];
Node_Ja_149:poshifter:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_149 --> Ja_104"];
Node_Ja_158:pocs:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_158 --> Ja_104"];
Node_Ja_165:porotary:e -> Node_Ja_151:header [color="#000000" tooltip="Ja_165 --> Ja_151"];
Node_Ja_165:pospi:e -> Node_Ja_162:header [color="#000000" tooltip="Ja_165 --> Ja_162"];
Node_Ja_140:pows:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_140 --> Ja_104"];
Node_Ja_157:pomodel:e -> Node_Ja_155 [color="#008000" tooltip="Ja_157 --> Ja_155"];
Node_Ja_120:pomin:e -> Node_Ja_117 [color="#008000" tooltip="Ja_120 --> Ja_117"];
Node_Ja_163:pogpio:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_163 --> Ja_104"];
Node_Ja_165:pobattery:e -> Node_Ja_154:header [color="#000000" tooltip="Ja_165 --> Ja_154"];
Node_Ja_165:pobuttons:e -> Node_Ja_149:header [color="#000000" tooltip="Ja_165 --> Ja_149"];
Node_Ja_165:pogpio_exp:e -> Node_Ja_109:header [color="#000000" tooltip="Ja_165 --> Ja_109"];
Node_Ja_151:poknobonly:e -> Node_Ja_150:header [color="#000000" tooltip="Ja_151 --> Ja_150"];
Node_Ja_161:podc:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_161 --> Ja_104"];
Node_Ja_161:podata:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_161 --> Ja_104"];
Node_Ja_120:polist:e -> Node_Ja_117 [color="#008000" tooltip="Ja_120 --> Ja_117"];
Node_Ja_109:pospi:e -> Node_Ja_107:header [color="#000000" tooltip="Ja_109 --> Ja_107"];
Node_Ja_123:pobluetooth:e -> Node_Ja_114:header [color="#000000" tooltip="Ja_123 --> Ja_114"];
Node_Ja_145:pooffsets:e -> Node_Ja_141:header [color="#000000" tooltip="Ja_145 --> Ja_141"];
Node_Ja_108:poport:e -> Node_Ja_101 [color="#008000" tooltip="Ja_108 --> Ja_101"];
Node_Ja_105:pogreenLED:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_105 --> Ja_104"];
Node_Ja_165:poeth:e -> Node_Ja_160:header [color="#000000" tooltip="Ja_165 --> Ja_160"];
Node_Ja_105:pojack:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_105 --> Ja_104"];
Node_Ja_154:poatten:e -> Node_Ja_153 [color="#008000" tooltip="Ja_154 --> Ja_153"];
Node_Ja_149:polongpress:e -> Node_Ja_148:header [color="#000000" tooltip="Ja_149 --> Ja_148"];
Node_Ja_132:pogpio_action:e -> Node_Ja_135:header [color="#000000" tooltip="Ja_132 --> Ja_135"];
Node_Ja_126:posleep:e -> Node_Ja_124:header [color="#000000" tooltip="Ja_126 --> Ja_124"];
Node_Ja_151:poB:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_151 --> Ja_104"];
Node_Ja_105:pospkfault:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_105 --> Ja_104"];
Node_Ja_146:pocommon:e -> Node_Ja_145:header [color="#000000" tooltip="Ja_146 --> Ja_145"];
Node_Ja_124:powake:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_124 --> Ja_104"];
Node_Ja_160:pospi:e -> Node_Ja_158:header [color="#000000" tooltip="Ja_160 --> Ja_158"];
Node_Ja_122:polevel:e -> Node_Ja_118 [color="#008000" tooltip="Ja_122 --> Ja_118"];
Node_Ja_123:pologging_options:e -> Node_Ja_122:header [color="#000000" tooltip="Ja_123 --> Ja_122"];
Node_Ja_145:poready:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_145 --> Ja_104"];
Node_Ja_130:poitems:e -> Node_Ja_132:header [color="#000000" tooltip="Ja_130 --> Ja_132"];
Node_Ja_126:pometadata:e -> Node_Ja_125:header [color="#000000" tooltip="Ja_126 --> Ja_125"];
Node_Ja_162:podc:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_162 --> Ja_104"];
Node_Ja_148:poreleased:e -> Node_Ja_147 [color="#008000" tooltip="Ja_148 --> Ja_147"];
Node_Ja_151:poA:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_151 --> Ja_104"];
Node_Ja_164:poWS2812:e -> Node_Ja_163:header [color="#000000" tooltip="Ja_164 --> Ja_163"];
Node_Ja_149:poshifted:e -> Node_Ja_148:header [color="#000000" tooltip="Ja_149 --> Ja_148"];
Node_Ja_148:popressed:e -> Node_Ja_147 [color="#008000" tooltip="Ja_148 --> Ja_147"];
Node_Ja_133:pomode:e -> Node_Ja_137 [color="#008000" tooltip="Ja_133 --> Ja_137"];
Node_Ja_140:podaccontrolset:e -> Node_Ja_129:header [color="#000000" tooltip="Ja_140 --> Ja_129"];
Node_Ja_124:posleep:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_124 --> Ja_104"];
Node_Ja_149:polongshifted:e -> Node_Ja_148:header [color="#000000" tooltip="Ja_149 --> Ja_148"];
Node_Ja_145:poreset:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_145 --> Ja_104"];
Node_Ja_130:potype:e -> Node_Ja_131 [color="#008000" tooltip="Ja_130 --> Ja_131"];
Node_Ja_166:podev:e -> Node_Ja_165:header [color="#000000" tooltip="Ja_166 --> Ja_165"];
Node_Ja_145:poback:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_145 --> Ja_104"];
Node_Ja_135:polevel:e -> Node_Ja_134 [color="#008000" tooltip="Ja_135 --> Ja_134"];
Node_Ja_165:podac:e -> Node_Ja_140:header [color="#000000" tooltip="Ja_165 --> Ja_140"];
Node_Ja_123:pooutput_type:e -> Node_Ja_113 [color="#008000" tooltip="Ja_123 --> Ja_113"];
Node_Ja_146:poi2c:e -> Node_Ja_143:header [color="#000000" tooltip="Ja_146 --> Ja_143"];
Node_Ja_162:pohost:e -> Node_Ja_102 [color="#008000" tooltip="Ja_162 --> Ja_102"];
Node_Ja_105:poir:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_105 --> Ja_104"];
Node_Ja_149:ponormal:e -> Node_Ja_148:header [color="#000000" tooltip="Ja_149 --> Ja_148"];
Node_Ja_149:pogpio:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_149 --> Ja_104"];
Node_Ja_140:poi2c:e -> Node_Ja_128:header [color="#000000" tooltip="Ja_140 --> Ja_128"];
Node_Ja_140:pobck:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_140 --> Ja_104"];
Node_Ja_140:podout:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_140 --> Ja_104"];
Node_Ja_161:poclk:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_161 --> Ja_104"];
Node_Ja_145:podriver:e -> Node_Ja_142 [color="#008000" tooltip="Ja_145 --> Ja_142"];
Node_Ja_165:poled_strip:e -> Node_Ja_164:header [color="#000000" tooltip="Ja_165 --> Ja_164"];
Node_Ja_144:pocs:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_144 --> Ja_104"];
Node_Ja_105:poGND:e -> Node_Ja_104:header [color="#000000" tooltip="Ja_105 --> Ja_104"];
Node_Ja_128:poport:e -> Node_Ja_127 [color="#008000" tooltip="Ja_128 --> Ja_127"];
Node_Ja_166:pogpios:e -> Node_Ja_105:header [color="#000000" tooltip="Ja_166 --> Ja_105"];
/* generated by github.com/seamia/protodot on Friday, 24-Nov-23 14:36:38 EST */
}