2
schangxiang@126.com
2024-08-16 b47c50a2a514def7374b32d7194b2c599cba5625
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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.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();
        }
    }
}