package Systems; import edu.wpi.first.wpilibj.DriverStation; import edu.wpi.first.wpilibj.I2C; public class RioDuinoAssembly { public static enum Color { Black, Red, Blue, Yellow, Orange, Green, Purple, Grey}; // particulars about the team number and color private static DriverStation.Alliance dsTeamColor; private static int dsTeamLocation; private static boolean initialized = false; private static Color teamColor; private static I2C i2cBus; public static void initialize() { if (!initialized) { i2cBus = new I2C(I2C.Port.kMXP, 4); initialized = true; setTeamColor(); } } public static void setTeamColor(Color col) { teamColor = col; sendColor(teamColor); } public static void setTeamColor() { dsTeamColor = DriverStation.getInstance().getAlliance(); dsTeamLocation = DriverStation.getInstance().getLocation(); if (dsTeamColor == DriverStation.Alliance.Red) teamColor = RioDuinoAssembly.Color.Red; else teamColor = RioDuinoAssembly.Color.Blue; sendTeamColor(teamColor); } public static void autonomousInit() { setTeamColor(); SendString("colorGreen"); SendString("autoInit"); } public static void teleopInit() { setTeamColor(); SendString("colorGreen"); SendString("teleopInit"); } public static void testInit() { setTeamColor(); SendString("colorOrange"); SendString("testInit"); } public static void disabledInit() { if (!initialized) initialize(); SendString("disabledInit"); } public static void sendColor(Color col) { switch (col) { case Red: SendString("colorRed"); break; case Blue: SendString("colorBlue"); break; case Yellow: SendString("colorYellow"); break; case Green: SendString("colorGreen"); break; case Purple: SendString("colorPurple"); break; case Grey: SendString("colorGrey"); break; case Black: default: SendString("colorBlack"); break; } } private static void sendTeamColor(Color col) { switch (col) { case Red: SendString("teamRed"); break; case Blue: default: SendString("teamBlue"); break; } } public static void SendStateChange(char state) { if (!initialized) return; i2cBus.write(0x02, state); } public static void SendString(String writeStr) { if (!initialized) return; char[] CharArray = writeStr.toCharArray(); byte[] WriteData = new byte[CharArray.length]; for (int i = 0; i < CharArray.length; i++) { WriteData[i] = (byte) CharArray[i]; } i2cBus.transaction(WriteData, WriteData.length, null, 0); } }