Обычная версия
Java форум JavaTalks
форум программистов

Поиск   Пользователи   Группы   Регистрация 
 Профиль   Личные сообщения 

 Вход 

Работа с LPT- портом
Список форумов
 ->  Файлы и потоки ввода/вывода


На страницу Пред.  1, 2 
Начать новую тему 
Предыдущая тема :: Следующая тема  
Автор Сообщение
irn : 59
Новичок

СообщениеНоя 02, 2009 18:38 
Ответить с цитатой
Решил работать на одной системе. Выбрал Windows ХР. Но мне нужен LPT порт а не СОМ. RXTX при попытке выполнить
outputStream.write(1);

зависает на некоторое время и выпадает в IOException. В СОМ порт пишет нормально. В чем может быть причина?
К началу Посмотреть профиль Отправить личное сообщение
alon4ik : 923
free butterfly
Откуда: Харьков

СообщениеНоя 02, 2009 18:47 
Ответить с цитатой
а вы в следующем коде, когда получаете список портов в системе, не забыли правильно поставить параметры:
PORT_PARALLEL
LPT

Код:
     
        ...

        while (portListEnum.hasMoreElements()) {
            portId = (CommPortIdentifier) portListEnum.nextElement();
            if (portId.getPortType() == CommPortIdentifier.PORT_PARALLEL) {
                 if (portId.getName().equals(LPT)) {
                         ...
                  }
             ...
         }
        ...
К началу Посмотреть профиль Отправить личное сообщение ICQ Number
irn : 59
Новичок

СообщениеНоя 02, 2009 19:01 
Ответить с цитатой
нет. Я работаю именно с LPT.
К началу Посмотреть профиль Отправить личное сообщение
alon4ik : 923
free butterfly
Откуда: Харьков

СообщениеНоя 02, 2009 19:21 
Ответить с цитатой
irn писал(а):
нет. Я работаю именно с LPT.

вот я о том и говорю, в коде выше ставите PORT_PARALLEL и если найден в системе, то сравниваете с LPT1 например.

У меня вот есть один LPT порт в системе, имя ему LPT1. Следующий код нормально работает:

Код:
 ...

while (portListEnum.hasMoreElements()) {
    portId = (CommPortIdentifier) portListEnum.nextElement();
    if (portId.getPortType() == CommPortIdentifier.PORT_PARALLEL) {
         if (portId.getName().equals("LPT1")) {
                 System.out.println("В системе есть порт LPT1 !");
          }
     ...
 }
...
К началу Посмотреть профиль Отправить личное сообщение ICQ Number
irn : 59
Новичок

СообщениеНоя 03, 2009 17:57 
Ответить с цитатой
Похоже я нашел выход из ситуации без доп. библиотек:
Код:

FileOutputStream os = null;
        try {
            os = new FileOutputStream("LPT1");
            os.write("sdtsdgdgh".getBytes());
            os.flush();
            os.close();


Вот этот код посылает на принтер строку. Буду дальше осиливать уже работу с моим нестандартным оборудованием.
К началу Посмотреть профиль Отправить личное сообщение
irn : 59
Новичок

СообщениеНоя 08, 2009 0:49 
Ответить с цитатой
Вобщем я застрял. Ни rxtx, javax.comm не позволяют читать/писать в LPT порт если на нем не висит принтер. Подскажите как же все таки можно работать с LPT портом?!
К началу Посмотреть профиль Отправить личное сообщение
tender_swallow : 472
Бывалый
Откуда: Ivanovo

СообщениеНоя 08, 2009 13:33 
Ответить с цитатой
Опишите проблему немного подробнее. Что и как Вы сделали, каких результатов Вам удалось достичь, какие эксепшены и т.д.? Возможно, кто-то что-нибудь и подскажет.
К началу Посмотреть профиль Отправить личное сообщение Посетить сайт автора
irn : 59
Новичок

СообщениеНоя 09, 2009 23:19 
Ответить с цитатой
Проблему работы с LPT портом решил. Я нашел несколько путей решения:
1. http://www.hytherion.com/beattidp/ использавл вот эту библиотеку через JNI.
2. https://jna.dev.java.net/ - с этим фрэймворком я могу пользовать любую библиотеку не обязательно скомпилированную по стандарту JNI
На данный момент в своем проэкте использую второй вариант. Подключил библиотеку http://www.geekhideout.com/iodll.shtml и работаю.
К началу Посмотреть профиль Отправить личное сообщение
arehscm : 64
Новичок

СообщениеНоя 14, 2009 2:56 
Ответить с цитатой
помогите пожалуйста. во всех приведенных здесь примерах и в инструкциях к библиотекам при работе с портами используются методы типа writeByte(Byte b), readByte(). НО. допустим , вот com или ltp порт... вот штырьки на которые посылаются или с которых считыаются имеульсы. как понять wryteByte() ? есть такая задача: тензорезистор подключен к аналагово цифровому преобразователю. чем выше давление на тензорезистор тем чаще посыются импульсы на какой-то контакт какого-то порта. как мне считать этот сигнал ?
К началу Посмотреть профиль Отправить личное сообщение
major32 : 2
Новичок

СообщениеДек 17, 2011 10:17 
Ответить с цитатой
Может подсчитать количество полученных байт за N миллисекунд ?
Да и давайте рассуждать логически 1 байт = 8 бит. А именно столько у LPT ног на прием и передачу.
К началу Посмотреть профиль Отправить личное сообщение
 
Начать новую тему  Ответить на тему
Страница 2 из 2
На страницу Пред.  1, 2
Список форумов
 -> Файлы и потоки ввода/вывода


 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Java and all Java-related trademarks and logos are trademarks or registered trademarks of Oracle Corporation in the United States and other countries.
Это сайт не относится к фирме Oracle Corporation и не поддерживается ею.

© 2006-2010 www.javatalks.ru: форум java программистов
Используется скрипт phpBB © 2001, 2010 phpBB Group

Хостинг от bizname.ru