using System; using Microsoft.SPOT; namespace instrumentModel { public abstract class InstrumentDevice { //Type Definitions //public enum DevType { Generic, I2C, SPI, Serial, TCP, UDP }; // perhaps reorg these as interfaces. public enum DevStatus { Ready, Initializing, Error, Ok }; private DevStatus IDStatus; // private DevType IDType; private String name; public InstrumentDevice(String nameid) { // Initialize IDStatus = DevStatus.Initializing; //IDType = deviceType; name = nameid; IDStatus = initialize(); } ~InstrumentDevice() { IDStatus = disconnect(); } // Put you device specific initialization code here. abstract public DevStatus initialize(); // IO functions abstract public DevStatus connect(); abstract public DevStatus read(String msg); abstract public DevStatus write(String msg); abstract public DevStatus disconnect(); // Process read data abstract public DevStatus process(String msg); abstract public DevStatus printState(); public String Id { get { return name; } set { name = value; } } } }