Ниже приведен код службы, который Я написал:
Код: Выделить всё
package com.intelparcel.java.be.services;
import com.fazecast.jSerialComm.SerialPort;
import com.intelparcel.java.be.models.vend.FailedItemsModel;
import com.intelparcel.java.be.models.vend.VendRequestItemModel;
import org.springframework.stereotype.Service;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
@Service
public class VendService {
private List failedItems = new ArrayList();
public List vendProducts(List data) {
failedItems.clear();
SerialPort serialPort = SerialPort.getCommPort("/dev/ttyUSB0");
serialPort.setComPortParameters(9600, 8, 1, SerialPort.NO_PARITY);
for (VendRequestItemModel item : data) {
for (int quantity = 0; quantity < item.getQuantity(); quantity++) {
openPort(serialPort);
String TXBUF = "01C1" + Integer.toHexString(item.getSlot_number());
System.out.println(TXBUF);
byte CHK = 0;
String[] HexValues = new String[TXBUF.length() / 2];
byte[] ByteValues = new byte[TXBUF.length() / 2];
for (int i = 0; i < (TXBUF.length() / 2); i++) {
HexValues[i] = TXBUF.substring((2 * i), (2 * i) + 2);
ByteValues[i] = (byte) Integer.parseInt(HexValues[i], 16);
if (i > 1) {
CHK += ByteValues[i];
}
}
CHK = (byte) (0 - CHK);
TXBUF += String.format("%02X", CHK) + ">";
TXBUF = "
Подробнее здесь: [url]https://stackoverflow.com/questions/75729434/jserialcomm-java-serial-communication-fails-sometimes[/url]
Мобильная версия