package util import ( "fmt" "basic.com/pubsub/protomsg.git" "basic.com/r/dbapi.git" "basic.com/valib/gopherdiscovery.git" "github.com/gogo/protobuf/proto" ) /************************* * 1. store all struct data * 2. define function for get difference data type * 3. recive data from sqlite process. and call conpos function. ***********************/ var camval dbapi.CameraApi var taskapi dbapi.TaskApi var sdkapi dbapi.SdkApi var IsInit bool var CameraIds []protomsg.Camera var CameraTasks []protomsg.CameraAndTaskInfo var TaskSdks []protomsg.TaskSdkInfo var Sdklist []string var urlServer = "tcp://192.168.1.11:40007" var urlPubSub = "tcp://192.168.1.11:50007" var peers chan []string var newsdkmsg = &protomsg.DbChangeMessage{} func Getdata(opt []byte, initchan chan bool) { if err := proto.Unmarshal(opt, newsdkmsg); err != nil { fmt.Println("publichshMessage ", err) return } if !IsInit { fmt.Println("enter init.") CameraIds = camval.FindAll() fmt.Println("==============camera camera with task ================") CameraTasks = camval.FindAllCameraAndTask() fmt.Println(CameraTasks) TaskSdks = taskapi.FindAll() Sdklist = sdkapi.GetAllSdkIds() fmt.Println(Sdklist) IsInit = true initchan <- true return } switch newsdkmsg.Table { case protomsg.TableChanged_T_Camera: CameraIds = camval.FindAll() case protomsg.TableChanged_T_CameraTask: CameraTasks = camval.FindAllCameraAndTask() case protomsg.TableChanged_T_TaskSdk: TaskSdks = taskapi.FindAll() case protomsg.TableChanged_T_Sdk: Sdklist = sdkapi.GetAllSdkIds() } fmt.Println(newsdkmsg) } func Init(initchan chan bool) { clientOne, _ := gopherdiscovery.ClientWithSub(urlServer, urlPubSub, "ip:192.168.1.124") peers, _ = clientOne.Peers() for x := range peers { Getdata([]byte(x[0]), initchan) } }