OSDN Git Service

lejos_NXJ_win32_0_6_0beta.zip
[nxt-jsp/lejos_nxj.git] / nxtOSEK / lejos_nxj / src / java / classes / lejos / nxt / NXTe.java
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/NXTe.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/NXTe.java
new file mode 100644 (file)
index 0000000..a6f5aef
--- /dev/null
@@ -0,0 +1,90 @@
+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