Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2017, 18:10   #1
lichking
Пользователь
 
Регистрация: 31.10.2016
Сообщений: 54
По умолчанию serialport

C# 2012 Подскажите две вещи для RS 232:

1 как делать отправку данных на ком порт
2 как их считывать читать?

Последний раз редактировалось lichking; 17.01.2017 в 18:13.
lichking вне форума Ответить с цитированием
Старый 17.01.2017, 18:39   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

https://msdn.microsoft.com/en-us/lib...v=vs.110).aspx
https://www.codeproject.com/Articles...-for-Beginners
https://web.archive.org/web/20130709...300_-.NET.aspx
и т.д.
p51x вне форума Ответить с цитированием
Старый 17.01.2017, 20:20   #3
lichking
Пользователь
 
Регистрация: 31.10.2016
Сообщений: 54
По умолчанию

у меня 2 виртуальных порта com 1 com 2 как я их непытаюсь совсем не выходит их решить
вот код:
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO.Ports;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            
                listBox1.Items.Clear();
                string[] portnames = SerialPort.GetPortNames();
                listBox1.Items.AddRange(portnames);

        }

        private void button2_Click(object sender, EventArgs e)
        {

             



            SerialPort port = new SerialPort(label1.Text, 9600, Parity.None, 8, StopBits.One);
            port.Open();
            byte[] data = { 0, 1, 2, 1, 0 };
		port.Write(data, 0, data.Length);
        }

        private void button3_Click(object sender, EventArgs e)
        {
            label1.Visible = true;
            label2.Visible = true;
            label1.Text = listBox1.Text.Normalize();
            button3.Visible = false;
            button2.Visible = true;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string[] portnames = SerialPort.GetPortNames();
            listBox1.Items.AddRange(portnames);
        }
    }
}
у меня получается получить список но отправка не получаеться
lichking вне форума Ответить с цитированием
Старый 17.01.2017, 20:48   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Что значит не получается? Какой порт вы ему суете в едите? Порт открывается? ЧТо-то в порт пишется? Как смотрели? Какие ошибки выдает?
p51x вне форума Ответить с цитированием
Старый 17.01.2017, 21:57   #5
lichking
Пользователь
 
Регистрация: 31.10.2016
Сообщений: 54
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Что значит не получается? Какой порт вы ему суете в едите? Порт открывается? ЧТо-то в порт пишется? Как смотрели? Какие ошибки выдает?
немного переписал код:

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO.Ports;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            
                listBox1.Items.Clear();
                string[] portnames = SerialPort.GetPortNames();
                listBox1.Items.AddRange(portnames);

        }

        private void button2_Click(object sender, EventArgs e)
        {

             



            SerialPort port = new SerialPort(label1.Text, 9600, Parity.None, 8, StopBits.One);
            port.Open();
            byte[] data = { 0, 1, 1, 1, 0 };

            int a = data.Length;
            
		serialPort1.Write(data, 0, a );
        }

        private void button3_Click(object sender, EventArgs e)
        {
            label1.Visible = true;
            label2.Visible = true;
            label1.Text = listBox1.Text.Normalize();
            button3.Visible = false;
            button2.Visible = true;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            var portnames = SerialPort.GetPortNames();
            listBox1.Items.AddRange(items: portnames);
           
        }
    }
}
определяю список портов
Код:
listBox1.Items.Clear();
                string[] portnames = SerialPort.GetPortNames();
                listBox1.Items.AddRange(portnames);
создаю новый порт :
Код:
 SerialPort port = new SerialPort(label1.Text, 9600, Parity.None, 8, StopBits.One);
открываю его
Код:
port.Open();
данные которые буду писать
Код:
byte[] data = { 0, 1, 1, 1, 0 };
пишу
Код:
  int a = data.Length;
            
		serialPort1.Write(data, 0, a );
Изображения
Тип файла: jpg 5.jpg (93.2 Кб, 148 просмотров)
lichking вне форума Ответить с цитированием
Старый 17.01.2017, 22:40   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Читаем офф. доку:
Цитата:
InvalidOperationException The specified port is not open.
И вновь возвращаемся к моим вопросам.
p51x вне форума Ответить с цитированием
Старый 18.01.2017, 11:52   #7
lichking
Пользователь
 
Регистрация: 31.10.2016
Сообщений: 54
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Читаем офф. доку:


И вновь возвращаемся к моим вопросам.
у меня с английским проблема поэтому спрашиваю на форумах
lichking вне форума Ответить с цитированием
Старый 18.01.2017, 11:59   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

1. Перевод гуглотранслейта "Указанный порт не открыт"
2. В мсдн есть русский перевод (внезапно...)
p51x вне форума Ответить с цитированием
Старый 18.01.2017, 12:55   #9
lichking
Пользователь
 
Регистрация: 31.10.2016
Сообщений: 54
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
1. Перевод гуглотранслейта "Указанный порт не открыт"
2. В мсдн есть русский перевод (внезапно...)
как открыть порт
lichking вне форума Ответить с цитированием
Старый 18.01.2017, 13:18   #10
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

функцией open, если указано правильное имя и настройки поддерживаются, если у вашего приложения есть прав и если порт не открыт кем-нибудь еще
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Коммуникация с SerialPort под линуксом. digiwo C# (си шарп) 17 04.02.2014 07:09
Описание компоненты serialPort в Visual Studio C++ ForkJoin Visual C++ 0 03.12.2012 19:07
Изменение BaudRate "на ходу". SerialPort Roin Помощь студентам 0 03.09.2010 09:57
async serialport Imya Общие вопросы .NET 1 13.07.2009 14:37