Технический форум по робототехнике.
S-T-A-L-K-E-R » 22 июл 2011, 16:34
Пишу тут, так как не знаю где еще искать...
Нужен простой пример работы с портами на C#. У меня есть своя рабочая программа, но ее эффективность желает лучшего.
Возможно кто-нибудь из вас программирует на 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 + там есть поиск, воспользовавшись которым иногда очень быстро можно найти ответы. и только когда что-то не допоняли или не получается спрашивать
так быстрей и эффективней
S-T-A-L-K-E-R » 22 июл 2011, 17:29
Видимо я не правильно ставил вопрос товарищу Гугл
Добавлено спустя 6 минут 6 секунд:
Вот в первой теме вроде то что надо )
S-T-A-L-K-E-R » 23 июл 2011, 18:20
БЛин, серавно не могу понять почему у меня так работает программа ?
Нажимаем кнопку "вперед",.1,2,3,4сек - команда дошла. Заработала серва(например). Жмем "назад"-1,2,3...-ничего. Жмем еще раз-включается. Также с остальными кнопками. Но когда жмем опять вперед программа вылетает с ошибкой: "Невозможно задать значение PortName, порт (то) закрыт\открыт".
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();
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();
Вообще я слышал что порт можно отрыть один раз и не закрывать пока им пользуешься. Поэтому я отключил закрытие.
Grem » 24 июл 2011, 14:52
И что, нет шняжки типа такой?
- Код: Выделить всё • Развернуть
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent evt){
// тут обрабатывается закрытие окна
});
S-T-A-L-K-E-R » 24 июл 2011, 15:57
Нету. Что она делает расскажите. У меня есть в коде всплывающие окна "ошибок", которые можно закрыть но программа не закроется..
Holmes » 25 июл 2011, 12:03
Я вот тут выкладывал свою недоделанную программу по управлению роботом, там есть ком порт.
http://roboforum.ru/forum10/topic9534-405.html#p209500Если надо могу выложить прошивку ардуино которая эти команды обрабатывает.
S-T-A-L-K-E-R » 26 июл 2011, 11:08
Holmes, спасибо, посмотрю. У меня не ардуина, у меня M32-... . )
Добавлено спустя 1 минуту 37 секунд:
Народ, еще вот странное явление:
При запуске среды разработки C#, при редактировании формы и компиляции после этого, - никаких изменений визуальных, например как "новая кнопка на форме" не появляется. Почему ? оО
Angel71 » 26 июл 2011, 13:37
а оно точно откомпилировало, а не выдало вам кучу ошибок и при попытке запуска предложило запустить последнюю рабочую версию (и которое может не появляться, если вы галочку поставили)?
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. Открывать - и не закрывать ?
galex1981 » 27 июл 2011, 16:23
Для предотвращения всевозможных глюков я делаю по пп 1, когда надо открываю, затем записываю/считываю, а затем закрываю
Angel71 » 27 июл 2011, 17:28
странные потуги выбрать лучший вариант не приводя критериев оценки.
S-T-A-L-K-E-R » 27 июл 2011, 21:06
galex1981, а на скорости это сказывается ?