示例#1
0
        public bool GetData(string fileName)
        {
            bool succes = false;

            this._exception = null;

            this.fileName = fileName;
            try
            {
                dataAccess.Open(this.fileName, CanberraDataAccessLib.OpenMode.dReadOnly, 8192);
            }
            catch (Exception ex)
            {
                //_exception = ex; //nothing should be here because always generates exception
            }
            try
            {
                this._aSTIME       = dataAccess.get_Param(CanberraDataAccessLib.ParamCodes.CAM_X_ASTIME, 0, 0).ToString();
                this._pLIVE        = Convert.ToDouble(dataAccess.get_Param(CanberraDataAccessLib.ParamCodes.CAM_X_PLIVE));
                this._pREAL        = Convert.ToDouble(dataAccess.get_Param(CanberraDataAccessLib.ParamCodes.CAM_X_PREAL));
                this._eLIVE        = Convert.ToDouble(dataAccess.get_Param(CanberraDataAccessLib.ParamCodes.CAM_X_ELIVE));
                this._eREAL        = Convert.ToDouble(dataAccess.get_Param(CanberraDataAccessLib.ParamCodes.CAM_X_EREAL));
                this._detectorName = dataAccess.get_Param(CanberraDataAccessLib.ParamCodes.CAM_T_DETNAME).ToString();

                succes = true;
            }
            catch (Exception ex)
            {
                _exception = ex;
            }

            try
            {
                dataAccess.Close(CanberraDataAccessLib.CloseMode.dNoUpdate);
            }
            catch (Exception ex)
            {
                _exception = ex;
            }

            return(succes);
        }
示例#2
0
        private void AddEfficiencyCalibrationFileByHeight(float height)
        {
            CanberraDataAccessLib.DataAccess effFile = null;
            try
            {
                var tmpl = "2,5";
                if (height != 2.5)
                {
                    tmpl = height.ToString();
                }

                string effFileName = Path.Combine(DetSet.EffCalFolder, Name, $"{Name}-eff-{tmpl}.CAL");

                if (!File.Exists(effFileName))
                {
                    Report.Notify(new DetectorMessage(Codes.ERR_DET_EFF_H_FILE_NF));
                    return;
                }

                effFile = new CanberraDataAccessLib.DataAccess();
                effFile.Open(effFileName);
                effFile.CopyBlock(_device, CanberraDataAccessLib.ClassCodes.CAM_CLS_GEOM);
                _device.Save("", true);
                Report.Notify(new DetectorMessage(Codes.INFO_DET_EFF_H_FILE_ADD));
            }
            catch (Exception ex)
            {
                Report.Notify(new DetectorMessage(Codes.ERR_DET_EFF_H_FILE_UNREG)
                {
                    DetailedText = ex.ToString()
                });
            }
            finally
            {
                if (effFile != null && effFile.IsOpen)
                {
                    effFile.Close();
                }
            }
        }
示例#3
0
        private void AddEfficiencyCalibrationFileByEnergy()
        {
            CanberraDataAccessLib.DataAccess engFile = null;

            try
            {
                string effFileName = Path.Combine(DetSet.EffCalFolder, $"{Name}", $"{Name}-energy.CAL");

                if (!File.Exists(effFileName))
                {
                    Report.Notify(new DetectorMessage(Codes.ERR_DET_EFF_ENG_FILE_NF)
                    {
                        DetailedText = $"File '{effFileName}' not found"
                    });
                    return;
                }

                engFile = new CanberraDataAccessLib.DataAccess();
                engFile.Open(effFileName);
                engFile.CopyBlock(_device, CanberraDataAccessLib.ClassCodes.CAM_CLS_SHAPECALRES);
                engFile.CopyBlock(_device, CanberraDataAccessLib.ClassCodes.CAM_CLS_CALRESULTS);
                _device.Save("", true);
                Report.Notify(new DetectorMessage(Codes.INFO_DET_EFF_ENG_FILE_ADD));
            }
            catch (Exception ex)
            {
                Report.Notify(new DetectorMessage(Codes.ERR_DET_EFF_ENG_FILE_UNREG)
                {
                    DetailedText = ex.ToString()
                });
            }
            finally
            {
                if (engFile != null && engFile.IsOpen)
                {
                    engFile.Close();
                }
            }
        }