text:
8" y2="119.38" width="0.1524" layer="91"/>
</segment>
</net>
<net name="3V3" class="0">
<segment>
<pinref part="U1" gate="G$1" pin="VREF_A"/>
<label x="50.8" y="121.92" size="1.778" layer="95"/>
<wire x1="78.74" y1="121.92" x2="50.8" y2="121.92" width="0.1524" layer="91"/>
</segment>
<segment>
<portref moduleinst="IMU1" port="IMU_VCC"/>
<label x="139.7" y="91.44" size="1.778" layer="95"/>
<wire x1="157.48" y1="91.44" x2="139.7" y2="91.44" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$1" class="0">
<segment>
<pinref part="U1" gate="G$1" pin="B1"/>
<wire x1="111.76" y1="119.38" x2="137.16" y2="119.38" width="0.1524" layer="91"/>
<wire x1="137.16" y1="119.38" x2="137.16" y2="127" width="0.1524" layer="91"/>
<portref moduleinst="ENCODER1" port="CHANNEL_A"/>
<wire x1="137.16" y1="127" x2="157.48" y2="127" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$2" class="0">
<segment>
<portref moduleinst="ENCODER1" port="CHANNEL_B"/>
<wire x1="157.48" y1="124.46" x2="139.7" y2="124.46" width="0.1524" layer="91"/>
<wire x1="139.7" y1="124.46" x2="139.7" y2="116.84" width="0.1524" layer="91"/>
<pinref part="U1" gate="G$1" pin="B2"/>
<wire x1="139.7" y1="116.84" x2="111.76" y2="116.84" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$3" class="0">
<segment>
<pinref part="U1" gate="G$1" pin="B3"/>
<wire x1="111.76" y1="114.3" x2="139.7" y2="114.3" width="0.1524" layer="91"/>
<wire x1="139.7" y1="114.3" x2="139.7" y2="101.6" width="0.1524" layer="91"/>
<portref moduleinst="ENCODER2" port="CHANNEL_A"/>
<wire x1="139.7" y1="101.6" x2="157.48" y2="101.6" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$4" class="0">
<segment>
<portref moduleinst="ENCODER2" port="CHANNEL_B"/>
<wire x1="157.48" y1="99.06" x2="137.16" y2="99.06" width="0.1524" layer="91"/>
<wire x1="137.16" y1="99.06" x2="137.16" y2="111.76" width="0.1524" layer="91"/>
<pinref part="U1" gate="G$1" pin="B4"/>
<wire x1="137.16" y1="111.76" x2="111.76" y2="111.76" width="0.1524" layer="91"/>
</segment>
</net>
</nets>
</sheet>
</sheets>
</module>
<module name="TX2" prefix="" dx="96.52" dy="20.32">
<ports>
<port name="GND" side="left" coord="7.62" direction="io"/>
<port name="UART1_RXD_HDR_3V3" side="left" coord="2.54" direction="io"/>
<port name="UART1_TXD_HDR_3V3" side="left" coord="0" direction="io"/>
<port name="I2C_GP0_SCL_3V3_LVL" side="left" coord="-5.08" direction="io"/>
<port name="I2C_GP0_SDA_3V3_LVL" side="left" coord="-7.62" direction="io"/>
</ports>
<variantdefs>
</variantdefs>
<parts>
<part name="FRAME2" library="frames" library_urn="urn:adsk.eagle:library:229" deviceset="A4L-LOC" device="" value="FRAME3"/>
<part name="U$3" library="TSM-120-XX-XXX-DV" deviceset="TSM-120-XX-XXX-DV" device="">
<attribute name="SILK" value="TX2_J21"/>
</part>
<part name="U1" library="PCF8574ATD" deviceset="PCF8574ATD" device=""/>
<part name="LED1" library="CMD17-21VGD_TR8" deviceset="CMD17-21VGD_TR8" device=""/>
<part name="LED2" library="CMD17-21VGD_TR8" deviceset="CMD17-21VGD_TR8" device=""/>
<part name="LED3" library="CMD17-21VGD_TR8" deviceset="CMD17-21VGD_TR8" device=""/>
<part name="LED4" library="CMD17-21VGD_TR8" deviceset="CMD17-21VGD_TR8" device=""/>
<part name="LED5" library="CMD17-21VGD_TR8" deviceset="CMD17-21VGD_TR8" device=""/>
<part name="LED6" library="CMD17-21VGD_TR8" deviceset="CMD17-21VGD_TR8" device=""/>
<part name="LED7" library="CMD17-21VGD_TR8" deviceset="CMD17-21VGD_TR8" device=""/>
<part name="LED8" library="CMD17-21VGD_TR8" deviceset="CMD17-21VGD_TR8" device=""/>
<part name="R1" library="passive" deviceset="60OHM" device="-0603-1/10W-5%" value="60R"/>
<part name="R2" library="passive" deviceset="60OHM" device="-0603-1/10W-5%" value="60R"/>
<part name="R3" library="passive" deviceset="60OHM" device="-0603-1/10W-5%" value="60R"/>
<part name="R4" library="passive" deviceset="60OHM" device="-0603-1/10W-5%" value="60R"/>
<part name="R5" library="passive" deviceset="60OHM" device="-0603-1/10W-5%" value="60R"/>
<part name="R6" library="passive" deviceset="60OHM" device="-0603-1/10W-5%" value="60R"/>
<part name="R7" library="passive" deviceset="60OHM" device="-0603-1/10W-5%" value="60R"/>
<part name="R8" library="passive" deviceset="60OHM" device="-0603-1/10W-5%" value="60R"/>
<part name="SUPPLY1" library="supply2" library_urn="urn:adsk.eagle:library:372" deviceset="GND" device=""/>
<part name="R9" library="passive" deviceset="10KOHM" device="-0603-1/10W-5%" value="10k"/>
<part name="R10" library="passive" deviceset="10KOHM" device="-0603-1/10W-5%" value="10k"/>
</parts>
<sheets>
<sheet>
<description>Jetson TX2 J21 Interface</description>
<plain>
<text x="101.6" y="160.02" size="1.778" layer="97">Connector to TX2</text>
<text x="10.16" y="157.48" size="1.778" layer="97">Signals Connected to Other Modules</text>
<wire x1="7.62" y1="99.06" x2="96.52" y2="99.06" width="0.1524" layer="90"/>
<wire x1="96.52" y1="99.06" x2="111.76" y2="81.28" width="0.1524" layer="90"/>
<wire x1="111.76" y1="81.28" x2="210.82" y2="81.28" width="0.1524" layer="90"/>
<wire x1="210.82" y1="81.28" x2="210.82" y2="25.4" width="0.1524" layer="90"/>
<text x="33.02" y="33.02" size="2.54" layer="90">LED Control</text>
</plain>
<instances>
<instance part="FRAME2" gate="G$1" x="0" y="0"/>
<instance part="U$3" gate="G$1" x="96.52" y="149.86">
<attribute name="SILK" x="96.52" y="149.86" size="1.778" layer="96" display="off"/>
</instance>
<instance part="U1" gate="A" x="58.42" y="73.66"/>
<instance part="LED1" gate="A" x="193.04" y="43.18" rot="R270"/>
<instance part="LED2" gate="A" x="177.8" y="43.18" rot="R270"/>
<instance part="LED3" gate="A" x="162.56" y="43.18" rot="R270"/>
<instance part="LED4" gate="A" x="147.32" y="43.18" rot="R270"/>
<instance part="LED5" gate="A" x="132.08" y="43.18" rot="R270"/>
<instance part="LED6" gate="A" x="116.84" y="43.18" rot="R270"/>
<instance part="LED7" gate="A" x="101.6" y="43.18" rot="R270"/>
<instance part="LED8" gate="A" x="86.36" y="43.18" rot="R270"/>
<instance part="R1" gate="G$1" x="193.04" y="50.8" rot="R90"/>
<instance part="R2" gate="G$1" x="177.8" y="50.8" rot="R90"/>
<instance part="R3" gate="G$1" x="162.56" y="50.8" rot="R90"/>
<instance part="R4" gate="G$1" x="147.32" y="50.8" rot="R90"/>
<instance part="R5" gate="G$1" x="132.08" y="50.8" rot="R90"/>
<instance part="R6" gate="G$1" x="116.84" y="50.8" rot="R90"/>
<instance part="R7" gate="G$1" x="101.6" y="50.8" rot="R90"/>
<instance part="R8" gate="G$1" x="86.36" y="50.8" rot="R90"/>
<instance part="SUPPLY1" gate="GND" x="139.7" y="17.78"/>
<instance part="R9" gate="G$1" x="99.06" y="88.9" rot="R90"/>
<instance part="R10" gate="G$1" x="17.78" y="76.2" rot="R90"/>
</instances>
<busses>
</busses>
<nets>
<net name="VDD_3V3_SYS" class="0">
<segment>
<pinref part="U$3" gate="G$1" pin="1"/>
<label x="66.04" y="149.86" size="1.778" layer="95"/>
<wire x1="96.52" y1="149.86" x2="66.04" y2="149.86" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="U$3" gate="G$1" pin="17"/>
<wire x1="96.52" y1="129.54" x2="66.04" y2="129.54" width="0.1524" layer="91"/>
<label x="66.04" y="129.54" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="U1" gate="A" pin="VDD"/>
<wire x1="40.64" y1="83.82" x2="17.78" y2="83.82" width="0.1524" layer="91"/>
<label x="22.86" y="83.82" size="1.778" layer="95"/>
<pinref part="R10" gate="G$1" pin="2"/>
<wire x1="17.78" y1="81.28" x2="17.78" y2="83.82" width="0.1524" layer="91"/>
<pinref part="R9" gate="G$1" pin="2"/>
<wire x1="99.06" y1="93.98" x2="17.78" y2="93.98" width="0.1524" layer="91"/>
<wire x1="17.78" y1="93.98" x2="17.78" y2="83.82" width="0.1524" layer="91"/>
<junction x="17.78" y="83.82"/>
</segment>
</net>
<net name="I2C_GP0_SDA_3V3_LVL" class="0">
<segment>
<wire x1="10.16" y1="152.4" x2="50.8" y2="152.4" width="0.1524" layer="91"/>
<label x="10.16" y="152.4" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="U$3" gate="G$1" pin="3"/>
<label x="66.04" y="147.32" size="1.778" layer="95"/>
<wire x1="96.52" y1="147.32" x2="66.04" y2="147.32" width="0.1524" layer="91"/>
</segment>
</net>
<net name="VDD_5V0_IO_SYS" class="0">
<segment>
<pinref part="U$3" gate="G$1" pin="2"/>
<label x="121.92" y="149.86" size="1.778" layer="95"/>
<wire x1="119.38" y1="149.86" x2="149.86" y2="149.86" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="U$3" gate="G$1" pin="4"/>
<label x="121.92" y="147.32" size="1.778" layer="95"/>
<wire x1="119.38" y1="147.32" x2="149.86" y2="147.32" width="0.1524" layer="91"/>
</segment>
</net>
<net name="I2C_GP0_SCL_3V3_LVL" class="0">
<segment>
<wire x1="10.16" y1="149.86" x2="50.8" y2="149.86" width="0.1524" layer="91"/>
<label x="10.16" y="149.86" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="U$3" gate="G$1" pin="5"/>
<label x="66.04" y="144.78" size="1.778" layer="95"/>
<wire x1="96.52" y1="144.78" x2="66.04" y2="144.78" width="0.1524" layer="91"/>
</segment>
</net>
<net name="AUDIO_I2S_MCLK_3V3" class="0">
<segment>
<pinref part="U$3" gate="G$1" pin="7"/>
<label x="66.04" y="142.24" size="1.778" layer="95"/>
<wire x1="96.52" y1="142.24" x2="66.04" y2="142.24" width="0.1524" layer="91"/>
</segment>
</net>
<net name="UART1_TXD_HDR_3V3" class="0">
<segment>
<wire x1="10.16" y1="144.78" x2="50.8" y2="144.78" width="0.1524" layer="91"/>
<label x="10.16" y="144.78" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="U$3" gate="G$1" pin="8"/>
<label x="121.92" y="142.24" size="1.778" layer="95"/>
<wire x1="119.38" y1="142.24" x2="149.86" y2="142.24" width="0.1524" layer="91"/>
</segment>
</net>
<net name="UART1_RXD_HDR_3V3" class="0">
<segment>
<wire x1="10.16" y1="142.24" x2="50.8" y2="142.24" width="0.1524" layer="91"/>
<label x="10.16" y="142.24" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="U$3" gate="G$1" pin="10"/>
<label x="121.92" y="139.7" size="1.778" layer="95"/>
<wire x1="119.38" y1="139.7" x2="149.86" y2="139.7" width="0.1524" layer="91"/>
</segment>
</net>
<net name="UART1_RTS_HDR_3V3" class="0">
<segment>
<pinref part="U$3" gate="G$1" pin="11"/>
<label x="66.04" y="137.16" size="1.778" layer="95"/>
<wire x1="96.52" y1="137.16" x2="66.04" y2="137.16" width="0.1524" layer="91"/>
</segment>
</net>
<net name="AUDIO_I2S_SRCLK_3V3" class="0">
<segment>
<pinref part="U$3" gate="G$1" pin="12"/>
<label x="121.92" y="137.16" size="1.778" layer="95"/>
<wire x1="119.38" y1="137.16" x2="149.86" y2="137.16" width="0.1524" layer="91"/>
</segment>
</net>
<net name="AUDIO_CDC_IRQ_LVL" class="0">
<segment>
<label x="66.04" y="134.62" size="1.778" layer="95"/>
<pinref part="U$3" gate="G$1" pin="13"/>
<wire x1="96.52" y1="134.62" x2="66.04" y2="134.62" width="0.1524" layer="91"/>
</segment>
</net>
<net name="GPIO_EXP_P17_3V3" class="0">
<segment>
<pinref part="U$3" gate="G$1" pin="15"/>
<wire x1="96.52" y1="132.08" x2="66.04" y2="132.08" width="0.1524" layer="91"/>
<label x="66.04" y="132.08" size="1.778" layer="95"/>
</segment>
</net>
<net name="AO_DMIC_IN_DAT_LVL" class="0">
<segment>
<pinref part="U$3" gate="G$1" pin="16"/>
<label x="121.92" y="132.08" size="1.778" layer="95"/>
<wire x1="119.38" y1="132.08" x2="149.86" y2="132.08" width="0.1524" layer="91"/>
</segment>
</net>
<net name="MDM_WAKE_AP_LVL" class="0">
<segment>
<pinref part="U$3" gate="G$1" pin="18"/>
<label x="121.92" y="129.54" size="1.778" layer="95"/>
<wire x1="119.38" y1="129.54" x2="149.86" y2="129.54" width="0.1524" layer="91"/>
</segment>
</net>
<net name="SPI1_MOSI_3V3" class="0">
<segment>
<pinref part="U$3" gate="G$1" pin="19"/>
<wire x1="96.52" y1="127" x2="66.04" y2="127" width="0.1524" layer="91"/>
<label x="66.04" y="127" size="1.778" layer="95"/>
</segment>
</net>
<net name="SPI1_MISO_3V3" class="0">
<segment>
<pinref part="U$3" gate="G$1" pin="21"/>
<wire x1="96.52" y1="124.46" x2="66.04" y2="124.46" width="0.1524" layer="91"/>
<label x="66.04" y="124.46" size="1.778" layer="95"/>
</segment>
</net>
<net name="GPIO_EXP_P16_3V3" class="0">
<segment>
<pinref part="U$3" gate="G$1" pin="22"/>
<label x="121.92" y="124.46" size="1.778" layer="95"/>
<wire x1="119.38" y1="124.46" x2="149.86" y2="124.46" width="0.1524" layer="91"/>
</segment>
</net>
<net name="SPI1_SCK_3V3" class="0">
<segment>
<pinref part="U$3" gate="G$1" pin="23"/>
<wire x1="96.52" y1="121.92" x2="66.04" y2="121.92" width="0.1524" layer="91"/>
<label x="66.04" y="121.92" size="1.778" layer="95"/>
</segment>
</net>
<net name="SPI1_CS0_3V3" class="0">
<segment>
<pinref part="U$3" gate="G$1" pin="24"/>
<label x="121.92" y="121.92" size="1.778" layer="95"/>
<wire x1="119.38" y1="121.92" x2="149.86" y2="121.92" width="0.1524" layer="91"/>
</segment>
</net>
<net name="I2C_GP1_DAT_3V3" class="0">
<segment>
<pinref part="U$3" gate="G$1" pin="27"/>
<wire x1="96.52" y1="116.84" x2="66.04" y2="116.84" width="0.1524" layer="91"/>
<label x="66.04" y="116.84" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="U1" gate="A" pin="SDA"/>
<label x="76.2" y="83.82" size="1.778" layer="95"/>
<pinref part="R9" gate="G$1" pin="1"/>
<wire x1="99.06" y1="83.82" x2="76.2" y2="83.82" width="0.1524" layer="91"/>
</segment>
</net>
<net name="I2C_GP1_CLK_3V3" class="0">
<segment>
<pinref part="U$3" gate="G$1" pin="28"/>
<wire x1="119.38" y1="116.84" x2="132.08" y2="116.84" width="0.1524" layer="91"/>
<label x="121.92" y="116.84" size="1.778" layer="95"/>
<wire x1="132.08" y1="116.84" x2="134.62" y2="116.84" width="0.1524" layer="91"/>
<wire x1="134.62" y1="116.84" x2="149.86" y2="116.84" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="U1" gate="A" pin="SCL"/>
<wire x1="40.64" y1="68.58" x2="17.78" y2="68.58" width="0.1524" layer="91"/>
<label x="20.32" y="68.58" size="1.778" layer="95"/>
<pinref part="R10" gate="G$1" pin="1"/>
<wire x1="17.78" y1="71.12" x2="17.78" y2="68.58" width="0.1524" layer="91"/>
</segment>
</net>
<net name="AUD_RST_LVL" class="0">
<segment>
<pinref part="U$3" gate="G$1" pin="29"/>
<wire x1="96.52" y1="114.3" x2="66.04" y2="114.3" width="0.1524" layer="91"/>
<label x="66.04" y="114.3" size="1.778" layer="95"/>
</segment>
</net>
<net name="MOTION_INT_AP_L_LVL" class="0">
<segment>
<pinref part="U$3" gate="G$1" pin="31"/>
<wire x1="96.52" y1="111.76" x2="66.04" y2="111.76" width="0.1524" layer="91"/>
<label x="66.04" y="111.76" size="1.778" layer="95"/>
</segment>
</net>
<net name="AO_DMIC_IN_CLK_LVL" class="0">
<segment>
<pinref part="U$3" gate="G$1" pin="32"/>
<label x="121.92" y="111.76" size="1.778" layer="95"/>
<wire x1="119.38" y1="111.76" x2="149.86" y2="111.76" width="0.1524" layer="91"/>
</segment>
</net>
<net name="AP_WAKE_BT_3V3" class="0">
<segment>
<pinref part="U$3" gate="G$1" pin="33"/>
<wire x1="96.52" y1="109.22" x2="66.04" y2="109.22" width="0.1524" layer="91"/>
<label x="66.04" y="109.22" size="1.778" layer="95"/>
</segment>
</net>
<net name="AUDIO_I2S_SFSYNC_3V3" class="0">
<segment>
<pinref part="U$3" gate="G$1" pin="35"/>
<wire x1="96.52" y1="106.68" x2="66.04" y2="106.68" width="0.1524" layer="91"/>
<label x="66.04" y="106.68" size="1.778" layer="95"/>
</segment>
</net>
<net name="UART1_CTS_HDR_3V3" class="0">
<segment>
<pinref part="U$3" gate="G$1" pin="36"/>
<label x="121.92" y="106.68" size="1.778" layer="95"/>
<wire x1="119.38" y1="106.68" x2="149.86" y2="106.68" width="0.1524" layer="91"/>
</segment>
</net>
<net name="SAR_TOUT_LVL" class="0">
<segment>
<pinref part="U$3" gate="G$1" pin="37"/>
<wire x1="66.04" y1="104.14" x2="96.52" y2="104.14" width="0.1524" layer="91"/>
<label x="66.04" y="104.14" size="1.778" layer="95"/>
</segment>
</net>
<net name="AUDIO_I2S_SIN_3V3" class="0">
<segment>
<pinref part="U$3" gate="G$1" pin="38"/>
<label x="121.92" y="104.14" size="1.778" layer="95"/>
<wire x1="119.38" y1="104.14" x2="149.86" y2="104.14" width="0.1524" layer="91"/>
</segment>
</net>
<net name="GND" class="0">
<segment>
<pinref part="U$3" gate="G$1" pin="9"/>
<label x="66.04" y="139.7" size="1.778" layer="95"/>
<wire x1="96.52" y1="139.7" x2="66.04" y2="139.7" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="U$3" gate="G$1" pin="25"/>
<wire x1="96.52" y1="119.38" x2="66.04" y2="119.38" width="0.1524" layer="91"/>
<label x="66.04" y="119.38" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="U$3" gate="G$1" pin="39"/>
<wire x1="96.52" y1="101.6" x2="66.04" y2="101.6" width="0.1524" layer="91"/>
<label x="66.04" y="101.6" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="U$3" gate="G$1" pin="6"/>
<label x="121.92" y="144.78" size="1.778" layer="95"/>
<wire x1="119.38" y1="144.78" x2="149.86" y2="144.78" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="U$3" gate="G$1" pin="14"/>
<label x="121.92" y="134.62" size="1.778" layer="95"/>
<wire x1="119.38" y1="134.62" x2="149.86" y2="134.62" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="U$3" gate="G$1" pin="20"/>
<wire x1="119.38" y1="127" x2="132.08" y2="127" width="0.1524" layer="91"/>
<label x="121.92" y="127" size="1.778" layer="95"/>
<wire x1="132.08" y1="127" x2="134.62" y2="127" width="0.1524" layer="91"/>
<wire x1="134.62" y1="127" x2="149.86" y2="127" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="U$3" gate="G$1" pin="30"/>
<label x="121.92" y="114.3" size="1.778" layer="95"/>
<wire x1="119.38" y1="114.3" x2="149.86" y2="114.3" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="U$3" gate="G$1" pin="34"/>
<label x="121.92" y="109.22" size="1.778" layer="95"/>
<wire x1="119.38" y1="109.22" x2="149.86" y2="109.22" width="0.1524" layer="91"/>
</segment>
<segment>
<wire x1="10.16" y1="137.16" x2="50.8" y2="137.16" width="0.1524" layer="91"/>
<label x="10.16" y="137.16" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="LED8" gate="A" pin="2"/>
<wire x1="86.36" y1="33.02" x2="86.36" y2="27.94" width="0.1524" layer="91"/>
<wire x1="86.36" y1="27.94" x2="101.6" y2="27.94" width="0.1524" layer="91"/>
<wire x1="101.6" y1="27.94" x2="116.84" y2="27.94" width="0.1524" layer="91"/>
<wire x1="116.84" y1="27.94" x2="132.08" y2="27.94" width="0.1524" layer="91"/>
<wire x1="132.08" y1="27.94" x2="139.7" y2="27.94" width="0.1524" layer="91"/>
<wire x1="139.7" y1="27.94" x2="147.32" y2="27.94" width="0.1524" layer="91"/>
<wire x1="147.32" y1="27.94" x2="162.56" y2="27.94" width="0.1524" layer="91"/>
<wire x1="162.56" y1="27.94" x2="177.8" y2="27.94" width="0.1524" layer="91"/>
<wire x1="177.8" y1="27.94" x2="193.04" y2="27.94" width="0.1524" layer="91"/>
<pinref part="LED2" gate="A" pin="2"/>
<wire x1="177.8" y1="33.02" x2="177.8" y2="27.94" width="0.1524" layer="91"/>
<pinref part="LED3" gate="A" pin="2"/>
<wire x1="162.56" y1="33.02" x2="162.56" y2="27.94" width="0.1524" layer="91"/>
<pinref part="LED4" gate="A" pin="2"/>
<wire x1="147.32" y1="33.02" x2="147.32" y2="27.94" width="0.1524" layer="91"/>
<pinref part="LED5" gate="A" pin="2"/>
<wire x1="132.08" y1="33.02" x2="132.08" y2="27.94" width="0.1524" layer="91"/>
<pinref part="LED6" gate="A" pin="2"/>
<wire x1="116.84" y1="33.02" x2="116.84" y2="27.94" width="0.1524" layer="91"/>
<pinref part="LED7" gate="A" pin="2"/>
<wire x1="101.6" y1="33.02" x2="101.6" y2="27.94" width="0.1524" layer="91"/>
<junction x="101.6" y="27.94"/>
<junction x="116.84" y="27.94"/>
<junction x="132.08" y="27.94"/>
<junction x="147.32" y="27.94"/>
<junction x="162.56" y="27.94"/>
<junction x="177.8" y="27.94"/>
<pinref part="LED1" gate="A" pin="2"/>
<wire x1="193.04" y1="33.02" x2="193.04" y2="27.94" width="0.1524" layer="91"/>
<pinref part="SUPPLY1" gate="GND" pin="GND"/>
<wire x1="139.7" y1="20.32" x2="139.7" y2="27.94" width="0.1524" layer="91"/>
<junction x="139.7" y="27.94"/>
</segment>
<segment>
<pinref part="U1" gate="A" pin="A0"/>
<wire x1="40.64" y1="78.74" x2="35.56" y2="78.74" width="0.1524" layer="91"/>
<wire x1="35.56" y1="78.74" x2="35.56" y2="76.2" width="0.1524" layer="91"/>
<pinref part="U1" gate="A" pin="A1"/>
<wire x1="35.56" y1="76.2" x2="40.64" y2="76.2" width="0.1524" layer="91"/>
<pinref part="U1" gate="A" pin="A2"/>
<wire x1="40.64" y1="73.66" x2="35.56" y2="73.66" width="0.1524" layer="91"/>
<wire x1="35.56" y1="73.66" x2="35.56" y2="76.2" width="0.1524" layer="91"/>
<junction x="35.56" y="76.2"/>
<wire x1="35.56" y1="76.2" x2="30.48" y2="76.2" width="0.1524" layer="91"/>
<label x="27.94" y="76.2" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="U1" gate="A" pin="VSS"/>
<wire x1="40.64" y1="63.5" x2="30.48" y2="63.5" width="0.1524" layer="91"/>
<label x="30.48" y="63.5" size="1.778" layer="95"/>
</segment>
</net>
<net name="AUDIO_I2S_SOUT_3V3" class="0">
<segment>
<pinref part="U$3" gate="G$1" pin="40"/>
<label x="121.92" y="101.6" size="1.778" layer="95"/>
<wire x1="119.38" y1="101.6" x2="149.86" y2="101.6" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$1" class="0">
<segment>
<pinref part="R8" gate="G$1" pin="1"/>
<pinref part="LED8" gate="A" pin="1"/>
<wire x1="86.36" y1="45.72" x2="86.36" y2="43.18" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$2" class="0">
<segment>
<pinref part="R7" gate="G$1" pin="1"/>
<pinref part="LED7" gate="A" pin="1"/>
<wire x1="101.6" y1="45.72" x2="101.6" y2="43.18" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$3" class="0">
<segment>
<pinref part="R6" gate="G$1" pin="1"/>
<pinref part="LED6" gate="A" pin="1"/>
<wire x1="116.84" y1="45.72" x2="116.84" y2="43.18" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$4" class="0">
<segment>
<pinref part="R5" gate="G$1" pin="1"/>
<pinref part="LED5" gate="A" pin="1"/>
<wire x1="132.08" y1="45.72" x2="132.08" y2="43.18" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$5" class="0">
<segment>
<pinref part="R4" gate="G$1" pin="1"/>
<pinref part="LED4" gate="A" pin="1"/>
<wire x1="147.32" y1="45.72" x2="147.32" y2="43.18" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$6" class="0">
<segment>
<pinref part="R3" gate="G$1" pin="1"/>
<pinref part="LED3" gate="A" pin="1"/>
<wire x1="162.56" y1="45.72" x2="162.56" y2="43.18" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$7" class="0">
<segment>
<pinref part="R2" gate="G$1" pin="1"/>
<pinref part="LED2" gate="A" pin="1"/>
<wire x1="177.8" y1="45.72" x2="177.8" y2="43.18" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$8" class="0">
<segment>
<pinref part="R1" gate="G$1" pin="1"/>
<pinref part="LED1" gate="A" pin="1"/>
<wire x1="193.04" y1="45.72" x2="193.04" y2="43.18" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$9" class="0">
<segment>
<pinref part="R8" gate="G$1" pin="2"/>
<wire x1="86.36" y1="55.88" x2="86.36" y2="58.42" width="0.1524" layer="91"/>
<pinref part="U1" gate="A" pin="P7"/>
<wire x1="86.36" y1="58.42" x2="76.2" y2="58.42" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$10" class="0">
<segment>
<pinref part="U1" gate="A" pin="P6"/>
<pinref part="R7" gate="G$1" pin="2"/>
<wire x1="76.2" y1="60.96" x2="101.6" y2="60.96" width="0.1524" layer="91"/>
<wire x1="101.6" y1="60.96" x2="101.6" y2="55.88" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$11" class="0">
<segment>
<pinref part="U1" gate="A" pin="P5"/>
<pinref part="R6" gate="G$1" pin="2"/>
<wire x1="76.2" y1="63.5" x2="116.84" y2="63.5" width="0.1524" layer="91"/>
<wire x1="116.84" y1="63.5" x2="116.84" y2="55.88" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$12" class="0">
<segment>
<pinref part="U1" gate="A" pin="P4"/>
<pinref part="R5" gate="G$1" pin="2"/>
<wire x1="76.2" y1="66.04" x2="132.08" y2="66.04" width="0.1524" layer="91"/>
<wire x1="132.08" y1="66.04" x2="132.08" y2="55.88" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$13" class="0">
<segment>
<pinref part="U1" gate="A" pin="P3"/>
<pinref part="R4" gate="G$1" pin="2"/>
<wire x1="76.2" y1="68.58" x2="147.32" y2="68.58" width="0.1524" layer="91"/>
<wire x1="147.32" y1="68.58" x2="147.32" y2="55.88" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$14" class="0">
<segment>
<pinref part="U1" gate="A" pin="P2"/>
<pinref part="R3" gate="G$1" pin="2"/>
<wire x1="76.2" y1="71.12" x2="162.56" y2="71.12" width="0.1524" layer="91"/>
<wire x1="162.56" y1="71.12" x2="162.56" y2="55.88" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$15" class="0">
<segment>
<pinref part="U1" gate="A" pin="P1"/>
<pinref part="R2" gate="G$1" pin="2"/>
<wire x1="76.2" y1="73.66" x2="177.8" y2="73.66" width="0.1524" layer="91"/>
<wire x1="177.8" y1="73.66" x2="177.8" y2="55.88" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$16" class="0">
<segment>
<pinref part="U1" gate="A" pin="P0"/>
<pinref part="R1" gate="G$1" pin="2"/>
<wire x1="76.2" y1="76.2" x2="193.04" y2="76.2" width="0.1524" layer="91"/>
<wire x1="193.04" y1="76.2" x2="193.04" y2="55.88" width="0.1524" layer="91"/>
</segment>
</net>
</nets>
</sheet>
</sheets>
</module>
<module name="JETSON" prefix="" dx="30.48" dy="20.32">
<ports>
<port name="GND" side="left" coord="5.08" direction="pwr"/>
<port name="DUE_TO_TX2" side="left" coord="-2.54" direction="io"/>
<port name="TX2_TO_DUE" side="left" coord="-5.08" direction="io"/>
<port name="UART0_RX" side="right" coord="-7.62" direction="io"/>
<port name="UART0_TX" side="right" coord="-5.08" direction="io"/>
<port name="I2C0_SCL" side="right" coord="2.54" direction="io"/>
<port name="I2C0_SDA" side="right" coord="5.08" direction="io"/>
<port name="12V" side="left" coord="7.62" direction="io"/>
</ports>
<variantdefs>
</variantdefs>
<parts>
<part name="FRAME1" library="frames" library_urn="urn:adsk.eagle:library:229" deviceset="A4L-LOC" device=""/>
<part name="X1" library="con-molex-micro-fit-3_0" deviceset="HEADER_POS2_?" device="43045-0209" value="43045-0209"/>
</parts>
<sheets>
<sheet>
<plain>
</plain>
<moduleinsts>
<moduleinst name="JETSON_J17_UART1" module="URT" x="114.3" y="139.7"/>
<moduleinst name="JETSON_TX2_J21_EXPANSION1" module="TX2" x="147.32" y="116.84"/>
</moduleinsts>
<instances>
<instance part="FRAME1" gate="G$1" x="0" y="0"/>
<instance part="X1" gate="G$1" x="99.06" y="157.48"/>
</instances>
<busses>
</busses>
<nets>
<net name="DUE_TO_TX2" class="0">
<segment>
<portref moduleinst="JETSON_J17_UART1" port="RX"/>
<wire x1="93.98" y1="134.62" x2="81.28" y2="134.62" width="0.1524" layer="91"/>
<label x="73.66" y="134.62" size="1.778" layer="95"/>
</segment>
</net>
<net name="TX2_TO_DUE" class="0">
<segment>
<portref moduleinst="JETSON_J17_UART1" port="TX"/>
<wire x1="93.98" y1="132.08" x2="81.28" y2="132.08" width="0.1524" layer="91"/>
<label x="73.66" y="132.08" size="1.778" layer="95"/>
</segment>
</net>
<net name="UART0_RX" class="0">
<segment>
<wire x1="93.98" y1="119.38" x2="81.28" y2="119.38" width="0.1524" layer="91"/>
<label x="76.2" y="119.38" size="1.778" layer="95"/>
<portref moduleinst="JETSON_TX2_J21_EXPANSION1" port="UART1_RXD_HDR_3V3"/>
</segment>
</net>
<net name="I2C0_SCL" class="0">
<segment>
<wire x1="93.98" y1="111.76" x2="81.28" y2="111.76" width="0.1524" layer="91"/>
<label x="76.2" y="111.76" size="1.778" layer="95"/>
<portref moduleinst="JETSON_TX2_J21_EXPANSION1" port="I2C_GP0_SCL_3V3_LVL"/>
</segment>
</net>
<net name="I2C0_SDA" class="0">
<segment>
<wire x1="93.98" y1="109.22" x2="81.28" y2="109.22" width="0.1524" layer="91"/>
<label x="76.2" y="109.22" size="1.778" layer="95"/>
<portref moduleinst="JETSON_TX2_J21_EXPANSION1" port="I2C_GP0_SDA_3V3_LVL"/>
</segment>
</net>
<net name="GND" class="0">
<segment>
<portref moduleinst="JETSON_J17_UART1" port="GND"/>
<wire x1="93.98" y1="147.32" x2="81.28" y2="147.32" width="0.1524" layer="91"/>
<label x="81.28" y="147.32" size="1.778" layer="95"/>
</segment>
<segment>
<wire x1="93.98" y1="124.46" x2="81.28" y2="124.46" width="0.1524" layer="91"/>
<label x="81.28" y="124.46" size="1.778" layer="95"/>
<portref moduleinst="JETSON_TX2_J21_EXPANSION1" port="GND"/>
</segment>
<segment>
<pinref part="X1" gate="G$1" pin="2"/>
<wire x1="93.98" y1="157.48" x2="83.82" y2="157.48" width="0.1524" layer="91"/>
<label x="83.82" y="157.48" size="1.778" layer="95"/>
</segment>
</net>
<net name="UART0_TX" class="0">
<segment>
<wire x1="93.98" y1="116.84" x2="81.28" y2="116.84" width="0.1524" layer="91"/>
<label x="76.2" y="116.84" size="1.778" layer="95"/>
<portref moduleinst="JETSON_TX2_J21_EXPANSION1" port="UART1_TXD_HDR_3V3"/>
</segment>
</net>
<net name="12V" class="0">
<segment>
<pinref part="X1" gate="G$1" pin="1"/>
<wire x1="93.98" y1="160.02" x2="83.82" y2="160.02" width="0.1524" layer="91"/>
<label x="83.82" y="160.02" size="1.778" layer="95"/>
</segment>
</net>
</nets>
</sheet>
</sheets>
</module>
<module name="MTR" prefix="" dx="55.88" dy="86.36">
<ports>
<port name="GND" side="right" coord="-35.56" direction="pwr"/>
<port name="PWM_A_1" side="left" coord="38.1" direction="io"/>
<port name="PWM_B_1" side="left" coord="35.56" direction="io"/>
<port name="ENABLE_1" side="left" coord="27.94" direction="io"/>
<port name="CURRENT_SENSE_1" side="left" coord="25.4" direction="io"/>
<port name="PWM_A_2" side="left" coord="20.32" direction="io"/>
<port name="PWM_B_2" side="left" coord="17.78" direction="io"/>
<port name="ENABLE_2" side="left" coord="10.16" direction="io"/>
<port name="CURRENT_SENSE_2" side="left" coord="7.62" direction="io"/>
<port name="DECK_1_IN_1" side="left" coord="2.54" direction="io"/>
<port name="DECK_1_IN_2" side="left" coord="0" direction="io"/>
<port name="DECK_1_PWM" side="left" coord="-2.54" direction="io"/>
<port name="DECK_1_CURR_SENSE" side="left" coord="-5.08" direction="io"/>
<port name="DECK_1_POS_SENSE" side="left" coord="-7.62" direction="io"/>
<port name="DECK_2_IN_1" side="left" coord="-12.7" direction="io"/>
<port name="DECK_2_IN_2" side="left" coord="-15.24" direction="io"/>
<port name="DECK_2_PWM" side="left" coord="-17.78" direction="io"/>
<port name="DECK_2_CURR_SENSE" side="left" coord="-20.32" direction="io"/>
<port name="DECK_2_POS_SENSE" side="left" coord="-22.86" direction="io"/>
<port name="DECK_3_IN_1" side="left" coord="-27.94" direction="io"/>
<port name="DECK_3_IN_2" side="left" coord="-30.48" direction="io"/>
<port name="DECK_3_PWM" side="left" coord="-33.02" direction="io"/>
<port name="DECK_3_CURR_SENSE" side="left" coord="-35.56" direction="io"/>
<port name="DECK_3_POS_SENSE" side="left" coord="-38.1" direction="io"/>
<port name="5V" side="top" coord="-12.7" direction="io"/>
</ports>
<variantdefs>
</variantdefs>
<parts>
<part name="FRAME1" library="frames" library_urn="urn:adsk.eagle:library:229" deviceset="A4L-LOC" device=""/>
<part name="X3" library="con-molex-micro-fit-3_0" deviceset="HEADER_POS6_?" device="43045-0609" value="43045-0609"/>
<part name="X4" library="con-molex-micro-fit-3_0" deviceset="HEADER_POS6_?" device="43045-0609" value="43045-0609"/>
<part name="X5" library="con-molex-micro-fit-3_0" deviceset="HEADER_POS6_?" device="43045-0609" value="43045-0609"/>
<part name="X6" library="con-molex-micro-fit-3_0" deviceset="HEADER_POS4_?" device="43045-0409" value="43045-0409"/>
<part name="X7" library="con-molex-micro-fit-3_0" deviceset="HEADER_POS4_?" device="43045-0409" value="43045-0409"/>
<part name="X8" library="con-molex-micro-fit-3_0" deviceset="HEADER_POS4_?" device="43045-0409" value="43045-0409"/>
<part name="GND6" library="power_supplies" deviceset="GND" device=""/>
<part name="JDL" library="con-molex-micro-fit-3_0" deviceset="HEADER_POS6_?" device="43045-0609" value="43045-0609">
<attribute name="SILK" value="MTRL"/>
</part>
<part name="JDR" library="con-molex-micro-fit-3_0" deviceset="HEADER_POS6_?" device="43045-0609" value="43045-0609">
<attribute name="SILK" value="MTRR"/>
</part>
<part name="GND1" library="power_supplies" deviceset="GND" device=""/>
</parts>
<sheets>
<sheet>
<description>Motor Iso</description>
<plain>
<text x="147.32" y="73.66" size="1.778" layer="95">Motor Controller Right</text>
<text x="193.04" y="165.1" size="1.778" layer="95">Deck Controller 1</text>
<text x="193.04" y="139.7" size="1.778" layer="95">Deck Controller 2</text>
<text x="193.04" y="116.84" size="1.778" layer="95">Deck Controller 3</text>
<text x="147.32" y="124.46" size="1.778" layer="95">Motor Controller Left</text>
</plain>
<instances>
<instance part="FRAME1" gate="G$1" x="0" y="0"/>
<instance part="X3" gate="G$1" x="241.3" y="152.4"/>
<instance part="X4" gate="G$1" x="241.3" y="127"/>
<instance part="X5" gate="G$1" x="241.3" y="104.14"/>
<instance part="X6" gate="G$1" x="241.3" y="81.28"/>
<instance part="X7" gate="G$1" x="241.3" y="60.96"/>
<instance part="X8" gate="G$1" x="241.3" y="38.1"/>
<instance part="GND6" gate="VR1" x="119.38" y="106.68"/>
<instance part="JDL" gate="G$1" x="139.7" y="116.84">
<attribute name="SILK" x="139.7" y="116.84" size="1.778" layer="96" display="off"/>
</instance>
<instance part="JDR" gate="G$1" x="139.7" y="68.58">
<attribute name="SILK" x="139.7" y="68.58" size="1.778" layer="96" display="off"/>
</instance>
<instance part="GND1" gate="VR1" x="119.38" y="58.42"/>
</instances>
<busses>
</busses>
<nets>
<net name="GND" class="0">
<segment>
<label x="203.2" y="160.02" size="1.778" layer="95"/>
<wire x1="203.2" y1="160.02" x2="236.22" y2="160.02" width="0.1524" layer="91"/>
<pinref part="X3" gate="G$1" pin="1"/>
</segment>
<segment>
<label x="203.2" y="111.76" size="1.778" layer="95"/>
<pinref part="X5" gate="G$1" pin="1"/>
<wire x1="203.2" y1="111.76" x2="236.22" y2="111.76" width="0.1524" layer="91"/>
</segment>
<segment>
<label x="203.2" y="134.62" size="1.778" layer="95"/>
<pinref part="X4" gate="G$1" pin="1"/>
<wire x1="236.22" y1="134.62" x2="203.2" y2="134.62" width="0.1524" layer="91"/>
</segment>
<segment>
<wire x1="236.22" y1="60.96" x2="205.74" y2="60.96" width="0.1524" layer="91"/>
<label x="205.74" y="60.96" size="1.778" layer="95"/>
<pinref part="X7" gate="G$1" pin="3"/>
</segment>
<segment>
<wire x1="236.22" y1="38.1" x2="205.74" y2="38.1" width="0.1524" layer="91"/>
<label x="205.74" y="38.1" size="1.778" layer="95"/>
<pinref part="X8" gate="G$1" pin="3"/>
</segment>
<segment>
<wire x1="205.74" y1="81.28" x2="236.22" y2="81.28" width="0.1524" layer="91"/>
<label x="205.74" y="81.28" size="1.778" layer="95"/>
<pinref part="X6" gate="G$1" pin="3"/>
</segment>
<segment>
<pinref part="GND6" gate="VR1" pin="GND"/>
<wire x1="119.38" y1="109.22" x2="119.38" y2="111.76" width="0.1524" layer="91"/>
<pinref part="JDL" gate="G$1" pin="6"/>
<wire x1="119.38" y1="111.76" x2="134.62" y2="111.76" width="0.1524" layer="91"/>
<label x="121.92" y="111.76" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="GND1" gate="VR1" pin="GND"/>
<wire x1="119.38" y1="60.96" x2="119.38" y2="63.5" width="0.1524" layer="91"/>
<pinref part="JDR" gate="G$1" pin="6"/>
<wire x1="119.38" y1="63.5" x2="134.62" y2="63.5" width="0.1524" layer="91"/>
</segment>
</net>
<net name="PWM_A_1" class="0">
<segment>
<label x="83.82" y="121.92" size="1.778" layer="95"/>
<pinref part="JDL" gate="G$1" pin="2"/>
<wire x1="83.82" y1="121.92" x2="134.62" y2="121.92" width="0.1524" layer="91"/>
</segment>
</net>
<net name="PWM_B_1" class="0">
<segment>
<label x="83.82" y="119.38" size="1.778" layer="95"/>
<pinref part="JDL" gate="G$1" pin="3"/>
<wire x1="83.82" y1="119.38" x2="134.62" y2="119.38" width="0.1524" layer="91"/>
</segment>
</net>
<net name="ENABLE_1" class="0">
<segment>
<label x="83.82" y="116.84" size="1.778" layer="95"/>
<pinref part="JDL" gate="G$1" pin="4"/>
<wire x1="83.82" y1="116.84" x2="134.62" y2="116.84" width="0.1524" layer="91"/>
</segment>
</net>
<net name="CURRENT_SENSE_1" class="0">
<segment>
<label x="83.82" y="114.3" size="1.778" layer="95"/>
<pinref part="JDL" gate="G$1" pin="5"/>
<wire x1="83.82" y1="114.3" x2="134.62" y2="114.3" width="0.1524" layer="91"/>
</segment>
<segment>
<label x="-5.08" y="0" size="1.778" layer="95"/>
<wire x1="-5.08" y1="0" x2="22.7076" y2="0" width="0.1524" layer="91"/>
</segment>
</net>
<net name="PWM_A_2" class="0">
<segment>
<label x="83.82" y="73.66" size="1.778" layer="95"/>
<pinref part="JDR" gate="G$1" pin="2"/>
<wire x1="83.82" y1="73.66" x2="134.62" y2="73.66" width="0.1524" layer="91"/>
</segment>
</net>
<net name="PWM_B_2" class="0">
<segment>
<label x="83.82" y="71.12" size="1.778" layer="95"/>
<pinref part="JDR" gate="G$1" pin="3"/>
<wire x1="83.82" y1="71.12" x2="134.62" y2="71.12" width="0.1524" layer="91"/>
</segment>
</net>
<net name="ENABLE_2" class="0">
<segment>
<label x="83.82" y="68.58" size="1.778" layer="95"/>
<pinref part="JDR" gate="G$1" pin="4"/>
<wire x1="83.82" y1="68.58" x2="134.62" y2="68.58" width="0.1524" layer="91"/>
</segment>
</net>
<net name="CURRENT_SENSE_2" class="0">
<segment>
<label x="83.82" y="66.04" size="1.778" layer="95"/>
<pinref part="JDR" gate="G$1" pin="5"/>
<wire x1="83.82" y1="66.04" x2="134.62" y2="66.04" width="0.1524" layer="91"/>
</segment>
</net>
<net name="DECK_1_IN_1" class="0">
<segment>
<label x="203.2" y="157.48" size="1.778" layer="95"/>
<wire x1="203.2" y1="157.48" x2="236.22" y2="157.48" width="0.1524" layer="91"/>
<pinref part="X3" gate="G$1" pin="2"/>
</segment>
</net>
<net name="DECK_1_IN_2" class="0">
<segment>
<label x="203.2" y="154.94" size="1.778" layer="95"/>
<wire x1="203.2" y1="154.94" x2="236.22" y2="154.94" width="0.1524" layer="91"/>
<pinref part="X3" gate="G$1" pin="3"/>
</segment>
</net>
<net name="DECK_1_PWM" class="0">
<segment>
<label x="203.2" y="152.4" size="1.778" layer="95"/>
<wire x1="203.2" y1="152.4" x2="236.22" y2="152.4" width="0.1524" layer="91"/>
<pinref part="X3" gate="G$1" pin="4"/>
</segment>
</net>
<net name="DECK_1_CURR_SENSE" class="0">
<segment>
<label x="203.2" y="149.86" size="1.778" layer="95"/>
<wire x1="203.2" y1="149.86" x2="236.22" y2="149.86" width="0.1524" layer="91"/>
<pinref part="X3" gate="G$1" pin="5"/>
</segment>
</net>
<net name="DECK_1_POS_SENSE" class="0">
<segment>
<label x="205.74" y="83.82" size="1.778" layer="95"/>
<wire x1="205.74" y1="83.82" x2="236.22" y2="83.82" width="0.1524" layer="91"/>
<pinref part="X6" gate="G$1" pin="2"/>
</segment>
</net>
<net name="DECK_2_IN_1" class="0">
<segment>
<label x="203.2" y="132.08" size="1.778" layer="95"/>
<pinref part="X4" gate="G$1" pin="2"/>
<wire x1="236.22" y1="132.08" x2="203.2" y2="132.08" width="0.1524" layer="91"/>
</segment>
</net>
<net name="DECK_2_PWM" class="0">
<segment>
<label x="203.2" y="127" size="1.778" layer="95"/>
<pinref part="X4" gate="G$1" pin="4"/>
<wire x1="236.22" y1="127" x2="203.2" y2="127" width="0.1524" layer="91"/>
</segment>
</net>
<net name="DECK_2_CURR_SENSE" class="0">
<segment>
<label x="203.2" y="124.46" size="1.778" layer="95"/>
<pinref part="X4" gate="G$1" pin="5"/>
<wire x1="236.22" y1="124.46" x2="203.2" y2="124.46" width="0.1524" layer="91"/>
</segment>
</net>
<net name="DECK_2_POS_SENSE" class="0">
<segment>
<wire x1="236.22" y1="63.5" x2="205.74" y2="63.5" width="0.1524" layer="91"/>
<label x="205.74" y="63.5" size="1.778" layer="95"/>
<pinref part="X7" gate="G$1" pin="2"/>
</segment>
</net>
<net name="DECK_3_IN_1" class="0">
<segment>
<label x="203.2" y="109.22" size="1.778" layer="95"/>
<pinref part="X5" gate="G$1" pin="2"/>
<wire x1="236.22" y1="109.22" x2="203.2" y2="109.22" width="0.1524" layer="91"/>
</segment>
</net>
<net name="DECK_3_IN_2" class="0">
<segment>
<label x="203.2" y="106.68" size="1.778" layer="95"/>
<pinref part="X5" gate="G$1" pin="3"/>
<wire x1="236.22" y1="106.68" x2="203.2" y2="106.68" width="0.1524" layer="91"/>
</segment>
</net>
<net name="DECK_3_PWM" class="0">
<segment>
<label x="203.2" y="104.14" size="1.778" layer="95"/>
<pinref part="X5" gate="G$1" pin="4"/>
<wire x1="236.22" y1="104.14" x2="203.2" y2="104.14" width="0.1524" layer="91"/>
</segment>
</net>
<net name="DECK_3_CURR_SENSE" class="0">
<segment>
<label x="203.2" y="101.6" size="1.778" layer="95"/>
<pinref part="X5" gate="G$1" pin="5"/>
<wire x1="236.22" y1="101.6" x2="203.2" y2="101.6" width="0.1524" layer="91"/>
</segment>
</net>
<net name="DECK_3_POS_SENSE" class="0">
<segment>
<wire x1="236.22" y1="40.64" x2="205.74" y2="40.64" width="0.1524" layer="91"/>
<label x="205.74" y="40.64" size="1.778" layer="95"/>
<pinref part="X8" gate="G$1" pin="2"/>
</segment>
</net>
<net name="DECK_2_IN_2" class="0">
<segment>
<label x="203.2" y="129.54" size="1.778" layer="95"/>
<pinref part="X4" gate="G$1" pin="3"/>
<wire x1="236.22" y1="129.54" x2="203.2" y2="129.54" width="0.1524" layer="91"/>
</segment>
</net>
<net name="5V" class="0">
<segment>
<wire x1="236.22" y1="43.18" x2="205.74" y2="43.18" width="0.1524" layer="91"/>
<label x="205.74" y="43.18" size="1.778" layer="95"/>
<pinref part="X8" gate="G$1" pin="1"/>
</segment>
<segment>
<wire x1="236.22" y1="66.04" x2="205.74" y2="66.04" width="0.1524" layer="91"/>
<label x="205.74" y="66.04" size="1.778" layer="95"/>
<pinref part="X7" gate="G$1" pin="1"/>
</segment>
<segment>
<wire x1="236.22" y1="86.36" x2="205.74" y2="86.36" width="0.1524" layer="91"/>
<label x="205.74" y="86.36" size="1.778" layer="95"/>
<pinref part="X6" gate="G$1" pin="1"/>
</segment>
<segment>
<wire x1="119.38" y1="124.46" x2="134.62" y2="124.46" width="0.1524" layer="91"/>
<label x="124.46" y="127" size="1.778" layer="95" rot="R180"/>
<pinref part="JDL" gate="G$1" pin="1"/>
</segment>
<segment>
<wire x1="119.38" y1="76.2" x2="134.62" y2="76.2" width="0.1524" layer="91"/>
<label x="124.46" y="78.74" size="1.778" layer="95" rot="R180"/>
<pinref part="JDR" gate="G$1" pin="1"/>
</segment>
</net>
</nets>
</sheet>
</sheets>
</module>
</modules>
<parts>
<part name="FRAME1" library="frames" library_urn="urn:adsk.eagle:library:229" deviceset="A4L-LOC" device="" value="FRAME1"/>
<part name="5V1" library="power_supplies" deviceset="5V_ISO" device=""/>
<part name="GND_CPU1" library="power_supplies" deviceset="GND_ISO" device=""/>
</parts>
<sheets>
<sheet>
<plain>
</plain>
<moduleinsts>
<moduleinst name="MICROCONTROLLER1" module="UC" x="71.12" y="73.66" smashed="yes">
<attribute name="NAME" x="71.12" y="127" size="2.032" layer="95" align="bottom-center"/>
</moduleinst>
<moduleinst name="POWER_TOP1" module="PWR" x="63.5" y="149.86"/>
<moduleinst name="JETSON1" module="JETSON" x="152.4" y="114.3"/>
<moduleinst name="SENSOR_TOP1" module="SNS" x="218.44" y="76.2"/>
<moduleinst name="MOTOR_TOP1" module="MTR" x="137.16" y="50.8"/>
<moduleinst name="RC_INPUT1" module="RC" x="152.4" y="139.7"/>
<moduleinst name="RELAY_CONTROL_TOP1" module="RL" x="198.12" y="139.7"/>
</moduleinsts>
<instances>
<instance part="FRAME1" gate="G$1" x="22.86" y="2.54"/>
<instance part="5V1" gate="G$1" x="175.26" y="162.56"/>
<instance part="GND_CPU1" gate="G$1" x="180.34" y="165.1" smashed="yes" rot="R180">
<attribute name="VALUE" x="180.34" y="175.26" size="1.27" layer="96" rot="R270"/>
</instance>
</instances>
<busses>
</busses>
<nets>
<net name="N$3" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="MOTOR_L_ENABLE"/>
<portref moduleinst="MOTOR_TOP1" port="ENABLE_1"/>
<wire x1="99.06" y1="78.74" x2="104.14" y2="78.74" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$4" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="MOTOR_L_CURR_SENSE"/>
<portref moduleinst="MOTOR_TOP1" port="CURRENT_SENSE_1"/>
<wire x1="104.14" y1="76.2" x2="99.06" y2="76.2" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$5" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="MOTOR_R_PWMA"/>
<wire x1="99.06" y1="71.12" x2="104.14" y2="71.12" width="0.1524" layer="91"/>
<portref moduleinst="MOTOR_TOP1" port="PWM_A_2"/>
</segment>
</net>
<net name="N$7" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="MOTOR_R_ENABLE"/>
<wire x1="99.06" y1="60.96" x2="104.14" y2="60.96" width="0.1524" layer="91"/>
<portref moduleinst="MOTOR_TOP1" port="ENABLE_2"/>
</segment>
</net>
<net name="N$8" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="MOTOR_R_CURR_SENSE"/>
<wire x1="99.06" y1="58.42" x2="104.14" y2="58.42" width="0.1524" layer="91"/>
<portref moduleinst="MOTOR_TOP1" port="CURRENT_SENSE_2"/>
</segment>
</net>
<net name="N$9" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="DECK_3_IN_1"/>
<portref moduleinst="MOTOR_TOP1" port="DECK_3_IN_1"/>
<wire x1="99.06" y1="22.86" x2="104.14" y2="22.86" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$10" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="DECK_3_IN_2"/>
<portref moduleinst="MOTOR_TOP1" port="DECK_3_IN_2"/>
<wire x1="99.06" y1="20.32" x2="104.14" y2="20.32" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$11" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="DECK_3_PWM"/>
<portref moduleinst="MOTOR_TOP1" port="DECK_3_PWM"/>
<wire x1="99.06" y1="17.78" x2="104.14" y2="17.78" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$12" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="DECK_3_POS_SENSE"/>
<wire x1="99.06" y1="12.7" x2="104.14" y2="12.7" width="0.1524" layer="91"/>
<portref moduleinst="MOTOR_TOP1" port="DECK_3_POS_SENSE"/>
</segment>
</net>
<net name="N$13" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="DECK_3_CURR_SENSE"/>
<portref moduleinst="MOTOR_TOP1" port="DECK_3_CURR_SENSE"/>
<wire x1="99.06" y1="15.24" x2="104.14" y2="15.24" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$14" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="DECK_2_POS_SENSE"/>
<wire x1="99.06" y1="27.94" x2="104.14" y2="27.94" width="0.1524" layer="91"/>
<portref moduleinst="MOTOR_TOP1" port="DECK_2_POS_SENSE"/>
</segment>
</net>
<net name="N$15" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="DECK_2_CURR_SENSE"/>
<wire x1="99.06" y1="30.48" x2="104.14" y2="30.48" width="0.1524" layer="91"/>
<portref moduleinst="MOTOR_TOP1" port="DECK_2_CURR_SENSE"/>
</segment>
</net>
<net name="N$16" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="DECK_2_PWM"/>
<wire x1="99.06" y1="33.02" x2="104.14" y2="33.02" width="0.1524" layer="91"/>
<portref moduleinst="MOTOR_TOP1" port="DECK_2_PWM"/>
</segment>
</net>
<net name="N$17" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="DECK_2_IN_2"/>
<wire x1="99.06" y1="35.56" x2="104.14" y2="35.56" width="0.1524" layer="91"/>
<portref moduleinst="MOTOR_TOP1" port="DECK_2_IN_2"/>
</segment>
</net>
<net name="N$18" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="DECK_2_IN_1"/>
<wire x1="99.06" y1="38.1" x2="104.14" y2="38.1" width="0.1524" layer="91"/>
<portref moduleinst="MOTOR_TOP1" port="DECK_2_IN_1"/>
</segment>
</net>
<net name="N$21" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="DECK_1_POS_SENSE"/>
<wire x1="99.06" y1="43.18" x2="104.14" y2="43.18" width="0.1524" layer="91"/>
<portref moduleinst="MOTOR_TOP1" port="DECK_1_POS_SENSE"/>
</segment>
</net>
<net name="N$22" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="DECK_1_CURR_SENSE"/>
<wire x1="99.06" y1="45.72" x2="104.14" y2="45.72" width="0.1524" layer="91"/>
<portref moduleinst="MOTOR_TOP1" port="DECK_1_CURR_SENSE"/>
</segment>
</net>
<net name="N$23" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="DECK_1_PWM"/>
<wire x1="99.06" y1="48.26" x2="104.14" y2="48.26" width="0.1524" layer="91"/>
<portref moduleinst="MOTOR_TOP1" port="DECK_1_PWM"/>
</segment>
</net>
<net name="N$24" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="DECK_1_IN_2"/>
<wire x1="99.06" y1="50.8" x2="104.14" y2="50.8" width="0.1524" layer="91"/>
<portref moduleinst="MOTOR_TOP1" port="DECK_1_IN_2"/>
</segment>
</net>
<net name="N$25" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="DECK_1_IN_1"/>
<wire x1="99.06" y1="53.34" x2="104.14" y2="53.34" width="0.1524" layer="91"/>
<portref moduleinst="MOTOR_TOP1" port="DECK_1_IN_1"/>
</segment>
</net>
<net name="N$1" class="0">
<segment>
<portref moduleinst="MOTOR_TOP1" port="PWM_B_2"/>
<portref moduleinst="MICROCONTROLLER1" port="MOTOR_R_PWMB"/>
<wire x1="99.06" y1="68.58" x2="104.14" y2="68.58" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$26" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="MOTOR_L_PWMB"/>
<portref moduleinst="MOTOR_TOP1" port="PWM_B_1"/>
<wire x1="99.06" y1="86.36" x2="104.14" y2="86.36" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$27" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="MOTOR_L_PWMA"/>
<portref moduleinst="MOTOR_TOP1" port="PWM_A_1"/>
<wire x1="99.06" y1="88.9" x2="104.14" y2="88.9" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$2" class="0">
<segment>
<portref moduleinst="JETSON1" port="UART0_RX"/>
<wire x1="172.72" y1="106.68" x2="248.92" y2="106.68" width="0.1524" layer="91"/>
<portref moduleinst="SENSOR_TOP1" port="REACH_TX"/>
<wire x1="241.3" y1="86.36" x2="248.92" y2="86.36" width="0.1524" layer="91"/>
<wire x1="248.92" y1="86.36" x2="248.92" y2="106.68" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$6" class="0">
<segment>
<portref moduleinst="JETSON1" port="UART0_TX"/>
<wire x1="172.72" y1="109.22" x2="251.46" y2="109.22" width="0.1524" layer="91"/>
<portref moduleinst="SENSOR_TOP1" port="REACH_RX"/>
<wire x1="241.3" y1="83.82" x2="251.46" y2="83.82" width="0.1524" layer="91"/>
<wire x1="251.46" y1="83.82" x2="251.46" y2="109.22" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$19" class="0">
<segment>
<portref moduleinst="JETSON1" port="I2C0_SCL"/>
<wire x1="172.72" y1="116.84" x2="259.08" y2="116.84" width="0.1524" layer="91"/>
<portref moduleinst="SENSOR_TOP1" port="IMU_SCL"/>
<wire x1="259.08" y1="116.84" x2="259.08" y2="71.12" width="0.1524" layer="91"/>
<wire x1="259.08" y1="71.12" x2="241.3" y2="71.12" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$20" class="0">
<segment>
<portref moduleinst="JETSON1" port="I2C0_SDA"/>
<wire x1="172.72" y1="119.38" x2="264.16" y2="119.38" width="0.1524" layer="91"/>
<wire x1="264.16" y1="119.38" x2="264.16" y2="68.58" width="0.1524" layer="91"/>
<portref moduleinst="SENSOR_TOP1" port="IMU_SDA"/>
<wire x1="264.16" y1="68.58" x2="241.3" y2="68.58" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$28" class="0">
<segment>
<portref moduleinst="JETSON1" port="TX2_TO_DUE"/>
<wire x1="132.08" y1="109.22" x2="99.06" y2="109.22" width="0.1524" layer="91"/>
<portref moduleinst="MICROCONTROLLER1" port="TX2_TO_DUE"/>
</segment>
</net>
<net name="N$29" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="DUE_TO_TX2"/>
<portref moduleinst="JETSON1" port="DUE_TO_TX2"/>
<wire x1="99.06" y1="111.76" x2="132.08" y2="111.76" width="0.1524" layer="91"/>
</segment>
</net>
<net name="GND" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="GND"/>
<label x="99.06" y="127" size="1.778" layer="95"/>
<wire x1="99.06" y1="127" x2="109.22" y2="127" width="0.1524" layer="91"/>
</segment>
<segment>
<portref moduleinst="RC_INPUT1" port="GND"/>
<wire x1="132.08" y1="142.24" x2="119.38" y2="142.24" width="0.1524" layer="91"/>
<label x="119.38" y="142.24" size="1.778" layer="95"/>
</segment>
<segment>
<portref moduleinst="POWER_TOP1" port="GND"/>
<label x="83.82" y="144.78" size="1.778" layer="95"/>
<wire x1="83.82" y1="144.78" x2="93.98" y2="144.78" width="0.1524" layer="91"/>
</segment>
<segment>
<portref moduleinst="JETSON1" port="GND"/>
<wire x1="132.08" y1="119.38" x2="127" y2="119.38" width="0.1524" layer="91"/>
<label x="127" y="119.38" size="1.778" layer="95"/>
</segment>
<segment>
<portref moduleinst="MOTOR_TOP1" port="GND"/>
<wire x1="170.18" y1="15.24" x2="182.88" y2="15.24" width="0.1524" layer="91"/>
<label x="177.8" y="15.24" size="1.778" layer="95"/>
</segment>
<segment>
<portref moduleinst="SENSOR_TOP1" port="GND"/>
<wire x1="195.58" y1="83.82" x2="180.34" y2="83.82" width="0.1524" layer="91"/>
<label x="180.34" y="83.82" size="1.778" layer="95"/>
</segment>
<segment>
<portref moduleinst="RELAY_CONTROL_TOP1" port="GND"/>
<label x="231.14" y="132.08" size="1.778" layer="95"/>
<wire x1="228.6" y1="132.08" x2="241.3" y2="132.08" width="0.1524" layer="91"/>
</segment>
</net>
<net name="5V" class="0">
<segment>
<portref moduleinst="POWER_TOP1" port="5V"/>
<wire x1="83.82" y1="152.4" x2="93.98" y2="152.4" width="0.1524" layer="91"/>
<label x="83.82" y="152.4" size="1.778" layer="95"/>
</segment>
<segment>
<portref moduleinst="RC_INPUT1" port="5V"/>
<wire x1="132.08" y1="147.32" x2="119.38" y2="147.32" width="0.1524" layer="91"/>
<label x="119.38" y="147.32" size="1.778" layer="95"/>
</segment>
<segment>
<portref moduleinst="SENSOR_TOP1" port="5V"/>
<wire x1="195.58" y1="88.9" x2="180.34" y2="88.9" width="0.1524" layer="91"/>
<label x="180.34" y="88.9" size="1.778" layer="95"/>
</segment>
<segment>
<portref moduleinst="RELAY_CONTROL_TOP1" port="5V"/>
<wire x1="228.6" y1="142.24" x2="241.3" y2="142.24" width="0.1524" layer="91"/>
<label x="231.14" y="142.24" size="1.778" layer="95"/>
</segment>
<segment>
<portref moduleinst="MOTOR_TOP1" port="5V"/>
<wire x1="124.46" y1="99.06" x2="124.46" y2="106.68" width="0.1524" layer="91"/>
<label x="124.46" y="101.6" size="1.778" layer="95" rot="R90"/>
</segment>
</net>
<net name="N$30" class="0">
<segment>
<portref moduleinst="RC_INPUT1" port="SBUS_SIG_OUT"/>
<wire x1="132.08" y1="134.62" x2="99.06" y2="134.62" width="0.1524" layer="91"/>
<portref moduleinst="MICROCONTROLLER1" port="SBUS"/>
</segment>
</net>
<net name="12V" class="0">
<segment>
<portref moduleinst="POWER_TOP1" port="12V"/>
<wire x1="83.82" y1="154.94" x2="93.98" y2="154.94" width="0.1524" layer="91"/>
<label x="83.82" y="154.94" size="1.778" layer="95"/>
</segment>
<segment>
<portref moduleinst="JETSON1" port="12V"/>
<wire x1="132.08" y1="121.92" x2="127" y2="121.92" width="0.1524" layer="91"/>
<label x="127" y="121.92" size="1.778" layer="95"/>
</segment>
<segment>
<portref moduleinst="MICROCONTROLLER1" port="VIN"/>
<label x="99.06" y="132.08" size="1.778" layer="95"/>
<wire x1="99.06" y1="132.08" x2="109.22" y2="132.08" width="0.1524" layer="91"/>
</segment>
</net>
<net name="3V3" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="3V3"/>
<label x="99.06" y="129.54" size="1.778" layer="95"/>
<wire x1="99.06" y1="129.54" x2="109.22" y2="129.54" width="0.1524" layer="91"/>
</segment>
<segment>
<portref moduleinst="RC_INPUT1" port="3.3V"/>
<wire x1="132.08" y1="144.78" x2="119.38" y2="144.78" width="0.1524" layer="91"/>
<label x="119.38" y="144.78" size="1.778" layer="95"/>
</segment>
<segment>
<wire x1="195.58" y1="86.36" x2="180.34" y2="86.36" width="0.1524" layer="91"/>
<label x="180.34" y="86.36" size="1.778" layer="95"/>
<portref moduleinst="SENSOR_TOP1" port="3V3"/>
</segment>
</net>
<net name="N$31" class="0">
<segment>
<wire x1="175.26" y1="83.82" x2="99.06" y2="83.82" width="0.1524" layer="91"/>
<portref moduleinst="MICROCONTROLLER1" port="MOTOR_L_CHANNEL_A"/>
<wire x1="175.26" y1="83.82" x2="175.26" y2="73.66" width="0.1524" layer="91"/>
<portref moduleinst="SENSOR_TOP1" port="MOTOR_L_CHANNEL_A"/>
<wire x1="175.26" y1="73.66" x2="195.58" y2="73.66" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$32" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="MOTOR_L_CHANNEL_B"/>
<wire x1="99.06" y1="81.28" x2="172.72" y2="81.28" width="0.1524" layer="91"/>
<wire x1="172.72" y1="81.28" x2="172.72" y2="71.12" width="0.1524" layer="91"/>
<portref moduleinst="SENSOR_TOP1" port="MOTOR_L_CHANNEL_B"/>
<wire x1="172.72" y1="71.12" x2="195.58" y2="71.12" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$33" class="0">
<segment>
<portref moduleinst="SENSOR_TOP1" port="MOTOR_R_CHANNEL_A"/>
<wire x1="195.58" y1="66.04" x2="99.06" y2="66.04" width="0.1524" layer="91"/>
<portref moduleinst="MICROCONTROLLER1" port="MOTOR_R_CHANNEL_A"/>
</segment>
</net>
<net name="N$34" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="MOTOR_R_CHANNEL_B"/>
<portref moduleinst="SENSOR_TOP1" port="MOTOR_R_CHANNEL_B"/>
<wire x1="99.06" y1="63.5" x2="195.58" y2="63.5" width="0.1524" layer="91"/>
</segment>
</net>
<net name="36V" class="0">
<segment>
<portref moduleinst="RELAY_CONTROL_TOP1" port="36V"/>
<label x="231.14" y="147.32" size="1.778" layer="95"/>
<wire x1="228.6" y1="147.32" x2="241.3" y2="147.32" width="0.1524" layer="91"/>
</segment>
<segment>
<portref moduleinst="POWER_TOP1" port="36V"/>
<wire x1="83.82" y1="157.48" x2="93.98" y2="157.48" width="0.1524" layer="91"/>
<label x="83.82" y="157.48" size="1.778" layer="95"/>
</segment>
</net>
<net name="MOW_EN" class="0">
<segment>
<portref moduleinst="RELAY_CONTROL_TOP1" port="MOW_EN"/>
<wire x1="228.6" y1="144.78" x2="241.3" y2="144.78" width="0.1524" layer="91"/>
<label x="231.14" y="144.78" size="1.778" layer="95"/>
</segment>
<segment>
<portref moduleinst="MICROCONTROLLER1" port="MOWER_RELAY"/>
<label x="99.06" y="116.84" size="1.778" layer="95"/>
<wire x1="99.06" y1="116.84" x2="109.22" y2="116.84" width="0.1524" layer="91"/>
</segment>
</net>
<net name="VSENSE" class="0">
<segment>
<portref moduleinst="MICROCONTROLLER1" port="VBATSENSE"/>
<label x="99.06" y="121.92" size="1.778" layer="95"/>
<wire x1="99.06" y1="121.92" x2="109.22" y2="121.92" width="0.1524" layer="91"/>
</segment>
<segment>
<portref moduleinst="RELAY_CONTROL_TOP1" port="VSENSE"/>
<label x="231.14" y="137.16" size="1.778" layer="95"/>
<wire x1="228.6" y1="137.16" x2="241.3" y2="137.16" width="0.1524" layer="91"/>
</segment>
</net>
<net name="5V_ISO" class="0">
<segment>
<portref moduleinst="RELAY_CONTROL_TOP1" port="5V_ISO"/>
<pinref part="5V1" gate="G$1" pin="5V_ISO"/>
<wire x1="175.26" y1="162.56" x2="175.26" y2="154.94" width="0.1524" layer="91"/>
</segment>
</net>
<net name="GND_ISO" class="0">
<segment>
<portref moduleinst="RELAY_CONTROL_TOP1" port="GND_ISO"/>
<pinref part="GND_CPU1" gate="G$1" pin="GND_ISO"/>
<wire x1="180.34" y1="162.56" x2="180.34" y2="154.94" width="0.1524" layer="91"/>
</segment>
</net>
</nets>
</sheet>
</sheets>
<errors>
<approved hash="104,1@REG,154.94,114.3,U1,OUT,5V_ISO,,,"/>
<approved hash="104,1@REG,154.94,111.76,U1,GND_2,GND_ISO,,,"/>
<approved hash="104,1@REG,154.94,109.22,U1,GND_3,GND_ISO,,,"/>
<approved hash="104,1@REG,104.14,109.22,U1,GND_4,GND_ISO,,,"/>
<approved hash="104,1@REG,104.14,111.76,U1,GND,GND_ISO,,,"/>
<approved hash="104,1@REG,104.14,114.3,U1,IN,36V_RAW,,,"/>
<approved hash="104,1@UVLO,127,99.06,U1,V+,5V_ISO,,,"/>
<approved hash="104,1@UVLO,127,81.28,U1,V-,GND_ISO,,,"/>
<approved hash="113,1@IMU,130.071,89.431,FRAME1,,,,,"/>
<approved hash="113,1@JETSON,130.071,89.431,FRAME1,,,,,"/>
</errors>
</schematic>
</drawing>
<compatibility>
<note version="6.3" minversion="6.2.2" severity="warning">
Since Version 6.2.2 text objects can contain more than one line,
which will not be processed correctly with this version.
</note>
<note version="8.2" severity="warning">
Since Version 8.2, EAGLE supports online libraries. The ids
of those online libraries will not be understood (or retained)
with this version.
</note>
<note version="8.3" severity="warning">
Since Version 8.3, EAGLE supports URNs for individual library
assets (packages, symbols, and devices). The URNs of those assets
will not be understood (or retained) with this version.
</note>
<note version="8.3" severity="warning">
Since Version 8.3, EAGLE supports the association of 3D packages
with devices in libraries, schematics, and board files. Those 3D
packages will not be understood (or retained) with this version.
</note>
</compatibility>
</eagle>

license: MIT

license_type: permissive

branch_name: refs/heads/master

gha_license_id: MIT

extension: sch


text:
package albingress

import (
	"sync"
	"time"

	"github.com/aws/aws-sdk-go/service/elbv2"

	extensions "k8s.io/api/extensions/v1beta1"
	"k8s.io/client-go/tools/record"
	"k8s.io/ingress/core/pkg/ingress/annotations/class"

	"github.com/kubernetes-sigs/aws-alb-ingress-controller/pkg/annotations"
	"github.com/kubernetes-sigs/aws-alb-ingress-controller/pkg/aws/albelbv2"
	"github.com/kubernetes-sigs/aws-alb-ingress-controller/pkg/aws/albrgt"
)

// NewALBIngressesFromIngressesOptions are the options to NewALBIngressesFromIngresses
type NewALBIngressesFromIngressesOptions struct {
	Recorder              record.EventRecorder
	ClusterName           string
	ALBNamePrefix         string
	Ingresses             []interface{}
	ALBIngresses          ALBIngresses
	IngressClass          string
	DefaultIngressClass   string
	GetServiceNodePort    func(string, string, int32) (*int64, error)
	GetServiceAnnotations func(string, string) (*map[string]string, error)
	TargetsFunc           func(*string, string, string, *int64) albelbv2.TargetDescriptions
	AnnotationFactory     annotations.AnnotationFactory
	Resources             *albrgt.Resources
}

// NewALBIngressesFromIngresses returns a ALBIngresses created from the Kubernetes ingress state.
func NewALBIngressesFromIngresses(o *NewALBIngressesFromIngressesOptions) ALBIngresses {
	var ALBIngresses ALBIngresses

	// Find every ingress currently in Kubernetes.
	for _, k8singress := range o.Ingresses {
		ingResource := k8singress.(*extensions.Ingress)

		// Ensure the ingress resource found contains an appropriate ingress class.
		if !class.IsValid(ingResource, o.IngressClass, o.DefaultIngressClass) {
			continue
		}

		// Find the existing ingress for this Kubernetes ingress (if it existed).
		id := GenerateID(ingResource.GetNamespace(), ingResource.Name)
		_, existingIngress := o.ALBIngresses.FindByID(id)

		// Produce a new ALBIngress instance for every ingress found. If ALBIngress returns nil, there
		// was an issue with the ingress (e.g. bad annotations) and should not be added to the list.
		ALBIngress := NewALBIngressFromIngress(&NewALBIngressFromIngressOptions{
			Ingress:               ingResource,
			ExistingIngress:       existingIngress,
			ClusterName:           o.ClusterName,
			ALBNamePrefix:         o.ALBNamePrefix,
			GetServiceNodePort:    o.GetServiceNodePort,
			GetServiceAnnotations: o.GetServiceAnnotations,
			TargetsFunc:           o.TargetsFunc,
			Recorder:              o.Recorder,
			AnnotationFactory:     o.AnnotationFactory,
			Resources:             o.Resources,
		})

		// Add the new ALBIngress instance to the new ALBIngress list.
		ALBIngresses = append(ALBIngresses, ALBIngress)
	}
	return ALBIngresses
}

// AssembleIngressesFromAWSOptions are the options to AssembleIngressesFromAWS
type AssembleIngressesFromAWSOptions struct {
	Recorder      record.EventRecorder
	ClusterName   string
	ALBNamePrefix string
	Resources     *albrgt.Resources
}

// AssembleIngressesFromAWS builds a list of existing ingresses from resources in AWS
func AssembleIngressesFromAWS(o *AssembleIngressesFromAWSOptions) ALBIngresses {

	logger.Infof("Building list of existing ALBs")
	t0 := time.Now()

	// Fetch the list of load balancers
	loadBalancers, err := albelbv2.ELBV2svc.ClusterLoadBalancers(o.Resources)
	if err != nil {
		logger.Fatalf(err.Error())
	}
	logger.Infof("Fetching information on %d ALBs", len(loadBalancers))

	// Fetch the list of target groups
	targetGroups, err := albelbv2.ELBV2svc.ClusterTargetGroups(o.Resources)
	if err != nil {
		logger.Fatalf(err.Error())
	}
	logger.Debugf("Retrieved information on %v target groups", len(targetGroups))

	ingresses := newIngressesFromLoadBalancers(&newIngressesFromLoadBalancersOptions{
		LoadBalancers: loadBalancers,
		ALBNamePrefix: o.ALBNamePrefix,
		Recorder:      o.Recorder,
		ResourceTags:  o.Resources,
		TargetGroups:  targetGroups,
	})

	logger.Infof("Assembled %d ingresses from existing AWS resources in %v", len(ingresses), time.Now().Sub(t0))
	if len(loadBalancers) != len(ingresses) {
		logger.Fatalf("Assembled %d ingresses from %v load balancers", len(ingresses), len(loadBalancers))
	}
	return ingresses
}

// FindByID locates the ingress by the id parameter and returns its position
func (a ALBIngresses) FindByID(id string) (int, *ALBIngress) {
	for p, v := range a {
		if v.id == id {
			return p, v
		}
	}
	return -1, nil
}

// RemovedIngresses compares the ingress list to the ingress list in the type, returning any ingresses that
// are not in the ingress list parameter.
func (a ALBIngresses) RemovedIngresses(newList ALBIngresses) ALBIngresses {
	var deleteableIngress ALBIngresses

	// Loop through every ingress in current (old) ingress list known to ALBController
	for _, ingress := range a {
		// Ingress objects not found in newList might qualify for deletion.
		if i, _ := newList.FindByID(ingress.id); i < 0 {
			// If the ALBIngress still contains a LoadBalancer, it still needs to be deleted.
			// In this case, strip all desired state and add it to the deleteableIngress list.
			// If the ALBIngress contains no LoadBalancer, it was previously deleted and is
			// no longer relevant to the ALBController.
			if ingress.loadBalancer != nil {
				ingress.stripDesiredState()
				deleteableIngress = append(deleteableIngress, ingress)
			}
		}
	}
	return deleteableIngress
}

// Reconcile syncs the desired state to the current state
func (a ALBIngresses) Reconcile() {
	var wg sync.WaitGroup
	wg.Add(len(a))

	for _, ingress := range a {
		go func(wg *sync.WaitGroup, ingress *ALBIngress) {
			defer wg.Done()
			ingress.Reconcile(&ReconcileOptions{Eventf: ingress.Eventf})
		}(&wg, ingress)
	}

	wg.Wait()
}

type newIngressesFromLoadBalancersOptions struct {
	LoadBalancers []*elbv2.LoadBalancer
	ResourceTags  *albrgt.Resources
	TargetGroups  map[string][]*elbv2.TargetGroup
	Recorder      record.EventRecorder
	ALBNamePrefix string
}

func newIngressesFromLoadBalancers(o *newIngressesFromLoadBalancersOptions) ALBIngresses {
	var ingresses ALBIngresses
	// Generate the list of ingresses from those load balancers
	var wg sync.WaitGroup
	for _, loadBalancer := range o.LoadBalancers {
		wg.Add(1)
		go func(wg *sync.WaitGroup, loadBalancer *elbv2.LoadBalancer) {
			defer wg.Done()

			albIngress, err := NewALBIngressFromAWSLoadBalancer(&NewALBIngressFromAWSLoadBalancerOptions{
				LoadBalancer:  loadBalancer,
				ALBNamePrefix: o.ALBNamePrefix,
				Recorder:      o.Recorder,
				ResourceTags:  o.ResourceTags,
				TargetGroups:  o.TargetGroups,
			})
			if err != nil {
				logger.Infof(err.Error())
				return
			}
			ingresses = append(ingresses, albIngress)
		}(&wg, loadBalancer)
	}
	wg.Wait()

	return ingresses
}

extension: go


text:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TankController : MonoBehaviour
{
    public TankMover tankMover;
    public AimTurret aimTurret;
    public Turret[] turrets;

    private void Awake()
    {
        if (tankMover == null)
            tankMover = GetComponentInChildren<TankMover>();
        if (aimTurret == null)
            aimTurret = GetComponentInChildren<AimTurret>();
        if(turrets == null || turrets.Length == 0)
        {
            turrets = GetComponentsInChildren<Turret>();
        }
    }

    public void HandleShoot()
    {
        foreach (var turret in turrets)
        {
            turret.Shoot();
        }

    }

    public void HandleMoveBody(Vector2 movementVector)
    {
        tankMover.Move(movementVector);
    }

    public void HandleTurretMovement(Vector2 pointerPosition)
    {
        aimTurret.Aim(pointerPosition);

    }

}

branch_name: refs/heads/main

extension: cs


text:
// Copyright Naked Objects Group Ltd, 45 Station Road, Henley on Thames, UK, RG9 1AT
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
// Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and limitations under the License.

using AW;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using NakedFramework.Architecture.Component;
using NakedFramework.DependencyInjection.Extensions;
using NakedFramework.Menu;
using NakedFramework.Persistor.EFCore.Extensions;
using NakedFramework.Rest.Extensions;
using NakedFunctions.Reflector.Extensions;
using Newtonsoft.Json;

namespace NakedFunctions.Rest.App.Demo {
    public class Startup {

        readonly string MyAllowSpecificOrigins = "_myAllowSpecificOrigins";

        public Startup(IConfiguration configuration) {
            Configuration = configuration;
        }

        private IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services) {
            services.AddControllers()
                .AddNewtonsoftJson(options => options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Utc);
            services.AddMvc(options => options.EnableEndpointRouting = false);
            services.AddHttpContextAccessor();
            services.AddNakedFramework(builder => {
                builder.MainMenus = MenuHelper.GenerateMenus(AWModelConfig.MainMenuTypes());
                builder.AddNakedFunctions(options => {
                    options.DomainTypes = AWModelConfig.FunctionalTypes();
                    options.DomainFunctions = AWModelConfig.Functions();
                });
                builder.AddEFCorePersistor();
                builder.AddRestfulObjects(options => options.BlobsClobs = true);
            });
            services.AddScoped<IPrincipalProvider, MockPrincipalProvider>();
            services.AddDbContext<DbContext, AdventureWorksEFCoreContext>(options => {
                options.UseSqlServer(Configuration.GetConnectionString("AdventureWorksContext"));
                options.UseLazyLoadingProxies();
                //options.LogTo(m => Debug.WriteLine(m), LogLevel.Trace);
            });
            services.AddCors(options => {
                options.AddPolicy(MyAllowSpecificOrigins, builder => {
                    builder
                        .WithOrigins("http://localhost:49998",
                                     "http://localhost:8080",
                                     "http://nakedfunctionstest.azurewebsites.net",
                                     "https://nakedfunctionstest.azurewebsites.net")
                        .AllowAnyHeader()
                        .WithExposedHeaders("Warning", "ETag", "Set-Cookie")
                        .AllowAnyMethod()
                        .AllowCredentials();
                });
            });
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IModelBuilder builder, ILoggerFactory loggerFactory) {

            // for Demo use Log4Net. Configured in log4net.config
            loggerFactory.AddLog4Net();

            builder.Build();

            if (env.IsDevelopment()) {
                app.UseDeveloperExceptionPage();
            }

            app.UseCors(MyAllowSpecificOrigins);
            app.UseRouting();
            app.UseRestfulObjects();
        }
    }
}

repository: NakedObjectsGroup/NakedObjectsFramework

repo_name: NakedObjectsGroup/NakedObjectsFramework

gha_language: C#


text:
package handler

import (
	"fmt"
	"testing"

	"github.com/aws/aws-sdk-go/aws"
	"github.com/aws/aws-sdk-go/service/sqs"
	"github.com/stretchr/testify/assert"

	domain "github.com/b4t3ou/sqs-reader-service/internal"
)

type sqsClientMock struct {
	error   error
	message *sqs.ReceiveMessageOutput
}

func (c sqsClientMock) Receive() (*sqs.ReceiveMessageOutput, error) {
	return c.message, c.error
}

func (c sqsClientMock) Delete(receiptHandle string) error {
	return nil
}

type dbMock struct {
	event domain.Event
	error error
}

func (db *dbMock) Save(item domain.Event) error {
	db.event = item
	return db.error
}

func TestNewSQS_Run(t *testing.T) {
	h := NewSQS(sqsClientMock{
		error: fmt.Errorf("cannot receice data"),
	}, &dbMock{},
	)
	assert.NotNil(t, h.Run())
}

func TestSQS_saveEvent(t *testing.T) {
	db := &dbMock{}
	h := NewSQS(sqsClientMock{}, db)
	err := h.saveEvent(&sqs.Message{
		ReceiptHandle: aws.String("foo"),
		Body:          aws.String(``),
	})
	assert.NotNil(t, err)

	err = h.saveEvent(&sqs.Message{
		Body:          aws.String(`{"id":"foo"}`),
		ReceiptHandle: aws.String("foo"),
	})
	assert.Nil(t, err)
	assert.Equal(t, "foo", db.event.ID)
}

func TestSQS_saveEvent_dbError(t *testing.T) {
	db := &dbMock{error: fmt.Errorf("failed to save data")}

	h := NewSQS(sqsClientMock{}, db)
	err := h.saveEvent(&sqs.Message{
		ReceiptHandle: aws.String("foo"),
		Body:          aws.String(``),
	})
	assert.NotNil(t, err)

	err = h.saveEvent(&sqs.Message{
		Body:          aws.String(`{"id":"foo"}`),
		ReceiptHandle: aws.String("foo"),
	})
	assert.NotNil(t, err)
}

gha_language: Go


text:
package jsonstr

import (
	"fmt"
)

// MapToJsonObjStr converts an __unnested__ map into a str representation of a json object (unquoted keys)
func MapToJsonObjStr(m map[string]string) string {
	s := "{"
	for k, v := range m {
		s += fmt.Sprintf("%s:\"%s\"", k, v)
	}

	s += "}"
	return s
}

repository: rvillablanca/astro-cli

repo_name: rvillablanca/astro-cli


text:
// Code generated by "stringer -type=Type"; DO NOT EDIT.

package token

import "strconv"

func _() {
	// An "invalid array index" compiler error signifies that the constant values have changed.
	// Re-run the stringer command to generate them again.
	var x [1]struct{}
	_ = x[Unknown-0]
	_ = x[Error-1]
	_ = x[EOF-2]
	_ = x[StatementSeparator-3]
	_ = x[KeywordAbort-4]
	_ = x[KeywordAction-5]
	_ = x[KeywordAdd-6]
	_ = x[KeywordAfter-7]
	_ = x[KeywordAll-8]
	_ = x[KeywordAlter-9]
	_ = x[KeywordAlways-10]
	_ = x[KeywordAnalyze-11]
	_ = x[KeywordAnd-12]
	_ = x[KeywordAs-13]
	_ = x[KeywordAsc-14]
	_ = x[KeywordAttach-15]
	_ = x[KeywordAutoincrement-16]
	_ = x[KeywordBefore-17]
	_ = x[KeywordBegin-18]
	_ = x[KeywordBetween-19]
	_ = x[KeywordBy-20]
	_ = x[KeywordCascade-21]
	_ = x[KeywordCase-22]
	_ = x[KeywordCast-23]
	_ = x[KeywordCheck-24]
	_ = x[KeywordCollate-25]
	_ = x[KeywordColumn-26]
	_ = x[KeywordCommit-27]
	_ = x[KeywordConflict-28]
	_ = x[KeywordConstraint-29]
	_ = x[KeywordCreate-30]
	_ = x[KeywordCross-31]
	_ = x[KeywordCurrent-32]
	_ = x[KeywordCurrentDate-33]
	_ = x[KeywordCurrentTime-34]
	_ = x[KeywordCurrentTimestamp-35]
	_ = x[KeywordDatabase-36]
	_ = x[KeywordDefault-37]
	_ = x[KeywordDeferrable-38]
	_ = x[KeywordDeferred-39]
	_ = x[KeywordDelete-40]
	_ = x[KeywordDesc-41]
	_ = x[KeywordDetach-42]
	_ = x[KeywordDistinct-43]
	_ = x[KeywordDo-44]
	_ = x[KeywordDrop-45]
	_ = x[KeywordEach-46]
	_ = x[KeywordElse-47]
	_ = x[KeywordEnd-48]
	_ = x[KeywordEscape-49]
	_ = x[KeywordExcept-50]
	_ = x[KeywordExclude-51]
	_ = x[KeywordExclusive-52]
	_ = x[KeywordExists-53]
	_ = x[KeywordExplain-54]
	_ = x[KeywordFail-55]
	_ = x[KeywordFilter-56]
	_ = x[KeywordFirst-57]
	_ = x[KeywordFollowing-58]
	_ = x[KeywordFor-59]
	_ = x[KeywordForeign-60]
	_ = x[KeywordFrom-61]
	_ = x[KeywordFull-62]
	_ = x[KeywordGenerated-63]
	_ = x[KeywordGlob-64]
	_ = x[KeywordGroup-65]
	_ = x[KeywordGroups-66]
	_ = x[KeywordHaving-67]
	_ = x[KeywordIf-68]
	_ = x[KeywordIgnore-69]
	_ = x[KeywordImmediate-70]
	_ = x[KeywordIn-71]
	_ = x[KeywordIndex-72]
	_ = x[KeywordIndexed-73]
	_ = x[KeywordInitially-74]
	_ = x[KeywordInner-75]
	_ = x[KeywordInsert-76]
	_ = x[KeywordInstead-77]
	_ = x[KeywordIntersect-78]
	_ = x[KeywordInto-79]
	_ = x[KeywordIs-80]
	_ = x[KeywordIsnull-81]
	_ = x[KeywordJoin-82]
	_ = x[KeywordKey-83]
	_ = x[KeywordLast-84]
	_ = x[KeywordLeft-85]
	_ = x[KeywordLike-86]
	_ = x[KeywordLimit-87]
	_ = x[KeywordMatch-88]
	_ = x[KeywordNatural-89]
	_ = x[KeywordNo-90]
	_ = x[KeywordNot-91]
	_ = x[KeywordNothing-92]
	_ = x[KeywordNotnull-93]
	_ = x[KeywordNull-94]
	_ = x[KeywordNulls-95]
	_ = x[KeywordOf-96]
	_ = x[KeywordOffset-97]
	_ = x[KeywordOn-98]
	_ = x[KeywordOr-99]
	_ = x[KeywordOrder-100]
	_ = x[KeywordOthers-101]
	_ = x[KeywordOuter-102]
	_ = x[KeywordOver-103]
	_ = x[KeywordPartition-104]
	_ = x[KeywordPlan-105]
	_ = x[KeywordPragma-106]
	_ = x[KeywordPreceding-107]
	_ = x[KeywordPrimary-108]
	_ = x[KeywordQuery-109]
	_ = x[KeywordRaise-110]
	_ = x[KeywordRange-111]
	_ = x[KeywordRecursive-112]
	_ = x[KeywordReferences-113]
	_ = x[KeywordRegexp-114]
	_ = x[KeywordReIndex-115]
	_ = x[KeywordRelease-116]
	_ = x[KeywordRename-117]
	_ = x[KeywordReplace-118]
	_ = x[KeywordRestrict-119]
	_ = x[KeywordRight-120]
	_ = x[KeywordRollback-121]
	_ = x[KeywordRow-122]
	_ = x[KeywordRows-123]
	_ = x[KeywordSavepoint-124]
	_ = x[KeywordSelect-125]
	_ = x[KeywordSet-126]
	_ = x[KeywordStored-127]
	_ = x[KeywordTable-128]
	_ = x[KeywordTemp-129]
	_ = x[KeywordTemporary-130]
	_ = x[KeywordThen-131]
	_ = x[KeywordTies-132]
	_ = x[KeywordTo-133]
	_ = x[KeywordTransaction-134]
	_ = x[KeywordTrigger-135]
	_ = x[KeywordUnbounded-136]
	_ = x[KeywordUnion-137]
	_ = x[KeywordUnique-138]
	_ = x[KeywordUpdate-139]
	_ = x[KeywordUsing-140]
	_ = x[KeywordVacuum-141]
	_ = x[KeywordValues-142]
	_ = x[KeywordView-143]
	_ = x[KeywordVirtual-144]
	_ = x[KeywordWhen-145]
	_ = x[KeywordWhere-146]
	_ = x[KeywordWindow-147]
	_ = x[KeywordWith-148]
	_ = x[KeywordWithout-149]
	_ = x[Literal-150]
	_ = x[LiteralNumeric-151]
	_ = x[UnaryOperator-152]
	_ = x[BinaryOperator-153]
	_ = x[Delimiter-154]
}

const _Type_name = "UnknownErrorEOFStatementSeparatorKeywordAbortKeywordActionKeywordAddKeywordAfterKeywordAllKeywordAlterKeywordAlwaysKeywordAnalyzeKeywordAndKeywordAsKeywordAscKeywordAttachKeywordAutoincrementKeywordBeforeKeywordBeginKeywordBetweenKeywordByKeywordCascadeKeywordCaseKeywordCastKeywordCheckKeywordCollateKeywordColumnKeywordCommitKeywordConflictKeywordConstraintKeywordCreateKeywordCrossKeywordCurrentKeywordCurrentDateKeywordCurrentTimeKeywordCurrentTimestampKeywordDatabaseKeywordDefaultKeywordDeferrableKeywordDeferredKeywordDeleteKeywordDescKeywordDetachKeywordDistinctKeywordDoKeywordDropKeywordEachKeywordElseKeywordEndKeywordEscapeKeywordExceptKeywordExcludeKeywordExclusiveKeywordExistsKeywordExplainKeywordFailKeywordFilterKeywordFirstKeywordFollowingKeywordForKeywordForeignKeywordFromKeywordFullKeywordGeneratedKeywordGlobKeywordGroupKeywordGroupsKeywordHavingKeywordIfKeywordIgnoreKeywordImmediateKeywordInKeywordIndexKeywordIndexedKeywordInitiallyKeywordInnerKeywordInsertKeywordInsteadKeywordIntersectKeywordIntoKeywordIsKeywordIsnullKeywordJoinKeywordKeyKeywordLastKeywordLeftKeywordLikeKeywordLimitKeywordMatchKeywordNaturalKeywordNoKeywordNotKeywordNothingKeywordNotnullKeywordNullKeywordNullsKeywordOfKeywordOffsetKeywordOnKeywordOrKeywordOrderKeywordOthersKeywordOuterKeywordOverKeywordPartitionKeywordPlanKeywordPragmaKeywordPrecedingKeywordPrimaryKeywordQueryKeywordRaiseKeywordRangeKeywordRecursiveKeywordReferencesKeywordRegexpKeywordReindexKeywordReleaseKeywordRenameKeywordReplaceKeywordRestrictKeywordRightKeywordRollbackKeywordRowKeywordRowsKeywordSavepointKeywordSelectKeywordSetKeywordStoredKeywordTableKeywordTempKeywordTemporaryKeywordThenKeywordTiesKeywordToKeywordTransactionKeywordTriggerKeywordUnboundedKeywordUnionKeywordUniqueKeywordUpdateKeywordUsingKeywordVacuumKeywordValuesKeywordViewKeywordVirtualKeywordWhenKeywordWhereKeywordWindowKeywordWithKeywordWithoutLiteralLiteralNumericUnaryOperatorBinaryOperatorDelimiter"

var _Type_index = [...]uint16{0, 7, 12, 15, 33, 45, 58, 68, 80, 90, 102, 115, 129, 139, 148, 158, 171, 191, 204, 216, 230, 239, 253, 264, 275, 287, 301, 314, 327, 342, 359, 372, 384, 398, 416, 434, 457, 472, 486, 503, 518, 531, 542, 555, 570, 579, 590, 601, 612, 622, 635, 648, 662, 678, 691, 705, 716, 729, 741, 757, 767, 781, 792, 803, 819, 830, 842, 855, 868, 877, 890, 906, 915, 927, 941, 957, 969, 982, 996, 1012, 1023, 1032, 1045, 1056, 1066, 1077, 1088, 1099, 1111, 1123, 1137, 1146, 1156, 1170, 1184, 1195, 1207, 1216, 1229, 1238, 1247, 1259, 1272, 1284, 1295, 1311, 1322, 1335, 1351, 1365, 1377, 1389, 1401, 1417, 1434, 1447, 1461, 1475, 1488, 1502, 1517, 1529, 1544, 1554, 1565, 1581, 1594, 1604, 1617, 1629, 1640, 1656, 1667, 1678, 1687, 1705, 1719, 1735, 1747, 1760, 1773, 1785, 1798, 1811, 1822, 1836, 1847, 1859, 1872, 1883, 1897, 1904, 1918, 1931, 1945, 1954}

func (i Type) String() string {
	if i >= Type(len(_Type_index)-1) {
		return "Type(" + strconv.FormatInt(int64(i), 10) + ")"
	}
	return _Type_name[_Type_index[i]:_Type_index[i+1]]
}

repository: tomarrell/lbadd

repo_name: tomarrell/lbadd


text:
// MainFrame.h : interface of the MainFrame class

#ifndef AFX_MAINFRAME_H__CC3E79CC_919D_411D_B552_9B7E4EC4F8CA__INCLUDED_
#define AFX_MAINFRAME_H__CC3E79CC_919D_411D_B552_9B7E4EC4F8CA__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif  // _MSC_VER > 1000

#include "ChildView.h"

class MainFrame : public CFrameWnd {
 public:
  MainFrame();
 protected:
  DECLARE_DYNAMIC(MainFrame)

// Attributes
 public:

// Operations
 public:

// Overrides
  //{{AFX_VIRTUAL(MainFrame)
  virtual BOOL PreCreateWindow(CREATESTRUCT &cs);
  virtual BOOL OnCmdMsg(UINT nID,
      int nCode,
      void *pExtra,
      AFX_CMDHANDLERINFO *pHandlerInfo);
  //}}AFX_VIRTUAL

// Implementation
 public:
  virtual ~MainFrame();
#ifdef _DEBUG
  virtual void AssertValid() const;
  virtual void Dump(CDumpContext &dc) const;
#endif
  void AddExporter(const std::string &strExporterName);
  void RemoveExporter(const std::string &strExporterName);
 protected:  // control bar embedded members
  CStatusBar m_wndStatusBar;
  CToolBar m_wndToolBar;
  CReBar m_wndReBar;
  ChildView m_wndView;

// Generated message map functions
 protected:
  //{{AFX_MSG(MainFrame)
  afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  afx_msg void OnSetFocus(CWnd *pOldWnd);
  afx_msg void OnPluginsView();
  afx_msg void OnPluginsReload();
  afx_msg void OnPluginsUnload();
  afx_msg void OnDestroy();
  //}}AFX_MSG
  afx_msg void OnExporter(UINT nID);
  DECLARE_MESSAGE_MAP()

 private:
  CMenu *GetExporterMenu();
  std::string GetPluginDirectory();

  int m_nNumExporterPlugins;
};

//{{AFX_INSERT_LOCATION}}
// Visual C++ will insert additional declarations before the previous line.

#endif // AFX_MAINFRAME_H__CC3E79CC_919D_411D_B552_9B7E4EC4F8CA__INCLUDED_

repository: theDrake/cpp-experiments

repo_name: theDrake/cpp-experiments

extension: h


text:
package stores

import (
	"context"
	"testing"
	"time"

	"github.com/stretchr/testify/require"

	"github.com/filecoin-project/go-state-types/abi"
)

var aSector = abi.SectorID{
	Miner:  2,
	Number: 9000,
}

func TestCanLock(t *testing.T) {
	lk := sectorLock{
		r: [FileTypes]uint{},
		w: FTNone,
	}

	require.Equal(t, true, lk.canLock(FTUnsealed, FTNone))
	require.Equal(t, true, lk.canLock(FTNone, FTUnsealed))

	ftAll := FTUnsealed | FTSealed | FTCache

	require.Equal(t, true, lk.canLock(ftAll, FTNone))
	require.Equal(t, true, lk.canLock(FTNone, ftAll))

	lk.r[0] = 1 // unsealed read taken

	require.Equal(t, true, lk.canLock(FTUnsealed, FTNone))
	require.Equal(t, false, lk.canLock(FTNone, FTUnsealed))

	require.Equal(t, true, lk.canLock(ftAll, FTNone))
	require.Equal(t, false, lk.canLock(FTNone, ftAll))

	require.Equal(t, true, lk.canLock(FTNone, FTSealed|FTCache))
	require.Equal(t, true, lk.canLock(FTUnsealed, FTSealed|FTCache))

	lk.r[0] = 0

	lk.w = FTSealed

	require.Equal(t, true, lk.canLock(FTUnsealed, FTNone))
	require.Equal(t, true, lk.canLock(FTNone, FTUnsealed))

	require.Equal(t, false, lk.canLock(FTSealed, FTNone))
	require.Equal(t, false, lk.canLock(FTNone, FTSealed))

	require.Equal(t, false, lk.canLock(ftAll, FTNone))
	require.Equal(t, false, lk.canLock(FTNone, ftAll))
}

func TestIndexLocksSeq(t *testing.T) {
	ctx, cancel := context.WithTimeout(context.Background(), time.Second)

	ilk := &indexLocks{
		locks: map[abi.SectorID]*sectorLock{},
	}

	require.NoError(t, ilk.StorageLock(ctx, aSector, FTNone, FTUnsealed))
	cancel()

	ctx, cancel = context.WithTimeout(context.Background(), time.Second)
	require.NoError(t, ilk.StorageLock(ctx, aSector, FTNone, FTUnsealed))
	cancel()

	ctx, cancel = context.WithTimeout(context.Background(), time.Second)
	require.NoError(t, ilk.StorageLock(ctx, aSector, FTNone, FTUnsealed))
	cancel()

	ctx, cancel = context.WithTimeout(context.Background(), time.Second)
	require.NoError(t, ilk.StorageLock(ctx, aSector, FTUnsealed, FTNone))
	cancel()

	ctx, cancel = context.WithTimeout(context.Background(), time.Second)
	require.NoError(t, ilk.StorageLock(ctx, aSector, FTNone, FTUnsealed))
	cancel()

	ctx, cancel = context.WithTimeout(context.Background(), time.Second)
	require.NoError(t, ilk.StorageLock(ctx, aSector, FTNone, FTUnsealed))
	cancel()
}

func TestIndexLocksBlockOn(t *testing.T) {
	test := func(r1 SectorFileType, w1 SectorFileType, r2 SectorFileType, w2 SectorFileType) func(t *testing.T) {
		return func(t *testing.T) {
			ctx, cancel := context.WithCancel(context.Background())

			ilk := &indexLocks{
				locks: map[abi.SectorID]*sectorLock{},
			}

			require.NoError(t, ilk.StorageLock(ctx, aSector, r1, w1))

			sch := make(chan struct{})
			go func() {
				ctx, cancel := context.WithCancel(context.Background())

				sch <- struct{}{}

				require.NoError(t, ilk.StorageLock(ctx, aSector, r2, w2))
				cancel()

				sch <- struct{}{}
			}()

			<-sch

			select {
			case <-sch:
				t.Fatal("that shouldn't happen")
			case <-time.After(40 * time.Millisecond):
			}

			cancel()

			select {
			case <-sch:
			case <-time.After(time.Second):
				t.Fatal("timed out")
			}
		}
	}

	t.Run("readBlocksWrite", test(FTUnsealed, FTNone, FTNone, FTUnsealed))
	t.Run("writeBlocksRead", test(FTNone, FTUnsealed, FTUnsealed, FTNone))
	t.Run("writeBlocksWrite", test(FTNone, FTUnsealed, FTNone, FTUnsealed))
}

func TestIndexLocksBlockWonR(t *testing.T) {
	ctx, cancel := context.WithCancel(context.Background())

	ilk := &indexLocks{
		locks: map[abi.SectorID]*sectorLock{},
	}

	require.NoError(t, ilk.StorageLock(ctx, aSector, FTUnsealed, FTNone))

	sch := make(chan struct{})
	go func() {
		ctx, cancel := context.WithCancel(context.Background())

		sch <- struct{}{}

		require.NoError(t, ilk.StorageLock(ctx, aSector, FTNone, FTUnsealed))
		cancel()

		sch <- struct{}{}
	}()

	<-sch

	select {
	case <-sch:
		t.Fatal("that shouldn't happen")
	case <-time.After(40 * time.Millisecond):
	}

	cancel()

	select {
	case <-sch:
	case <-time.After(time.Second):
		t.Fatal("timed out")
	}
}

repository: ipfs-force-community/lotus

repo_name: ipfs-force-community/lotus

gha_license_id: NOASSERTION


text:
#include "PlanetEngine.h"
#include "Platform/PlanetWindows.h"
#include "Platform/Window.h"

#if PLATFORM_WIN
#include "D3DRenderSystem.h"
#include <shellscalingapi.h>

int CALLBACK WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nShowCmd)
{
    PlanetLogging::init_logging();

    SetProcessDpiAwareness(PROCESS_PER_MONITOR_DPI_AWARE);
    Window window{1280, 720};
    window.SetWindowName("PlanetEngine");
    D3DRenderSystem* renderSystem = new D3DRenderSystem{window.GetWindowHandle()};
    PlanetEngine* eng = new PlanetEngine{renderSystem};

    eng->Run();
    int code = eng->GetExitCode();

    // eng->Shutdown();
    delete eng;
    delete renderSystem;

    return code;
}
#endif

repository: Nick-Pearson/PlanetEngine

repo_name: Nick-Pearson/PlanetEngine

extension: cpp


text:
using System;
using System.Globalization;
using System.Linq;
using System.Reflection;
using Windows.UI;

namespace Caliburn.Light
{
    /// <summary>
    /// Helper to convert a color code to a <see cref="Color"/>.
    /// </summary>
    public static class ColorCode
    {
        /// <summary>
        /// Converts a HEX color code to a <see cref="Color"/>.
        /// </summary>
        /// <param name="hexValue">The hexadecimal value.</param>
        /// <returns>The color.</returns>
        public static Color ToColor(string hexValue)
        {
            if (!hexValue.Contains("#")) // might be a named color
            {
                var colorProperty =
                    typeof (Colors).GetRuntimeProperties()
                        .FirstOrDefault(p => string.Compare(p.Name, hexValue, StringComparison.OrdinalIgnoreCase) == 0);
                if (colorProperty == null)
                    throw new ArgumentException("This is not a known color name. Use a proper hex color number.", "hexValue");

                return (Color)colorProperty.GetValue(null);
            }

            hexValue = hexValue.Replace("#", string.Empty);
            if (hexValue.Length < 6)
                throw new ArgumentException("This does not appear to be a proper hex color number", "hexValue");

            byte a = 255;
            var startPosition = 0;

            // the case where alpha is provided
            if (hexValue.Length == 8)
            {
                a = byte.Parse(hexValue.Substring(0, 2), NumberStyles.HexNumber);
                startPosition = 2;
            }

            var r = byte.Parse(hexValue.Substring(startPosition, 2), NumberStyles.HexNumber);
            var g = byte.Parse(hexValue.Substring(startPosition + 2, 2), NumberStyles.HexNumber);
            var b = byte.Parse(hexValue.Substring(startPosition + 4, 2), NumberStyles.HexNumber);

            return Color.FromArgb(a, r, g, b);
        }
    }
}


text:
include(CMakeParseArguments)

function(generate_assembly)
    set(options NO_PLURAL_PREFIX)
    set(oneValueArgs TARGET FILE PREFIX OUTPUT_PATH)
    set(multiValueArgs)
    cmake_parse_arguments(GA "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})

    if(NOT GA_OUTPUT_PATH)
        set(GA_OUTPUT_PATH ${CMAKE_BINARY_DIR}/listings)
    endif()

    set(GA_OUTPUT_PATH ${GA_OUTPUT_PATH}/${GA_TARGET}/${CMAKE_BUILD_TYPE})

    if(NOT ${GA_OUTPUT_PATH})
        file(MAKE_DIRECTORY ${GA_OUTPUT_PATH})
    endif()

    if(MSVC)
      target_compile_options(${GA_TARGET} PRIVATE "/Fa${GA_OUTPUT_PATH}/${GA_FILE}.asm" /FA)
    else()
        if(NOT GA_PREFIX)
            set(working_directory ${CMAKE_BINARY_DIR})
        else()
            if(NOT GA_NO_PLURAL_PREFIX)
                set(GA_PREFIX ${GA_PREFIX}s)
            endif()

            set(working_directory ${CMAKE_BINARY_DIR}/${GA_PREFIX})
        endif()

        message(INFO "[GENERATE_ASSEMBLY] Invoking make ${GA_FILE}.s at directory ${working_directory}")

        add_custom_command(TARGET ${GA_TARGET}
                           POST_BUILD
                           COMMAND make ARGS ${GA_FILE}.s
                           WORKING_DIRECTORY ${working_directory}
                           COMMAND ${CMAKE_COMMAND} -E copy
                               "${working_directory}/CMakeFiles/${GA_TARGET}.dir/${GA_FILE}.cpp.s"
                               "${GA_OUTPUT_PATH}/${GA_FILE}.s"
                           WORKING_DIRECTORY ${working_directory})
    endif()
endfunction()

extension: cmake