From ec3fa1a4209062eb95388d19474dd8b5a3ac9c0f Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期一, 16 三月 2026 11:16:18 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/network/real/ZyStationRealConnect.java | 85 ++++++++++++++++++++++--------------------
1 files changed, 45 insertions(+), 40 deletions(-)
diff --git a/src/main/java/com/zy/core/network/real/ZyStationRealConnect.java b/src/main/java/com/zy/core/network/real/ZyStationRealConnect.java
index f3fab96..1256513 100644
--- a/src/main/java/com/zy/core/network/real/ZyStationRealConnect.java
+++ b/src/main/java/com/zy/core/network/real/ZyStationRealConnect.java
@@ -99,7 +99,7 @@
if (result.IsSuccess) {
for (int i = 0; i < statusList.size(); i++) {
ZyStationStatusEntity statusEntity = statusList.get(i); // 绔欑偣缂栧彿
- statusEntity.setTaskNo((int) siemensNet.getByteTransform().TransInt16(result.Content, i * 8)); // 宸ヤ綔鍙�
+ statusEntity.setTaskNo(siemensNet.getByteTransform().TransInt32(result.Content, i * 8)); // 宸ヤ綔鍙�
statusEntity.setTargetStaNo((int) siemensNet.getByteTransform().TransInt16(result.Content, i * 8 + 4)); // 鐩爣绔�
boolean[] status = siemensNet.getByteTransform().TransBool(result.Content, i * 8 + 6, 2);
@@ -109,25 +109,32 @@
statusEntity.setOutEnable(status[3]);// 鍙嚭
statusEntity.setEmptyMk(status[4]); // 绌烘澘淇″彿
statusEntity.setFullPlt(status[5]); // 婊℃墭鐩�
+
+ if (statusEntity.getStationId()==1015){
+ OperateResultExOne<byte[]> result1 = siemensNet.Read("DB101.3826", (short) (4));
+ if (result1.IsSuccess) {
+ statusEntity.setWeight((double) siemensNet.getByteTransform().TransSingle(result1.Content, 0));
+ }
+ }
}
}
// 鏉$爜鎵弿鍣�
- OperateResultExOne<byte[]> result2 = siemensNet.Read("DB101.840", (short) (barcodeOriginList.size() * 8));
+ OperateResultExOne<byte[]> result2 = siemensNet.Read("DB101.3760", (short) (barcodeOriginList.size() * 52));
if (result2.IsSuccess) {
for (int i = 0; i < barcodeOriginList.size(); i++) {
ZyStationStatusEntity barcodeEntity = findStatusEntityByBarcodeIdx(i + 1);
if (barcodeEntity == null) {
continue;
}
- String barcode = siemensNet.getByteTransform().TransString(result2.Content, i * 8, 8, "UTF-8");
+ String barcode = siemensNet.getByteTransform().TransString(result2.Content, i * 52, 52, "UTF-8");
barcode = barcode.trim();
barcodeEntity.setBarcode(barcode);
}
}
// 鎶ヨ淇℃伅
- OperateResultExOne<byte[]> result3 = siemensNet.Read("DB101.800", (short) (barcodeOriginList.size() * 3));
+ OperateResultExOne<byte[]> result3 = siemensNet.Read("DB101.2400", (short) (barcodeOriginList.size() * 3));
if (result3.IsSuccess) {
for (int i = 0; i < barcodeOriginList.size(); i++) {
ZyStationStatusEntity barcodeEntity = findStatusEntityByBarcodeIdx(i + 1);
@@ -177,54 +184,52 @@
@Override
public CommandResponse sendCommand(Integer deviceNo, StationCommand command) {
CommandResponse commandResponse = new CommandResponse(false);
- if (null == command) {
- commandResponse.setMessage("鍛戒护涓虹┖");
- return commandResponse;
- }
+ try {
+ if (null == command) {
+ commandResponse.setMessage("鍛戒护涓虹┖");
+ return commandResponse;
+ }
- int index = findIndex(command.getStationId());
- if (index < 0) {
- commandResponse.setMessage("绔欑偣涓嶅瓨鍦�");
- return commandResponse;
- }
+ int index = findIndex(command.getStationId());
+ if (index < 0) {
+ commandResponse.setMessage("绔欑偣涓嶅瓨鍦�");
+ return commandResponse;
+ }
- OperateResult write = null;
- // 浠诲姟涓嬪彂娆℃暟
- int writeCount = 0;
- do {
- short[] data = new short[2];
- data[0] = command.getTaskNo().shortValue();
- data[1] = command.getTargetStaNo().shortValue();
+ boolean commandSendResult = false;
+ // 浠诲姟涓嬪彂娆℃暟
+ int writeCount = 0;
+ do {
+// short[] data = new short[2];
+// data[0] = command.getTaskNo();
+// data[1] = command.getTargetStaNo().shortValue();
- write = siemensNet.Write("DB100." + index * 4, data);
- if (write.IsSuccess) {
- log.error("鍐欏叆杈撻�佺嚎鍛戒护鎴愬姛銆傜珯鐐圭紪鍙�={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", command.getStationId(), JSON.toJSON(command),
- writeCount);
- commandResponse.setResult(true);
- break;
- } else {
+ OperateResult write = siemensNet.Write("DB100." + index * 6, command.getTaskNo());
+ OperateResult write1 = siemensNet.Write("DB100." + (index * 6 + 4), command.getTargetStaNo().shortValue());
+ if (write.IsSuccess && write1.IsSuccess) {
+ commandSendResult = true;
+ break;
+ }
writeCount++;
+ Thread.sleep(300);
+ } while (writeCount < 5);
+
+ if(!commandSendResult) {
log.error("鍐欏叆杈撻�佺嚎鍛戒护澶辫触銆傜珯鐐圭紪鍙�={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", command.getStationId(), JSON.toJSON(command),
writeCount);
- commandResponse.setResult(false);
+ commandResponse.setMessage("鍐欏叆鍛戒护澶辫触");
+ return commandResponse;
}
- } while (writeCount < 5);
- if (write == null) {
- commandResponse.setMessage("鍐欏叆鍛戒护澶辫触");
- return commandResponse;
- }
-
- if (!write.IsSuccess) {
- ZyStationStatusEntity staProtocol = findStatusEntity(command.getStationId());
- OutputQueue.DEVP.offer(MessageFormat.format("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傜珯鐐圭紪鍙�={1}锛岀珯鐐规暟鎹�={2}", command.getStationId(),
- JSON.toJSON(staProtocol)));
- News.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傜珯鐐圭紪鍙�={}锛岀珯鐐规暟鎹�={}", command.getStationId(), JSON.toJSON(staProtocol));
- } else {
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}",
DateUtils.convert(new Date()), command.getStationId(), JSON.toJSON(command)));
News.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", command.getStationId(),
JSON.toJSON(command));
+ commandResponse.setResult(true);
+ commandResponse.setMessage("鍛戒护涓嬪彂鎴愬姛");
+ return commandResponse;
+ } catch (Exception e) {
+ e.printStackTrace();
}
return commandResponse;
}
--
Gitblit v1.9.1