Создание своего терминала. На основе Delphi
|
|
Doniak | Дата: Среда, 24.02.2010, 23:16 | Сообщение # 1 |
Язык программированя: CodeVisionAVR Си
Зарегистрирован 19.03.2008
Группа: Модераторы
Сообщений: 584
Город: Кривой Рог (Днепропетровск)
Статус: Offline
| Quote (Space) ага. для начало при подключение usb он должен будет остановить работу программы и напечатать сообщение в терминале. После сделаю нескеолько команд для теста всей его системы. Например покрутить моторами несколько секунд. или проверить работу шарпов и т.д. Добавлено (05.02.2010, 00:29) Под управляющей программой хотел сказать терминал тот что на ПК работает. Вот тоже хочу изучить микруху FT232BL только терминал хотелось бы свой, чтоб можно было матрицы формировать и сохранять в тхт формате... Может есть исходники какие нибудь? ---------------------------------------------------------------------------------------- Выдрано из темы Robbe
Сообщение отредактировал Space - Суббота, 27.02.2010, 16:02 |
|
| |
DeepBlack | Дата: Среда, 24.02.2010, 23:44 | Сообщение # 2 |
Язык программированя: C/C++
Зарегистрирован 27.07.2009
Группа: Модераторы
Сообщений: 189
Город: Зеленоград
Статус: Offline
| Doniak, посмотрите DLL библиотеку SerialGate - обалденная штука. Любой терминал набросать можно, причем, довольно быстро. Лежит она на http://pcports.ru. Там же примеры использования и подробное описание всех включенных в библиотеку функций.
|
|
| |
Doniak | Дата: Четверг, 25.02.2010, 00:47 | Сообщение # 3 |
Язык программированя: CodeVisionAVR Си
Зарегистрирован 19.03.2008
Группа: Модераторы
Сообщений: 584
Город: Кривой Рог (Днепропетровск)
Статус: Offline
| я про этот ресурс както совсем забыл. Хотя не понимаю как связали USB и COM порты
|
|
| |
DeepBlack | Дата: Четверг, 25.02.2010, 00:52 | Сообщение # 4 |
Язык программированя: C/C++
Зарегистрирован 27.07.2009
Группа: Модераторы
Сообщений: 189
Город: Зеленоград
Статус: Offline
| там ставится микросхемка - FT232 или (как я обычно делаю) CP2102 и она реализует в ПК виртуальный COM порт. А дальше все просто
|
|
| |
Space | Дата: Четверг, 25.02.2010, 16:52 | Сообщение # 5 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| Quote (Doniak) Может есть исходники какие нибудь? нету к сожалению Quote (DeepBlack) там ставится микросхемка - FT232 или (как я обычно делаю) CP2102 и она реализует в ПК виртуальный COM порт. А дальше все просто ага
|
|
| |
Doniak | Дата: Суббота, 27.02.2010, 02:09 | Сообщение # 6 |
Язык программированя: CodeVisionAVR Си
Зарегистрирован 19.03.2008
Группа: Модераторы
Сообщений: 584
Город: Кривой Рог (Днепропетровск)
Статус: Offline
| уу тоже подключил МК действительно все просто :) вот только терминалы что в CVAVR, что просто в виде отдельных прог слишком медленные максимум 115200 бод может кто встречал на 921600 ? так протестировать на максимуме
|
|
| |
DeepBlack | Дата: Суббота, 27.02.2010, 07:52 | Сообщение # 7 |
Язык программированя: C/C++
Зарегистрирован 27.07.2009
Группа: Модераторы
Сообщений: 189
Город: Зеленоград
Статус: Offline
| SerialGate рассчитана на работу в том числе и с виртуальными портами, скорость которых бывает гораздо выше, чем у физических портов. Поэтому там 1Мбод (а то и больше) спокойно ставить можно. Единственное, во что я лично уперся, тот факт что в CodeVision не получалось запрограммировать МК на такую скорость... ...а если у Вас XMega, то, возможно, там есть такая возможность
|
|
| |
Space | Дата: Суббота, 27.02.2010, 08:42 | Сообщение # 8 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| Doniak, посмотри стандартный гипертерминал винды. вчера скачал еще одтин терминал с робофорума, помотрю, если в нём есть такая скорость, то выложу. вообще ща собираюсь свою терминалку писать на делфи 7.
|
|
| |
юрии | Дата: Суббота, 27.02.2010, 08:55 | Сообщение # 9 |
Язык программированя: Васик
Зарегистрирован 05.03.2009
Группа: Новички
Сообщений: 572
Город: Югорск
Статус: Offline
| Space, Я смотрю мой совет сделать оптекатели пригодился
|
|
| |
S-T-A-L-K-E-R | Дата: Суббота, 27.02.2010, 09:24 | Сообщение # 10 |
Язык программированя: Мурманская область
Зарегистрирован 11.06.2009
Группа: Модераторы
Сообщений: 367
Город: Никель
Статус: Offline
| Хоть для чего-то годен Delphi
|
|
| |
Doniak | Дата: Суббота, 27.02.2010, 09:57 | Сообщение # 11 |
Язык программированя: CodeVisionAVR Си
Зарегистрирован 19.03.2008
Группа: Модераторы
Сообщений: 584
Город: Кривой Рог (Днепропетровск)
Статус: Offline
| Quote (Space) Doniak, посмотри стандартный гипертерминал винды. вчера скачал еще одтин терминал с робофорума, помотрю, если в нём есть такая скорость, то выложу. вообще ща собираюсь свою терминалку писать на делфи 7. smile3 Присоединяюсь тоже буду на делфи писать Quote (DeepBlack) SerialGate вещь хорошая но в наличии есть борланд С++ а там отказывается работать выкидывает ошибки ... Quote (DeepBlack) ...а если у Вас XMega, то, возможно, там есть такая возможность угу есть :)
|
|
| |
DeepBlack | Дата: Суббота, 27.02.2010, 10:54 | Сообщение # 12 |
Язык программированя: C/C++
Зарегистрирован 27.07.2009
Группа: Модераторы
Сообщений: 189
Город: Зеленоград
Статус: Offline
| я в борланде писал с SG. там, единственное, подключал как статическую библиотеку, а не как динамическую. и немного подогнал код под особенности борланда. А можно вообще проще сделать. Там в библиотеке по сути, прописан класс SerialGate, а в программе создается объект этого класса. Можно тупо скопировать описание этого класса (с набором необходимых функций) и вставить в свою программу подгоняя под особенности компилятора. И если не ошибаюсь, в борланде по-своему производятся настройки DCB параметров - их я тоже сам писал. Ну там совсем немного - срочек 15-20 максимум исправил. Что-то вот такое у меня было (подключить нормально, чтоб не ругался, не умел, поэтому я просто прописал необходимые функции в своей программе): Code __fastcall TForm3::TForm3(TComponent* Owner) : TForm(Owner) {
StatusBar1->Panels->Insert(0)->Text="COM4";
count=0;
} //--------------------------------------------------------------------------- bool TForm3::PortOpen (int num, int rate){ try { PortOpen(4,56000); char COM_string[20]; sprintf(COM_string,"\\\\.\\COM%d",num);
m_hFile = CreateFile(COM_string, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); } catch (Exception &exception) { ShowMessage("Невозможно открыть порт");
} if (m_hFile == INVALID_HANDLE_VALUE) {
CloseHandle(m_hFile); StatusBar1->Panels->Insert(1)->Text="Error"; Form3->Close(); return false; } else StatusBar1->Panels->Insert(1)->Text="Open"; DCB dcb; GetCommState(m_hFile,&dcb);
COMMTIMEOUTS CommTimeOuts; CommTimeOuts.ReadIntervalTimeout = MAXDWORD; CommTimeOuts.ReadTotalTimeoutMultiplier = 0; CommTimeOuts.ReadTotalTimeoutConstant = 0; CommTimeOuts.WriteTotalTimeoutMultiplier = 0; CommTimeOuts.WriteTotalTimeoutConstant = 1000;
SetCommTimeouts(m_hFile,&CommTimeOuts);
dcb.ByteSize = 8; dcb.Parity = NOPARITY; dcb.StopBits = ONESTOPBIT; dcb.BaudRate = rate;
SetCommState(m_hFile,&dcb);
catch (Exception &exception) { ShowMessage("Невозиожно открыть порт"); } return true; } void __fastcall TForm3::FormClose(TObject *Sender, TCloseAction &Action) { CloseHandle(m_hFile); } //---------------------------------------------------------------------------
char TForm3::Recv(int szBuff){
if(buff==NULL||szBuff<=0) { StatusBar1->Panels->Insert(2)->Text = "Ошибка вызова функци"; }
DWORD dwBytesRead = 0; ReadFile(m_hFile,buff,szBuff,&dwBytesRead,NULL); char a = buff[0]; return a; } функции приема написаны с учетом назначения программы, поэтому могут отличаться от заданных в библиотеке. p.s. а вообще, наверно, надо отдельную тему про интерфейсы сделать, и туда часть сообщений отсюда перенести - а то тема все-таки про робота....
|
|
| |
Space | Дата: Суббота, 27.02.2010, 11:27 | Сообщение # 13 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| Quote (юрии) Space, Я смотрю мой совет сделать оптекатели пригодился smile3 ага... но в процессе обтекатели будут заменены на контактные бампера, но на корпусе из пвх Quote (S-T-A-L-K-E-R) Хоть для чего-то годен Delphi smile3 Между прочим оч удобная вещь. Я в универе на первом курсе изучал его. Правда ща всё забыл придётся вспоминать как, чего и куда... Вообщем терминал ниже. Но скорость максимальная в нём 256000. Кстати этот терминал написан на делфи
|
|
| |
Doniak | Дата: Суббота, 27.02.2010, 11:45 | Сообщение # 14 |
Язык программированя: CodeVisionAVR Си
Зарегистрирован 19.03.2008
Группа: Модераторы
Сообщений: 584
Город: Кривой Рог (Днепропетровск)
Статус: Offline
| Quote (Space) Кстати этот терминал написан на делфи если есть исходник скинь
|
|
| |
Space | Дата: Суббота, 27.02.2010, 11:52 | Сообщение # 15 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| я бы сам рад был увидеть исходник. Если парень даст исходник, то скину. Вот здесь куча исходников на делфи.
|
|
| |
|