需要的環境:
檔案: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");