Esempio n. 1
0
        /// <summary>
        /// 接收数据(线程方法)
        /// </summary>
        public void RecvData(Fmain f1)
        {
            if (!MyPort.IsOpen)
            {
                MyPort.Open();
            }
            result = new byte[MyPort.BytesToRead];
            //Sresult= MyPort.ReadExisting();
            //MyPort.Read(result, 0, MyPort.BytesToRead);
            //f1.DataBox.AppendText(System.Text.Encoding.ASCII.GetString(result)+ "\n");

            #region 读取
            for (int i = 0; i < 64; i++)
            {
                MyPort.Read(result, 0, MyPort.BytesToRead);
                try
                {
                    CSinput[i] = Convert.ToDouble(System.Text.Encoding.ASCII.GetString(result));
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.ToString());
                }
            }
            #endregion
            //MyThread.Start();
            test();
        }
Esempio n. 2
0
            public void findPorts()
            {
                tmpPorts.Clear();

                ManagementObjectCollection moc = new ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity").Get();

                foreach (ManagementObject service in moc)
                {
                    if (service.Properties["Caption"].Value != null)
                    {
                        string capt = service.Properties["Caption"].Value.ToString();

                        if (capt.Contains("(COM"))
                        {
                            capt = capt.Substring(capt.IndexOf("(COM") + 1).Replace(")", "");

                            string address = service.Properties["DeviceID"].Value.ToString();
                            address = address.Substring(0, address.LastIndexOf("_"));
                            address = address.Substring(address.LastIndexOf("&") + 1);

                            MyPort tmp = new MyPort();
                            tmp.portName = capt;
                            tmp.address  = address;
                            tmpPorts.Add(tmp);
                        }
                    }
                }
            }
Esempio n. 3
0
        public List <MyPort> portBind(MyPort Data)
        {
            MasterManager cm = new MasterManager();
            List <MyPort> st = cm.GetCommonPortMaster(Data);

            return(st);
        }
Esempio n. 4
0
 /// <summary>
 /// 关闭串口方法
 /// </summary>
 /// <param name="f1"></param>
 public void ClosePort()
 {
     //MyPort.IsOpen?MyPort.():;
     if (MyPort.IsOpen)
     {
         MyPort.Close();
     }
     else
     {
         return;
     }
 }
        }         //确认线路

        private void CallBuyTicketWindow(string Enter, string Line, string Leave)
        {
            ClientWindow.TicketQueryInfo subinfo1 = new ClientWindow.TicketQueryInfo();
            subinfo1.EnterStationNumber = int.Parse(Enter);
            subinfo1.Line = int.Parse(Line);
            subinfo1.LeaveStationNumber = int.Parse(Leave);
            subinfo1.StartTime          = this.ticketQueryInfo.StartTime;
            subinfo1.EndTime            = this.ticketQueryInfo.EndTime;
            string        info1Msg      = Enter + "\n" + Line + "\n" + Leave + "\n" + ticketQueryInfo.StartTime.ToString() + "\n" + ticketQueryInfo.EndTime.ToString();
            TcpClient     tcpClient     = null;
            NetworkStream networkStream = null;

            try {
                tcpClient = new TcpClient();
                tcpClient.Connect(myIPAddress, ServerPort);                 //建立与服务器的连接
                networkStream = tcpClient.GetStream();
                if (networkStream.CanWrite)
                {
                    TTS_Core.QueryDataPackage data = new TTS_Core.QueryDataPackage(UserID, myIPAddress + ":" +
                                                                                   MyPort.ToString(), "server", TTS_Core.QUERYTYPE.K_TICKETINFO_QUERY, info1Msg);
                    byte[] sendBytes = data.DataPackageToBytes();                     //注册数据包转化为字节数组
                    networkStream.Write(sendBytes, 0, sendBytes.Length);
                }
                var newClient = tcpListener.AcceptTcpClient();
                var bytes     = ReadFromTcpClient(newClient);             //获取数据
                var package   = new TTS_Core.QueryDataPackage(bytes);
                subinfo1.EnterStationName = package.ExtraMsg.Split('\r')[0].Split('\n')[0];
                subinfo1.LineName         = package.ExtraMsg.Split('\r')[0].Split('\n')[1];
                subinfo1.LeaveStationName = package.ExtraMsg.Split('\r')[0].Split('\n')[2];
                info1Msg = package.ExtraMsg;
            }
            catch {
                MessageBox.Show("指定时段内无可选车次!");
                return;
            }
            finally {
                if (networkStream != null)
                {
                    networkStream.Close();
                }
                tcpClient.Close();
            }

            BuyTicketWindow buy = new BuyTicketWindow(subinfo1, info1Msg);

            buy.ShowDialog();
            if (buy.selectTicket.TrainID != 0)
            {
                allBuyTicket.Add(buy.selectTicket);
            }
        }         //调起买票窗体
Esempio n. 6
0
        public List <MyPort> GetCommonPortMaster(MyPort Data)
        {
            DataTable dt = GetCommonPortValues(Data);

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                ListPort.Add(new MyPort
                {
                    ID       = Int32.Parse(dt.Rows[i]["ID"].ToString()),
                    PortName = dt.Rows[i]["PortName"].ToString(),
                });
            }
            return(ListPort);
        }
Esempio n. 7
0
 /// <summary>
 /// 打开串口方法(直接)
 /// </summary>
 /// <param name="f1">获得主窗体引用</param>
 public void OpenPort()
 {
     try
     {
         if (!MyPort.IsOpen)
         {
             MyPort.Open();
         }
     }
     catch (Exception e)
     {
         MessageBox.Show(e.ToString() + "\n" + "Open faild" + "\n" + "1.Check config" + "\n"
                         + "2.Check device available" + "\n" + "3.Check device driver", "Error");
     }
 }
Esempio n. 8
0
            public int scanDevs(ComboBox devCombo)
            {
                if (getRadio() != null)
                {
                    devCombo.Invoke(new Action(() => {
                        devCombo.Items.Clear();
                        devCombo.Enabled = false;
                    }));

                    findPorts();

                    BluetoothDeviceInfo[] scanDevs = new BluetoothClient().DiscoverDevices();

                    myPorts.Clear();

                    for (int i = 0; i < scanDevs.Length; i++)
                    {
                        if (Array.IndexOf(scanDevs[i].InstalledServices, BluetoothService.SerialPort) != -1)
                        {
                            string address = scanDevs[i].DeviceAddress.ToString();

                            int    j   = 0;
                            string com = "";

                            while (j < tmpPorts.Count && com == "")
                            {
                                if (address == tmpPorts[j].address)
                                {
                                    MyPort tmp = new MyPort();

                                    tmp.address  = address;
                                    tmp.devName  = scanDevs[i].DeviceName;
                                    tmp.portName = tmpPorts[j].portName;

                                    com = tmpPorts[j].portName;

                                    myPorts.Add(tmp);
                                }

                                j++;
                            }

                            if (com != "")
                            {
                                devCombo.Invoke(new Action(() => devCombo.Items.Add(scanDevs[i].DeviceName /*+ " (" + com + ")"*/)));
                            }
                        }
                    }

                    if (myPorts.Count > 0)
                    {
                        devCombo.Invoke(new Action(() => devCombo.SelectedIndex = 0));
                    }
                    else
                    {
                        MessageForm.Show(MessageForm.ping_sad, "Проверьте устройство и повторите попытку ещё раз.", "Устройства не обнаружены");
                    }
                }
                else
                {
                    MessageForm.Show(MessageForm.ping_sad, "На Вашем устройстве отключен Bluetooth!", "Включите Bluetooth");
                }

                return(myPorts.Count);
            }
Esempio n. 9
0
        /// <summary>
        /// (重载)打开控件所示串口
        /// </summary>
        /// <param name="f1"></param>
        public void OpenPort(Fmain f1)
        {
            try
            {
                if (!MyPort.IsOpen)
                {
                    #region 事务.串口打开
                    PortID          = f1.PortID.Text.ToString();
                    MyPort.PortName = f1.PortX.SelectedItem.ToString();
                    MyPort.BaudRate = Convert.ToInt32(f1.BaudX.SelectedItem.ToString());
                    switch (f1.CheckX.SelectedIndex)
                    {
                    case 0:
                        MyPort.Parity = Parity.None;
                        break;

                    case 1:
                        MyPort.Parity = Parity.Odd;
                        break;

                    case 2:
                        MyPort.Parity = Parity.Even;
                        break;

                    case 3:
                        MyPort.Parity = Parity.Mark;
                        break;

                    case 4:
                        MyPort.Parity = Parity.Space;
                        break;
                    }

                    MyPort.DataBits = Convert.ToInt32(f1.DataX.SelectedItem.ToString());

                    switch (f1.StopX.SelectedIndex)
                    {
                    case 0:
                        MyPort.StopBits = StopBits.One;
                        break;

                    case 1:
                        MyPort.StopBits = StopBits.Two;
                        break;

                    case 2:
                        MyPort.StopBits = StopBits.OnePointFive;
                        break;
                    }


                    #endregion
                    MyPort.Open();
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString() + "Open faild" + "\n" + "1.Check config" + "\n"
                                + "2.Check device available" + "\n" + "3.Check device driver", "Error");
            }
        }
Esempio n. 10
0
        private void Form1_FormClosing(Object sender, FormClosingEventArgs e)
        {
            if (null != mPort)
            {
                mPort.Close();
                mPort = null;
            }

            if (null != testPort)
            {
                testPort.Close();
                testPort = null;
            }
        }
Esempio n. 11
0
 private void button7_Click(object sender, EventArgs e)
 {
     if (null != mPort)
     {
         mPort.Close();
         mPort = null;
         textBox1.AppendText(comPort.Text + " close\n");
     }
 }
Esempio n. 12
0
        private void button6_Click(object sender, EventArgs e)
        {
            if (null != mPort)
            {
                mPort.Close();
                mPort = null;
            }

            mPort = new MyPort(comPort.Text,
                        Convert.ToInt32(comBaud.Text),
                        Convert.ToInt32(comByteSize.Text),
                        StringToParity(comParity.Text),
                        StringToStopBits(comStopBit.Text));
            mPort.Open();
            textBox1.AppendText(comPort.Text + " open\n");

            mPort.mReader += FlowDataReader;
            //mPort.mReader += VIThermometerReader;
            mPort.mReporter += FlowErrorReporter;

            button2.PerformClick();
        }
Esempio n. 13
0
 void Start()
 {
     // 建立一條執行緒讀取RS232,不這麼做 Unity 會死當
     myport = new MyPort();
     new Thread(myport.OpenPort).Start();
 }
Esempio n. 14
0
        public DataTable GetCommonPortValues(MyPort Data)
        {
            string _Query = "Select * from NVO_PortMaster";

            return(GetViewData(_Query, ""));
        }