//全局
TcpClient tclient;
/// <summary>
/// 打开TCP连接
/// </summary>
/// <param name="ip">操作设备ip</param>
/// <param name="port">操作设备端口</param>
/// <returns></returns>
public bool OpenTcp(string ip, string port)
{
try
{
tclient = new TcpClient();
tclient.Connect(ip, Convert.ToInt32(port));
return true;
}
catch (Exception ex)
{
return false;
}
}
/// <summary>
/// 关闭TCP连接
/// </summary>
/// <returns></returns>
public bool CloseTcp()
{
try
{
if (tclient!=null)
{
tclient.Close();
}
return true;
}
catch (Exception)
{
return false;
}
}
/// <summary>
/// 发送显示的数据
/// </summary>
/// <param name="numberValue">要显示的数据,最大不可超过四位数</param>
/// <returns></returns>
public bool SendNumber(int numberValue)
{
try
{
string value = string.Empty;
if (numberValue < 10)
{
value = "99 01 02 00 0" + numberValue;
}
if (numberValue >= 10 && numberValue < 100)
{
value = "99 01 02 00 " + numberValue;
}
if (numberValue >= 100)
{
var stri = Convert.ToString(numberValue);
stri = stri.Insert(1, " ");
value = "99 01 02 0" + stri;
}
if (numberValue >= 1000)
{
var stri = Convert.ToString(numberValue);
stri = stri.Insert(2, " ");
value = "99 01 02 0" + stri;
}
byte[] data = HexStringToBytes(value);
NetworkStream ns = tclient.GetStream();
ns.Write(data, 0, data.Length);
return true;
}
catch (Exception ex)
{
return false;
}
}
/// <summary>
/// 发送语音播报
/// </summary>
/// <param name="broadcastValue">要播报的语音</param>
/// <returns></returns>
public bool SendBroadcast(string broadcastValue)
{
//语音发送
try
{
string voice = "#" + (broadcastValue);
byte[] buf = Encoding.Default.GetBytes(voice);
NetworkStream ns1 = tclient.GetStream();
ns1.Write(buf, 0, buf.Length);
return true;
}
catch (Exception)
{
return false;
}
}
/// <summary>
/// 十六进制转换
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
private static byte[] HexStringToBytes(string value)
{
string[] strArr = value.Trim().Split(' ');
byte[] b = new byte[strArr.Length];
//逐个字符变为16进制字节数据
for (int i = 0; i < strArr.Length; i++)
{
b[i] = Convert.ToByte(strArr[i], 16);
}
//按照指定编码将字节数组变为字符串
return b;
}
TCP使用TcpClient连接发送指令
于 2022-06-16 16:23:11 首次发布