diff --git a/sh/deploy_ui.bat b/sh/deploy_ui.bat new file mode 100644 index 0000000..c390fcf --- /dev/null +++ b/sh/deploy_ui.bat @@ -0,0 +1,2 @@ +ssh root@192.168.8.10 "rm -rf /app/appresource/static" +scp -r .\appresource\static root@192.168.8.10://app/appresource/ \ No newline at end of file diff --git a/src/main/java/a8k/BoditechA800Application.java b/src/main/java/a8k/BoditechA800Application.java index c31d1f2..2a54749 100644 --- a/src/main/java/a8k/BoditechA800Application.java +++ b/src/main/java/a8k/BoditechA800Application.java @@ -1,6 +1,7 @@ package a8k; +import a8k.app.service.appsetup.AppSetupInitializer; import a8k.app.service.background.AppEventBusService; import a8k.app.type.DeviceRunMode; import a8k.app.type.appevent.AppEvent; @@ -34,6 +35,9 @@ public class BoditechA800Application implements ApplicationListener= durationMillis; } diff --git a/src/main/java/a8k/app/constant/AppVersion.java b/src/main/java/a8k/app/constant/AppVersion.java index 6d5af19..10e92f0 100644 --- a/src/main/java/a8k/app/constant/AppVersion.java +++ b/src/main/java/a8k/app/constant/AppVersion.java @@ -1,5 +1,5 @@ package a8k.app.constant; public class AppVersion { - public static final String APP_VERSION = "B80.CN.01.00.12"; + public static final String APP_VERSION = "B80.CN.01.00.14"; } diff --git a/src/main/java/a8k/app/dao/type/db/NetworkSetting.java b/src/main/java/a8k/app/dao/type/db/NetworkSetting.java index 8cc4395..f86c8ba 100644 --- a/src/main/java/a8k/app/dao/type/db/NetworkSetting.java +++ b/src/main/java/a8k/app/dao/type/db/NetworkSetting.java @@ -1,6 +1,7 @@ package a8k.app.dao.type.db; import a8k.app.dao.type.NetworkMode; +import a8k.app.utils.ZJsonHelper; import a8k.app.utils.ZList; import java.io.Serializable; @@ -28,4 +29,8 @@ public class NetworkSetting implements Serializable { public StaticIPConfig staticIPConfig = new StaticIPConfig(); public DynamicIpConfig dynamicIpConfig = new DynamicIpConfig(); + public String toString() { + return ZJsonHelper.objectToJson(this); + } + } diff --git a/src/main/java/a8k/app/iflytophald/channel/PrinterUartCommunicationChannel.java b/src/main/java/a8k/app/iflytophald/channel/PrinterUartCommunicationChannel.java index a0957de..ea533f4 100644 --- a/src/main/java/a8k/app/iflytophald/channel/PrinterUartCommunicationChannel.java +++ b/src/main/java/a8k/app/iflytophald/channel/PrinterUartCommunicationChannel.java @@ -93,7 +93,9 @@ public class PrinterUartCommunicationChannel { private void onOpen(ServerHandshake serverHandshake) { - log.info("a8k canbus connect sucess"); + + + log.info("a8k iflytophald connect success"); } private void onMessage(String s) { diff --git a/src/main/java/a8k/app/service/appsetup/AppEnvInitializer.java b/src/main/java/a8k/app/service/appsetup/AppEnvInitializer.java deleted file mode 100644 index 81bf058..0000000 --- a/src/main/java/a8k/app/service/appsetup/AppEnvInitializer.java +++ /dev/null @@ -1,26 +0,0 @@ -package a8k.app.service.appsetup; - -import a8k.OS; -import a8k.app.service.os.OSDeviceInfoMgrService; -import a8k.app.service.statemgr.GStateMgrService; -import jakarta.annotation.PostConstruct; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -@Component -@Slf4j -@RequiredArgsConstructor -public class AppEnvInitializer { - private final GStateMgrService gStateMgrService; - - @PostConstruct - void init() { - log.info("AppEnvInitializer init"); -// gStateMgrService.setSn(osDeviceInfoMgrService.readSN()); -// gStateMgrService.setAssetId(osDeviceInfoMgrService.readAssetId()); - gStateMgrService.setDeviceInited(false); - // 其他初始化逻辑 - log.info("AppEnvInitializer init completed"); - } -} diff --git a/src/main/java/a8k/app/service/appsetup/AppSetupInitializer.java b/src/main/java/a8k/app/service/appsetup/AppSetupInitializer.java new file mode 100644 index 0000000..363e77c --- /dev/null +++ b/src/main/java/a8k/app/service/appsetup/AppSetupInitializer.java @@ -0,0 +1,27 @@ +package a8k.app.service.appsetup; + +import a8k.app.service.background.AppEventBusService; +import a8k.app.service.background.ProjIDCardCtrlAndMonitorService; +import a8k.app.service.os.OSNetworkMgrService; +import a8k.app.service.statemgr.GStateMgrService; +import jakarta.annotation.PostConstruct; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +@RequiredArgsConstructor +public class AppSetupInitializer { + private final GStateMgrService gStateMgrService; + private final OSNetworkMgrService networkMgrService; + private final ProjIDCardCtrlAndMonitorService projIDCardCtrlAndMonitorService; + + + public void initOnSetup() { + log.info("AppSetupInitializer init"); + gStateMgrService.setDeviceInited(false); + projIDCardCtrlAndMonitorService.initWhenSetup(); + log.info("AppEnvInitializer init completed"); + } +} diff --git a/src/main/java/a8k/app/service/background/ProjIDCardCtrlAndMonitorService.java b/src/main/java/a8k/app/service/background/ProjIDCardCtrlAndMonitorService.java index 3a9867a..fbbee11 100644 --- a/src/main/java/a8k/app/service/background/ProjIDCardCtrlAndMonitorService.java +++ b/src/main/java/a8k/app/service/background/ProjIDCardCtrlAndMonitorService.java @@ -52,6 +52,13 @@ public class ProjIDCardCtrlAndMonitorService { return mountedIdCardInfo; } + public void initWhenSetup() { + if (idCardStatus()) { + log.info("ID卡读卡器在线"); + workQueue.addTask(() -> this.readIDCard(false)); + } + } + // // VIRTUAL @@ -91,14 +98,10 @@ public class ProjIDCardCtrlAndMonitorService { eventBus.pushEvent(new AppIDCardUnmountEvent()); log.info("拔出ID卡"); } - } else if (event instanceof SpringbootLoadingCompletedEvent) { - if (idCardStatus()) { - log.info("ID卡读卡器在线"); - workQueue.addTask(() -> this.readIDCard(false)); - } } } + private void readIDCard(boolean pushMountEvent) { //读取ID卡信息 byte[] data = null; diff --git a/src/main/java/a8k/app/service/os/OSNetworkMgrService.java b/src/main/java/a8k/app/service/os/OSNetworkMgrService.java index df8e87d..07f1535 100644 --- a/src/main/java/a8k/app/service/os/OSNetworkMgrService.java +++ b/src/main/java/a8k/app/service/os/OSNetworkMgrService.java @@ -24,27 +24,56 @@ import java.util.concurrent.TimeUnit; @Slf4j @RequiredArgsConstructor @EnableScheduling -public class OSNetworkMgrService implements ApplicationListener { +public class OSNetworkMgrService { private final NetworkSettingDao networkSettingDao; private final GStateMgrService gStateMgrService; private boolean networkSettingIsLoading = false; + private final Object updateNetConfigLock = new Object(); public NetworkSetting getNetworkSetting() { return networkSettingDao.get(); } + /** + * 在应用启动时设置网络配置 + */ + private void initNetwork() { + + synchronized (updateNetConfigLock) { + if (networkSettingIsLoading) { + return; + } + if (OS.isRunOnWindows()) { + networkSettingIsLoading = true; + return; + } + + NetworkSetting setting = networkSettingDao.get(); + try { + doSetNetworkSetting(setting); + } catch (Exception e) { + log.error("setting network failed: {}", e.getMessage()); + return; + } + networkSettingIsLoading = true; + } + } + public void setNetworkSetting(NetworkSetting setting) throws AppException { - log.info("Setting network configuration: {}", setting); - try { - doSetNetworkSetting(setting); - } catch (NetSettingIllegalException e) { - throw AppException.of(A8kEcode.NETWORK_PARAMETER_ERROR, e.getMessage()); - } catch (IOException e) { - throw AppException.of(A8kEcode.CODEERROR, e.getMessage()); + synchronized (updateNetConfigLock) { + log.info("Setting network configuration: {}", setting); + try { + doSetNetworkSetting(setting); + } catch (NetSettingIllegalException e) { + throw AppException.of(A8kEcode.NETWORK_PARAMETER_ERROR, e.getMessage()); + } catch (IOException e) { + throw AppException.of(A8kEcode.CODEERROR, e.getMessage()); + } + networkSettingDao.update(setting); + log.info("Network configuration updated: {}", setting); + networkSettingIsLoading = true; } - networkSettingDao.update(setting); - log.info("Network configuration updated: {}", setting); } public void doSetNetworkSetting(NetworkSetting setting) throws NetSettingIllegalException, IOException, AppException { @@ -73,6 +102,7 @@ public class OSNetworkMgrService implements ApplicationListener 3 * 60 * 1000) { + initNetwork(); + } else { + gStateMgrService.updateLocalIp("网络初始化中..."); + } return; } gStateMgrService.updateLocalIp(OS.getLocalIp()); } - /** - * 在应用启动时设置网络配置 - */ - @Override public void onApplicationEvent(ContextRefreshedEvent event) { - if (OS.isRunOnWindows()) { - networkSettingIsLoading = true; - return; - } - NetworkSetting setting = networkSettingDao.get(); - try { - doSetNetworkSetting(setting); - setting.firstRun = false; - networkSettingDao.update(setting); - log.info("Network setting applied on startup: {}", setting); - } catch (Exception e) { - log.error("setting network failed: {}", e.getMessage()); - } - networkSettingIsLoading = true; - } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index a84e080..efdd4f2 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,9 +1,9 @@ #WEB虚拟后端 -server.port: 80 -iflytophald.ip: 127.0.0.1 -iflytophald.enable: false -device.runmode: "VirtualStateGenerateMode" -lis.enable: false +#server.port: 80 +#iflytophald.ip: 127.0.0.1 +#iflytophald.enable: false +#device.runmode: "VirtualStateGenerateMode" +#lis.enable: false #PC调试 #server.port: 80 @@ -20,11 +20,11 @@ lis.enable: false #正式部署 -#server.port: 80 -#device.runmode: "RealMode" -#iflytophald.ip: 127.0.0.1 -#iflytophald.enable: true -#lis.enable: true +server.port: 80 +device.runmode: "RealMode" +iflytophald.ip: 127.0.0.1 +iflytophald.enable: true +lis.enable: true a8k.enableTemperatureCtrl: true