void Onclick_Collectx()
        {
            bool Success = true;

            byte[] Trans_Matrix    = new byte[0];
            byte[] Trans_Buffer    = new byte[2048];
            byte[] Collect_Buffer1 = new byte[512];
            byte[] Collect_Buffer2 = new byte[512];
            byte[] Collect_Buffer3 = new byte[512];
            byte[] Collect_Buffer4 = new byte[512];
            int    Trans_No        = 0;

            byte[] Trans_No_B = new byte[4];
            Trans_No_B = BitConverter.GetBytes(5);
            FileStream   Image_Matrix_add = new FileStream(".//in_test.txt", FileMode.Create);
            BinaryWriter Image_Matrix     = new BinaryWriter(Image_Matrix_add);;

            MyInvoke_T Re_T = new MyInvoke_T(Refresh_Text);
            MyInvoke_B Re_B = new MyInvoke_B(Refresh_Bar);

            Usb_Mine.SetOutTime("In", 3);
            Usb_Mine.SetOutTime("Out", 3);

            this.Dispatcher.BeginInvoke(Re_T, "世界线回调中......");

            int TransTime_S = System.Environment.TickCount;

            for (int i = 0; i < 1000; i++)
            {
                while (true)
                {
                    for (int j = 0; j < 8; j++)
                    {
                        if (j == 0)
                        {
                            Trans_Buffer[j] = 0x87;
                        }
                        else if (j == 1)
                        {
                            Trans_Buffer[j] = 0x86;
                        }
                        else if (j == 2)
                        {
                            Trans_Buffer[j] = 0x01;
                        }
                        else if (j == 3)
                        {
                            Trans_Buffer[j] = 0x00;
                        }
                        else
                        {
                            Trans_Buffer[j] = Trans_No_B[j - 4];
                        }
                    }

                    Success = Usb_Mine.Trans(512, Trans_Buffer);

                    if (!Success)
                    {
                        Usb_Mine.Reset();
                        Usb_Mine.ReConnect();
                    }
                    else
                    {
                        break;
                    }
                }

                Thread.Sleep(2);

                for (int k = 0; k < 4; k++)
                {
                    switch (k)
                    {
                    case 0:
                        Success = Usb_Mine.Collect(512, Collect_Buffer1);
                        break;

                    case 1:
                        Success = Usb_Mine.Collect(512, Collect_Buffer2);
                        break;

                    case 2:
                        Success = Usb_Mine.Collect(512, Collect_Buffer3);
                        break;

                    case 3:
                        Success = Usb_Mine.Collect(512, Collect_Buffer4);
                        break;
                    }
                    if (!Success)
                    {
                        Success = false;
                        break;
                    }
                    Success = true;
                }

                if (!Success)
                {
                    i--;
                    Usb_Mine.Reset();
                    Usb_Mine.ReConnect();
                }
                else
                {
                    Image_Matrix.Write(Collect_Buffer1);
                    Image_Matrix.Write(Collect_Buffer2);
                    Image_Matrix.Write(Collect_Buffer3);
                    Image_Matrix.Write(Collect_Buffer4);
                    Image_Matrix.Flush();
                    Trans_No++;
                    Trans_No_B = BitConverter.GetBytes(Trans_No);
                }

                this.Dispatcher.BeginInvoke(Re_B, Trans_No * 100 / 1000);
                this.Dispatcher.BeginInvoke(Re_T, "世界线回调中......\n           " + Convert.ToString(Trans_No * 100 / 1000 * 100.0 / 1000) + "%");
            }

            int TransTime_E = System.Environment.TickCount;

            Image_Matrix_add.Close();
            this.Dispatcher.BeginInvoke(Re_T, "世界线回复速率\n              " + Convert.ToString(1024000 * 1000.0 / (TransTime_E - TransTime_S) / 1048576) + "MB/s");
            Collect.Abort();
        }
        void Onclick_Transx()
        {
            if (!Usb_Mine.ReConnect())
            {
                MessageBox.Show("人家还没有没有准备好啦,笨蛋!");
            }
            else
            {
                bool         Success          = true;
                bool         Trans_Ack        = true;
                byte[]       Trans_Matrix     = new byte[0];
                byte[]       Trans_Buffer     = new byte[512];
                int          Trans_No         = 0;
                byte[]       Trans_No_B       = new byte[4];
                FileStream   Image_Matrix_add = new FileStream(".//3D_Martix.txt", FileMode.Open);
                BinaryReader Image_Matrix     = new BinaryReader(Image_Matrix_add);

                Trans_Matrix = Image_Matrix.ReadBytes(Convert.ToInt32(Image_Matrix.BaseStream.Length));
                //int Trans_Matrix_len = Trans_Matrix.Length / 512;
                int Trans_Matrix_len = 50001;
                int Trans_Matrix_Rem = Trans_Matrix.Length % 512;

                MyInvoke_B Re_B = new MyInvoke_B(Refresh_Bar);
                MyInvoke_T Re_T = new MyInvoke_T(Refresh_Text);

                Random ra  = new Random(65535);
                byte[] rai = new byte[2];

                Usb_Mine.SetOutTime("In", 2);
                Usb_Mine.SetOutTime("Out", 2);
                this.Dispatcher.BeginInvoke(Re_T, "世界线变动中......\n           " + "0.00" + "%");
                int TransTime_S = System.Environment.TickCount;

                FileStream   FsDebug  = new FileStream(".//Debug.txt", FileMode.OpenOrCreate, FileAccess.Write);
                StreamWriter StrDebug = new StreamWriter(FsDebug, System.Text.Encoding.UTF8);

                for (int i = 0; i < Trans_Matrix_len; i++)
                {
                    int a = 0;
                    int b = 0;
                    ra.NextBytes(rai);
                    Trans_No_B = BitConverter.GetBytes(Trans_No);

                    if (i < Trans_Matrix_len)
                    {
                        for (int j = 0; j < 512; j++)
                        {
                            if (j == 0)
                            {
                                Trans_Buffer[j] = 0xA0;
                            }
                            else if (j == 1)
                            {
                                Trans_Buffer[j] = 0x81;
                            }
                            else if (j == 2)
                            {
                                Trans_Buffer[j] = 0x00;
                            }
                            else if (j == 3)
                            {
                                Trans_Buffer[j] = 0x41;
                            }
                            else if (j < 8)
                            {
                                Trans_Buffer[j] = Trans_No_B[j - 4];
                            }
                            else if (j < 510)
                            {
                                //Trans_Buffer[j] = Trans_Matrix[i * 502 + j - 8];

                                if (a == 255)
                                {
                                    a = 0;
                                }
                                else
                                {
                                    a++;
                                }
                                //a = 255;
                                Trans_Buffer[j] = Convert.ToByte(a);
                            }
                            else
                            {
                                Trans_Buffer[j] = Convert.ToByte(rai[j - 510]);
                            }
                        }
                    }
                    else if (i == Trans_Matrix_len)
                    {
                        for (int j = 0; j < Trans_Matrix_Rem; j++)
                        {
                            if (j == 0)
                            {
                                Trans_Buffer[j] = 0xA0;
                            }
                            else if (j == 1)
                            {
                                Trans_Buffer[j] = 0x81;
                            }
                            else if (j == 2)
                            {
                                Trans_Buffer[j] = 0x00;
                            }
                            else if (j == 3)
                            {
                                Trans_Buffer[j] = 0x80;
                            }
                            else if (j < 8)
                            {
                                Trans_Buffer[j] = Trans_No_B[j - 4];
                            }
                            else
                            {
                                Trans_Buffer[j] = Trans_Matrix[i * 502 + j - 8];
                            }
                        }
                        for (int j = Trans_Matrix_Rem; j < 510; j++)
                        {
                            Trans_Buffer[j] = 0x00;
                        }
                        for (int j = 0; j < 2; j++)
                        {
                            Trans_Buffer[j + 510] = Convert.ToByte(rai[j]);
                        }
                    }


                    Success = Usb_Mine.Trans(512, Trans_Buffer);

                    if (Success)
                    {
                        Trans_Ack = Usb_Mine.Collect(2, Trans_Buffer);
                        if (!Trans_Ack)
                        {
                            i--;
                            Usb_Mine.Reset();
                        }
                        else
                        {
                            if (rai[0] == Trans_Buffer[0] && rai[1] == Trans_Buffer[1])
                            {
                                Trans_No++;
                                if (Trans_No % 100 == 0)
                                {
                                    this.Dispatcher.BeginInvoke(Re_B, Trans_No * 100 / Trans_Matrix_len);
                                    this.Dispatcher.BeginInvoke(Re_T, "世界线变动中......\n           " + Convert.ToString(Trans_No * 100.0 / Trans_Matrix_len) + "%");
                                }
                            }
                            else
                            {
                                StrDebug.Write(System.Convert.ToString(rai[0], 16).Insert(0, new string('0', 2 - System.Convert.ToString(rai[0], 16).Length)) + System.Convert.ToString(rai[1], 16).Insert(0, new string('0', 2 - System.Convert.ToString(rai[1], 16).Length)) + "\n");
                                StrDebug.Write(System.Convert.ToString(Trans_Buffer[0], 16).Insert(0, new string('0', 2 - System.Convert.ToString(Trans_Buffer[0], 16).Length)) + System.Convert.ToString(Trans_Buffer[1], 16).Insert(0, new string('0', 2 - System.Convert.ToString(Trans_Buffer[1], 16).Length)) + "\n\n");
                                StrDebug.Flush();
                                //StrDebug.Write(System.Convert.ToString(rai[0], 2).Insert(0, new string('0', 8 - System.Convert.ToString(rai[0], 2).Length)) + System.Convert.ToString(rai[1], 2).Insert(0, new string('0', 8 - System.Convert.ToString(rai[1], 2).Length)) + "\n");
                                //StrDebug.Write(System.Convert.ToString(Trans_Buffer[0], 2).Insert(0, new string('0', 8 - System.Convert.ToString(Trans_Buffer[0], 2).Length)) + System.Convert.ToString(Trans_Buffer[1], 2).Insert(0, new string('0', 8 - System.Convert.ToString(Trans_Buffer[1], 2).Length)) + "\n\n");
                                i--;
                                Usb_Mine.Reset();
                            }
                        }
                    }
                    else
                    {
                        i--;
                        Usb_Mine.Reset();
                    }
                }

                int TransTime_E = System.Environment.TickCount;

                StrDebug.Close();
                FsDebug.Close();
                Image_Matrix.Close();
                Image_Matrix_add.Close();
                this.Dispatcher.BeginInvoke(Re_B, 100);
                this.Dispatcher.Invoke(Re_T, "世界线偏斜速率\n              " + Convert.ToString(Trans_Matrix.Length * 1000.0 / (TransTime_E - TransTime_S) / 1048576) + "MB/s");
                Trans.Abort();
            }
        }