Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2011, 14:57   #1
ovram
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 11
По умолчанию Доступ к lpt порту в java

Возможно ли написать софт для работы с этим портом? Для других языков типа делфи или си есть библиотеки. Перерывши инет нашел библу rxtx но она вроде только для com порта, а надо lpt.
ovram вне форума Ответить с цитированием
Старый 12.01.2011, 15:52   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

javax.comm
Цитата:
Если порт подмонтирован к файловой системе, вы можете использовать его
как файл, открывая для чтения и/или записи. Таким же путем можно
выводить на печать текст, копируя его в устройство "prn" или "lpt1" на
РС-совместимых системах (обязательно завершив текст символом конца
файла), или в "/dev/что-нибудь" в Unix. Ниже приведен пример:

// класс, открывающий принтер как файл
// и записывающий в него строку "Hello, world"

import java.io.*;
public class lpt {
public static void main (String[] argv) {
try {
FileOutputStream os = new FileOutputStream("LPT1");
//создаем "дружественный" PrintStream
PrintStream ps = new PrintStream(os);

//выводим текст
ps.println("Hello world!");

//признак конца файла -- это важно
//Без него текст просто попадет в буфер принтера
// пока что-нибудь еще не будет выводиться на печать.
ps.print("\f");
//сбрасываем буфер и закрываем поток
ps.close();
} catch (Exception e) {
System.out.println("Exception occurred: " + e);
}
}
}
Если необходимо изменить характеристики порта (напр., скорость или
четность), а не просто писать или считывать данные, то, к сожалению,
Java на данный момент не имеет переносимых решений для этой проблемы.
Вам придется воспользоваться одной из библиотек, указанных выше, или
же обратиться к системно-зависимому коду или утилите.
пользуйтесь поиском http://faqs.oggo.ru/pages/new22s78o603516.htm
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 12.01.2011, 16:04   #3
ovram
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 11
По умолчанию

есть светодиодная мигалка pascal
program vvv;
uses crt;
var a:integer;
begin;
clrscr;
port[888]:=0;
writeln('pomigaem');
begin
port[888]:=255;
delay(5);
port[888]:=0;
delay(5);
end;
sound(980); delay(50000); nosound;
end.

Реально ли сделать подобное на яве чтоб задержки формировались без погрешностей? delay(50000)
Смысл будущего софта будет заключаться в подавании высокого и низкого уровня на ногу порта с оприделеными задержками.

Последний раз редактировалось ovram; 12.01.2011 в 16:11. Причина: редактировал
ovram вне форума Ответить с цитированием
Старый 12.01.2011, 16:10   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

нет, вы считаете ява будет работать быстрее и точнее? ...кроме того:
Цитата:
Если необходимо изменить характеристики порта (напр., скорость или
четность), а не просто писать или считывать данные, то, к сожалению,
Java на данный момент не имеет переносимых решений для этой проблемы.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 12.01.2011, 16:17   #5
ovram
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 11
По умолчанию

у порта ведь нет скорости и четности, этож не com
просто нужно узнать можно ли
port[888]:=255;
port[888]:=0;
так зажигать светодиод
ovram вне форума Ответить с цитированием
Старый 12.01.2011, 16:31   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

вы невнимательны, при работе с портом как с файлом нельзя управлять пинами LPT порта, для этого используются "костыли" в виде дополнительных модулей библиотек, имеющих доступ к портам. К примеру, Java JNI через Jnpout32pkg.dll или Java Native Access.

Т.е. ответ - нет, на чистом java.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 12.01.2011, 17:15   #7
ovram
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 11
По умолчанию

Jnpout32pkg.dll http://jedy.fatal.ru/programm.html отсюда качнул готовый анализатор, посылал и получал биты на порт, все ноги работают. Остается прилепить этот модуль к основному софту.
Эх, главное чтоб задержки были правильные, 10 мс= 10 мс

Последний раз редактировалось ovram; 12.01.2011 в 17:18.
ovram вне форума Ответить с цитированием
Старый 13.01.2011, 09:17   #8
jmadhead
Пользователь
 
Регистрация: 10.09.2009
Сообщений: 19
По умолчанию

Работать с железом из Java не совсем правильно. Любые способы обращения к аппаратной части сразу срубают одну из главных фишек Java - кроссплатформенность. Как верно было написано выше, чтобы делать подобные вещи необходимо использовать JNI и библиотеки, специфичные для текущей системы.
jmadhead вне форума Ответить с цитированием
Старый 13.01.2011, 12:35   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Эх, главное чтоб задержки были правильные, 10 мс= 10 мс
и все это в виндоуз?
(то есть паскаль не пошел, и вы решили взять Java...оригинальный метод)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка подключений к порту Horus92 Работа с сетью в Delphi 0 11.01.2010 17:13
Подключиться к COM порту doober Общие вопросы .NET 3 23.07.2009 13:34
Доступ к физическим портам LPT,COM,PCI... Iotun Помощь студентам 2 08.10.2007 16:00
Доступ к ИК порту ЧИЖ Win Api 4 09.05.2007 20:41
Доступ к com порту для нескольких приложений Lexx Win Api 11 06.04.2007 20:10