Browse Source

update some code

master
zhaohe 3 weeks ago
parent
commit
0579b6e1b3
  1. 11
      src/main/java/a8k/app/service/lis/BiLisDoubleTrackChannel.java
  2. 20
      src/main/java/a8k/app/service/lis/LisCommunicationService.java
  3. 2
      src/main/java/a8k/app/utils/ThreadUtils.java
  4. 1
      src/main/resources/application.yml

11
src/main/java/a8k/app/service/lis/BiLisDoubleTrackChannel.java

@ -83,7 +83,6 @@ public class BiLisDoubleTrackChannel {
}
synchronized public boolean ping() {
/*
* 设备探测协议
* 1. 发送ENQ0x05到服务器
@ -91,22 +90,20 @@ public class BiLisDoubleTrackChannel {
* 3. 如果收到ACK发送ACK0x06作为确认
*/
if (!isChannelReady()) {
if (!isChannelReady())
return false;
}
synchronized (rxBuffer) {
rxBuffer.clear();
}
txBytes(new byte[]{BiLisDoubleTrackFrame.ENQ});
boolean rxAckOrNak = ThreadUtils.waitingForSomeCondition("BiLisDoubleTrackChannel.rx",
boolean rxAckOrNak = ThreadUtils.waitingForSomeCondition("BiLisDoubleTrackChannel.rx", 100, 2000,
() -> {
synchronized (rxBuffer) {
return rxBuffer.readableBytes() == 1 &&
(rxBuffer.getByte(0) == BiLisDoubleTrackFrame.ACK || rxBuffer.getByte(0) == BiLisDoubleTrackFrame.NAK);
}
},
100, 2000);
});
if (rxAckOrNak) {
txBytes(new byte[]{BiLisDoubleTrackFrame.ACK});
@ -123,8 +120,6 @@ public class BiLisDoubleTrackChannel {
// * RX: <EOT>
// */
//
//
//
// }

20
src/main/java/a8k/app/service/lis/LisCommunicationService.java

@ -11,6 +11,7 @@ import a8k.app.utils.ZJsonHelper;
import jakarta.annotation.PostConstruct;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
@ -21,26 +22,29 @@ public class LisCommunicationService {
private final LisUartChannel lisUartChannel;
private LISSetting setting;
BiLisSingleTrackChannel boditechLisSingleTrackChannel;
@Value("${lis.enable}")
public Boolean lisEnable = true;
BiLisSingleTrackChannel boditechLisSingleTrackChannel;
public void updateLisSetting(LISSetting lisSetting) {
if (!lisEnable) {
log.warn("LIS communication is disabled by configuration, ignore updateLisSetting");
return;
}
log.info("updateLisSetting: {}", ZJsonHelper.objToPrettyJson(lisSetting));
setting = lisSetting;
doUpdateLisSetting();
}
public String getProtocolDetail() {
if (isChannelEq(LISProtocolEnum.Boditech, LISDirectionTypeEnum.SINGLE_TRACK, LISIFType.SERIAL)) {
return String.format("%s.%s.%s,baudrate:%s", setting.lisProtocol, setting.lisType, setting.lisIf, setting.lisSerialBaudrate.baudrate);
}
else if (isChannelEq(LISProtocolEnum.Boditech, LISDirectionTypeEnum.SINGLE_TRACK, LISIFType.NETWORK)) {
} else if (isChannelEq(LISProtocolEnum.Boditech, LISDirectionTypeEnum.SINGLE_TRACK, LISIFType.NETWORK)) {
return String.format("%s.%s.%s,ip:%s,port:%d", setting.lisProtocol, setting.lisType, setting.lisIf, setting.lisNetIp, setting.lisNetPort);
} else {
return String.format("%s.%s.%s", setting.lisProtocol, setting.lisType, setting.lisIf);
}
}
public Boolean getConnectionState() {
@ -64,6 +68,10 @@ public class LisCommunicationService {
@PostConstruct
public void init() {
log.info("LisCommunicationService init");
if (!lisEnable) {
log.warn("LIS communication is disabled by configuration.");
return;
}
setting = appSettingsMgrService.getLISSetting();
doUpdateLisSetting();
}

2
src/main/java/a8k/app/utils/ThreadUtils.java

@ -52,7 +52,7 @@ public class ThreadUtils {
}
}
static public boolean waitingForSomeCondition(String conditionName, ConditionListener condition, long retryIntervalMillis, long timeoutMillis) {
static public boolean waitingForSomeCondition(String conditionName,long retryIntervalMillis, long timeoutMillis, ConditionListener condition ) {
long startTime = System.currentTimeMillis();
while (System.currentTimeMillis() - startTime < timeoutMillis) {
if (condition.isConditionMet())

1
src/main/resources/application.yml

@ -3,6 +3,7 @@ server.port: 80
iflytophald.ip: 127.0.0.1
iflytophald.enable: false
device.runmode: "VirtualStateGenerateMode"
lis.enable: false
#PC调试
#server.port: 80

Loading…
Cancel
Save