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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2018, 17:09   #1
Acelot
Новичок
Джуниор
 
Регистрация: 24.12.2018
Сообщений: 1
По умолчанию Управление устройством через COM (RS-232) на C#

Подскажите пожалуйста , никак не могу написать нужный код , так как знаний не хватает .
Задача отправить фиксированные команды на плату( подключенную через rs-232 ) , получить ответ и вывести его в textBox1.
Код:
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.Windows.Forms;
using System.IO.Ports;
using System.Threading;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        SerialPort com;

        // delegate is used to write to a UI control from a non-UI thread
        private delegate void SetTextDeleg(string text);
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //Проверяем , открыт ли порт перед записью 
            try
            {
                if (!com.IsOpen)
                    com.Open();

                com.Write("cal t0");
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error opening/writing to serial port :: " + ex.Message, "Error!");
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            com = new SerialPort("COM3", 115200, Parity.None, 8, StopBits.One);
            com.Handshake = Handshake.None;
            com.ReadTimeout = 500;
            com.WriteTimeout = 500;
            com.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
            com.Open();
            //com.Close(); //Закрываем порт 

        }

        private void button2_Click(object sender, EventArgs e)
        {
            //Проверяем , открыт ли порт перед записью 
            try
            {
                if (!com.IsOpen)
                    com.Open();

                com.Write("test");
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error opening/writing to serial port :: " + ex.Message, "Error!");
            }
        }

        private static void DataReceivedHandler (object sender,SerialDataReceivedEventArgs e)
        {
            SerialPort sp = (SerialPort)sender;
            string indata = sp.ReadExisting();
            textBox1.Text = indata;
        }


    }
}
Изображения
Тип файла: png 2018-12-24_16-36-22.png (11.3 Кб, 136 просмотров)
Acelot вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Управление устройством через USB Paskal1 Общие вопросы Delphi 1 20.07.2014 02:43
Управление устройством: проблемы с типами данных в сторонней DLL AnTe Общие вопросы Delphi 13 19.06.2013 13:55
Нужно написать программу под WinCE управление внешним устройством kompotius Фриланс 0 16.05.2012 16:32
удаленное управление устройством! Gambler Работа с сетью в Delphi 11 29.10.2009 12:12
Управление исполнительным устройством через компьютер Scutarius Свободное общение 3 28.07.2009 15:56