From de9b8d23ac441308aa809b174b9d0fc28c94275a Mon Sep 17 00:00:00 2001 From: lijun Date: Sat, 18 Jan 2025 20:12:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=88=86=E7=A6=BB=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=EF=BC=8C=E4=BF=AE=E6=94=B9=E8=A7=86=E9=A2=91=E6=B5=81?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handler/tool.go | 8 +++++++- main.go | 5 +++-- service/tool.go | 7 ++++++- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/handler/tool.go b/handler/tool.go index db2bb54..1cdfb5b 100644 --- a/handler/tool.go +++ b/handler/tool.go @@ -144,7 +144,13 @@ func GetRealTimeImage(c *gin.Context) { } //查看设备是否在获取 isGet, ok := service.DeviceIsGettingFrame.Load(device.ID) - if !ok || isGet == false { + if !ok { + c.JSON(http.StatusOK, gin.H{"code": 4, "message": "device not getting frame or not exist"}) + log.Printf("device:%d not found,isGet:%v , ok = %v", device.ID, isGet, ok) + return + } + isGet_ := isGet.(bool) + if isGet_ == false { //直接返回 c.JSON(http.StatusOK, gin.H{"code": 4, "message": "device not getting frame or not exist"}) log.Printf("device:%d not found,isGet:%v , ok = %v", device.ID, isGet, ok) diff --git a/main.go b/main.go index e64fd53..109ded3 100644 --- a/main.go +++ b/main.go @@ -96,7 +96,8 @@ func ReadConfigAndSetSystem() { } //检测是否需要获取设备流,如果需要则开启 for _, device := range proto.Config.DeviceInfo { - is_get, ok := service.DeviceIsGettingFrame.Load(device.ID) + isGet, ok := service.DeviceIsGettingFrame.Load(device.ID) + isGet_ := isGet.(bool) if !ok { //说明没有这个设备,需初始化添加 service.DeviceRWMap.Store(device.ID, &sync.RWMutex{}) @@ -104,7 +105,7 @@ func ReadConfigAndSetSystem() { service.DeviceFrameCount[device.ID] = 0 service.DeviceIsGettingFrame.Store(device.ID, false) } - if is_get == false && device.NextStop == false { //如果设备流已经停止且不暂停,则开启 + if isGet_ == false && device.NextStop == false { //如果设备流已经停止且不暂停,则开启 switch device.ID { case 1: service.Device1CurrentFrame = gocv.NewMat() diff --git a/service/tool.go b/service/tool.go index af1e305..d166558 100644 --- a/service/tool.go +++ b/service/tool.go @@ -329,7 +329,12 @@ func GetVideoStream(id int) { break } is_get, ok = DeviceIsGettingFrame.Load(id) - if is_get == true { + if !ok { + log.Printf("device: %d not found", id) + break + } + isGet := is_get.(bool) + if isGet == true { log.Printf("for device:%d is running!", id) break }