天天看點

固高運動控制卡的使用 <1> 啟動程式以及環境(C#版)

需要的環境:

檔案:ExtModule.cfg ; 

           GTS800_1.cfg (這裡以GTS-400-PT型号的控制卡為例);

           gts.cs

啟動類:

public class GTS_Start
    {
        protected short _cardNum;
        protected short _mdl;
        protected bool _bHaveFather;
        protected string _sFile;
        protected string _sExtFile = "ExtModule.cfg";

        public bool m_bCardOK = false;
        public GTS_Start(short cardNum, string sFile, short mdl = -1, bool bHaveFather = false, string sExtFile = "ExtModule.cfg")
        {
            _cardNum = cardNum;
            _mdl = mdl;
            _bHaveFather = bHaveFather;
            //_sFile = "GTS800_" + (_cardNum + 1).ToString() + ".cfg";
            _sFile = sFile;
            _sExtFile = sExtFile;
            if (!_bHaveFather)//構造函數中調用虛拟函數時虛拟效果不起作用
                OpenCard();
        }
        ~GTS_Start()
        {
            Dispose();
        }
        public void Dispose()
        {
            if (!_bHaveFather)//析構函數中調用虛拟函數時虛拟效果不起作用
                CloseCard();
        }

        public virtual short OpenCard()
        {
            try
            {
                short srn;
                srn = GTS.GT_Open(_cardNum, 0, 1);
                if (0 == srn)
                    m_bCardOK = true;
                srn = GTS.GT_Reset(_cardNum);

                if (_mdl >= 0)
                {//擴充卡
                    srn = GTS.GT_OpenExtMdl(_cardNum, "gts.dll");
                    GTS.GT_ResetExtMdl(_cardNum);
                    srn = GTS.GT_LoadExtConfig(_cardNum, _sExtFile);
                }
                //主卡
                srn = GTS.GT_LoadConfig(_cardNum, _sFile);
                ClrStsAll();
                return srn;
            }
            catch (Exception ex)
            {
                System.Diagnostics.Trace.WriteLine(ex.Message);
            }
            return 0;
        }
        public virtual short CloseCard()
        {
            try
            {
                short srn = GTS.GT_Close(_cardNum);
                if (_mdl >= 0)
                    srn = GTS.GT_CloseExtMdl(_cardNum);
                return srn;
            }
            catch (Exception ex)
            {
                System.Diagnostics.Trace.WriteLine(ex.Message);
            }
            return 0;
        }
        public virtual short ClrStsAll()
        {
            return GTS.GT_ClrSts(_cardNum, 1, 8);
        }
    }
           

執行個體化:

//啟動固高運動卡
new GTS_Start(0, Application.StartupPath + "\\GTS800_1.cfg", -1, false, Application.StartupPath + "\\ExtModule.cfg");