@@ -2,16 +2,16 @@
<config>
<managerSetting>
- <enable>false</enable>
- <host>10.26.1.25</host>
+ <enable>true</enable>
+ <host>192.168.3.127</host>
<beatPort>8050</beatPort>
- <serverUrl>http://10.26.1.25:9191</serverUrl>
+ <serverUrl>http://127.0.0.1:9191</serverUrl>
</managerSetting>
<!--通道属性配置-->
<channelSetting>
<!--本机IP-->
<ip>10.5.136.55</ip>
- <channelCode>A1002</channelCode>
+ <channelCode>DE2</channelCode>
<channelName>货运进道2</channelName>
<!--0 货运通道 1 行政通道-->
<channelType>0</channelType>
@@ -22,16 +22,16 @@
<sysConfig>
<caputreSetting>
<enable>false</enable>
- <host>10.26.6.51</host>
+ <host>192.168.1.11</host>
<port>8000</port>
<username>admin</username>
- <pwd>ABCabc123</pwd>
+ <pwd>ap123456</pwd>
<brand>5000</brand>
</caputreSetting>
<serialSetting>
<host>10.5.136.55</host>
<weighbridge>
- <enable>true</enable>
+ <enable>false</enable>
<port>4003</port>
<brand>3000</brand>
<minKg>1000</minKg>
@@ -47,7 +47,7 @@
<brand>2000</brand>
</electron>
<plc>
<port>4001</port>
<!--输出-->
<out>
@@ -162,6 +162,17 @@
<action>LED.LED_SHOW_CONTENT(04|通道就绪,请通行)</action>
</actionList>
</event>
+ <!--通道关闭-->
+ <event>
+ <name>PLC.SHUTDOWN</name>
+ <actionList>
+ <action>PLC.GREEN_LIGHT_OFF</action>
+ <action>CENTER.TIMER_SLEEP(100)</action>
+ <action>PLC.RED_LIGHT_ON</action>
+ <action>LED.LED_SHOW_CONTENT(04|通道停止使用|01)</action>
+ </actionList>
+ </event>
+
<event>
<name>WEIGHBRIDGE.TIMEOUT</name>
<actionList>
@@ -148,7 +148,7 @@
<configuration>
<!--加密打包之后pom.xml会被删除,不用担心在jar包里找到此密码-->
<password>ABCabc123</password>
- <code>75F0A083412D315D3B2A26FAC0F6F550D41D8CD98F00B204E9800998ECF8427ED41D8CD98F00B204E9800998ECF8427E</code>
+ <code>20DFEE057FA73408A5D454AF9D5E8F0ED41D8CD98F00B204E9800998ECF8427ED41D8CD98F00B204E9800998ECF8427E</code>
<packages>com.gzlh</packages> <!--可以多个-->
<!-- <cfgfiles>application.yml</cfgfiles>-->
<excludes>org.spring</excludes>
@@ -1,5 +1,9 @@
package com.gzlh.background.client;
+import cn.hutool.cache.CacheUtil;
+import cn.hutool.cache.impl.TimedCache;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.gzlh.bus.EventBus;
import com.gzlh.bus.SysConfig;
@@ -11,6 +15,7 @@ import com.gzlh.config.hksdk.HkUtils;
import com.gzlh.config.hksdk.bo.HKCacheManager;
import com.gzlh.device.capture.brand.CaptureBrandType;
import com.gzlh.device.led.utils.LedOptions;
+import com.gzlh.device.plc.event.PLCEvent;
import com.gzlh.entity.CommandBO;
import com.gzlh.utils.DeviceCache;
import io.netty.channel.ChannelHandler;
@@ -47,16 +52,37 @@ public class BackgroundClientHandler extends SimpleChannelInboundHandler<String>
// System.out.println("Client received: " + msg);
if (!"back message".equalsIgnoreCase(msg)){
log.info("后端 客户端收到的信息:{}",msg);
- CommandBO commandBO = JSONUtil.toBean(msg, CommandBO.class);
-// log.info(commandBO.toString());
- CommandBO.Command command = commandBO.getCommand();
- if (!StringUtils.isEmpty(command.getExtra())){
- LedOptions options = new LedOptions().setLine("04").setColor("03").setShowType("00");
- SystemObject.ledFactory.handler(SysConfig.serialSetting.getLed().getBrand())
- .sendMsg(command.getExtra(),options);
- }else{
- eventBus.startEvent(command.getModule()+"."+command.getCommand());
+ handlerMsg(msg,ctx);
+ }
+ TimedCache<String, String> CONTENT_CACHE = CacheUtil.newTimedCache(2000);
+ void handlerMsg(String str,ChannelHandlerContext ctx){
+ String channelId = ctx.channel().id().asShortText();
+ if (!StrUtil.endWith(str, "}") && StrUtil.startWith(str, "{")) {
+ CONTENT_CACHE.put(channelId, str);
+ return;
+ } else if (!StrUtil.endWith(str, "}") && !StrUtil.startWith(str, "{")) {
+ String content = CONTENT_CACHE.get(channelId);
+ content += str;
+ CONTENT_CACHE.put(channelId, content);
+ } else if (StrUtil.endWith(str, "}")) {
+ if (StrUtil.isEmpty(content)) {
+ content = "";
}
+ str = content + str;
+ CONTENT_CACHE.remove(channelId);
+ CommandBO commandBO = JSONUtil.toBean(str, CommandBO.class);
+ CommandBO.Command command = commandBO.getCommand();
+ if (!StringUtils.isEmpty(command.getExtra())){
+ LedOptions options = new LedOptions().setLine("04").setColor("03").setShowType("00");
+ SystemObject.ledFactory.handler(SysConfig.serialSetting.getLed().getBrand())
+ .sendMsg(command.getExtra(),options);
+ if (StrUtil.isNotEmpty(command.getCommand())&&StrUtil.isNotEmpty(command.getModule())){
+ eventBus.startEvent(command.getModule()+"."+command.getCommand());
@@ -128,7 +154,7 @@ public class BackgroundClientHandler extends SimpleChannelInboundHandler<String>
@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
cause.printStackTrace();
- ctx.close();
+ // ctx.close();
@@ -0,0 +1,31 @@
+package com.gzlh.bus;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+public class ChannelCacheManager {
+ private final static TimedCache<String,Integer>CACHE= CacheUtil.newTimedCache(8000);
+ private final static Map<String, Integer> STATE_MAP = new ConcurrentHashMap<>();
+ public static void addCache(String cache){
+ CACHE.put(cache,1);
+ public static boolean checkExit(String cache){
+ return CACHE.get(cache,false)!=null;
+ public static void setStateMap(String code,Integer state){
+ STATE_MAP.put(code,state);
+ public static Integer getStateMap(String code){
+ return STATE_MAP.get(code);
+ public static boolean stateEnable(String code){
+ Integer state=STATE_MAP.get(code);
+ return state!=null&&state==0;
+}
@@ -128,74 +128,9 @@ public class EventThread implements Runnable {
* @param
*/
private void handlerSubmit() {
- String api = SysConfig.managerSetting.getServerUrl() + "/open/submit";
- String bodyParams = JSONUtil.toJsonStr(EventDataManager.getCacheData());
- if (StrUtil.isEmpty(bodyParams)) {
- return;
- }
- log.info("Req:{}", bodyParams);
- EventBus eventBus = SpringUtil.getBean(EventBus.class);
- HttpResponse response = request(api, bodyParams);
- log.info("提交通道数据-返回结果:{}", response.body());
- if (response.getStatus() == 200) {
- String body = response.body();
- JSONObject jsonObject = JSONUtil.parseObj(body);
-// 返回数据解密
- String data = WordHandlerUtils.AESDecrypt(jsonObject.get("data").toString());
- log.info("data:{}", data);
- CommandBO commandBO = JSONUtil.toBean(data, CommandBO.class);
- LedOptions options = new LedOptions().setLine("04").setShowType("00");
- if (jsonObject.getInt("code") == 200) {
- log.info("抬杆放行============");
- eventBus.startEvent(ModuleEnum.PLC_MODULE.getModuleEn() + "." + PLCEvent.RAILING_RISE);
- options.setColor("02");
- if (ModuleEnum.LED_MODULE.getModuleEn().equalsIgnoreCase(commandBO.getCommand().getModule())) {
- .sendMsg(commandBO.getCommand().getExtra(), options);
- } else {
- options.setColor("01");
- eventBus.startEvent(commandBO.getCommand().getModule() + "." + commandBO.getCommand().getCommand());
- if (SysConfig.channelSetting.getChannelType() == 1) {
- eventBus.startEvent(ModuleEnum.PLC_MODULE.getModuleEn() + "." + PLCEvent.CHECK_ADMIN_FAILED);
- eventBus.startEvent(ModuleEnum.PLC_MODULE.getModuleEn() + "." + PLCEvent.SUBMIT_TIMEOUT);
-
-// 重置记录的设备触发时间
- DeviceCache.resetTimeMap();
+ ThreadUtil.execute(new SubmitThread());
- public HttpResponse request(String url, String json) {
- HttpResponse res = null;
-// url = "http://192.168.1.8:9191/open/submit";
- long startTime = System.currentTimeMillis();
-// System.out.println(startTime);
-// 数据加密
- String body = WordHandlerUtils.AESEncrypt(json);
- try {
-// System.out.printf("请求地址:%s, 请求体:%s ", url,body);
- res = HttpRequest.post(url)
- .header("Content-Type", "application/json;character=utf-8;")
- .body(body)
- .execute();
-// String bodyResult = res.body();
-// System.out.printf("ReqStatus:%s,返回结果:{%s} ",res.getStatus(), bodyResult);
- } catch (Exception e) {
- e.printStackTrace();
- return res;
@@ -0,0 +1,72 @@
+import cn.hutool.extra.spring.SpringUtil;
+import cn.hutool.http.HttpResponse;
+import cn.hutool.http.HttpUtil;
+import cn.hutool.json.JSONUtil;
+import com.gzlh.config.ModuleEnum;
+import com.gzlh.config.SystemObject;
+import com.gzlh.device.led.utils.LedOptions;
+import com.gzlh.entity.CommandBO;
+import com.gzlh.entity.ReqBO;
+import com.gzlh.utils.DeviceCache;
+import com.gzlh.utils.WordHandlerUtils;
+import lombok.extern.slf4j.Slf4j;
+@Slf4j
+public class SubmitThread implements Runnable{
+ @Override
+ public void run() {
+ String api = SysConfig.managerSetting.getServerUrl() + "/open/submit";
+ ReqBO reqBO=EventDataManager.getCacheData();
+ String bodyParams = JSONUtil.toJsonStr(reqBO);
+ if (StrUtil.isEmpty(bodyParams)
+ || ChannelCacheManager.checkExit(reqBO.getCarNo())
+ ||!ChannelCacheManager.stateEnable(SysConfig.channelSetting.getChannelCode())) {
+ ChannelCacheManager.addCache(reqBO.getCarNo());
+ log.info("Req:{}", bodyParams);
+ EventBus eventBus = SpringUtil.getBean(EventBus.class);
+ try (HttpResponse response = HttpUtil.createPost(api).body(WordHandlerUtils.AESEncrypt(bodyParams)).execute()) {
+ log.info("提交通道数据-返回结果:{}", response.body());
+ if (response.getStatus() == 200) {
+ String body = response.body();
+ JSONObject jsonObject = JSONUtil.parseObj(body);
+ // 返回数据解密
+ String data = WordHandlerUtils.AESDecrypt(jsonObject.get("data").toString());
+ log.info("data:{}", data);
+ CommandBO commandBO = JSONUtil.toBean(data, CommandBO.class);
+ LedOptions options = new LedOptions().setLine("04").setShowType("00");
+ if (jsonObject.getInt("code") == 200) {
+ log.info("抬杆放行============");
+ eventBus.startEvent(ModuleEnum.PLC_MODULE.getModuleEn() + "." + PLCEvent.RAILING_RISE);
+ options.setColor("02");
+ if (ModuleEnum.LED_MODULE.getModuleEn().equalsIgnoreCase(commandBO.getCommand().getModule())) {
+ .sendMsg(commandBO.getCommand().getExtra(), options);
+ } else {
+ options.setColor("01");
+ eventBus.startEvent(commandBO.getCommand().getModule() + "." + commandBO.getCommand().getCommand());
+ if (SysConfig.channelSetting.getChannelType() == 1) {
+ eventBus.startEvent(ModuleEnum.PLC_MODULE.getModuleEn() + "." + PLCEvent.CHECK_ADMIN_FAILED);
+ eventBus.startEvent(ModuleEnum.PLC_MODULE.getModuleEn() + "." + PLCEvent.SUBMIT_TIMEOUT);
+// 重置记录的设备触发时间
+ DeviceCache.resetTimeMap();
@@ -5,8 +5,10 @@ import cn.hutool.cache.impl.TimedCache;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.spring.SpringUtil;
+import com.gzlh.bus.ChannelCacheManager;
import com.gzlh.bus.EventDataManager;
+import com.gzlh.bus.SysConfig;
import com.gzlh.config.ModuleEnum;
import com.gzlh.config.task.Task;
import com.gzlh.config.task.TaskService;
@@ -36,10 +38,14 @@ public class CheckInitTask extends Task {
public void run() {
TaskService taskService=SpringUtil.getBean(TaskService.class);
- EventBus eventBus=SpringUtil.getBean(EventBus.class);
+ if (!ChannelCacheManager.stateEnable(SysConfig.channelSetting.getChannelCode())){
+ taskService.addTask(new CheckInitTask(RandomUtil.randomNumbers(16),30000,0));
+ EventBus eventBus=SpringUtil.getBean(EventBus.class);
ReqBO reqBO= EventDataManager.getCacheData();
if (reqBO!=null&& StrUtil.isNotEmpty(reqBO.getCarNo())){
- if (new Date().getTime()/1000-reqBO.getGatherTime().getTime()/1000>50){
+ if (new Date().getTime()/1000-reqBO.getGatherTime().getTime()/1000>90){
log.info("----------触发初始化---------------");
eventBus.startEvent(ModuleEnum.PLC_MODULE.getModuleEn() + "." + PLCEvent.IDLE);
taskService.addTask(new CheckInitTask(RandomUtil.randomNumbers(16),15000,0));
@@ -48,7 +54,7 @@ public class CheckInitTask extends Task {
taskService.addTask(new CheckInitTask(RandomUtil.randomNumbers(16),2000,0));
return;
- if (checkCount>=5){
+ if (checkCount>=10){
@@ -0,0 +1,55 @@
+package com.gzlh.bus.task;
+import com.gzlh.bus.EventBus;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+@Component
+public class CheckState {
+ @Scheduled(cron = "0,25,40,55 * * * * ?")
+ public void check() {
+ String channelCode = SysConfig.channelSetting.getChannelCode();
+ String api = SysConfig.managerSetting.getServerUrl() + "/open/channel/state?channelCode=" + channelCode;
+ try {
+ String resp = HttpUtil.get(api);
+ JSONObject result = JSONUtil.parseObj(resp);
+ Integer state = result.getInt("state");
+ Integer cacheState = ChannelCacheManager.getStateMap(channelCode);
+ ChannelCacheManager.setStateMap(channelCode, state);
+ if (!state.equals(cacheState)) {
+ handlerChannel(state);
+ log.info("enable:{}",ChannelCacheManager.stateEnable(channelCode));
+ } catch (Exception e) {
+ log.error("resp:{}", e.getMessage());
+ private void handlerChannel(Integer state) {
+ if (state == 0) {
+ eventBus.startEvent(ModuleEnum.PLC_MODULE.getModuleEn() + "." + PLCEvent.IDLE);
+ eventBus.startEvent(ModuleEnum.PLC_MODULE.getModuleEn() + "." + PLCEvent.SHUTDOWN);
@@ -1,5 +0,0 @@
-package com.gzlh.bus.task;
-public class CountManager {
-}
@@ -7,6 +7,7 @@ import cn.hutool.core.io.FileUtil;
import com.gzlh.config.SystemObject;
import com.gzlh.config.dto.ChannelSetting;
@@ -36,25 +37,22 @@ import java.util.Date;
@Service
@Slf4j
public class AlarmParseService {
@Resource
- @Lazy
- private HkUtils hkUtils;
- @Resource
- private HCNetSDK hcNetSDK;
- private FilePropertiesConfig filePropertiesConfig;
TaskService taskService;
+ public static final TimedCache<String, Integer> CACHE_MAP = CacheUtil.newTimedCache(2000);
- public static final TimedCache<String, Integer> CACHE_MAP = CacheUtil.newTimedCache(5000);
public void alarmDataHandle(int lCommand, HCNetSDK.NET_DVR_ALARMER pAlarmer, Pointer pAlarmInfo, int dwBufLen, Pointer pUser) {
//lCommand是传的报警类型
String separator=File.separator;
if (lCommand == HCNetSDK.COMM_ITS_PLATE_RESULT) {//交通抓拍结果(新报警信息)
+ log.error("通道已停用=======");
HCNetSDK.NET_ITS_PLATE_RESULT strItsPlateResult = new HCNetSDK.NET_ITS_PLATE_RESULT();
strItsPlateResult.write();
Pointer pItsPlateInfo = strItsPlateResult.getPointer();
@@ -63,22 +61,28 @@ public class AlarmParseService {
String sLicense;
try {
sLicense = new String(strItsPlateResult.struPlateInfo.sLicense, "GBK");
+ if (StrUtil.isEmpty(sLicense)){
+ log.error("上传车牌为空--------------------");
+ if (CACHE_MAP.get(sLicense)!=null){
+ log.error("重复识别--------------------:{}",sLicense);
+ CACHE_MAP.put(sLicense,1);
} catch (UnsupportedEncodingException e) {
log.error("上传车牌为空:{}", e.getMessage());
// int color = strItsPlateResult.struPlateInfo.byColor;
// byte VehicleType = strItsPlateResult.byVehicleType; //0-其他车辆,1-小型车,2-大型车,3- 行人触发,4- 二轮车触发,5- 三轮车触发,6- 机动车触发
-// log.info("车牌号:{} ;车辆类型:{}", sLicense, VehicleType);
+ log.info("车牌号:{}", sLicense);
sLicense = StrUtil.trim(StrUtil.sub(sLicense, 1, -1));
if (StrUtil.isEmpty(sLicense)||StrUtil.equals("车牌",sLicense)){
- if (CACHE_MAP.get(sLicense) != null) {
-// log.error("重复上传:{}", sLicense);
+ // return;
// hkUtils.handlerUp(hcNetSDK, pAlarmer.lUserID);
Date nowTime=new Date();
/**
@@ -116,7 +120,7 @@ public class AlarmParseService {
- CACHE_MAP.put(sLicense, 1);
@@ -1,5 +1,7 @@
package com.gzlh.config.hksdk;
import com.sun.jna.Pointer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@@ -14,7 +16,9 @@ public class MessageCallBack implements HCNetSDK.FMSGCallBack_V31 {
public boolean invoke(int lCommand, HCNetSDK.NET_DVR_ALARMER pAlarmer, Pointer pAlarmInfo, int dwBufLen, Pointer pUser) {
- alarmParseService.alarmDataHandle(lCommand,pAlarmer,pAlarmInfo,dwBufLen,pUser);
+ synchronized (this){
+ alarmParseService.alarmDataHandle(lCommand, pAlarmer, pAlarmInfo, dwBufLen, pUser);
return false;
@@ -38,7 +38,7 @@ import java.util.stream.Collectors;
public class CameraController {
- private final TimedCache<String,Integer> XML_CACHE= CacheUtil.newTimedCache(5000);
+ private final TimedCache<String,Integer> XML_CACHE= CacheUtil.newTimedCache(3000);
@PostMapping(value = "/recv", produces = MediaType.TEXT_XML_VALUE)
public String recv(
@@ -62,7 +62,13 @@ public class LedHandlerFengLiYuan implements ILedHandler {
ledOptions.setColor("06");
break;
- ReqBO reqBO = null;
+ if (StrUtil.contains(action, "|")) {
+ String[] split = action.split("\\|");
+ if (split.length==3){
+ ledOptions.setColor(split[2]);
+ ReqBO reqBO;
//展示内容
if (StrUtil.contains(action, "platNo")) {
String carNo = "";
@@ -15,4 +15,8 @@ public interface PLCEvent {
String CHECK_ADMIN_FAILED = "CHECK_ADMIN_FAILED";
String IDLE = "IDLE";
+ /**
+ * 关闭
+ */
+ String SHUTDOWN = "SHUTDOWN";
@@ -1,6 +1,7 @@
package com.gzlh.device.plc.handler;
import com.gzlh.config.dto.SerialSetting;
@@ -27,11 +28,29 @@ public class CheckDownTask extends Task {
+ if (tryCount >= 5) {
+ log.error("尝试超过5次无法落杆,需要人工干预=========");
+ String plcStatus= DeviceCache.getPlcStatus();
+ if (StrUtil.isEmpty(plcStatus)){
+ SerialSetting.PlcDTO.StatusDTO statusDTO= SysConfig.serialSetting.getPlc().getStatus();
+ String downPoint= statusDTO.getDownPoint();
+ String downPointStatus=plcStatus.charAt(Integer.parseInt(downPoint))+"";
+ if (downPointStatus.equals("1")){
+ log.info("落杆继电器断开完成,停止下发指令");
+ //已经上到位了,所以停止检查
String gatePoint = SysConfig.serialSetting.getPlc().getOut().getGatePoint();
String command = PLCHadnler.COMMAND_PREFIX + gatePoint + PLCHadnler.COMMAND_OFF;
String packData = ModbusUtils.buildRequestPacket(command);
- log.info("plc发送落杆指令:{}", tryCount);
PlcNettyConfig plcNettyConfig = SpringUtil.getBean(PlcNettyConfig.class);
plcNettyConfig.send(packData);
+ tryCount = tryCount + 1;
+ TaskService taskService = SpringUtil.getBean(TaskService.class);
+ taskService.addTask(new CheckDownTask(RandomUtil.randomNumbers(10), 1000, tryCount));
@@ -29,25 +30,29 @@ public class CheckUpTask extends Task {
- if (tryCount >= 3) {
+ if (tryCount >= 8) {
+ log.error("尝试超过8次无法抬杆,需要人工干预=========");
String plcStatus= DeviceCache.getPlcStatus();
SerialSetting.PlcDTO.StatusDTO statusDTO= SysConfig.serialSetting.getPlc().getStatus();
String upPoint= statusDTO.getUpPoint();
String upStatus=plcStatus.charAt(Integer.parseInt(upPoint))+"";
if (upStatus.equals("1")){
+ log.info("抬杆完成,停止下发指令");
//已经上到位了,所以停止检查
String command = PLCHadnler.COMMAND_PREFIX + gatePoint + PLCHadnler.COMMAND_ON;
- log.info("plc发送抬杆:{}",tryCount);
tryCount = tryCount + 1;
TaskService taskService = SpringUtil.getBean(TaskService.class);
- taskService.addTask(new CheckUpTask(RandomUtil.randomNumbers(10), 300, tryCount));
+ taskService.addTask(new CheckUpTask(RandomUtil.randomNumbers(10), 1000, tryCount));
@@ -4,6 +4,7 @@ import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.log.StaticLog;
@@ -45,6 +46,10 @@ public class CommonWeighbridgeHandler {
* 开始读取地磅数据
public static void startToRead() {
+ //不启用
isStart = true;
ThreadUtil.execute(new WatchThread());
@@ -91,14 +96,15 @@ public class CommonWeighbridgeHandler {
private int handlerWeight() {
- StaticLog.info("w:{}", JSONUtil.toJsonStr(WEIGHT_CACHE));
- if (WEIGHT_CACHE.isEmpty()){
+ List<Integer>list=WEIGHT_CACHE;
+ StaticLog.info("w:{}", JSONUtil.toJsonStr(list));
+ if (list.isEmpty()){
return 0;
- Collections.sort(WEIGHT_CACHE);
- int size=WEIGHT_CACHE.size();
+ Collections.sort(list);
+ int size=list.size();
int index=( size*3)/4;
- return WEIGHT_CACHE.get(index);
+ return list.get(index);
@@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil;
import com.gzlh.config.hksdk.AlarmParseService;
+import com.gzlh.config.hksdk.MessageCallBack;
import com.gzlh.device.weighbridge.action.WeighbridgeCommonAction;
import com.gzlh.device.weighbridge.brand.WeighbridgeBrandType;
import com.gzlh.device.weighbridge.handler.IWeighbridgeHandler;
@@ -33,12 +33,5 @@ public class ModbusUtils {
return swapBytes(crc);
- public static void main(String[] args) {
- String packData = "01050000FF00";
- System.out.println(buildRequestPacket(packData));
- String s="F5,01,00,33,01,01,00,01,00,01,00,01,08,BB,B6,D3,AD,B9,E2,C1,D9,02,00,00,00,01,1C,C9,EE,DB,DA,CA,D0,5B,40,32,5D,B7,E1,C0,FB,D4,B4,5B,40,33,5D,D3,D0,CF,DE,B9,AB,CB,BE,A4";
- System.out.println(s.replaceAll(",",""));
- String sr="010100010001000108BBB6D3ADB9E2C1D902000000011CC9EEDBDACAD05B40325DB7E1C0FBD4B45B40335DD3D0CFDEB9ABCBBE";
- System.out.println(sr.length());
@@ -44,13 +44,7 @@ public class WordHandlerUtils {
- public static void main(String[] args) throws Exception {
- System.out.println(msgToASCII("你好ssss"));
- String ssss = "1CABC683A8F381F47EAC5AD5838C1FB7A08283BBC529298F8FF6DB44684C6AEC36C5973857E482E9A157D690D1E431C79414A55D2BEA40E46A520170CF1B353EDDC35BFDF27033D3E61D5BC275DB07BF";
- System.out.println(AESDecrypt(ssss));
- String s="{\"direction\":1,\"channelCode\":\"B1001\",\"carNo\":\"桂A0746T\",\"carImg\":\"http://10.26.1.26/B1001/2023/12/26/桂A0746T-2312260950.jpg\",\"weight\":1361,\"gatherTime\":1703555420546}";
- System.out.println(AESEncrypt(s));
* 中文转ascii
@@ -34,10 +34,6 @@ public class XorUtils {
return ret;
- String s="F5,01,00,05,01,03,00,01,02,F0";
- System.out.println(hexString2Bytes("F50100050003000102")[0]);
@@ -1,5 +1,13 @@
server:
port: 8086
+spring:
+ task:
+ execution:
+ pool:
+ core-size: 20
+ scheduling:
+ thread-name-prefix: scheduling-task
#图片存储根路径
file:
root-path: D:\\file\\