From c84a97df024e2a1fbbb6d50a7bcb4b2e2a0838b8 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期二, 07 十一月 2023 17:07:36 +0800
Subject: [PATCH] plc结果支持int32解析
---
constvar/const.go | 3 ++-
service/plc.go | 11 ++++++++++-
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/constvar/const.go b/constvar/const.go
index 0e126b8..e6f9b85 100644
--- a/constvar/const.go
+++ b/constvar/const.go
@@ -21,7 +21,8 @@
const (
PlcStartAddressValueTypeString PlcStartAddressValueType = "string"
- PlcStartAddressValueTypeInt PlcStartAddressValueType = "int"
+ PlcStartAddressValueTypeInt16 PlcStartAddressValueType = "int16"
+ PlcStartAddressValueTypeInt32 PlcStartAddressValueType = "int32"
)
const (
diff --git a/service/plc.go b/service/plc.go
index 85150c3..1a48fa9 100644
--- a/service/plc.go
+++ b/service/plc.go
@@ -100,7 +100,16 @@
switch valueType {
case constvar.PlcStartAddressValueTypeString:
return string(value), nil
- case constvar.PlcStartAddressValueTypeInt:
+ case constvar.PlcStartAddressValueTypeInt32:
+ if len(value) == 2 {
+ val = binary.BigEndian.Uint16(value)
+ } else if len(value) == 4 {
+ val = binary.BigEndian.Uint32(value)
+ } else {
+ logx.Errorf("plc read get an unknown int value: %v, address:%v", value, address)
+ return nil, errors.New(fmt.Sprintf("unknown int value锛�%v", value))
+ }
+ default:
if len(value) == 2 {
val = binary.BigEndian.Uint16(value)
} else if len(value) == 4 {
--
Gitblit v1.8.0