Beispiel #1
0
        private void FillDatagrid1()
        {
            if (selectedPort != null)
            {
                selectedPort.sp.Close();
                selectedPort = null;
            }
            //очищаем все
            dataGridView1.Rows.Clear();
            for (int i = 0; i < manager.activeComs.Count; i++)
            {
                //заполняем датагрид
                dataGridView1.Rows.Add();
                dataGridView1.Rows[i].Cells["number"].Value      = i;
                dataGridView1.Rows[i].Cells["ComPortName"].Value = manager.activeComs[i].Name;
                dataGridView1.Rows[i].Cells["isOpen"].Value      = manager.activeComs[i].sp.IsOpen;

                CheckOpen(i);
            }
        }
        /// <summary>
        /// Проверка, является ли последовательный порт блоком модема (с использованием потоков)
        /// </summary>
        /// <param name="name">имя порта</param>
        public void CheckSerial(object n)
        {
            string name = (string)n;

            SmsModemBlock mySerialPort = new SmsModemBlock(name);

            mySerialPort.ModemMode = Mode.Check;

            if (!mySerialPort.sp.IsOpen)
            {
                mySerialPort.sp.Open();
            }
            mySerialPort.sp.WriteLine("AT \r\n");
            System.Threading.Thread.Sleep(500);
            mySerialPort.sp.Close();

            if (mySerialPort.isRecieved)
            {
                activeComsQueue.Enqueue(new SmsModemBlock(name));
                // завершаем текущий поток
                Thread.CurrentThread.Abort();
            }
        }
Beispiel #3
0
        // выбор конкретного порта
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            var senderGrid = (DataGridView)sender;

            //var senderRow = senderGrid.CurrentRow.Index;
            try
            {
                selectedPort.sp.Close();
            }
            catch
            {
                //если порт не был выбран до этого
            }
            if (senderGrid.Columns[e.ColumnIndex] is DataGridViewButtonColumn &&
                e.RowIndex >= 0)
            {
                try
                {
                    //обработка выбора СОМ-порта
                    var portName = senderGrid.Rows[e.RowIndex].Cells["ComPortName"].Value.ToString();
                    //MessageBox.Show(string.Format("Выбран порт {0}", portName));
                    selectedPort          = manager.GetBlockByName(portName);
                    selectedPortName.Text = selectedPort.Name;
                    selectedPort.sp.Open();
                    selectedPort.MF = this;
                    foreach (DataGridViewRow row in senderGrid.Rows)
                    {
                        CheckOpen(row.Index);
                    }
                }
                catch (NullReferenceException)
                {
                    MessageBox.Show("Ничего не выбрано!");
                }
            }
        }