--- /dev/null
+package lejos.nxt;\r
+\r
+import lejos.nxt.*;\r
+import java.util.ArrayList;\r
+\r
+/**\r
+*\r
+* Abstraction for a Lattebox NXT Extension Kit with Lattebox 10-Axis Servo Kit\r
+* http://www.lattebox.com\r
+* \r
+* The physical design is:\r
+* \r
+* *********************************\r
+* * NXT PORT *\r
+* * NXT PORT SC4 SC3 SC2 SC1 *\r
+* * NXT PORT PIN SC4 SC3 SC2 SC1 *\r
+* * NXT PORT SC4 SC3 SC2 SC1 *\r
+* * SC4 SC3 SC2 SC1 * \r
+* * *\r
+* * PIN *\r
+* * *\r
+* *********************************\r
+*\r
+* @author Juan Antonio Brenha Moral\r
+*/\r
+public class NXTe extends I2CSensor{\r
+ //LSC\r
+ private ArrayList arrLSC;\r
+ private final int MAXIMUM_LSC = 4;\r
+ \r
+ //Exception handling\r
+ private final String ERROR_SERVO_DEFINITION = "Error with Servo Controller definition";\r
+ private final String ERROR_SPI_CONFIGURATION = "Error in SPI Configuration";\r
+ \r
+ //I2C\r
+ private SensorPort portConnected;\r
+ private final byte SPI_PORT[] = {0x01,0x02,0x04,0x08};//SPI Ports where you connect LSC\r
+ public static final byte NXTE_ADDRESS = 0x28;\r
+ private final byte REGISTER_IIC = (byte)0xF0;//NXTe IIC address\r
+ private int I2C_Response;\r
+ \r
+ /**\r
+ * Constructor\r
+ * \r
+ * @param port\r
+ */\r
+ public NXTe(SensorPort port) throws Exception{\r
+ super(port);\r
+\r
+ port.setType(TYPE_LOWSPEED_9V);\r
+ port.setMode(MODE_RAW);\r
+ \r
+ portConnected = port;\r
+ \r
+ arrLSC = new ArrayList();\r
+ \r
+ this.setAddress((int) NXTE_ADDRESS);\r
+\r
+ I2C_Response = this.sendData((int)this.REGISTER_IIC, (byte)0x0c);\r
+\r
+ if(I2C_Response != 0){\r
+ throw new Exception(this.ERROR_SPI_CONFIGURATION); \r
+ }\r
+ }\r
+ \r
+ /**\r
+ * Add a LSC\r
+ * \r
+ * @param SPI_PORT\r
+ * @throws Exception\r
+ */\r
+ public void addLSC(int SPI_PORT) throws Exception{\r
+ if(arrLSC.size() <= MAXIMUM_LSC){\r
+ LSC LSCObj = new LSC(this.portConnected,this.SPI_PORT[SPI_PORT]);\r
+ arrLSC.add(LSCObj);\r
+ }else{\r
+ throw new Exception(ERROR_SERVO_DEFINITION);\r
+ } \r
+ } \r
+ \r
+ /**\r
+ * Get a LSC\r
+ * \r
+ * @param index\r
+ * @return LSC\r
+ */\r
+ public LSC getLSC(int index){\r
+ return (LSC) arrLSC.get(index);\r
+ }\r
+}
\ No newline at end of file