using System.Threading;
using System.Threading.Tasks;
using LLAirtightApi;
namespace SLZ_4
{
public class DeviceObject
{
public Airtight airtightObj;
public bool bExit;
public bool bStatus;
public TEST_PARAM testInfo;
public DEVICE_PARAM pDeviceInfo;
public int groupId = -1; //测试组号
public CONFIG_PARAM configParam; //设备测试参数
public VERSION_PARAM versionInfo; //版本信息
///
/// 创建设备对象
///
/// 仪器类型
/// 协议类型
public DeviceObject(ref DEVICE_PARAM pDev)
{
pDeviceInfo = pDev;
bExit = false;
airtightObj = new Airtight(pDev.iDevType, pDev.iProtocol);
testInfo = new TEST_PARAM();
testInfo.chTest = new TEST_CHANNEL[4];
configParam = new CONFIG_PARAM();
Task.Run(() =>
{
while (!bExit)
{
if (!bStatus)
{
airtightObj.AirtightInit(pDeviceInfo.sDevAddr, pDeviceInfo.iPort, pDeviceInfo.iSlaveId);
if (airtightObj.Open())
{
Thread.Sleep(100);
//获取测试参数
if (airtightObj.GetConfig(ref configParam) > 0)
{
bStatus = true;
//airtightObj.GetVersion(ref versionInfo);
}
else
{
airtightObj.Close();
bStatus = false;
}
}
}
else
{
//if (groupId == -1)
//{
// groupId = airtightObj.GetGroupId();
//}
if (airtightObj.GetTestInfo(ref testInfo) > 0)
{
bStatus = true;
}
else
{
airtightObj.Close();
bStatus = false;
}
}
Thread.Sleep(100);
}
airtightObj.Close();
airtightObj = null;
});
}
public bool Start(bool bStart)
{
if (bStatus)
{
return airtightObj.Start(bStart);
}
return false;
}
public int GetGroupId()
{
if (bStatus)
{
return airtightObj.GetGroupId();
}
return -1;
}
public bool SetGroupId(int iId)
{
if (bStatus)
{
return airtightObj.SetGroupId(iId);
}
return false;
}
public int GetConfig(ref CONFIG_PARAM pInfo)
{
if (bStatus)
{
int nRet = airtightObj.GetConfig(ref pInfo);
if (nRet > 0)
{
configParam = pInfo;
return nRet;
}
}
return 0;
}
public bool SetConfig(ref CONFIG_PARAM configInfo)
{
if (bStatus)
{
return airtightObj.SetConfig(ref configInfo);
}
return false;
}
public int GetConfig(ref CONFIG_PARAM_LL30 configInfo)
{
if (bStatus)
{
return airtightObj.GetConfig(ref configInfo);
}
return 0;
}
public bool SetConfig(ref CONFIG_PARAM_LL30 configInfo)
{
if (bStatus)
{
return airtightObj.SetConfig(ref configInfo);
}
return false;
}
public int GetFunction(ref FUNCTION_PARAM functionInfo)
{
if (bStatus)
{
return airtightObj.GetFunction(ref functionInfo);
}
return 0;
}
public bool SetFunction(ref FUNCTION_PARAM functionInfo)
{
if (bStatus)
{
return airtightObj.SetFunction(ref functionInfo);
}
return false;
}
public int GetVersion(ref VERSION_PARAM version)
{
if (bStatus)
{
return airtightObj.GetVersion(ref version);
}
return 0;
}
public int GetLanguage()
{
if (bStatus)
{
return airtightObj.GetLanguage();
}
return 0;
}
public bool SetLanguage(int iLanguage)
{
if (bStatus)
{
return airtightObj.SetLanguage(iLanguage);
}
return false;
}
public int GetPassword(ref PASSWORD_PARAM password)
{
if (bStatus)
{
return airtightObj.GetPassword(ref password);
}
return 0;
}
public bool SetPassword(ref PASSWORD_PARAM password)
{
if (bStatus)
{
return airtightObj.SetPassword(ref password);
}
return false;
}
public int GetGroup(ref GROUP_PARAM group)
{
if (bStatus)
{
return airtightObj.GetGroup(ref group);
}
return 0;
}
public bool SetGroup(ref GROUP_PARAM group)
{
if (bStatus)
{
return airtightObj.SetGroup(ref group);
}
return false;
}
}
}