Exemplo n.º 1
0
        public void ThroughAnalysisStackTest()
        {
            //Assert.Fail();
            var dynamicBuffer = new YDynamicBuffer(1024);
            var buffer        = new byte[] {
                0x68, 0x31, 0x30, 0x30, 0x31, 0x38, 0x30, 0x30, 0x31, 0x69, 0x02, 0x66, 0x02, 0xF4, 0x08, 0x01, 0xF4, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0xF5, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0xF6, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0xF7, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0xF8, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0xF9, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0xFA, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0xFB, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0xFC, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0xFE, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0xFF, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x05, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x07, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x09, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x0A, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x0B, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x0C, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x0D, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x0E, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x0F, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x11, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x12, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x34, 0x00, 0x01, 0x3C, 0xB4, 0x39, 0x58, 0x08, 0x02, 0x35, 0x00, 0x01, 0x3C, 0x8B, 0x43, 0x96, 0x08, 0x02, 0x36, 0x00, 0x01, 0x40, 0x39, 0x99, 0x9A, 0x08, 0x02, 0x37, 0x00, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x08, 0x02, 0x38, 0x00, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x08, 0x02, 0x39, 0x00, 0x01, 0x41, 0x20, 0x00, 0x00, 0x08, 0x02, 0x3A, 0x00, 0x01, 0x41, 0x20, 0x00, 0x00, 0x08, 0x02, 0x3B, 0x00, 0x01, 0x41, 0x05, 0x3F, 0x7D, 0x08, 0x02, 0x3C, 0x00, 0x01, 0x40, 0x86, 0x56, 0x04, 0x08, 0x02, 0x3D, 0x00, 0x01, 0x40, 0x07, 0x8D, 0x50, 0x08, 0x02, 0x3E, 0x00, 0x01, 0x3F, 0x88, 0xB4, 0x39, 0x08, 0x02, 0x3F, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x40, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x41, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x42, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x43, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x44, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x45, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x46, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x47, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x14, 0x00, 0x01, 0x43, 0x20, 0x00, 0x00, 0x08, 0x02, 0x15, 0x00, 0x01, 0x43, 0x1E, 0x00, 0x00, 0x08, 0x02, 0x16, 0x00, 0x01, 0x43, 0x20, 0x00, 0x00, 0x08, 0x02, 0x17, 0x00, 0x01, 0x43, 0x22, 0x00, 0x00, 0x08, 0x02, 0x18, 0x00, 0x01, 0x43, 0x1E, 0x00, 0x00, 0x08, 0x02, 0x19, 0x00, 0x01, 0x43, 0x20, 0x00, 0x00, 0x08, 0x02, 0x1A, 0x00, 0x01, 0x43, 0x22, 0x00, 0x00, 0x08, 0x02, 0x1B, 0x00, 0x01, 0x43, 0x24, 0x00, 0x00, 0x08, 0x02, 0x1C, 0x00, 0x01, 0x43, 0x1E, 0x00, 0x00, 0x08, 0x02, 0x1D, 0x00, 0x01, 0x43, 0x20, 0x00, 0x00, 0x08, 0x02, 0x1E, 0x00, 0x01, 0x43, 0x22, 0x00, 0x00, 0x08, 0x02, 0x1F, 0x00, 0x01, 0x43, 0x23, 0x00, 0x00, 0x08, 0x02, 0x20, 0x00, 0x01, 0x43, 0x22, 0x00, 0x00, 0x08, 0x02, 0x21, 0x00, 0x01, 0x43, 0x22, 0x00, 0x00, 0x08, 0x02, 0x22, 0x00, 0x01, 0x43, 0x21, 0x00, 0x00, 0x08, 0x02, 0x23, 0x00, 0x01, 0x43, 0x23, 0x00, 0x00, 0x08, 0x02, 0x24, 0x00, 0x01, 0x43, 0x27, 0x00, 0x00, 0x08, 0x02, 0x25, 0x00, 0x01, 0x43, 0x27, 0x00, 0x00, 0x08, 0x02, 0x26, 0x00, 0x01, 0x43, 0x27, 0x00, 0x00, 0x08, 0x02, 0x27, 0x00, 0x01, 0x43, 0x28, 0x00, 0x00, 0x08, 0x02, 0x28, 0x00, 0x01, 0x43, 0x28, 0x00, 0x00, 0x08, 0x02, 0x29, 0x00, 0x01, 0x43, 0x22, 0x00, 0x00, 0x08, 0x02, 0x2A, 0x00, 0x01, 0x43, 0x22, 0x00, 0x00, 0x08, 0x02, 0x2B, 0x00, 0x01, 0x43, 0x22, 0x00, 0x00, 0x08, 0x02, 0x2C, 0x00, 0x01, 0x43, 0x22, 0x00, 0x00, 0x08, 0x02, 0x2D, 0x00, 0x01, 0x43, 0x22, 0x00, 0x00, 0x08, 0x02, 0x2E, 0x00, 0x01, 0x43, 0x27, 0x00, 0x00, 0x08, 0x02, 0x2F, 0x00, 0x01, 0x43, 0x27, 0x00, 0x00, 0x08, 0x02, 0x30, 0x00, 0x01, 0x43, 0x27, 0x00, 0x00, 0x08, 0x02, 0x31, 0x00, 0x01, 0x43, 0x27, 0x00, 0x00, 0x08, 0x02, 0x32, 0x00, 0x01, 0x43, 0x27, 0x00, 0x00, 0x08, 0x02, 0x33, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0xC0, 0x99, 0x0D
            };

            var analysis = new SmAnalysis(dynamicBuffer, new LoggerService("C:\\HmiPro\\Log"));
            var models   = analysis.ThroughAnalysisStack(buffer, 0, buffer.Length);
            int l        = 0;

            foreach (var model in models)
            {
                model.SmParams.ForEach(sm => {
                    Console.WriteLine(sm.ParamCode + ":" + sm.GetSignalData());
                    try {
                        ++l;
                        sm.GetSignalData();
                    } catch (Exception e) {
                        Console.WriteLine("错误数据:" + sm.GetDataHexStr());
                        Console.WriteLine("错误参数:" + sm.ParamCode);
                    }
                });
            }
            //var str =
            //    "683130303137393031690266034E0801F40A01D0983EDE0801F50A012F683DE10801F60A018E393CE30801F70A01000000000801F80A01000000000801F90A01000000000801FA0A01000000000801FB0A01000000000801FC0A01000000000801FD0A01000000000801FE0A01999A41F10801FF0A01000042540802000A01000000000802010A01000042540802020A01000041400802030A01000000000802040A01000000000802050A01000000000802060A01000000000802070A01000000000802080A01000043C80802090A01555543AD08020A0A01C28F3C7508020B0A010000408008020C0A010000000008020D0A010000000008020E0A010000000008020F0A01000000000802100A01000000000802110A01000000000802120A010FF049740802130A0116F049740802140A0123F049740802150A01B91A461E0802160A0123F049740802170A01000000000802180A01000000000802190A010000000008021A0A010000000008021B0A010000000008021C0A010000000008021D0A01147B410208021E0A010000000008021F0A01000000000802200A01000000000602210A0000000602220A0002490602230A0002000602240101005A060225010100610602260101003A0602270101003F060228010100540602290101006B06022A0101009306022B0101004606022C0101000006022D0101000006022E0101000006022F010100000602300101000006023101010000060232010100000602330101000006023401010000060235010100FA0602360101000006023701010000060238010104E40602390101053A06023A010105B806023B010105E706023C010105DF06023D0101063F06023E0101062106023F010105EA06024001010000060241010100000602420101013706024301010139060244010101380602450101015B0602460101012A0602470101013E060248010101520602490101000006024A0101000006024B0101000006024C0101000006024D0101000006024E0101000006024F01010000060250010100000602510101000006025201010000060253010100000602540101000006025501010000060256010104E206025701010546060258010105AA060259010105DC06025A010105DC06025B0101064006025C0101064006025D0101061806025E0101000006025F010100008E390D";
            //StringBuilder builder = new StringBuilder();
            //string tmp = "";
            //for (int i = 0; i < str.Length; i++) {
            //    if (i % 2 == 0) {
            //        builder.Append(tmp);
            //        tmp = "0x" + str[i];
            //    } else {
            //        tmp += str[i];
            //        if (i != 0 && i != str.Length - 1) {
            //            tmp += ",";
            //        }
            //    }
            //}
            //builder.Append(tmp);
            //Console.WriteLine(builder);
        }
Exemplo n.º 2
0
 /// <summary>
 /// 销毁
 /// </summary>
 public void Dispose()
 {
     socketBuffer = null;
 }
Exemplo n.º 3
0
 public SmAnalysis(YDynamicBuffer buffer, LoggerService logger)
 {
     socketBuffer = buffer;
     Logger       = logger;
 }