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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2012, 14:48   #1
Faton 11
Пользователь
 
Регистрация: 04.10.2011
Сообщений: 74
По умолчанию Передача по СОМ-порту

Привет, программисты! История такая: программа на ассемблере принимает данные с СОМ-порта и выполняет с их участием определенные действия. Тут все понятно, но ведь эти данные нужно ещё и отослать. Для этого создаем в Visual Studio форму. На форму ложим:
1) Три listBoxa, в которые должны вводиться данные
2) Кнопка "Ок", после нажатия которой данные, напечатанные в listBox-ах будут отправляться по СОМ-порту.
3) Кнопка "Сброс", опусташающая ListBox-ы.

Как заставить кнопки выполнять вышенаписанные действия? Как использовать компонент SerialPort?


Еще имеется программка "com port toolkit", эмитирующая порт, как я понимаю..
Язык программирования, разумеется С#
Faton 11 вне форума Ответить с цитированием
Старый 29.04.2012, 16:47   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

...а ассемблер причем?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 29.04.2012, 17:09   #3
Faton 11
Пользователь
 
Регистрация: 04.10.2011
Сообщений: 74
По умолчанию

Ассемблер тут не причем: это просто предыстория, чтобы не было вопросов куда что отправлять. Сам вопрос касается исключительно языка С#
Faton 11 вне форума Ответить с цитированием
Старый 29.04.2012, 17:50   #4
iukash
учу английский...
Форумчанин
 
Аватар для iukash
 
Регистрация: 04.04.2009
Сообщений: 480
По умолчанию

Цитата:
Как использовать компонент SerialPort?
Код:
SerialPort serial = new SerialPort("COM1");
serial.Open();
if (serial.IsOpen)
{
   byte[] send = new byte[] { "текст 1-го листбокса", "текст 2-го листбокса", "текст 3-го листбокса"};
   serial.Write(send, 0, 3);
}
serial.Close();
Как то так.
"Мы можем что-то изменить и своими силами..."
"Начнешь с себя, примером ближнему поможешь..."

Последний раз редактировалось iukash; 30.04.2012 в 00:20.
iukash вне форума Ответить с цитированием
Старый 29.04.2012, 18:35   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

CreateFile(), WriteFile() ...как то так .
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 29.04.2012, 20:03   #6
Faton 11
Пользователь
 
Регистрация: 04.10.2011
Сообщений: 74
По умолчанию

iukash, спасибо! Попробую поразбираться
Faton 11 вне форума Ответить с цитированием
Старый 17.06.2012, 16:42   #7
Faton 11
Пользователь
 
Регистрация: 04.10.2011
Сообщений: 74
По умолчанию

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


namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        SerialPort port;
        public Form1()
        
       
        {
            InitializeComponent();
            port = new SerialPort("COM1");
            port.Open();
            
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            if (port.IsOpen)
            {
                byte[] send = new byte[256];
                port.Write(send, 0, 3);
            }
            port.Close();

        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
           string message = Convert.ToString(textBox1.Text);
           port.WriteLine(message);
        }

       
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            port.Close();
        }
    }
}
Выходит ошибка "Доступ к порту 'СОМ1' закрыт", что делать? =(
Faton 11 вне форума Ответить с цитированием
Старый 18.06.2012, 10:19   #8
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

...не клонировать темы для начала.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
СОМ-сервер и СОМ-клиент Ninetta Общие вопросы .NET 0 27.03.2010 23:57
Необходимо подключить датчик к СОМ порту SashaIV Win Api 3 22.09.2009 00:08
Подключиться к COM порту doober Общие вопросы .NET 3 23.07.2009 13:34
Как считать данные с устройства, подключенного к СОМ(или ЮСБ)-порту voron29 Общие вопросы Delphi 5 21.06.2008 15:08
Закрытие доступа к СОМ- порту nova-alex Win Api 2 21.02.2007 11:55