0 / 0 / 0
Регистрация: 16.01.2011
Сообщений: 5
|
|
1 | |
rs 23216.01.2011, 12:27. Показов 5418. Ответов 7
Метки нет (Все метки)
нужна программа которая будет автоматически определять порт к которому подключенн, отсылалать по rs 232 и принимать байты
0
|
16.01.2011, 12:27 | |
Ответы с готовыми решениями:
7
Rs 232, асинхронный режим RS-232 (COM - порт) и С++ Кабель RS-232 RS-232C и RS-232 |
5 / 5 / 0
Регистрация: 15.01.2011
Сообщений: 58
|
|
16.01.2011, 12:40 | 2 |
Только что сам разбирался как работают программы с com портами и в процессе нашел такую программу-пример. Считывает/отправляет данные с com порта и определяет количество байт для передачи и количество переданных байт. Для определения com порта нет модуля. Попробуй у яндекса спросить, может найдется. Если нужно чтобы чтение происходило в потоке- пиши в личку, скину свой модуль.
0
|
5 / 5 / 0
Регистрация: 15.01.2011
Сообщений: 58
|
|
16.01.2011, 12:43 | 3 |
если можешь, помоги с парой вопросов. Я уже скоро все волосы на голове повыдираю себе)))
Поиск ячейки в StringGrid Сортировка StringGrid. В чем ошибка?
0
|
0 / 0 / 0
Регистрация: 16.01.2011
Сообщений: 5
|
|
16.01.2011, 13:10 [ТС] | 4 |
0
|
5 / 5 / 0
Регистрация: 15.01.2011
Сообщений: 58
|
|
16.01.2011, 13:35 | 5 |
Ты номер порта правильно указал? Проверь еще скорость, биты данных, четность и стоповые биты в настройках порта. Они должны совпадать с данными в программе
Добавлено через 4 минуты Вот что я изменял чтобы у меня работал сканер штрих-кодов в ней Port:=CreateFile( '\\.\COM1', !!!тут я устанавливал номер своего порта!!! GENERIC_READ or GENERIC_WRITE,//открываем порт для чтения и записи 0, //общий доступ к ресурсу запрещен, для портов всегда так nil, //атрибуты защиты, не используются и потому nil OPEN_EXISTING, //атрибуты открытия, для портов OPEN_EXISTING FILE_ATTRIBUTE_NORMAL, //для синхронной работы так 0 //хз что это, но должно быть так ); и в ком порте я поставил настройки как тут: GetCommState(port, DCB); //что бы не заполнять всю структуру самим, сначал считываем ее, потом поменяем нужные поля DCB.BaudRate:=9600; // скорость обмена DCB.Parity:=NoParity; // нет контроля четности DCB.ByteSize:=8; //байт из восьми бит DCB.StopBits:=ONESTOPBIT; //один стоповый бит SetCommState(port, DCB); //записываем измененную структуру, для открытого порта Добавлено через 10 минут Еще эту процедуру поправлял. Надо изменить тип RCBuf на PAnsiChar, иначе на экран у меня выводились иероглифы procedure TMainForm.ReadDataClick(Sender: TObject); Var RCBuf:PChar; //Буфер данных для приема nToRead:Cardinal; //Число байт для чтения nRead:Cardinal; //Число прочитанных байт ComStat:TComStat; //состояние порта Errsword; begin ClearCommError(POrt,Errs,@ComStat); //считываем состояние порта nToRead:=ComStat.cbInQue; //считываем число байт для чтения из структуры nToReadLabel.Caption:=IntToStr(nToRead); //выводим на форму число байт для чтения ReadFile(Port,RCBuf^,nToRead,nRead,nil); //считываем данные nReadLabel.Caption:=IntToStr(nRead); //выводим на форму число прочитанных байт RcDataLabel.Caption:=RCBuf; end;
1
|
0 / 0 / 0
Регистрация: 16.01.2011
Сообщений: 5
|
|
16.01.2011, 17:32 [ТС] | 6 |
0
|
5 / 5 / 0
Регистрация: 15.01.2011
Сообщений: 58
|
|
16.01.2011, 17:44 | 7 |
0
|
0 / 0 / 0
Регистрация: 16.01.2011
Сообщений: 5
|
|
23.01.2011, 18:02 [ТС] | 8 |
кто-нибудь моежт скинуть программу которая открывает и общается с портом рс 232 в АСИНХРОННОМ режиме?
0
|
23.01.2011, 18:02 | |
23.01.2011, 18:02 | |
Помогаю со студенческими работами здесь
8
Com Port RS 232 Modbus RTU по RS-232 RS-232 Подключение к com port Библиотека С++ для RS-232 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |