Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Java и USB передача данных - Java SE / 25 сообщений из 26, страница 1 из 2
12.06.2017, 10:43
    #39470403
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и USB передача данных - Java SE
Нужно сделать приложение. Его суть такова: Есть микроконтроллер (TTL) - он подключается через USB к ПК. Микроконтроллер передаёт данные на пк - цифра.

Так вот. Как мне приложением на Java получать эти данные?

P.S. Подключение происходит не через COM порт - Взял библиотеку jsr80 и она не показывала что это устройство подключено через COM.

Подскажите пожалуйста как мне такое реализовать?
...
Рейтинг: 0 / 0
12.06.2017, 11:00
    #39470407
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и USB передача данных - Java SE
TsyklopНужно сделать приложение. Его суть такова: Есть микроконтроллер (TTL) - он подключается через USB к ПК. Микроконтроллер передаёт данные на пк - цифра.

Так вот. Как мне приложением на Java получать эти данные?

P.S. Подключение происходит не через COM порт - Взял библиотеку jsr80 и она не показывала что это устройство подключено через COM.

Подскажите пожалуйста как мне такое реализовать?

Если У Вас винда просто надо установить драйвер...и com порт появится.
linux находит большинство чипов. и виртуальный com порт появляется после включения в usb
Если не знаете какие чипы...есть три основные чипа...это надо три драйвера перебрать
...
Рейтинг: 0 / 0
12.06.2017, 11:02
    #39470409
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и USB передача данных - Java SE
Tsyklop,
вы почему постите одни и те же темы?
Вам сказали про драйвер. Сказали про поиск. От вас никакой реакции.
...
Рейтинг: 0 / 0
13.06.2017, 22:19
    #39471185
BlackGnomeГуест
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и USB передача данных - Java SE
TsyklopНужно сделать приложение. Его суть такова: Есть микроконтроллер (TTL) - он подключается через USB к ПК. Микроконтроллер передаёт данные на пк - цифра.

Так вот. Как мне приложением на Java получать эти данные?

P.S. Подключение происходит не через COM порт - Взял библиотеку jsr80 и она не показывала что это устройство подключено через COM.

Подскажите пожалуйста как мне такое реализовать?


http://usb4java.org/ ?
...
Рейтинг: 0 / 0
15.06.2017, 12:18
    #39472139
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и USB передача данных - Java SE
Petro123Tsyklop,
вы почему постите одни и те же темы?
Вам сказали про драйвер. Сказали про поиск. От вас никакой реакции.

Про какой драйвер? Это устройство самописное. Тут нет драйверов как таковых. Я пробовал прогу zadig, но толку ноль.
...
Рейтинг: 0 / 0
15.06.2017, 12:20
    #39472143
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и USB передача данных - Java SE
BlackGnomeГуест, Пробовал - не работает. не могу определить vendor, product, interface, endpiont моего устройства. Дампил все устройства, брал эти данные - устройство не найдено. Гуглил, смотрел примеры - не работает.
...
Рейтинг: 0 / 0
15.06.2017, 12:21
    #39472145
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и USB передача данных - Java SE
irbis_al, так как какой драйвер? я просто без понятия... я Пробовал zadig, но бзрезультатно.
...
Рейтинг: 0 / 0
15.06.2017, 15:14
    #39472358
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и USB передача данных - Java SE
irbis_al, Драйвер ch340. У меня на Win 10 он ставится сам. но всё равно программа не подключается.
...
Рейтинг: 0 / 0
15.06.2017, 15:23
    #39472368
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и USB передача данных - Java SE
Tsyklop,
Поиск по ветке делали?
Любой рабочий кусок кода?
...
Рейтинг: 0 / 0
15.06.2017, 15:51
    #39472414
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и USB передача данных - Java SE
Petro123,

Вот код: http://rxtx.qbang.org/wiki/index.php/Two_way_communcation_with_the_serial_port

скорость 9600.

В ответ ноль.
Заметил что слушатель вызывается когда я отключаю устройство. а так он не работает.
...
Рейтинг: 0 / 0
15.06.2017, 17:58
    #39472579
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и USB передача данных - Java SE
Tsyklopirbis_al, Драйвер ch340. У меня на Win 10 он ставится сам. но всё равно программа не подключается.

Сначала Вы должны увидеть com порт в диспетчере устройств.(После того как usb воткнули)
Как только это произошло дальше ищем java с com портом.(я предпочитаю rxtx либу...)
Если Вы найдёте линукс и воткнёте туда usb...командой lsusb -v можно увидеть чип устройства...и так вы будите знать что искать.
Возможно в винде есть какая-то аналогия этой команды.
...
Рейтинг: 0 / 0
15.06.2017, 18:02
    #39472585
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и USB передача данных - Java SE
irbis_alTsyklopirbis_al, Драйвер ch340. У меня на Win 10 он ставится сам. но всё равно программа не подключается.

Сначала Вы должны увидеть com порт в диспетчере устройств.(После того как usb воткнули)
Как только это произошло дальше ищем java с com портом.(я предпочитаю rxtx либу...)
Если Вы найдёте линукс и воткнёте туда usb...командой lsusb -v можно увидеть чип устройства...и так вы будите знать что искать.
Возможно в винде есть какая-то аналогия этой команды.

В догонку Вы написали что Драйвер ch340. У меня на Win 10 он ставится сам...Но Вы com порт видите?
Если видите...всё пучком...см номер порта...открывайте го либой rxtx...А дальше читайте протокол обмена с вашим устройством.(Типа послав ENQ(0x03) он должен ответить NAK(0X15)
...
Рейтинг: 0 / 0
15.06.2017, 18:09
    #39472595
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и USB передача данных - Java SE
irbis_al,
В том и прикол что я использую RXTX и полный ноль. мне ничего не приходит. На самом устройстве сделали такую штуку- приделали кнопку, при её нажатии устройство отправляет данные - цифру. Но этого не происходит.
...
Рейтинг: 0 / 0
15.06.2017, 18:10
    #39472598
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и USB передача данных - Java SE
irbis_al,

Да, я вижу COM порт. Я правильно понимаю что если порт находится в разделе COM/LTP то это COM?
...
Рейтинг: 0 / 0
15.06.2017, 18:28
    #39472619
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и USB передача данных - Java SE
Tsyklopirbis_al,

Да, я вижу COM порт. Я правильно понимаю что если порт находится в разделе COM/LTP то это COM?

Так это уже отлично...раз видите ком порт.(надеюсь это не компорт материнки,при высовывании usb
порт должен исчезнуть)
Вы смотрели спецификакцию rxtx...в винде там нативную либу rxSerial.dll надо в папку bin java положить.
(Почему в bin на винде не знаю в линуксах в lib кладётся ).
Дальше по примерам их много в инете...
Порт надо надо открыть
и тут Вы должны знать скорость обмена с Вашим устройством(9600,115200 и т.д)
Присоединил scaner.java(пртотип работы со сканером штрихкода)
...
Рейтинг: 0 / 0
15.06.2017, 18:43
    #39472625
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и USB передача данных - Java SE
irbis_al,

Давай опишу всё поподробнее.

Я удалил данные моего устройства полностью. Я подключил его. В диспетчере устройств он находится в вкладке "Устройство USB" и называется "USB2.0-Serial".

Я так понимаю это не COM.

Я скачал драйвер ch340. Поставил для этого устройства. Теперь оно во вкладке COM/LPT.

Не знаю всё ли делаю правильно.

Если я не буду ставить драйвер, устройство будет определятся как COM всё равно.

Вот мой Файл реализации.
...
Рейтинг: 0 / 0
15.06.2017, 18:49
    #39472630
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и USB передача данных - Java SE
Tsyklop,

Я скачал драйвер ch340. Поставил для этого устройства. Теперь оно во вкладке COM/LPT.

Не знаю всё ли делаю правильно.

Да правильно...И теперь работайте как с com портом...читайте батики..(посылайте байтики)

Если я не буду ставить драйвер, устройство будет определятся как COM всё равно.

Нет не будет...драйвер и создаёт виртуальный компорт.
Драйвер ставить обязательно.
...
Рейтинг: 0 / 0
15.06.2017, 18:54
    #39472632
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и USB передача данных - Java SE
irbis_al, Хорошо, поставил. но ничего не получается. мне ничего не приходит.
...
Рейтинг: 0 / 0
15.06.2017, 18:56
    #39472633
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и USB передача данных - Java SE
а в коде просто куча лишнего начните с простого
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
 try {
//В диспетчере какой видите
String port='COM3';
              portId = CommPortIdentifier.getPortIdentifier(port);
        } catch (NoSuchPortException nspe) {
            logger.log(Level.OFF,"Непроинициализировался порт "+port,nspe);
            nspe.printStackTrace();
        }
        
        try {
                                System.out.println("Opening port: "+portId.getName());
                                serialPort = (SerialPort) portId.open("App", 3000);
                        } catch (PortInUseException e) {
                                e.printStackTrace();
                            logger.log(Level.OFF,"Не удалось открыть порт(возможно занят другим Pio) "+port,e);
                                System.exit(1);
                        }


        try {
           /* serialPort.setRTS(false);
            serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_RTSCTS_IN
                                         | SerialPort.FLOWCONTROL_RTSCTS_OUT);*/
        
                serialPort.setSerialPortParams(rule.getBod(), SerialPort.DATABITS_8,
                                SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
            
        } catch (UnsupportedCommOperationException e) {
                e.printStackTrace();
            logger.log(Level.WARNING," Проблема назначения параметров порту ",e);
               // this.saveError(e);
        }
...
Рейтинг: 0 / 0
15.06.2017, 19:01
    #39472637
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и USB передача данных - Java SE
irbis_al, а что такое Rule?
...
Рейтинг: 0 / 0
15.06.2017, 19:02
    #39472638
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и USB передача данных - Java SE
irbis_al,

там есть
Код: java
1.
rule.getBod() 


У меня в коде замените на
Код: java
1.
2.
3.
int bod=9600;//А вот тут надо знать скорость обмена очень важный параметр...обычно 9600.
 serialPort.setSerialPortParams(bod, SerialPort.DATABITS_8,
                                SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
...
Рейтинг: 0 / 0
15.06.2017, 19:04
    #39472641
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и USB передача данных - Java SE
irbis_al,

У Вас хотя бы порт должен открыться без исключений...это будет означать что канал "поднят".
...
Рейтинг: 0 / 0
15.06.2017, 20:44
    #39472681
BlackGnomeГуест
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и USB передача данных - Java SE
TsyklopBlackGnomeГуест, Пробовал - не работает. не могу определить vendor, product, interface, endpiont моего устройства. Дампил все устройства, брал эти данные - устройство не найдено. Гуглил, смотрел примеры - не работает.


если нельзя определить vendor, product, interface, endpiont , то ИМХО, дальше пока двигаться не надо

налдо разбираться ТУТ
...
Рейтинг: 0 / 0
15.06.2017, 20:59
    #39472687
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и USB передача данных - Java SE
irbis_al, Всё разобрался. была штука в устройстве. использую либу rxtx. Подскажи как мне получать нормальные данные? отправляются они мне в формате rs232.
...
Рейтинг: 0 / 0
15.06.2017, 21:07
    #39472689
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и USB передача данных - Java SE
Tsyklopirbis_al, Всё разобрался. была штука в устройстве. использую либу rxtx. Подскажи как мне получать нормальные данные? отправляются они мне в формате rs232.

Ну так же по коду
Код: java
1.
2.
3.
4.
5.
6.
7.
                        try {
                                serialPort.addEventListener(this);
                                serialPort.notifyOnDataAvailable(true);
                        } catch (Exception e) {
                                e.printStackTrace();
                             //   this.saveError(e);
                        }




И вот тут увидите данные
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
 public void serialEvent(SerialPortEvent event) {

    //    System.out.println("EventCom "+event.getEventType()+" "+SerialPortEvent.DATA_AVAILABLE);
                    switch (event.getEventType()) {
                    case SerialPortEvent.BI:
                    case SerialPortEvent.OE:
                    case SerialPortEvent.FE:
                    case SerialPortEvent.PE:
                    case SerialPortEvent.CD:
                    case SerialPortEvent.CTS:
                    case SerialPortEvent.DSR:
                    case SerialPortEvent.RI:
                    case SerialPortEvent.OUTPUT_BUFFER_EMPTY:   System.out.println("Buffer_empty");
                            break;
                        case SerialPortEvent.DATA_AVAILABLE:  
                        
                      
                        int numBytes =0;
                        String result="";
                      byte[] readBuffer = new byte[128];
                                 try {
                                     while (inputStream.available() > 0) {
                                          numBytes = inputStream.read(readBuffer);
//В строку можно не переводить...просто у меня штрихкод и по логике я его уже получил...но вы можете //байтики дальше обрабатывать.
                                         String s=new String(readBuffer,0,numBytes);
                                       
                                         result=result+s;
                                     }
                                //     System.out.println(result+"resize="+result.length());
                                  
                              //      System.out.println(global+"size="+global.length());  
                                 } catch (IOException e) {}
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Java и USB передача данных - Java SE / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]