roboforum.ru

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

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

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

S-T-A-L-K-E-R » 22 июл 2011, 16:34

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

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

Заранее благодарю!

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: так быстрей и эффективней

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

S-T-A-L-K-E-R » 22 июл 2011, 17:29

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

Добавлено спустя 6 минут 6 секунд:
Вот в первой теме вроде то что надо )

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

S-T-A-L-K-E-R » 23 июл 2011, 18:20

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

Нажимаем кнопку "вперед",.1,2,3,4сек - команда дошла. Заработала серва(например). Жмем "назад"-1,2,3...-ничего. Жмем еще раз-включается. Также с остальными кнопками. Но когда жмем опять вперед программа вылетает с ошибкой: "Невозможно задать значение PortName, порт (то) закрыт\открыт".

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();

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();


Вообще я слышал что порт можно отрыть один раз и не закрывать пока им пользуешься. Поэтому я отключил закрытие.

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

Grem » 24 июл 2011, 14:52

И что, нет шняжки типа такой?
Код: Выделить всёРазвернуть
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 
addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent evt){
        // тут обрабатывается закрытие окна
});

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

S-T-A-L-K-E-R » 24 июл 2011, 15:57

Нету. Что она делает расскажите. У меня есть в коде всплывающие окна "ошибок", которые можно закрыть но программа не закроется..

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

Holmes » 25 июл 2011, 12:03

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

Если надо могу выложить прошивку ардуино которая эти команды обрабатывает.

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

S-T-A-L-K-E-R » 26 июл 2011, 11:08

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

Добавлено спустя 1 минуту 37 секунд:
Народ, еще вот странное явление:
При запуске среды разработки C#, при редактировании формы и компиляции после этого, - никаких изменений визуальных, например как "новая кнопка на форме" не появляется. Почему ? оО

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

Angel71 » 26 июл 2011, 13:37

а оно точно откомпилировало, а не выдало вам кучу ошибок и при попытке запуска предложило запустить последнюю рабочую версию (и которое может не появляться, если вы галочку поставили)?

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. Открывать - и не закрывать ?

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

galex1981 » 27 июл 2011, 16:23

Для предотвращения всевозможных глюков я делаю по пп 1, когда надо открываю, затем записываю/считываю, а затем закрываю

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

Angel71 » 27 июл 2011, 17:28

странные потуги выбрать лучший вариант не приводя критериев оценки.

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

S-T-A-L-K-E-R » 27 июл 2011, 21:06

galex1981, а на скорости это сказывается ?


cron
Rambler\'s Top100 Mail.ru counter