public double[] getIrradianceCalibration() { double[] result = null; mut.WaitOne(); try { int error = 0; float[] irrad_f = new float[pixels]; SeaBreezeWrapper.seabreeze_read_irrad_calibration(specIndex, ref error, ref irrad_f[0], pixels); if (checkSeaBreezeError("read_irrad_calibration", error)) { result = new double[pixels]; Array.Copy(irrad_f, result, pixels); } } catch (Exception e) { logger.log("Error getting irradiance calibration: {0}", e); } finally { mut.ReleaseMutex(); } return(result); }