using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Threading;namespace WindowsFormsApplication10
{
    
    public partial class Form1 : Form
    {
        
        public Form1()
        {
            InitializeComponent();
            
        }
        
        public delegate void Displaydelegate();
        byte[] duqu;
           public void jieshou_Shuju()
        {
           if (p == 1)
           {
                if (openFileDialog1.FileName.Split('.')[1] == "jpg")
                {
                    duqu = new byte[serialPort1.BytesToRead];                    serialPort1.Read(duqu, 0, duqu.Length);                    MemoryStream asdfgh = new MemoryStream(duqu);                    try
                    {                        pictureBox1.Image = ((Image)new Bitmap(asdfgh));                    }                    catch (Exception)
                    {
                    };
                }
                //  =ttt; Image ttt
                //  string s1 = System.Text.Encoding.GetEncoding("GB2312").GetString(duqu);                //  richTextBox1.Text = s1;
               if (openFileDialog1.FileName.Split('.')[1] == "txt")
               {
                    richTextBox1.Text += serialPort1.ReadLine(s1) + "\r\n";
               }
            }
           else if(p==0)
         {
               richTextBox1.Text += serialPort1.ReadLine() + "\r\n";
           }
            //pictureBox1.Image = serialPort1.();
              
        }
      
         
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {        }       private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.SelectedIndex = 0;
            comboBox2.SelectedIndex = 7;
            comboBox3.SelectedIndex = 3;
            comboBox4.SelectedIndex = 0;
         // button5.Click += new EventHandler(button5_Click);
           // serialPort1.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(yyy);
        }     // void yyy(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
       // {
          
       // }
     // OpenFileDialog frm = new OpenFileDialog();
     //  void button5_Click(object sender, EventArgs e)
     //    {
       //     MessageBox.Show("");
     //   }
     //  private string[] strs;
      // List<string> strs1;
        private void button1_Click(object sender, EventArgs e)
        {
          //  string  str = folderBrowserDialog1.SelectedPath;
           // strs = System.IO.Directory.GetFiles(str);
      //   string  str =  fileSystemWatcher1.Filter;
          //  this.openFileDialog1.Title = "打开对话框";
           this .openFileDialog1 .Filter="Images(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|text fils(*.txt)|*.txt";
           
            this .openFileDialog1 .ShowDialog();
            
            textBox1.Text =fileSystemWatcher1.Path;
            textBox1.Text = openFileDialog1.FileName;
            
        }
        int i = 1;
        private void button4_Click(object sender, EventArgs e)
        {
         
            //serialPort1.StopBits = System.IO.Ports.StopBits.One;
          
            if (i == 1)
            {  serialPort1.PortName = comboBox1.Text;
              serialPort1.BaudRate = Convert.ToInt32(comboBox2.Text);
              serialPort1.DataBits = Convert.ToInt32(comboBox3.Text);
                button4.Text = "关闭串口";
                 serialPort1.Open();
              
                i = 0;
            }
           else  if (i == 0)
            {
                  button4.Text = "打开串口";
                  serialPort1.Close();
             
                i = 1;
            }        }
        int p;//p作为一个开关来用
        //string s1;
      //  byte[] reads;
        private void button2_Click(object sender, EventArgs e)
        {    
            if (serialPort1.IsOpen)
            {                 FileStream fs = File.Open(openFileDialog1.FileName, FileMode.Open);
                byte[] reads = new byte[fs.Length];
               
                    fs.Read(reads, 0, reads.Length);
                    fs.Close();
             //  string s1 = System.Text.Encoding.GetEncoding("GB2312").GetString(reads);
                 if (openFileDialog1.FileName .Split('.')[1] == "txt") 
                {
                    string s1 = System.Text.Encoding.Default.GetString(reads);
                    serialPort1.WriteLine(s1);
              //      richTextBox1.Text += s1+"\r\n";                   p = 1;               }
          //      MemoryStream  ee = new MemoryStream(reads);
          //     Image ttt = ((Image)new Bitmap(ee));
             // pictureBox1.Image=ttt;
                 if (openFileDialog1.FileName.Split('.')[1] == "jpg")
                 {
                     serialPort1.Write(reads, 0, reads.Length);
                     p = 1;
                 }
                
               else   
               {
                     p = 0;
                 }
            //            //  pictureBox1.Image =serialPort1.ReadLine();         //  serialPort1.WriteLine()
               // Image tt = Image.FromStream(ee);
                   // string s2 = ((string)new Bitmap(ttt));
                //    serialPort1.Write(reads,0,reads.Length);
                   // richTextBox1.Text += serialPort1.ReadByte();
                         }        }        private void button7_Click(object sender, EventArgs e)
        {
          //  serialPort1.RtsEnable = true;
            
           
            if (serialPort1.IsOpen) 
            {
                serialPort1.WriteLine(textBox3.Text);
            }
        }
        private void button3_Click(object sender, EventArgs e)
        {
           // serialPort1.RtsEnable = false ;            
        }        private void button6_Click(object sender, EventArgs e)
        {
            richTextBox1.Text = "";
        }        private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
            richTextBox1.Invoke(new Displaydelegate(jieshou_Shuju), new object[] { });
            
        }        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {   
            
            timer1.Interval =Convert.ToInt32( textBox2.Text);
            timer1.Enabled = true;
            serialPort1.WriteLine ( textBox3.Text);
            
        }               
           }}