From 6309cb7d6bd8957e04e0919795ab3ec5c2bbc7e5 Mon Sep 17 00:00:00 2001 From: wangbin Date: Wed, 9 Jul 2025 10:21:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8=E7=BA=BF=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Common/commonfunc.go | 1 + .../FlxNetworkCmdSender.go | 12 +++++++--- localcache/CongressCtrlCenter.go | 2 ++ main.go | 23 +++++++++++++++++-- 4 files changed, 33 insertions(+), 5 deletions(-) diff --git a/Common/commonfunc.go b/Common/commonfunc.go index 15cbf6f..070fa84 100644 --- a/Common/commonfunc.go +++ b/Common/commonfunc.go @@ -1039,6 +1039,7 @@ func GetAvailableEndpoint() string { } func IsIPReachable(ip string, port string) bool { + conn, err := net.DialTimeout("tcp", ip+":"+port, 10*time.Millisecond) if err != nil { return false diff --git a/Device/FLXNetworkController/FlxNetworkCmdSender.go b/Device/FLXNetworkController/FlxNetworkCmdSender.go index 80d5223..407a370 100644 --- a/Device/FLXNetworkController/FlxNetworkCmdSender.go +++ b/Device/FLXNetworkController/FlxNetworkCmdSender.go @@ -4,6 +4,7 @@ import ( "flx/Common" "flx/cite/holmes" "flx/cite/tao" + "flx/localcache" "fmt" "net" "strconv" @@ -185,7 +186,12 @@ func ConnectToServer() { } } IsConnect = true - + if strip == Common.LoadConfig().SeverData.ServerIP { + localcache.LineStatus = "在线:连接主机" + } + if strip == Common.LoadConfig().SeverData.BackUpServerIP { + localcache.LineStatus = "在线:连接备机" + } for i := 0; i < len(UnSendToServerData); { AsClicent.Write(UnSendToServerData[i]) UnSendToServerData = append(UnSendToServerData[:i], UnSendToServerData[i+1:]...) @@ -195,11 +201,13 @@ func ConnectToServer() { }) onError := tao.OnErrorOption(func(c tao.WriteCloser) { + localcache.LineStatus = "离线" holmes.Infoln("on error") IsConnect = false }) onClose := tao.OnCloseOption(func(c tao.WriteCloser) { + localcache.LineStatus = "离线" holmes.Infoln("连接关闭,尝试重连...") IsConnect = false go ConnectToServer() // 异步触发重连 @@ -209,8 +217,6 @@ func ConnectToServer() { Remote_IP := strings.Split((c.(*tao.ClientConn)).Name(), ":")[0] IsConnect = true fmt.Println(msg.(Message).Content, Remote_IP) - //有问题 第一次能进 以后就进不去 - FLXNetConnect.AsClicent_DatagramReceived(Remote_IP, (c.(*tao.ClientConn)).NetID(), msg.(Message).Content) }) diff --git a/localcache/CongressCtrlCenter.go b/localcache/CongressCtrlCenter.go index 171ed99..856524d 100644 --- a/localcache/CongressCtrlCenter.go +++ b/localcache/CongressCtrlCenter.go @@ -26,6 +26,8 @@ var AllPerson []*Model.T_AgendaPerson // 当前会议信息 var CurrentAgenda Model.T_Agenda +var LineStatus string = "离线" + var CurrentCongress Model.T_Congress // 应到人员 diff --git a/main.go b/main.go index 3d43824..544096e 100644 --- a/main.go +++ b/main.go @@ -566,6 +566,12 @@ func DefaultLayout() fyne.CanvasObject { lblTime.Resize(fyne.NewSize(300*BigPara, 50*BigPara)) lblTime.Move(fyne.NewPos(150*BigPara, 1000*BigPara)) + LblLine = canvas.NewText(localcache.LineStatus, color.Black) + LblLine.TextSize = 20 + LblLine.Alignment = fyne.TextAlignCenter + LblLine.Resize(fyne.NewSize(300*BigPara, 50*BigPara)) + LblLine.Move(fyne.NewPos(400*BigPara, 1000*BigPara)) + // datebind := binding.NewString() // checkLabel := widget.NewLabelWithData(datebind) // lbltext := widget.NewLabel(time.Now().Format("2006年01月02日 15:04:05")) @@ -638,6 +644,7 @@ func DefaultLayout() fyne.CanvasObject { btnClose, btnCardManage, btnPersonManage, + LblLine, ) go ShowTime(lblTime) @@ -802,7 +809,10 @@ func ShowTime(lblt *canvas.Text) { fyne.DoAndWait(func() { lblt.Refresh() }) - + LblLine.Text = localcache.LineStatus + fyne.DoAndWait(func() { + LblLine.Refresh() + }) time.Sleep(1 * time.Second) } } @@ -873,6 +883,9 @@ var lblRCArriveNum *canvas.Text // 时间 var lblTime *canvas.Text +// 在线状态 +var LblLine *canvas.Text + // 当前报到人图片 var imgCurrentPerson *canvas.Image @@ -1073,6 +1086,12 @@ func ReportLayout() fyne.CanvasObject { lblReTime.Resize(fyne.NewSize(300*BigPara, 50*BigPara)) lblReTime.Move(fyne.NewPos(150*BigPara, 1000*BigPara)) + LblLine = canvas.NewText(localcache.LineStatus, color.Black) + LblLine.TextSize = 20 + LblLine.Alignment = fyne.TextAlignCenter + LblLine.Resize(fyne.NewSize(300*BigPara, 50*BigPara)) + LblLine.Move(fyne.NewPos(400*BigPara, 1000*BigPara)) + // //证卡管理 // btnCardManage := widget.NewButton("证卡管理", func() { // //证卡管理 @@ -1139,7 +1158,7 @@ func ReportLayout() fyne.CanvasObject { content := container.NewWithoutLayout( imgIcon, lblRCongressName, lblRAgendaName, lblRShoudNumName, lblRShoudNum, lblRArriveNumName, lblRArriveNum, lblRNoNumName, lblRNoNum, lblRCArriveNumName, lblRCArriveNum, imgCurrentPerson, imgPerson1, imgPerson2, imgPerson3, imgPerson4, imgPerson5, imgPerson6, - imgOnline, lblReTime, btnRClose, btnCardManage, btnPersonManage, btnMergeImage_, + imgOnline, lblReTime, btnRClose, btnCardManage, btnPersonManage, btnMergeImage_, LblLine, ) // go ShowTime(lblReTime) fyne.DoAndWait(func() {