Lpt порт
Скажите пожалуйста надо ли для LPT порта инициализировать структуру dcb? Если надо,то как?
Да здравствует ПОИСК, дай ему бог, здоровья и благополучия ;)
Набираем google.ru, или ya.ru и вводим "(Титов Олег) && COM порт"
Наглухо виснет программа, когда я пишу в файл, или пытаюсь его закрыть. Я собственно поэтому и спрашивал, думал, что из-за того, что не установлены параметы LPT порта.
Секунду, а что пишешь? То, что приходит из порта? И что за файл пытаешься закрыть?
Или под файлом подразумевается порт? Тогда - чем (в смысле функции) пишешь?
Можно кусок кода на обозрение, а то получается гадание на кофейной гуще...
DWORD bufwritten=0;
HANDLE port;
port=CreateFile("LPT1", GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 1, NULL);
WriteFile(port, lptdata, sizeof(lptdata), &bufwritten, NULL);
CloseHandle(port);
У тебя есть утройство на порту, с которым ты хочешь общаться? Если нет, то подобная реакция вполне естественна, ну а если есть, то боюсь, что я тебе помочь ни чем больше не смогу. Просто LPT-устройсво по идее должно соблюдать соответствующий протокол работы и послать ответ, что информация считана. Если не посылает, то скорее всего косяки с устройством.
А вообще, желательно все функции непосредственной работы с портами оформлять в отдельных потоках - тогда остальная часть программы будет работать нормально.
ЗЫ Все, что касается LPT - теоритизированние чистой воды т.к. я работал только с COM-портами. Следовательно могу и ошибаться.
Просто, например под Win2000? так не получиться.
Точнее у меня не получилось, я только где-то слышал "что вот, мол, как-то так можно общаться с LPT в Win2000", но никто так и не показал как :(
... но закрыть его не получается, это не ожидание ответа, на ножки порта не идет сигнала :(
Ну - незнаю. У меня нормально открывался и закрывался. Вот писать в него как я не знаю. На счет имени "LPT" - это верно: стандартное устройство ввода-вывода. А что подразумевается "на ножки порта не идет сигнала"? Так подай его туда, и проверь :) Потому и ждет, что сигнала нет, а операция чтения идет. Т.е. пока не прочтет, так и будет ждать. Кстати, что же все-таки за устройство?
Проверял на 8 сетодиодах...
А вы Титова внимательно читали? Там как раз на эту тему и написано - так в винде ничего не получится, т.к. она ожидает работы по протоколу Centronics со стороны устройства. Как обстоят дела с протоколом на вашем станке?
Кстати, расточка печатных плат - это как? У меня два семестра шел предмет на эту тему, чего там только не было, но такого...
Пишеся под XP. Пишут, что надо делать так, по идее винда резервирует это имя именно для порта, но закрыть его не получается, это не ожидание ответа, на ножки порта не идет сигнала :(
Лично я очень долго мучился с LPT-портом в WIN2K. Получалось открывать/закрывать, но писать читать так и не удалось.
Правда ус-во у меня было довольно "тупое" и о поддержки какого-либо протокола речь не шла.
Пришлось написать простенький драйвер.