![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| Sholkin |
|
|||
|
Unregistered |
Здравствуйте.
Проблема вот в чём. Нужно написать программу для получения данных через ком порт . COM 2. Нашёл пример программы . Но не могу разобраться вот в чём .Она работает но ни чего не принимает с ком порта . Порт настроен но переменная Blocks:=Stat.cbInQue div BufSize; всегда равна нулю. Функция Stat.cbInQue количество данных в буфере не выполняется . Почему ? Или нужна другая функция . Просьба помочь. Исходник своей программы предоставляю
Это сообщение отредактировал(а) Girder - 10.12.2004, 21:02 |
|||
|
||||
| Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 25 Всего: 155 |
Надеюсь... что сброс буфера в файл ты сам допишеш. Я пометил где енто сделать...
Удачи. Присоединённый файл ( Кол-во скачиваний: 104 )
COM2_Girder.zip-------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
| Pathfider |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 13.7.2004 Где: все там же Репутация: нет Всего: 1 |
А ещ можно найти компонент tmsa32. Там есть то, что тебе нужно.
--------------------
Trust is a weakness |
|||
|
||||
| Sholkin |
|
||||
|
Unregistered |
Всё это хорошо. Но как заставить работать мою программу ?
Всё же почему не выполняеться команда Stat.cbInQue (смотреть выше мою программу) Убрал этот кусок с этой функцией
просто написал
читает данные но если нет данных в сом порте зависает Как эту проблему решить и почему не выполняеться команда Stat.cbInQue ? Это сообщение отредактировал(а) Girder - 25.1.2005, 18:50 |
||||
|
|||||
| Гость_Sholkin |
|
||||
|
Unregistered |
Здравствуйте.
Ещё раз хочу вернуться к этой проблеме . Модифицировал программу. добавил
Всё нормально .Но проблема вот в чём . Что она бод 2000 и XP не работает , Виснит на команде ReadFile(hCOM,Blocks,1,Bytes,nil); Если перед запуском моей программы запустить программу которую предложил Girder всё нормально работает Помогите разобраться почему виснит ??? Исводник прелогаю
Это сообщение отредактировал(а) Girder - 16.2.2005, 15:09 |
||||
|
|||||
| Girder |
|
||||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 25 Всего: 155 |
PS: И много... чего еще можно(и нужно) изменить(и добавить... типо WaitCommEvent и т.п.) в твоей проге Это сообщение отредактировал(а) Girder - 16.2.2005, 17:24 -------------------- Как слышим, так и пишим. Истина где-то там... |
||||
|
|||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: нет Всего: 7 |
Надо испытанный модуль или решили проблему?
|
|||
|
||||
| Radix |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 18.2.2005 Репутация: нет Всего: нет |
|
||||
|
|||||
| Гость_Sholkin |
|
||||
|
Unregistered |
Здравствуйте.
Ёщё раз хочу вернуться к программе передачи по COM 2 порту Написал два модуля один передает данные другой принимает. По отдельности вроде бы работают но проверить действительно ли данные физически отправляются нет возможности . Соединил эти два одуля в одну программу . Сначала передаю потом принимаю на одном компе . Вопрос вот какой . Таким способом можно проверить программу или нет ? Вопрос второй не выполняется блок в программе проверки наличия данных для приема
Исходник прилогаю
Это сообщение отредактировал(а) Girder - 8.7.2005, 14:36 |
||||
|
|||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: нет Всего: 7 |
Надо испытанный модуль или решили проблему?
|
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 15 Всего: 55 |
Сделай Nul-модемный кабель и соедини им два порта одного компа. Сможешь в один порт передавать данный, а из другого принимать. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
Girder, узнаёшь свой код?
так вот во время выполнения программы требуется менять имя порта, нажимаю кнопку инициализации порта - всё нормально, нажимаю, второй раз подряд - получается, что ComHandle := INVALID_HANDLE_VALUE третий раз нажимаю - опять всё в порядке (никаких параметров не меняю)
|
|||
|
||||
| Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
кстати, зачем сюда
передавать size??? Добавлено @ 17:05 проблему вроде решил, но посмотрим, что будет дальше
|
||||
|
|||||
| Girder |
|
||||||||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 25 Всего: 155 |
-------------------- Как слышим, так и пишим. Истина где-то там... |
||||||||
|
|||||||||
| Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
"Отказано в доступе" Добавлено @ 09:15
ну ты, блин, даёшь тем немнее всё работало, исправил, проверю |
||||
|
|||||
| Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
я работаю со сканером штрих-кода, поэтому меня ещё волнует
правильно ли здесь естановлены EV_RING+EV_RXCHAR+EV_RXFLAG+EV_TXEMPTY
Добавлено @ 10:00 может чего лишнее?? или чего не хватает читал справку, так по справке вообще можно оставить только EV_RXCHAR EV_RXFLAG EV_TXEMPTY |
||||
|
|||||
| Girder |
|
||||||||||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 25 Всего: 155 |
- Вместо
PS: Или после CloseHandle... вставь while WaitCommEvent(ComHandle,EvtMask,nil) do;
-------------------- Как слышим, так и пишим. Истина где-то там... |
||||||||||
|
|||||||||||
| Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
Girder мне такое не подходит
т.к. у меня на форме настройки есть кнопка "Тест". Конкретно я не могу определить подключен ли к порту сканер штрих-код или нет, поэтому я и сделал кнопку "Тест". Для чего? Изменяем параметры порта - нажимает "Тест", сканируем штрих-код, если в Edit1 вылезло чего-то, то всё в порядке иначе меняем параметры, нажимает кнопку тест... Добавлено @ 13:58
откуда ж мен знать, нужны или нет. Сейчас пока работают, отдам в супермаркет - начнуться проблемы |
||||
|
|||||
| Girder |
|
||||||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 25 Всего: 155 |
См. внимательней:
-------------------- Как слышим, так и пишим. Истина где-то там... |
||||||
|
|||||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
так что, строку
вообще мона убрать? |
|||
|
||||
| Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 25 Всего: 155 |
Убирай только SetCommMask -------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
||||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |