public TempSensor(string physicalChannelName, AIVoltageUnits aiUnits, string tempUnits)
        {
            this.tempUnits = tempUnits;

            readTask = new NationalInstruments.DAQmx.Task();
            reader   = new AnalogSingleChannelReader(readTask.Stream);
            readTask.AIChannels.CreateVoltageChannel(physicalChannelName, "", AITerminalConfiguration.Rse, -10.0, 10.0, aiUnits);
        }
        public TemperatureController(double timeStep, string tempUnits, string aiChannel, AIVoltageUnits aiUnits, string aoChannel, AOVoltageUnits aoUnits) : base(timeStep)
        {
            sensor    = new TempSensor(aiChannel, aiUnits, tempUnits);
            writeTask = new NationalInstruments.DAQmx.Task();
            writer    = new AnalogSingleChannelWriter(writeTask.Stream);

            writeTask.AOChannels.CreateVoltageChannel(aoChannel, "", -10.0, 10.0, aoUnits);

            sensor.TemperatureCoefficient = 0.01; //temperature controller inherently contains a temp sensor with 0.01mV/K coefficient
        }