package com.jopdesign.io;
import com.jopdesign.sys.Const;
import com.jopdesign.sys.JVMHelp;
import com.jopdesign.sys.Native;
public class I2CFactory extends IOFactory {
private I2Cport iic_A;
private I2Cport iic_B;
// Handles should be the first static fields!
private static int I2C_A__M_PTR;
private static int I2C_A_M_MTAB;
private static int I2C_B__M_PTR;
private static int I2C_B_M_MTAB;
I2CFactory() {
iic_A = (I2Cport) makeHWObject(new I2Cport(),Const.I2C_A_BASE, 0);
iic_B = (I2Cport) makeHWObject(new I2Cport(),Const.I2C_B_BASE, 1);
};
// that has to be overridden by each sub class to get
// the correct cp
private static Object makeHWObject(Object o, int address, int idx) {
int cp = Native.rdIntMem(Const.RAM_CP);
return JVMHelp.makeHWObject(o, address, idx, cp);
}
static I2CFactory single = new I2CFactory();
public static I2CFactory getFactory() {
return single;
}
public I2Cport getI2CportA() { return iic_A; }
public I2Cport getI2CportB() { return iic_B; }
}