string ls = null;
/// <summary>
/// 根据开阀度数打开阀门
/// </summary>
/// <param name="ls_CmdType">指令类型</param>
/// <returns></returns>
private void SendCommand(string ls_CmdType,string ls_CmdTypeStr,int i)
{
DataTable dt = null;
string terstr = null;//临时数据表存储“H_Termina”
string ls_teradds = null;//变量TerAdds
string ls_str = null;//组合参数
//string ls_wk = null;//临时TerminalID
string ls_TerRemark = null;//该设备所属com口
try
{
if (ltvEmp.Items.Count > 0)
{
if (i == -1)
{
terstr = ltvEmp.SelectedItems[0].SubItems[1].Text;
}
else
{
terstr = ltvEmp.Items[i].SubItems[1].Text;
}
isml = terstr;
Reclb = 1;
dt = dbr.getTable("select TerAdds,TerRemark from H_Termina where TerminalID = '" + isml + "'");
ls_teradds = dt.Rows[0][0].ToString();
ls_TerRemark = dt.Rows[0][1].ToString();
switch (ls_CmdType)//如果是开阀就按此格式添加
{
case "K"://开/关阀
ls_str = "I" + ls_teradds.Substring(ls_teradds.Length - 4, 4)
+ ls_TerRemark
+ isml.Substring(isml.Length - 2, 2)
+ ls_CmdType
+ ls_CmdTypeStr;
break;
case "J"://允许巡逻
ls_str = "I" + ls_teradds.Substring(ls_teradds.Length - 4, 4)
+ "000"
+ ls_CmdType;
break;
case "C"://禁止巡逻
ls_str = "I" + ls_teradds.Substring(ls_teradds.Length - 4, 4)
+ "000"
+ ls_CmdType;
break;
case "V"://检查温度
ls_str = "L" + ls_teradds.Substring(ls_teradds.Length - 4, 4)
+ ls_TerRemark
+ "FF"
+ ls_CmdType;
break;
case "T"://检查时间
ls_str = "L" + ls_teradds.Substring(ls_teradds.Length - 4, 4)
+ ls_TerRemark
+ "FF"
+ ls_CmdType;
break;
case "M"://置模式
ls_str = "I" + ls_teradds.Substring(ls_teradds.Length - 4, 4)
+ ls_TerRemark
+ isml.Substring(isml.Length - 2, 2)
+ ls_CmdType
+ ls_CmdTypeStr;
break;
case "H"://搜索汇接器指令1
ls_str = "I0000000J";
break;
case "H2"://搜索汇接器指令2
ls_str = "L0000000X";
break;
default:
ls_str = null;
break;
}
string model = protocol.Getinstance(ls_str)._Model;
756行 spPort.Write(model);//将指令写入串口缓冲区
dt.Clear();
dt.Dispose();
spPort.DiscardOutBuffer();//清理输出缓冲区
spPort.DiscardInBuffer();//清理输入缓冲区
//new protocol().Dispose();//释放类资源
//}
}
}
catch (System.Exception e)
{
MessageBox.Show(e.ToString(), "警告");
}
}