Форум программистов, компьютерный форум, киберфорум
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. Показов 2801. Ответов 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru