roboforum.ru

Технический форум по робототехнике.


Отправка данных в COM на C#

В разделе рассматриваются вопросы информационного обмена в робототехнике.
Аппаратный уровень, протоколы.

Отправка данных в COM на C#

Сообщение S-T-A-L-K-E-R » 22 июл 2011, 16:34

Пишу тут, так как не знаю где еще искать...

Нужен простой пример работы с портами на C#. У меня есть своя рабочая программа, но ее эффективность желает лучшего.
Возможно кто-нибудь из вас программирует на C# и может написать, показать пример рабочей программы, или дать исходники для изучения и тестирования.

Заранее благодарю!
РОБОТОТЕХНИКА для каждого СВОИМИ РУКАМИ - SERVODROID.RU [SERVODROID.RU-Робототехника для начинающих своими руками]
Аватара пользователя
S-T-A-L-K-E-R
 
Сообщения: 314
Зарегистрирован: 05 ноя 2009, 10:10
Откуда: Санкт-Петербург vs Мурманск
Skype: sergey199100
прог. языки: С, C++, C++++, Delphi, Pascal, Asm

Re: Отправка данных в COM на C#

Сообщение Angel71 » 22 июл 2011, 17:13

http://www.google.com.ua/search?num=100&hl=ru&client=opera&hs=V7a&rls=ru&channel=suggest&sa=X&ei=5XYpTpufLtHXsgbRt9H_Cw&ved=0CB4QBSgA&q=c%23+com+port&spell=1&biw=1646&bih=877
:) вроде не сложно. а вообще приучайтесь сначала в мсдн смотреть ответ http://msdn.microsoft.com/ru-ru/library/30swa673(v=VS.100).aspx + там есть поиск, воспользовавшись которым иногда очень быстро можно найти ответы. и только когда что-то не допоняли или не получается спрашивать :pardon: так быстрей и эффективней
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Отправка данных в COM на C#

Сообщение S-T-A-L-K-E-R » 22 июл 2011, 17:29

Видимо я не правильно ставил вопрос товарищу Гугл

Добавлено спустя 6 минут 6 секунд:
Вот в первой теме вроде то что надо )
РОБОТОТЕХНИКА для каждого СВОИМИ РУКАМИ - SERVODROID.RU [SERVODROID.RU-Робототехника для начинающих своими руками]
Аватара пользователя
S-T-A-L-K-E-R
 
Сообщения: 314
Зарегистрирован: 05 ноя 2009, 10:10
Откуда: Санкт-Петербург vs Мурманск
Skype: sergey199100
прог. языки: С, C++, C++++, Delphi, Pascal, Asm

Re: Отправка данных в COM на C#

Сообщение S-T-A-L-K-E-R » 23 июл 2011, 18:20

БЛин, серавно не могу понять почему у меня так работает программа ?

Нажимаем кнопку "вперед",.1,2,3,4сек - команда дошла. Заработала серва(например). Жмем "назад"-1,2,3...-ничего. Жмем еще раз-включается. Также с остальными кнопками. Но когда жмем опять вперед программа вылетает с ошибкой: "Невозможно задать значение PortName, порт (то) закрыт\открыт".
РОБОТОТЕХНИКА для каждого СВОИМИ РУКАМИ - SERVODROID.RU [SERVODROID.RU-Робототехника для начинающих своими руками]
Аватара пользователя
S-T-A-L-K-E-R
 
Сообщения: 314
Зарегистрирован: 05 ноя 2009, 10:10
Откуда: Санкт-Петербург vs Мурманск
Skype: sergey199100
прог. языки: С, C++, C++++, Delphi, Pascal, Asm

Re: Отправка данных в COM на C#

Сообщение MiBBiM » 23 июл 2011, 20:37

возможно проседает питание на устройстве.
вот такой код раньше работал.
Код: Выделить всёРазвернуть
            com.Open();
            com.WriteLine("go 0,0," + edit_Deadzone.Value.ToString() + "," + edit_Deadzone.Value.ToString() + "\n\r");
            com.WriteLine("go 0,0,0,0\n\r");
            com.Close();
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: Отправка данных в COM на C#

Сообщение S-T-A-L-K-E-R » 24 июл 2011, 14:23

Да, проседать может, не на 100% заряд в батареях. +1

Мой код отправки:
Код: Выделить всёРазвернуть
      
            //   SerialPort COM = new SerialPort();
            //COM.PortName = "COM8";
            //COM.BaudRate = 115200;
            //COM.Parity = Parity.None;
            //COM.StopBits = StopBits.One;
            //COM.Open();
    COM.WriteLine("l40" + System.Environment.NewLine + (char)(26));
    COM.WriteLine("S40 13 0E 0500 S40 13 0F 07D0 P");    // vpered
            //COM.WriteLine("S40 13 0E 0500 S40 13 0F 07D0 P" + System.Environment.NewLine + (char)(26));
            // COM.Close();


Вообще я слышал что порт можно отрыть один раз и не закрывать пока им пользуешься. Поэтому я отключил закрытие.
РОБОТОТЕХНИКА для каждого СВОИМИ РУКАМИ - SERVODROID.RU [SERVODROID.RU-Робототехника для начинающих своими руками]
Аватара пользователя
S-T-A-L-K-E-R
 
Сообщения: 314
Зарегистрирован: 05 ноя 2009, 10:10
Откуда: Санкт-Петербург vs Мурманск
Skype: sergey199100
прог. языки: С, C++, C++++, Delphi, Pascal, Asm

Re: Отправка данных в COM на C#

Сообщение Grem » 24 июл 2011, 14:52

И что, нет шняжки типа такой?
Код: Выделить всёРазвернуть
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 
addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent evt){
        // тут обрабатывается закрытие окна
});
"There is nothing better than sliding down snow and flying through the air" (с) Shane McConkey.
Lieber ein Brett am Fuß als eins vorm Kopf, aber lieber ein Brett vorm Kopf als zwei am Fuß.
Аватара пользователя
Grem
 
Сообщения: 1530
Зарегистрирован: 16 май 2009, 12:50
Откуда: Россия
прог. языки: Java, C

Re: Отправка данных в COM на C#

Сообщение S-T-A-L-K-E-R » 24 июл 2011, 15:57

Нету. Что она делает расскажите. У меня есть в коде всплывающие окна "ошибок", которые можно закрыть но программа не закроется..
РОБОТОТЕХНИКА для каждого СВОИМИ РУКАМИ - SERVODROID.RU [SERVODROID.RU-Робототехника для начинающих своими руками]
Аватара пользователя
S-T-A-L-K-E-R
 
Сообщения: 314
Зарегистрирован: 05 ноя 2009, 10:10
Откуда: Санкт-Петербург vs Мурманск
Skype: sergey199100
прог. языки: С, C++, C++++, Delphi, Pascal, Asm

Re: Отправка данных в COM на C#

Сообщение Holmes » 25 июл 2011, 12:03

Я вот тут выкладывал свою недоделанную программу по управлению роботом, там есть ком порт.
http://roboforum.ru/forum10/topic9534-405.html#p209500

Если надо могу выложить прошивку ардуино которая эти команды обрабатывает.
Аватара пользователя
Holmes
 
Сообщения: 230
Зарегистрирован: 08 окт 2010, 14:22
Откуда: Москва
прог. языки: Java, Javascript, C
ФИО: Роман

Re: Отправка данных в COM на C#

Сообщение S-T-A-L-K-E-R » 26 июл 2011, 11:08

Holmes, спасибо, посмотрю. У меня не ардуина, у меня M32-... . )

Добавлено спустя 1 минуту 37 секунд:
Народ, еще вот странное явление:
При запуске среды разработки C#, при редактировании формы и компиляции после этого, - никаких изменений визуальных, например как "новая кнопка на форме" не появляется. Почему ? оО
РОБОТОТЕХНИКА для каждого СВОИМИ РУКАМИ - SERVODROID.RU [SERVODROID.RU-Робототехника для начинающих своими руками]
Аватара пользователя
S-T-A-L-K-E-R
 
Сообщения: 314
Зарегистрирован: 05 ноя 2009, 10:10
Откуда: Санкт-Петербург vs Мурманск
Skype: sergey199100
прог. языки: С, C++, C++++, Delphi, Pascal, Asm

Re: Отправка данных в COM на C#

Сообщение Angel71 » 26 июл 2011, 13:37

а оно точно откомпилировало, а не выдало вам кучу ошибок и при попытке запуска предложило запустить последнюю рабочую версию (и которое может не появляться, если вы галочку поставили)?
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Отправка данных в COM на C#

Сообщение S-T-A-L-K-E-R » 27 июл 2011, 13:49

Вот в этом то и проблема, я не могу понять как она компилит, после запуска на компиляцию, у меня прога сохраняет файл. Я захожу в bin в папку с проектом, там все как было раньше, старый файл...

Ошибка есть, она такая: Ошибка 1: не удалось скопировать файл "obj\Debug\xxx.exe" в "bin\Debug\xxx.exe". Процесс не может получить доступ к файлу "bin\Debug\xxx.exe", так как этот файл используется другим процессом. xxx

Не могу понять, какой еще процесс может хавать мою прогу "xxx.exe" кроме как этой среды разработки ?

Добавлено спустя 40 минут 52 секунды:
Проблема решена с ошибкой.

Добавлено спустя 51 минуту 53 секунды:
Так значит вопрос еще в силе: Как лучше работать с COM портом:
1. Открывать - записывать - закрывать ?
2. Открывать - исполнять весь код - закрывать ?
3. Открывать - и не закрывать ?
РОБОТОТЕХНИКА для каждого СВОИМИ РУКАМИ - SERVODROID.RU [SERVODROID.RU-Робототехника для начинающих своими руками]
Аватара пользователя
S-T-A-L-K-E-R
 
Сообщения: 314
Зарегистрирован: 05 ноя 2009, 10:10
Откуда: Санкт-Петербург vs Мурманск
Skype: sergey199100
прог. языки: С, C++, C++++, Delphi, Pascal, Asm

Re: Отправка данных в COM на C#

Сообщение galex1981 » 27 июл 2011, 16:23

Для предотвращения всевозможных глюков я делаю по пп 1, когда надо открываю, затем записываю/считываю, а затем закрываю
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Отправка данных в COM на C#

Сообщение Angel71 » 27 июл 2011, 17:28

странные потуги выбрать лучший вариант не приводя критериев оценки.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Отправка данных в COM на C#

Сообщение S-T-A-L-K-E-R » 27 июл 2011, 21:06

galex1981, а на скорости это сказывается ?
РОБОТОТЕХНИКА для каждого СВОИМИ РУКАМИ - SERVODROID.RU [SERVODROID.RU-Робототехника для начинающих своими руками]
Аватара пользователя
S-T-A-L-K-E-R
 
Сообщения: 314
Зарегистрирован: 05 ноя 2009, 10:10
Откуда: Санкт-Петербург vs Мурманск
Skype: sergey199100
прог. языки: С, C++, C++++, Delphi, Pascal, Asm

След.

Вернуться в Коммуникации

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4