roboforum.ru

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

COM-порт. Программирование на стороне ПК. Алгоритмы связи.

Автомат, адаптивный автомат ... разум

Re: COM-порт. Программирование на стороне ПК. Алгоритмы связи.

Сообщение ALHIMIK » 03 ноя 2009, 11:27

спасибо
так и знал что всё нужно делать своими руками :D
Аватара пользователя
ALHIMIK
 
Сообщения: 997
Зарегистрирован: 05 окт 2008, 14:41
Откуда: СПб
прог. языки: C,Python

Re: COM-порт. Программирование на стороне ПК. Алгоритмы связи.

Сообщение Duhas » 03 ноя 2009, 12:05

хотя, у меня контроллер преобразует.. т.е. я в терминалке пишу s200s210 он поймет что это как s - скорость 1 из двигателей, а дальше число... но у меня все жестко задано.. 3 цифры и ограничение в байт...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: COM-порт. Программирование на стороне ПК. Алгоритмы связи.

Сообщение ALHIMIK » 03 ноя 2009, 17:41

чёт не понял
те передаётся 4 байта ?
's' '2' '0' '0' ?
Аватара пользователя
ALHIMIK
 
Сообщения: 997
Зарегистрирован: 05 окт 2008, 14:41
Откуда: СПб
прог. языки: C,Python

Re: COM-порт. Программирование на стороне ПК. Алгоритмы связи.

Сообщение galex1981 » 03 ноя 2009, 17:52

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

Re: COM-порт. Программирование на стороне ПК. Алгоритмы связи.

Сообщение ALHIMIK » 03 ноя 2009, 18:26

а где именно выложенна ?
Аватара пользователя
ALHIMIK
 
Сообщения: 997
Зарегистрирован: 05 окт 2008, 14:41
Откуда: СПб
прог. языки: C,Python

Re: COM-порт. Программирование на стороне ПК. Алгоритмы связи.

Сообщение Duhas » 03 ноя 2009, 19:21

да передается 4 байта..

а о какой программе речь?
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: COM-порт. Программирование на стороне ПК. Алгоритмы связи.

Сообщение ALHIMIK » 03 ноя 2009, 20:48

понятия не имею :ROFL:
но принцып её работы ясен - перебор массива
вводиш нужную цифру получаеш символ
2 Духас -
складывание числа из цифр происходит путём домножения на разряды ( первую на 100 второю на 10 ) и последующим складыванием ?
а числом считается всё то что от 0х30 и до 0х39 ?
Аватара пользователя
ALHIMIK
 
Сообщения: 997
Зарегистрирован: 05 окт 2008, 14:41
Откуда: СПб
прог. языки: C,Python

Re: COM-порт. Программирование на стороне ПК. Алгоритмы связи.

Сообщение Duhas » 03 ноя 2009, 21:55

да примерно так ) точнее принцип должен быть таким 100% но как у меня написано - не скажу точно... писалось много всего за 1 мутную ночь ))
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re:

Сообщение Doniak » 27 фев 2010, 19:25

SS писал(а):Если интересно, то можешь скачать с http://ss85.front.ru/DS/ComTerminal.exe
Это моя прога, я её как-то написал когда нужно было работать с COM портом, в этом же архиве исходник на Delphi 7. Описание не очень, но код не сложный разбирёшся быстро.

ваша программа игнорирует пустые принятые байты например 0х00, как можно это исправить?
DCB.Fnull:=falshe; должно это исправить я так понимаю но компилятор ругается такова не находит . Пишу в Borland Delphi 7 2002года может за старая версия?
Аватара пользователя
Doniak
 
Сообщения: 142
Зарегистрирован: 26 сен 2007, 08:25
Откуда: Krivoy Rog, ukraina
прог. языки: Си
ФИО: Коля

Re: COM-порт. Программирование на стороне ПК. Алгоритмы связи.

Сообщение Duhas » 27 фев 2010, 19:27

falshe ? мб False?))
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: COM-порт. Программирование на стороне ПК. Алгоритмы связи.

Сообщение Doniak » 27 фев 2010, 20:15

Не кретично компилятору не нравится вот это
Код: Выделить всёРазвернуть
DCB.Fnull
Аватара пользователя
Doniak
 
Сообщения: 142
Зарегистрирован: 26 сен 2007, 08:25
Откуда: Krivoy Rog, ukraina
прог. языки: Си
ФИО: Коля

Re: COM-порт. Программирование на стороне ПК. Алгоритмы связи.

Сообщение boez » 28 фев 2010, 20:44

Ну так открой windows.pas, найди там определение TDCB и посмотри как это поле зовется в паскале...
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: COM-порт. Программирование на стороне ПК. Алгоритмы связ

Сообщение Grean » 04 дек 2010, 23:56

Подскажите пожайлуста,хочу написать програму для com порта. Вот код в Cbuilder
Код: Выделить всёРазвернуть
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"

TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{ HANDLE handle;
COMMTIMEOUTS CommTimeOuts;
DCB dcb;
handle = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, NULL, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);
SetupComm(handle, 6, 6);
GetCommState(handle, &dcb);

dcb.DCBlength=sizeof(dcb);
dcb.BaudRate = CBR_115200;
dcb.fBinary = TRUE;
dcb.fOutxCtsFlow = FALSE;
dcb.fOutxDsrFlow = FALSE;
dcb.fDtrControl = DTR_CONTROL_DISABLE;
dcb.fDsrSensitivity = FALSE;
dcb.fNull = FALSE;
dcb.fRtsControl = RTS_CONTROL_DISABLE;
dcb.fAbortOnError = FALSE;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = 1;
SetCommState(handle, &dcb);

CommTimeOuts.ReadIntervalTimeout= 10;
CommTimeOuts.ReadTotalTimeoutMultiplier = 1;

CommTimeOuts.ReadTotalTimeoutConstant = 100;

CommTimeOuts.WriteTotalTimeoutMultiplier = 0;
CommTimeOuts.WriteTotalTimeoutConstant = 0;
SetCommTimeouts(handle, &CommTimeOuts);


PurgeComm(handle, PURGE_RXCLEAR);
PurgeComm(handle, PURGE_TXCLEAR);

DWORD numbytes, numbytes_ok, temp;
COMSTAT ComState;
OVERLAPPED Overlap;
char buf_in[6] = "Hello!";
char buf_in1[6];
numbytes = 6;
ClearCommError(handle, &temp, &ComState);
// если temp не равно нулю, значит порт в состоянии ошибки
if(!temp) WriteFile(handle, buf_in, numbytes, &numbytes_ok, &Overlap);
ClearCommError(handle, &temp, &ComState);
if(!temp) ReadFile(handle, buf_in1, numbytes, &numbytes_ok, &Overlap);
// в переменной numbytes_ok содержится реальное число переданных-
// принятых байт
Edit1->Text=buf_in1;
}
//---------------------------------------------------------------------------


Спаял кабель корочу второй с третим контактом не работает.Зарание спасибо

Модератор Vooon:Код нужно заключать в теги CODE!
Дублировать сообщения не нужно!
Grean
 
Сообщения: 1
Зарегистрирован: 04 дек 2010, 23:55

Re: COM-порт. Программирование на стороне ПК. Алгоритмы связ

Сообщение lord.tiran » 26 фев 2011, 14:31

Существует замечательная библиотека boost написанная на с++ она кросплатформенна - те ее можно использовать под linux, windows, qnx. Это куда эффективнее чем что-то на delphi или python. С++ куда более пригоден для написания программы управления роботом. Boost - это почти стандарт. Скачать библиотеку можно с официального сайта. Хорошую статью и код где работают с serial port я видел тут http://robot-develop.org/archives/450.
Аватара пользователя
lord.tiran
 
Сообщения: 9
Зарегистрирован: 26 фев 2011, 14:14
Откуда: Москва
прог. языки: С/С++

Re: COM-порт. Программирование на стороне ПК. Алгоритмы связ

Сообщение Romikgy » 28 фев 2011, 12:06

на дельфе пишутся софты для работы с ком портом также легко как и на си плюс плюс
die Wahrheit ist irgendwo da draußen
Аватара пользователя
Romikgy
 
Сообщения: 750
Зарегистрирован: 15 ноя 2009, 13:37
Откуда: Porto Franco "Odessa"

Пред.След.

Вернуться в Алгоритмы

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

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