Beispiel #1
0
        private void Form1_Load(object sender, EventArgs e)
        {
            LCYHashCal = new lcyHashCal();
            needHash   = new List <byte[]>();
            FileStream fs;

            fs = new FileStream("Hash.txt", FileMode.Open);
            StreamReader sw = new StreamReader(fs);

            fs.Seek(0, SeekOrigin.Begin);
            string str;

            while (true)
            {
                try
                {
                    str = sw.ReadLine();
                    byte[] h = WFNetLib.StringFunc.StringsFunction.strToHexByte(str, " ");
                    needHash.Add(h);
                }
                catch                // (System.Exception ex)
                {
                    break;
                }
            }
            //关闭流
            sw.Close();
            fs.Close();            /**/
        }
Beispiel #2
0
        private void toolStripButton4_Click(object sender, EventArgs e)
        {
            byte[,] TXbuf = new byte[0x11, 0x0b] {
                { 0x15, 0x01, 0x7C, 0xFE, 0xD6, 0x5C, 0x68, 0xFF, 0x98, 0x9C, 0x00 }, //0
                { 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //1
                { 0x96, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //2
                { 0x96, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //3
                { 0x96, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //4
                { 0x96, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //5
                { 0x96, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //6
                { 0x96, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //7
                { 0x96, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //8
                { 0x96, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //9
                { 0x96, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //A--psw
                { 0x96, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //B--sum all
                { 0xA0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //C
                { 0xA0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //D
                { 0xA0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //E
                { 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //F
                { 0x9A, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //0
            };
            byte[,] RXbuf = new byte[0x11, 0x0b] {
                { 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //0
                { 0x8B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //1
                { 0x8B, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //2
                { 0x8B, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //3
                { 0x8B, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //4
                { 0x8B, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //5
                { 0x8B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //6
                { 0x8B, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //7
                { 0x8B, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //8
                { 0x8B, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //9
                { 0x8B, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //A
                { 0x8B, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //B
                { 0xA1, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //C
                { 0xA1, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //D
                { 0xA1, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //E
                { 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //F
                { 0x98, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //0
            };
            byte     SumH, SumL;
            bool     fWR = false;
            bool     fSam = false;
            int      i, j;
            FileInfo f;

            if (openFileDialog1.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            f = new FileInfo(openFileDialog1.FileName);
            Stream stream = File.OpenRead(f.FullName);

            byte[] pBuf = new byte[stream.Length];
            stream.Read(pBuf, 0, (int)stream.Length);
            stream.Close();
            for (j = 0; j < 8; j++)
            {
                for (i = 0; i < 8; i++)
                {
                    TXbuf[j + 0x01, i + 0x02] = pBuf[0x270 + 0x10 * j + i];
                }
            }
            //
            for (i = 0; i < 8; i++)
            {
                TXbuf[0x09, i + 0x02] = pBuf[0x10 + i];//delaer
            }

            //等待加入密码
            for (i = 0; i < 8; i++)
            {
                TXbuf[0x0A, i + 0x02] = 0x00;//cPSW
            }

//             TXbuf[0x0A,  0x02] = 0x47;
//             TXbuf[0x0A, 0x03] = 0x80;
//             TXbuf[0x0A, 0x04] = 0x22;
//             TXbuf[0x0A, 0x05] = 0x71;
//             TXbuf[0x0A, 0x06] = 0x85;
//             TXbuf[0x0A, 0x07] = 0x87;
//             TXbuf[0x0A, 0x08] = 0x2f;
//             TXbuf[0x0A, 0x09] = 0x9b;

            for (j = 0; j < 3; j++)
            {
                TXbuf[j + 0x0C, 0x02] = pBuf[0x02];
                TXbuf[j + 0x0C, 0x03] = pBuf[0x00];
                TXbuf[j + 0x0C, 0x06] = pBuf[0x03];
                TXbuf[j + 0x0C, 0x09] = pBuf[0x01];
            }
            //
            for (i = 0; i < 7; i++)
            {
                TXbuf[0x0F, i + 0x02] = pBuf[0x303 + i];
            }
            for (i = 0; i < 6; i++)
            {
                TXbuf[0x10, i + 0x02] = pBuf[0x30A + i];
            }
            TXbuf[0x10, 0x08] = pBuf[0x310];
            //--
            byte Sum;

            for (j = 0; j < 0x11; j++)
            {
                Sum = 0x00;
                for (i = 0; i < 0x0A; i++)
                {
                    Sum += TXbuf[j, i];
                }
                TXbuf[j, 0x0A] = Sum;
            }
            //
            SumH = 0x00;
            SumL = 0x00;
            for (j = 0; j < 0x0A; j++)
            {
                for (i = 0; i < 0x08; i++)
                {
                    if ((SumL + TXbuf[j + 0x01, i + 0x02]) > 0xFF)
                    {
                        SumH++;
                    }
                    SumL += TXbuf[j + 0x01, i + 0x02];
                }
            }
            TXbuf[0x0B, 0x09] = SumH;
            TXbuf[0x0B, 0x08] = SumL;
            TXbuf[0x0B, 0x0A] = (byte)(TXbuf[0x0B, 0x0A] + SumH + SumL);//总校验包的校验和

            //---接收比较缓存整理
            lcyHashCal cpCalc = new lcyHashCal();

            for (j = 0; j < 0x0B; j++)
            {
                for (i = 0; i < 0x08; i++)
                {
                    cpCalc.HashIn[i] = TXbuf[j + 0x01, i + 0x02];
                }
                cpCalc.HashOnce();
                for (i = 0; i < 0x08; i++)
                {
                    RXbuf[j + 0x01, i + 0x02] = cpCalc.HashOut[i];
                }
            }
            //
            for (j = 0; j < 3; j++)
            {
                RXbuf[j + 0x0C, 0x02] = pBuf[0x02];
                RXbuf[j + 0x0C, 0x03] = pBuf[0x00];
                RXbuf[j + 0x0C, 0x06] = pBuf[0x03];
                RXbuf[j + 0x0C, 0x09] = pBuf[0x01];
            }
            textBox1.Clear();
            for (i = 0; i < 0x11; i++)
            {
//                 Read_76_TxList[2] = Cmd[i];
//                 Read_76_TxList[10] = Verify.GetVerify_byteSum(Read_76_TxList, 0, 10);
                Read_76_TxList = new byte[11];
                for (j = 0; j < 11; j++)
                {
                    Read_76_TxList[j] = TXbuf[i, j];
                }
                textBox1.AppendText("发送:" + WFNetLib.StringFunc.StringsFunction.byteToHexStr(Read_76_TxList, " ") + "\r\n");
                byte[] rx = comProc.CommandProc(Read_76_TxList);
                if (rx == null)
                {
                    textBox1.AppendText("接收错误\r\n");
                }
                else
                {
                    textBox1.AppendText("接收:" + WFNetLib.StringFunc.StringsFunction.byteToHexStr(rx, " ") + "\r\n");
                }
            }
            textBox1.AppendText("\r\n完成于" + DateTime.Now.ToString());
        }