|
|
|
COM-порт из BC4.0 под Win'98
|
|||
|---|---|---|---|
|
#18+
Господа! Не могу принять данные из COM-порта. Подозрение - что-то недопроинициализировал. Пишу в BC 4.0. Фрагмент кода: // c = "COM1"; // int trb, err, rcb; // COMSTAT comstat; if((idComDev = OpenComm(c, 128, 128)) < 0) MessageBox("Выбранный порт не может быть открыт", "Ошибка", MB_OK | MB_ICONSTOP); else { GetCommState(idComDev, &pstat); ............ // установка скорости, размера, паритета SetCommState(&pstat); trb = WriteComm(idComDev, array, ((int)array[0] & 0x0F) + 1); err = GetCommError(idComDev, &comstat); rcb = ReadComm(idComDev, array, sizeof(array)); CloseComm(idComDev); ................. // обработка принятой информации } /* else */ RXD соединен с TXD, наличие перемычек RTS-CTS-DTR-DSR на результат не влияет. Очередь приема - пустая. Даже если UngetCommChar() затолкать туда байты, ReadComm() их все равно не читает. PLS, подскажите! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2004, 06:22 |
|
||
|
COM-порт из BC4.0 под Win'98
|
|||
|---|---|---|---|
|
#18+
Понятия не имею в чем у тебя дело, но расскажу как было у меня. Мы разрабатывали POS-терминал на базе компа. Ну, кардридер, модем, все через COM порты работает. Естественно Хотели сделать чтобы все работало под WinXX/DOS. Короче перелопатили всю MSDN вдоль и поперек. Оказалось, что то, что написано в MSDN - хорошо работает для NT, а в 95/98 - сплошной облом. Результат - верси тока под DOS и NT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2004, 09:50 |
|
||
|
COM-порт из BC4.0 под Win'98
|
|||
|---|---|---|---|
|
#18+
под 98 если хочется, могу посоветовать попробовать работать также как и под ДОС... муторно, но по мойму операционка подпустит к портам и гарантированно не будет работать под ядро NT. для отладки могу порекомендовать соеденить COM1-COM2 на один порт повесить штатную прогу, на второй тестируемую и отлаживаться. по поводу аппаратуры для самой простой работы с портом нужны только сигналы RxD, TxD и земля. попроуй запустить сперва только с ними, а потом управляй остальными, если нужно. Да, могу предупредить, правда в win2000 драйвер кривой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2004, 11:11 |
|
||
|
COM-порт из BC4.0 под Win'98
|
|||
|---|---|---|---|
|
#18+
BC 4.0 не дает доступа к функциям inportb() - outportb() и bioscom() для приложений под Windows. Все предыдущие задачи подобного рода решались именно этим путем, но в прогах под DOS. Под Виндами они работают не шибко устойчиво, и гарантированный успех можно ожидать только в однозадачном режиме, что является прошлым веком. С передачей проблем нет, ответное устройство реагирует правильно, и отвечать пытается. Приведенный фрагмент должен иллюстрировать принцип "что передал, то и получил", да не получается. Попробовал тот же изврат в BC5.0. Результат тот же. Попробую еще сгенерить 32-х битное приложение - там функции работы с портом другие. Вопрос не закрыт! pconst ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2004, 12:55 |
|
||
|
COM-порт из BC4.0 под Win'98
|
|||
|---|---|---|---|
|
#18+
Воспользуйся библиотекой comapi32.dll в инете есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2004, 16:08 |
|
||
|
COM-порт из BC4.0 под Win'98
|
|||
|---|---|---|---|
|
#18+
Господа, я что-то не пойму в чем трабл-то ? Открыть порт? CreateFile : cинхронно без структры overlapped, асинхронно с ней. Чтение как файл, запись так же. Обработка очереди посредсвом событий или функций ожидания. 1000E+11100 статей в нете. С уважение Flex2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 21:34 |
|
||
|
COM-порт из BC4.0 под Win'98
|
|||
|---|---|---|---|
|
#18+
Можно попробовать это: поставте так. наз. fossil-драйвер (WinFossil и др.), который будет держать порт уже открытым и проинициализированным настройками из "Control Panel->WinFossil" Windows. Там галки есть: на скорость порта, держать ли его открытым etc. Иногда помогает :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2004, 23:24 |
|
||
|
|

start [/forum/topic.php?fid=57&tid=2034925]: |
0ms |
get settings: |
11ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
53ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 354ms |

| 0 / 0 |
