zhangmeng
2019-12-17 3fc4fa8f8bf65030ee0969d73f958b11d90b7daf
util/sqlite.go
@@ -1,11 +1,12 @@
package util
import (
   "fmt"
   "flag"
   "basic.com/dbapi.git"
   "basic.com/pubsub/protomsg.git"
   "basic.com/r/dbapi.git"
   "basic.com/valib/gopherdiscovery.git"
   "basic.com/valib/logger.git"
   "github.com/gogo/protobuf/proto"
)
@@ -18,62 +19,100 @@
var camval dbapi.CameraApi
var taskapi dbapi.TaskApi
var sdkapi dbapi.SdkApi
var fileApi dbapi.FileAnalysisApi
var IsInit bool
var CameraIds []protomsg.Camera
var FileArr []protomsg.FileAnalysis
var CameraTasks []protomsg.CameraAndTaskInfo
var TaskSdks []protomsg.TaskSdkInfo
var Sdklist []string
//var TaskSdks []protomsg.TaskSdkInfo
var TaskSdks []protomsg.TaskSdkRun
var urlServer = "tcp://192.168.1.11:40007"
var urlPubSub = "tcp://192.168.1.11:50007"
var peers chan []string
var Sdklist []string
var Sdkinfos []protomsg.Sdk
var urlServer = flag.String("urlServer", "tcp://0.0.0.0:40007", "heartbeat address of url server")
var urlPubSub = flag.String("urlPubsub", "tcp://0.0.0.0:50007", "heartbeat pubsub address of url server")
var dbip = flag.String("dbip", "0.0.0.0", "address of database ip")
var dbport = flag.Int("dbport", 8001, "port of database port")
var Sdkflag = make(chan bool)
var TaskSdkflag = make(chan bool)
var Cameraflag = make(chan bool)
var Fileflag = make(chan bool)
var newsdkmsg = &protomsg.DbChangeMessage{}
func Getdata(opt []byte, initchan chan bool) {
func initDbData(initchan chan bool) {
   CameraIds = camval.FindAll()
   FileArr, _ = fileApi.GetAnalysisFiles()
   logger.Info("==============camera camera with task ================")
   CameraTasks = camval.FindAllCameraAndTask()
   TaskSdks = taskapi.FindAllTaskSdkRun()
   Sdklist = sdkapi.GetAllSdkIds()
   Sdkinfos = sdkapi.FindAll("")
   initchan <- true
}
func updateDbData(opt []byte) {
   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
      logger.Error("publish Message ", err)
      return
   }
   switch newsdkmsg.Table {
   case protomsg.TableChanged_T_Camera:
      logger.Info("update camera")
      CameraIds = camval.FindAll()
      Cameraflag <- true
      logger.Info("update camera finish.")
   case protomsg.TableChanged_T_File:
      logger.Info("update analysis files")
      FileArr, _ = fileApi.GetAnalysisFiles()
      Fileflag <- true
      logger.Info("update files finish.")
   case protomsg.TableChanged_T_CameraTask:
      logger.Info("update cameratask")
      CameraTasks = camval.FindAllCameraAndTask()
      logger.Info("update cameratask finished!")
   case protomsg.TableChanged_T_TaskSdk:
      TaskSdks = taskapi.FindAll()
      logger.Info("update tasksdk")
      TaskSdks = taskapi.FindAllTaskSdkRun()
      TaskSdkflag <- true
      logger.Info("update tasksdk finished!")
   case protomsg.TableChanged_T_Sdk:
      logger.Info("update sdk")
      Sdklist = sdkapi.GetAllSdkIds()
      Sdkinfos = sdkapi.FindAll("")
      Sdkflag <- true
      logger.Info("update Sdkinfos finished!")
   default:
      logger.Info("other type operation")
   }
   fmt.Println(newsdkmsg)
   //logger.Info(newsdkmsg)
}
func Init(initchan chan bool) {
   clientOne, _ := gopherdiscovery.ClientWithSub(urlServer, urlPubSub, "ip:192.168.1.124")
   peers, _ = clientOne.Peers()
   dbapi.Init(*dbip, *dbport)
   client, _ := gopherdiscovery.ClientWithSub(*urlServer, *urlPubSub, "ip:local")
   recvinit := client.HeartBeatMsg()
   _ = <-recvinit
   initDbData(initchan)
   peers, _ := client.Peers()
   for x := range peers {
      Getdata([]byte(x[0]), initchan)
      updateDbData(x)
   }
}