using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace iWareCc.Conveyor.Datagram
|
{
|
public class GateDatagramParse
|
{
|
private GateDatagramProp Prop;
|
|
|
public GateDatagramParse(GateDatagramProp prop)
|
{
|
this.Prop = prop;
|
}
|
|
/// <summary>
|
/// 生成字节码数组形式报文的函数
|
/// </summary>
|
/// <returns></returns>
|
public byte[] ParseByteDatagram()
|
{
|
return ASCIIEncoding.ASCII.GetBytes(ParseStringDatagram());
|
}
|
/// <summary>
|
/// 生成字符串形式报文的函数
|
/// </summary>
|
/// <returns></returns>
|
public string ParseStringDatagram()
|
{
|
string startstr = "!";
|
string separator = "@"; //分割符号
|
string endFlag = "#";//结束标志
|
StringBuilder sb = new StringBuilder();
|
if (Prop.Name=="alarm")
|
{
|
sb.Append(Prop.Name)//端口名
|
.Append(separator)
|
.Append(Prop.Alarmcode)//报警信息
|
.Append(endFlag);
|
}
|
else if (Prop.Name == "sc")
|
{
|
sb.Append(Prop.Name)//端口名
|
.Append(separator)
|
.Append(Prop.Wind)//出库型材宽厚
|
.Append(Prop.Thick)
|
.Append(endFlag);
|
}
|
else
|
{
|
sb.Append(startstr)
|
.Append(Prop.Name)//端口名
|
.Append(separator)
|
.Append(Prop.Roll)//滚动信号
|
.Append(separator)
|
.Append(Prop.InOut)//出入库信号
|
.Append(endFlag);
|
}
|
return sb.ToString();
|
}
|
}
|
}
|