From fecd8ff508b33715cbe24ca892fc19a2d1ad1ef5 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期一, 06 十一月 2023 16:34:05 +0800
Subject: [PATCH] 加锁解决同时读串口时报的资源不可用和超时报错
---
service/plc.go | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/service/plc.go b/service/plc.go
index 42ad54d..f4428ab 100644
--- a/service/plc.go
+++ b/service/plc.go
@@ -14,8 +14,12 @@
"errors"
"fmt"
"github.com/spf13/cast"
+ "sync"
"sync/atomic"
)
+
+// 涓插彛涓嶆敮鎸佸苟琛岃鍐欙紝鎵�浠ラ渶瑕佸姞涓攣锛岄槻姝imeout鍜岃祫婧愪笉鍙敤鎶ラ敊
+var lock sync.Mutex
func PlcWrite(plcConfig *model.DevicePlc, fieldType constvar.PlcStartAddressType, channel int32, value interface{}) (err error) {
var (
@@ -36,6 +40,8 @@
}
func PlcWriteDirect(plcConfig *model.DevicePlc, address int, value interface{}) (err error) {
+ lock.Lock()
+ defer lock.Unlock()
var (
ipAddr string
)
@@ -70,6 +76,8 @@
}
func PlcReadDirect(plcConfig *model.DevicePlc, address int, dataLength int, valueType constvar.PlcStartAddressValueType) (val interface{}, err error) {
+ lock.Lock()
+ defer lock.Unlock()
var (
ipAddr string
)
--
Gitblit v1.8.0