Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 14

Не отображаются данные датчика из com порта

03.02.2015, 17:19. Показов 879. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, написал программу и столкнулся с непреодолимой, в силу своих знаний, проблемой. У меня есть датчик, он выдает данные в модем, из модема в Nport, из Nporta в switch и в компьютер соответственно.На компьютере установлена программа Nport Administrator. Датчику присвоен свой com порт. Так вот теоретически моя программа должна считать данные с com порта и отобразить их в текст боксе. Но она, при нажатии на кнопку, просто молчит, не отображая в текст боксе ничего. Пробовал программу PCOMM так она отображает все данные. Моя молчит, что не так? Помогите пожалуйста.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
            
public Form1()
            {
                InitializeComponent();
                updatePorts();
            }
            private void updatePorts()
            {
                string[] ports = SerialPort.GetPortNames();
                foreach (string port in ports)
                {
                    comboBox1.Items.Add(port);
                }
            }
            private void connect()      
            {
                bool error = false;
                if (comboBox1.SelectedIndex != -1 & comboBox2.SelectedIndex != -1 & comboBox3.SelectedIndex != -1 & comboBox4.SelectedIndex != -1 & comboBox5.SelectedIndex != -1)
                {
                    serialPort1.PortName = comboBox1.Text;                                              //Вывод значений PortName порта в COMBOBOX1.
                    serialPort1.BaudRate = int.Parse(comboBox2.Text);                                   //Вывод значений BaudRate порта в COMBOBOX2.
                    serialPort1.Parity = (Parity)Enum.Parse(typeof(Parity), comboBox3.Text);            //Вывод значений Parity порта в COMBOBOX3.
                    serialPort1.DataBits = Convert.ToInt32(comboBox5.Text);                             //Вывод значений DataBits порта в COMBOBOX5.
                    serialPort1.StopBits = (StopBits)Enum.Parse(typeof(StopBits), comboBox4.Text);      //Вывод значений StopBits порта в COMBOBOX4.
                    serialPort1.Handshake = (Handshake)Enum.Parse(typeof(Handshake), comboBox8.Text);
                    try
                    {
                        serialPort1.Open();
 
                    }
                    catch (UnauthorizedAccessException) { error = true; } // Это исключение, возникающее в случае запрета доступа операционной системой из-за ошибки ввода и вывода или особого типа ошибки безопасности.
                    catch (System.IO.IOException) { error = true; } // Исключение создаваемое, при возникновении ошибки ввода и вывода.
                    catch (ArgumentException) { error = true; } // Это исключение выбрасывается, если один из передаваемых методу аргументов является недопустимым.
 
                    if (error) MessageBox.Show(this, "Не могу открыть COM порт, он уже используется или неправильно настроен.", "Программа для работы с датчиками", MessageBoxButtons.OK, MessageBoxIcon.Stop);
 
                }
                else
                {
                    MessageBox.Show("Пожалуйста настройте подключение в поле настроек COM порта", "Программа для работы с датчиками", MessageBoxButtons.OK, MessageBoxIcon.Stop);
 
                }
                if (serialPort1.IsOpen)
                {
                
                }
            }
            private void disconnect()   
            {
                serialPort1.Close();
            }
            private void button1_Click(object sender, EventArgs e)
            {
                if (serialPort1.IsOpen)
                {
                    disconnect();
                }
                else
                {
                    connect();
                }
            }
            delegate void SetTextCallback(string text);
            private void textset(string text) 
            {
                if (this.richTextBox1.InvokeRequired)
                {
                    SetTextCallback delg = new SetTextCallback(textset);
                    this.BeginInvoke(delg, new object[] { text });
                }
                else
                {
                    if (button1.Enabled == true)
                    {
                        richTextBox1.AppendText(text);
                    }
                    else
                    {
                        richTextBox3.AppendText(text);
                    }
                }
            }
Тут считываю данные с порта.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
            private void serialPort1_DataReceived_1(object sender, SerialDataReceivedEventArgs e)
            {
                if (serialPort1.IsOpen)
                {
                    try
                    {
                        if (radioButton1.Checked == true)
                        {
                            string recievedData = serialPort1.ReadExisting();          
                            string mes = recievedData;
                            textset(mes);
                            Rx++;
                            string folder = @"C:\\" + time + " Arxiv dannix.txt";
                            using (StreamWriter file = new StreamWriter(folder, true))
                            {
                                file.Write(mes);
                            }
                        }
                        else
                        {
                            byte[] bytes = new byte[serialPort1.BytesToRead]; 
                            serialPort1.Read(bytes, 0, bytes.Length);
                            string mes2 = BitConverter.ToString(bytes) + " ";
                            textset(mes2);
                            Rx++;
                            string folder = @"C:\\" + time + " Arxiv dannix.txt";
                            using (StreamWriter file = new StreamWriter(folder, true))
                            {
                                file.Write(mes2.ToString());
                            }
                        }
                    }
                    catch (System.Exception ex)
                    {
                        MessageBox.Show("Ошибка!!! Не считываются данные: " + ex);
                    }
                }
            }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.02.2015, 17:19
Ответы с готовыми решениями:

После генерации данные из этих таблиц отображаются в index и edit но не отображаются в details
Проблема в следующем есть множество таблиц связанных с таблицей Flat после генерации данные из этих таблиц отображаются в index и edit...

Данные с датчика MPU6050
Начал делать проект с использованием MPU6050. Нашёл скетч, считывающий показания с акселерометра и выводящий их в компоорт. Но мне не...

Принимаемые данные с датчика через Serial port преобразовать в RGB
Всем доброго времени суток! Стоит одна задача. Необходимо, получая строки с датчика цвета, поступающего в сериал порт, принимать на...

2
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
03.02.2015, 18:14
home6, посмотрите эту тему, там есть пример для порта.
https://www.cyberforum.ru/csha... ost7182624
1
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 14
06.02.2015, 13:11  [ТС]
Спасибо за ответ, но не помогло. Похоже проблема зарыта в библиотеке System.OI.Ports попробую прописать открытие порта через библиотеки WIN API. Может поможет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.02.2015, 13:11
Помогаю со студенческими работами здесь

Неверные данные с COM порта
Добрый день. Пишу ПО для работы с автовесами. Данные передаются через COM порт. У меня есть код для приема данных: private...

Не читаются данные с COM-порта
Данные передает, а читать не хочет. В чем может быть проблема? int SerialPort::sendArray(unsigned char *buffer, int len) { ...

Получить данные с COM порта
Физически ком порт имеет название COM11 Т. к. на данный момент нету оборудования которое работает с этим портом, то я запускаю эмулятор...

Некорректные данные из com порта
Добрый день. ПК ОС Windows 10 x64. Есть линия на rs 485, на линии 4 устройства, каждое устройство имеет свой уникальный адрес. Линия...

Разобрать данные с COM-порта
Привет. Стоит задача проверять данные, приходящие с COM-порта, разбирать блоки побайтно и формировать выходные массивы данных. Данные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru