С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
 Аватар для Tsyklop
5 / 6 / 5
Регистрация: 01.01.2014
Сообщений: 399

Java и USB передача данных - Java SE

12.06.2017, 10:38. Показов 2769. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно сделать приложение. Его суть такова: Есть микроконтроллер (TTL) - он подключается через USB к ПК. Микроконтроллер передаёт данные на пк - цифра.

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

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

Подскажите пожалуйста как мне такое реализовать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.06.2017, 10:38
Ответы с готовыми решениями:

Передача данных в Java
Доброго времени суток! В общем дали задание написать программу, в которой нужно передавать данные по сети разными способами(на самом...

Получение и отправка данных через USB Java
Подскажите пожалуйста. Есть либы которые позволяют принимать запросы по USB и отсылать данные?

Передача данных в одну строку JAVA
Здравствуйте, прошу помощи, как начинающему. нужно написать калькулятор в консоли, я сам могу написать калькулятор чтоб вводить по...

11
64 / 64 / 26
Регистрация: 07.01.2016
Сообщений: 374
12.06.2017, 11:17
usb4java
google умер((
0
 Аватар для Tsyklop
5 / 6 / 5
Регистрация: 01.01.2014
Сообщений: 399
12.06.2017, 12:04  [ТС]
Цитата Сообщение от DavidKarchikyan Посмотреть сообщение
usb4java
пробовал - не работает.

Если поможете буду благодарен.
0
 Аватар для Tsyklop
5 / 6 / 5
Регистрация: 01.01.2014
Сообщений: 399
15.06.2017, 12:16  [ТС]
проблема не решена
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
15.06.2017, 12:55
давай подробностей больше, как подключается, что за драйвер(например иногда usb2com делают) и так далее
0
 Аватар для Tsyklop
5 / 6 / 5
Регистрация: 01.01.2014
Сообщений: 399
15.06.2017, 15:00  [ТС]
Цитата Сообщение от xoraxax Посмотреть сообщение
давай подробностей больше, как подключается, что за драйвер(например иногда usb2com делают) и так далее
Драйвер ср340. подключается через usb.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
15.06.2017, 15:20
Модуль CH340G. Переходник USB COM TTL (RS232)
как бы намекает
0
 Аватар для Tsyklop
5 / 6 / 5
Регистрация: 01.01.2014
Сообщений: 399
15.06.2017, 15:39  [ТС]
Цитата Сообщение от xoraxax Посмотреть сообщение
как бы намекает
так у меня это и так есть. поставил драйвер. теперь устройство видно как COM4. но данные, в приложении всё равно не принимаются.

Я вот пробовал usb4java. я получил его данные - vendor и product но подключится к нему не могу, пишет устройство не найдено.

сфоткал
Миниатюры
Java и USB передача данных - Java SE   Java и USB передача данных - Java SE  
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
15.06.2017, 16:33
потому что usb это не com?
0
 Аватар для Tsyklop
5 / 6 / 5
Регистрация: 01.01.2014
Сообщений: 399
15.06.2017, 16:38  [ТС]
Цитата Сообщение от xoraxax Посмотреть сообщение
потому что usb это не com?
не понял.

Устройство определяется как COM4. Но получить от него данные программно я не могу.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
15.06.2017, 16:41
так и читай их из com4 про usb вообще забудь
0
 Аватар для Tsyklop
5 / 6 / 5
Регистрация: 01.01.2014
Сообщений: 399
15.06.2017, 22:57  [ТС]
Цитата Сообщение от xoraxax Посмотреть сообщение
так и читай их из com4 про usb вообще забудь
Ну так и делаю. Использую RXTX:

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import gnu.io.*;
 
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.TooManyListenersException;
 
public class SimpleRead implements Runnable, SerialPortEventListener {
    static CommPortIdentifier portId;
    static Enumeration portList;
 
    InputStream inputStream;
    SerialPort serialPort;
    Thread readThread;
 
    public static void main(String[] args) {
        portList = CommPortIdentifier.getPortIdentifiers();
 
        while (portList.hasMoreElements()) {
            portId = (CommPortIdentifier) portList.nextElement();
            if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
                if (portId.getName().equals("COM4")) {
                    //                if (portId.getName().equals("/dev/term/a")) {
                    SimpleRead reader = new SimpleRead();
                }
            }
        }
    }
 
    public SimpleRead() {
        try {
            serialPort = (SerialPort) portId.open("SimpleReadApp", 2000);
            inputStream = serialPort.getInputStream();
            serialPort.addEventListener(this);
            serialPort.notifyOnDataAvailable(true);
            serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
        } catch (PortInUseException e) {
            System.out.println(e);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (TooManyListenersException e) {
            e.printStackTrace();
        } catch (UnsupportedCommOperationException e) {
            e.printStackTrace();
        }
 
        readThread = new Thread(this);
        readThread.start();
    }
 
    public void run() {
        try {
            Thread.sleep(20000);
        } catch (InterruptedException e) {
            System.out.println(e);
        }
    }
 
    public void serialEvent(SerialPortEvent event) {
        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:
                break;
            case SerialPortEvent.DATA_AVAILABLE:
                byte[] readBuffer = new byte[20];
 
                try {
                    while (inputStream.available() > 0) {
                        int numBytes = inputStream.read(readBuffer);
                        System.out.println(numBytes);
                    }
                    System.out.print(new String(readBuffer));
                } catch (IOException e) {
                    System.out.println(e);
                }
                break;
        }
    }
}
Но данные не приходят.

Добавлено через 1 час 6 минут
Ещё вариант JSSC:
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import jssc.*;
 
import java.util.Arrays;
 
public class Jssc {
 
        private static SerialPort serialPort;
 
        private static byte[][] requests = {{00, 00, 01}, {00, 00, 02}, {00, 00, 03}};
        private static int requestNum = 0;
 
        public static void main(String[] args) {
            serialPort = new SerialPort("COM4");
            try {
                serialPort.openPort();
                serialPort.setParams(SerialPort.BAUDRATE_9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
                serialPort.setEventsMask(SerialPort.MASK_RXCHAR);
                serialPort.addEventListener(new EventListener());
                serialPort.writeBytes(requests[requestNum]);
            }
            catch (SerialPortException ex) {
                System.out.println(ex);
            }
        }
 
        private static class EventListener implements SerialPortEventListener {
 
            public void serialEvent(SerialPortEvent event) {
                if(event.isRXCHAR() && event.getEventValue() == 2){
                    try {
                        if(requestNum == 0){
                            byte[] buffer = serialPort.readBytes(2);
                        /*Пост обработка и вывод на форму*/
                            serialPort.writeBytes(requests[++requestNum]);
                        }
                        else if(requestNum == 1){
                            byte[] buffer = serialPort.readBytes(2);
                        /*Пост обработка и вывод на форму*/
                            serialPort.writeBytes(requests[++requestNum]);
                        }
                        else if(requestNum == 2){
                            byte[] buffer = serialPort.readBytes(2);
                        /*Пост обработка и вывод на форму*/
                            serialPort.writeBytes(requests[0]);
                        }
                    }
                    catch (SerialPortException ex) {
                        System.out.println(ex);
                    }
                }
            }
        }
    }
пусто.

Добавлено через 5 часов 3 минуты
Решено
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.06.2017, 22:57
Помогаю со студенческими работами здесь

Java, передача данных в базу H2 с JTextField
Создаю десктопное приложение на Java(NetBeans) с бд H2. Помогите пожалуйста с передачей данных в бд из JTextField(ов), вот весь код ,...

Передача данных из 1С в приложение Java (android studio)
Здравствуйте, подскажите как передать данные объекта справочник из 1с в приложение java созданное в android studio? Архив с проектом...

Потоковая передача больших данных по TCP из Java в C#
Добрый день, Прошу помощи в разборе полетов: Задача: передать картинку с железки на которой установлена Linux + камера, клиент...

Возможна ли передача данных по Wi-Fi и интернету между Java и C#?
Нужно передавать данные о файлах между Android и Windows. Сам уверен, что это возможно, но на всякий случай решил спросить.

Передача данных клиент-сервер в игре java
Здравствуйте. Пишу маленькую сетевую игру как на картинке. На сервере создаются списки пуль и врагов, также проверяется их столкновение и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru