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