![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
СЭНСЭЙ |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 432 Регистрация: 20.3.2006 Репутация: нет Всего: нет |
Привет всем.
Начал работать с ком портом. Есть устройство, которое подключается к ком порту и посылает на него данные. Формат данных известен, он строковый. Как задать порт я понял, функции чтения и записи тоже понятны. Но нужно наверное повесить чтение данных на отдельный процесс. Помогите пожалуйста кто в этом уже разбирается. Когда опрашиваю скорость ком порта, то выдается 1200 хотя в свойствах в диспетчере устройств установленно 9600 из за чего это? Это сообщение отредактировал(а) СЭНСЭЙ - 5.6.2009, 08:59 |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
на заборе много чего написано , сколько раз заглядывал никогда ничего нет:( конкретно что надо опиши плз -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
СЭНСЭЙ |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 432 Регистрация: 20.3.2006 Репутация: нет Всего: нет |
Буду последовательно описывать проблемы
первая с чтением данных Вот код:
Выдает ошибку 997 я смотрел - Код ошибки: 997 (0x03E5) Протекает наложенное событие ввода/вывода. Это сообщение отредактировал(а) СЭНСЭЙ - 5.6.2009, 16:37 |
|||
|
||||
СЭНСЭЙ |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 432 Регистрация: 20.3.2006 Репутация: нет Всего: нет |
Оу разобрался
нужно использовать такой цикл
только я отправляю в один порт данные в формате Pchar, а по нульмодемному кабелю другой порт читаю но данные принимаются в виде иероглифов <Фw-П типа такого вот код отправки
|
||||
|
|||||
СЭНСЭЙ |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 432 Регистрация: 20.3.2006 Репутация: нет Всего: нет |
Попробовал отправлять и принимать данные в виде массивов типа byte
отправляю WriteBytes: array of Byte; WriteBytes2: array[0..2] of Byte; setlength(writebytes,3); writebytes[0]:=1; writebytes[1]:=3; writebytes[2]:=2; а когда принимаю команда edit1.text:=inttostr(writebytes2[0]); выдает 133 а если вместо этого выполнить edit1.text:=inttostr(writebytes2[0])+' '+inttostr(writebytes2[1])+' '+inttostr(writebytes2[2]); выдает ошибку в этом месте
непонятно почему так как этот код в цикле а принятые данные вывожу уже за циклом |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
непонятно где произошла ошибка ,
и не понятно какой код используешь , ибо куски что выложены с трудом связываются , можешь полный текст дать передатчика и приемника ком порта -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
СЭНСЭЙ |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 432 Регистрация: 20.3.2006 Репутация: нет Всего: нет |
ок вот весь код
но это еще больше измененный со вчера
ну вот portin и oirtout это выподающие меню где два варианта COM1 и COM2 у меня COM1 и COM2 соединены нуль модемным кабелем если в этой строке edit1.text:=inttostr(writebytes2[0]);//+' '+inttostr(writebytes2[1])+' '+inttostr(writebytes2[2]); раскоментить остальную часть то возникает странная ошибка и у меня сложилось впечатление что команда ReadFile в цикле ничего не читает на самом деле так как что бы я ни послал в один порт на выходе в массиве writebytes2 одно и то же |
|||
|
||||
Romikgy |
|
||||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
1. я бы остановился на статическом массиве а не на динамике
т.к. вызов
не гарантирует передачу именно внутреностей массива (могу и ошибатся ! то адресс откуда читать я бы указал явно !) 2. да и в вызове передача масива из 3 байт а количество байт на передачу от Outstring его длина не известна .... возможно 0 и тогда ничего не передастся или очень много и передашь муссор..... 3. тоже имхо не хороший вызов dwRead, dwRead, я бы сделал 2 переменые .... 4. и зделай 2 буфера ,один для передачи , второй для приема , для наглядности
уйдет это имхо 5. какая ошибка? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |