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