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; } /// /// 生成字节码数组形式报文的函数 /// /// public byte[] ParseByteDatagram() { return ASCIIEncoding.ASCII.GetBytes(ParseStringDatagram()); } /// /// 生成字符串形式报文的函数 /// /// 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.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(); } } }