package com.jopdesign.io; import com.jopdesign.sys.Const; import com.jopdesign.sys.JVMHelp; import com.jopdesign.sys.Native; public class HwScopeEnvironmentFactory extends IOFactory { private HWSensorM sensM; private HWSensorC sensC; // Handles should be the first static fields! private static int SENS_M_PTR; private static int SENS_M_MTAB; private static int SENS_C_PTR; private static int SENS_C_MTAB; HwScopeEnvironmentFactory() { sensM = (HWSensorM) makeHWObject(new HWSensorM(),Const.SENS_M_BASE, 0); sensC = (HWSensorC) makeHWObject(new HWSensorC(),Const.SENS_C_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 HwScopeEnvironmentFactory single = new HwScopeEnvironmentFactory(); public static HwScopeEnvironmentFactory getEnvironmentFactory() { return single; } public HWSensorM getSensM() { return sensM; } public HWSensorC getSensC() { return sensC; } }