В моем проекте Springboot я использую com.fazecast.jSerialComm для сканирования последовательного порта. Он успешно просканировал мое аппаратное устройство в COM4. Однако этот com-порт не сканируется в docker, даже если я добавляю устройство /dev/ttyS3:/dev/ttyS3 в свой файл создания докера. Кто-нибудь знает мою проблему. Большое спасибо.
ОС: Windows 11
SerialConfig.java
package com.XXXXXXXX.config;
import com.fazecast.jSerialComm.SerialPort;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class SerialPortConfig {
@Value("${xxxxxxxxx.node.serial.port:}")
private String configuredPortName;
@Bean
public SerialPort serialPort() {
SerialPort[] ports = SerialPort.getCommPorts();
System.out.println("******************");
System.out.println("Available Port:");
for (SerialPort port : ports) {
System.out.println(" Port "+port.getSystemPortName());
}
System.out.println("******************");
if (ports.length == 0) {
System.err.println("ERROR: No serial ports available. Workpass function may not be working");
return null; // Gracefully return null if no ports are available
}
else{
System.out.print("Current Available port:'");
for (SerialPort port : ports) {
System.out.print(port.getSystemPortName()+",");
}
System.out.println("'");
}
SerialPort selectedPort = null;
if (!configuredPortName.isEmpty()) {
// Try to find the configured port by name
for (SerialPort port : ports) {
if (port.getSystemPortName().equalsIgnoreCase(configuredPortName)) {
selectedPort = port;
break;
}
}
if (selectedPort == null) {
System.err.println("ERROR: Configured serial port not found: " + configuredPortName);
return null; // Return null if the configured port is not found
}
} else {
// Default to the first available port if no configured port is specified
selectedPort = ports[0];
}
return selectedPort;
}
}
docker-compose.yml
version: '3.8'
services:
postgres_db:
image: postgres:16.4
container_name: xxxx_postgres_db
environment:
POSTGRES_USER: xxxx
POSTGRES_PASSWORD: xxxx
POSTGRES_DB: xxxxx-db
ports:
- "5431:5432"
volumes:
- xxxx_container_data:/var/lib/postgresql/data
networks:
- xxxx-network
backend:
build:
context: . # Path to the Dockerfile location
dockerfile: Dockerfile # Optional if the Dockerfile is named 'Dockerfile'
image: xxxx-img
container_name: xxxx_backend
ports:
- "8080:8080"
networks:
- xxxx-network
depends_on:
- postgres_db
devices:
- "/dev/ttyS0:/dev/ttyS0"
- "/dev/ttyS1:/dev/ttyS1"
- "/dev/ttyS2:/dev/ttyS2"
- "/dev/ttyS3:/dev/ttyS3"
volumes:
xxxx_data:
networks:
xxxx-network:
Подробнее здесь: https://stackoverflow.com/questions/792 ... oot-docker
Как подключиться к COM-порту с помощью Spring Boot и Docker? ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1732695034
Anonymous
В моем проекте Springboot я использую com.fazecast.jSerialComm для сканирования последовательного порта. Он успешно просканировал мое аппаратное устройство в COM4. Однако этот com-порт не сканируется в docker, даже если я добавляю устройство /dev/ttyS3:/dev/ttyS3 в свой файл создания докера. Кто-нибудь знает мою проблему. Большое спасибо.
ОС: Windows 11
SerialConfig.java
package com.XXXXXXXX.config;
import com.fazecast.jSerialComm.SerialPort;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class SerialPortConfig {
@Value("${xxxxxxxxx.node.serial.port:}")
private String configuredPortName;
@Bean
public SerialPort serialPort() {
SerialPort[] ports = SerialPort.getCommPorts();
System.out.println("******************");
System.out.println("Available Port:");
for (SerialPort port : ports) {
System.out.println(" Port "+port.getSystemPortName());
}
System.out.println("******************");
if (ports.length == 0) {
System.err.println("ERROR: No serial ports available. Workpass function may not be working");
return null; // Gracefully return null if no ports are available
}
else{
System.out.print("Current Available port:'");
for (SerialPort port : ports) {
System.out.print(port.getSystemPortName()+",");
}
System.out.println("'");
}
SerialPort selectedPort = null;
if (!configuredPortName.isEmpty()) {
// Try to find the configured port by name
for (SerialPort port : ports) {
if (port.getSystemPortName().equalsIgnoreCase(configuredPortName)) {
selectedPort = port;
break;
}
}
if (selectedPort == null) {
System.err.println("ERROR: Configured serial port not found: " + configuredPortName);
return null; // Return null if the configured port is not found
}
} else {
// Default to the first available port if no configured port is specified
selectedPort = ports[0];
}
return selectedPort;
}
}
docker-compose.yml
version: '3.8'
services:
postgres_db:
image: postgres:16.4
container_name: xxxx_postgres_db
environment:
POSTGRES_USER: xxxx
POSTGRES_PASSWORD: xxxx
POSTGRES_DB: xxxxx-db
ports:
- "5431:5432"
volumes:
- xxxx_container_data:/var/lib/postgresql/data
networks:
- xxxx-network
backend:
build:
context: . # Path to the Dockerfile location
dockerfile: Dockerfile # Optional if the Dockerfile is named 'Dockerfile'
image: xxxx-img
container_name: xxxx_backend
ports:
- "8080:8080"
networks:
- xxxx-network
depends_on:
- postgres_db
devices:
- "/dev/ttyS0:/dev/ttyS0"
- "/dev/ttyS1:/dev/ttyS1"
- "/dev/ttyS2:/dev/ttyS2"
- "/dev/ttyS3:/dev/ttyS3"
volumes:
xxxx_data:
networks:
xxxx-network:
Подробнее здесь: [url]https://stackoverflow.com/questions/79228913/how-to-connect-to-com-port-by-using-spring-boot-docker[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия