| | |
| | | "basic.com/pubsub/cache.git/shardmap" |
| | | "basic.com/pubsub/protomsg.git" |
| | | "basic.com/valib/gopherdiscovery.git" |
| | | "errors" |
| | | "fmt" |
| | | "github.com/gogo/protobuf/proto" |
| | | "github.com/satori/go.uuid" |
| | |
| | | PREFIX_TIME = "TIME_" |
| | | PREFIX_RULE = "RULE_" |
| | | SERVER_KEY = "SERVERINFO" |
| | | PREFIX_SDK = "SDK_" |
| | | ) |
| | | |
| | | var cMap *shardmap.ShardMap |
| | |
| | | |
| | | initServerInfo()//初始化服务器配置信息 |
| | | |
| | | initSdks() //初始化sdk列表信息 |
| | | |
| | | initChan <- true |
| | | } |
| | | |
| | |
| | | return |
| | | } |
| | | switch newUpdateMsg.Table { |
| | | case protomsg.TableChanged_T_Server: |
| | | initServerInfo() |
| | | case protomsg.TableChanged_T_Camera: |
| | | initCamera() |
| | | case protomsg.TableChanged_T_CameraPolygon://更新摄像机多变形 |
| | | initPolygons() |
| | | case protomsg.TableChanged_T_TimeRule://更新时间规则 |
| | | initTimeRules() |
| | | case protomsg.TableChanged_T_CameraTask://更新摄像机规则配置参数 |
| | | initCameraTaskRules() |
| | | case protomsg.TableChanged_T_CameraTaskArgs://更新摄像机规则配置参数 |
| | | initCameraTaskRules() |
| | | case protomsg.TableChanged_T_Sdk://更新sdk配置 |
| | | initSdks() |
| | | default: |
| | | fmt.Println("unknown operation") |
| | | |
| | |
| | | func initPolygons(){ |
| | | var api dbapi.CameraApi |
| | | data := api.FindAllPolygons() |
| | | pMap :=make(map[string][]protomsg.CameraPolygon,0) |
| | | for _, item := range data { |
| | | if item.Type != "line" { |
| | | cameraId :=item.CameraId |
| | | arr, b := cMap.Get(PREFIX_POLYGON + cameraId) |
| | | if b { |
| | | list := arr.([]protomsg.CameraPolygon) |
| | | list = append(list,item) |
| | | cMap.Set(PREFIX_POLYGON + cameraId,list) |
| | | } else { |
| | | cMap.Set(PREFIX_POLYGON + cameraId,[]protomsg.CameraPolygon{ item }) |
| | | if _,ok :=pMap[cameraId];ok{ |
| | | pMap[cameraId] = append(pMap[cameraId],item) |
| | | } else{ |
| | | pMap[cameraId]=[]protomsg.CameraPolygon{item} |
| | | } |
| | | } |
| | | } |
| | | for k,v :=range pMap{ |
| | | cMap.Set(PREFIX_POLYGON + k,v) |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | func GetServerInfo() *protomsg.LocalConfig { |
| | | func initSdks(){ |
| | | var api dbapi.SdkApi |
| | | sdks := api.FindAll("") |
| | | for _,sdk :=range sdks { |
| | | cMap.Set(PREFIX_SDK+sdk.Id,sdk) |
| | | } |
| | | } |
| | | |
| | | func GetServerInfo() (con protomsg.LocalConfig,err error) { |
| | | config, b := cMap.Get(SERVER_KEY) |
| | | if b { |
| | | return config.(*protomsg.LocalConfig) |
| | | return config.(protomsg.LocalConfig),nil |
| | | } else { |
| | | return nil |
| | | return con,errors.New("conf not found") |
| | | } |
| | | } |
| | | |
| | | //通过cameraId获取摄像机信息 |
| | | func GetCameraById(cameraId string) *protomsg.Camera { |
| | | func GetCameraById(cameraId string) (c protomsg.Camera,err error) { |
| | | cam, b := cMap.Get(PREFIX_CAMERA + cameraId) |
| | | if b { |
| | | return cam.(*protomsg.Camera) |
| | | return cam.(protomsg.Camera),nil |
| | | } else { |
| | | return nil |
| | | return c,errors.New("camera not found") |
| | | } |
| | | } |
| | | |
| | |
| | | } else { |
| | | return nil |
| | | } |
| | | } |
| | | |
| | | func GetSdkById(sdkId string) (sdk protomsg.Sdk,err error){ |
| | | obj,b :=cMap.Get(PREFIX_SDK + sdkId) |
| | | if b { |
| | | return obj.(protomsg.Sdk),nil |
| | | } else { |
| | | return sdk,errors.New("sdk not found") |
| | | } |
| | | } |