| | |
| | | package dbapi |
| | | |
| | | import ( |
| | | "fmt" |
| | | "testing" |
| | | ) |
| | | |
| | | func TestGetLocalCameraTree(t *testing.T) { |
| | | var api AreaApi |
| | | body := api.GetLocalCameraTree(0, 0, "c") |
| | | fmt.Println(body) |
| | | } |
| | | |
| | | func TestAreaAdd(t *testing.T) { |
| | | var api AreaApi |
| | | var area = Area{ |
| | | Parentid: 0, |
| | | Name: "哈哈哈", |
| | | } |
| | | |
| | | flag := api.AreaAdd(area) |
| | | fmt.Println(flag) |
| | | } |
| | | |
| | | func TestAreaUpdate(t *testing.T) { |
| | | var api AreaApi |
| | | var area = Area{ |
| | | Id: 1, |
| | | Name: "区域更新测试", |
| | | Parentid: 0, |
| | | } |
| | | flag := api.AreaUpdate(area) |
| | | fmt.Println(flag) |
| | | } |
| | | |
| | | func TestGetCameraById(t *testing.T) { |
| | | var api CameraApi |
| | | camera, _ := api.GetCameraById("cid0") |
| | | fmt.Println(camera) |
| | | } |
| | | |
| | | func TestMangosReqClient(t *testing.T){ |
| | | var client ReqrepApi |
| | | |
| | | client.SendRequestAndGetReply("one") |
| | | } |
| | | |
| | | func TestSdkApi_FindAll(t *testing.T) { |
| | | var api SdkApi |
| | | all := api.FindAll("") |
| | | fmt.Println(all) |
| | | } |
| | | |
| | | func TestSdkApi_GetById(t *testing.T) { |
| | | var api SdkApi |
| | | model := api.GetById("812b674b-2375-4589-919a-5c1c3278a97e") |
| | | fmt.Println(model) |
| | | } |
| | | |
| | | func TestSdkApi_GetAllSdkIds(t *testing.T) { |
| | | var api SdkApi |
| | | sdkIds := api.GetAllSdkIds() |
| | | fmt.Println(sdkIds) |
| | | } |
| | | |
| | | func TestTaskApi_FindAll(t *testing.T) { |
| | | var api TaskApi |
| | | taskInfos := api.FindAll() |
| | | fmt.Println(taskInfos) |
| | | } |
| | |
| | | var res Result |
| | | if err = json.Unmarshal(body, &res); err != nil { |
| | | fmt.Println(err) |
| | | return result,err |
| | | } |
| | | |
| | | bytes, _ := json.Marshal(res.Data) |
| | |
| | | DoDeleteRequest(url string, contentType string, body map[string]interface{}, headers map[string]string) ([]byte, error) |
| | | } |
| | | |
| | | var BASIC_URL = "http://127.0.0.1:8001" |
| | | |
| | | const ( |
| | | BASIC_URL = "http://192.168.1.115:8000" |
| | | DATA_URL_PREFIX = "/data/api-v" |
| | | CONTENT_TYPE_FORM = "application/x-www-form-urlencoded" |
| | | CONTENT_TYPE_MULFORM = "multipart/form-data" |
| | | CONTENT_TYPE_JSON = "application/json" |
| | | ) |
| | | |
| | | //初始化dbserver的地址和端口 |
| | | func Init(ip string,port int){ |
| | | BASIC_URL = "http://"+ ip + ":" + string(port) |
| | | } |
| | |
| | | Subproject commit aaae9917c3df122e2bbcf591417c1b58021d79fc |
| | | Subproject commit 5ff1f32410e0697e581f6c389c8c22c5abd474c0 |
| | |
| | | type CameraTask struct { |
| | | Cameraid string `json:"cameraid"` //摄像机id 来自于摄像机表 |
| | | Taskid string `json:"taskid"` //任务id 来自于任务表 |
| | | Sdkid string `json:"sdkId"` //算法id 来自与算法表 |
| | | |
| | | DelFlag bool |
| | | UpdateFlag bool // 算法名称 |
| | | SdkArgs string `json:"sdkArgs"` // 算法参数 |
| | | Enable int //默认启用 |
| | | } |
| | | |
| | | type TasksRes struct { |
| | | Task Task `json:"task"` //任务结构体 |
| | | Sdks []Sdk `json:"sdks"` //任务对应的算法信息和参数 |
| | | CtlTime TimeCtl `json:"ctlTime"` |
| | | LinkType string `json:"linkType"` |
| | | SdkFrames Frame `json:"sdkFrames"` //画框的结构 |
| | | } |
| | | |
| | | //任务和算法关联 |
| | | type TaskSdk struct { |
| | | Id string |
| | | Taskid string |
| | | Sdkid string //来自于算法表 |
| | | Sort int `json:"sort"` //排序 |
| | |
| | | |
| | | go 1.12 |
| | | |
| | | require nanomsg.org/go-mangos v1.4.0 |
| | | require ( |
| | | github.com/Microsoft/go-winio v0.4.12 // indirect |
| | | github.com/gogo/protobuf v1.2.1 |
| | | github.com/gorilla/websocket v1.4.0 // indirect |
| | | golang.org/x/sys v0.0.0-20190429190828-d89cdac9e872 // indirect |
| | | nanomsg.org/go-mangos v1.4.0 |
| | | ) |
| | |
| | | github.com/Microsoft/go-winio v0.4.12 h1:xAfWHN1IrQ0NJ9TBC0KBZoqLjzDTr1ML+4MywiUOryc= |
| | | github.com/Microsoft/go-winio v0.4.12/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= |
| | | github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= |
| | | github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= |
| | | github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= |
| | | github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= |
| | | github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= |
| | | github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= |
| | | golang.org/x/sys v0.0.0-20190429190828-d89cdac9e872 h1:cGjJzUd8RgBw428LXP65YXni0aiGNA4Bl+ls8SmLOm8= |
| | | golang.org/x/sys v0.0.0-20190429190828-d89cdac9e872/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= |
| | | golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= |
| | | nanomsg.org/go-mangos v1.4.0 h1:pVRLnzXePdSbhWlWdSncYszTagERhMG5zK/vXYmbEdM= |
| | | nanomsg.org/go-mangos v1.4.0/go.mod h1:MOor8xUIgwsRMPpLr9xQxe7bT7rciibScOqVyztNxHQ= |
| | |
| | | package dbapi |
| | | |
| | | import ( |
| | | "dbapi/deliver" |
| | | "dbapi/protomsg" |
| | | "encoding/json" |
| | | "fmt" |
| | | "os" |
| | | "nanomsg.org/go-mangos" |
| | | "nanomsg.org/go-mangos/protocol/req" |
| | | "nanomsg.org/go-mangos/transport/ipc" |
| | | "nanomsg.org/go-mangos/transport/tcp" |
| | | ) |
| | | |
| | | type ReqrepApi struct { |
| | |
| | | ReqRep_URL = "tcp://127.0.0.1:8002" |
| | | ) |
| | | |
| | | func (api ReqrepApi)SendRequest(reqStr string) string { |
| | | var sock mangos.Socket |
| | | var err error |
| | | var msg []byte |
| | | func (api ReqrepApi)SendRequestAndGetReply(reqStr string) string { |
| | | sender := deliver.NewConsumer(deliver.Mode(deliver.ReqRep), ReqRep_URL) |
| | | var sendMsg = protomsg.SdkMessage{} |
| | | sendMsg.Cid = "kkkk" |
| | | byteArr, _ := json.Marshal(sendMsg) |
| | | err := sender.Send(byteArr) |
| | | if err !=nil { |
| | | fmt.Println(err) |
| | | } |
| | | fmt.Println("sendedMsg") |
| | | |
| | | if sock, err = req.NewSocket(); err !=nil { |
| | | fmt.Println("can't get new req socket!") |
| | | os.Exit(1) |
| | | } |
| | | sock.AddTransport(ipc.NewTransport()) |
| | | sock.AddTransport(tcp.NewTransport()) |
| | | if err = sock.Dial(ReqRep_URL);err !=nil { |
| | | fmt.Println("can't dial on req socket!!") |
| | | os.Exit(1) |
| | | } |
| | | if err =sock.Send([]byte(reqStr));err !=nil { |
| | | fmt.Println("can't send msg") |
| | | } |
| | | if msg,err = sock.Recv();err !=nil { |
| | | fmt.Println("can't get msg from mangos reqrep server") |
| | | } |
| | | defer sock.Close() |
| | | return string(msg) |
| | | //recvMsg, err := sender.Recv() |
| | | //if err ==nil { |
| | | // fmt.Println(string(recvMsg)) |
| | | //} |
| | | |
| | | fmt.Println("SendRequest") |
| | | return "" |
| | | } |
| | |
| | | package dbapi |
| | | |
| | | import ( |
| | | "encoding/json" |
| | | "fmt" |
| | | ) |
| | | |
| | | type SdkApi struct{ |
| | | } |
| | | |
| | | //保存算法,新增(算法id为空),更新(算法id不为空) |
| | | func (api SdkApi)Save(sdk Sdk)bool { |
| | | flag := false |
| | | url := BASIC_URL + DATA_URL_PREFIX + "/sdk/save" |
| | | client := NewClient() |
| | | paramBody := Struct2Map(sdk) |
| | | respBody, err := client.DoPostRequest(url, CONTENT_TYPE_FORM, paramBody, nil, nil) |
| | | if err != nil { |
| | | return flag |
| | | } |
| | | var res Result |
| | | if err = json.Unmarshal(respBody, &res); err != nil { |
| | | fmt.Println(err) |
| | | return flag |
| | | } |
| | | flag = res.Success |
| | | return flag |
| | | } |
| | | |
| | | //查找所有算法 |
| | | func (api SdkApi) FindAll(sdkName string)[]Sdk{ |
| | | var sdkArr []Sdk |
| | | url := BASIC_URL + DATA_URL_PREFIX + "/sdk/findAllSdk" |
| | | client := NewClient() |
| | | paramMap := make(map[string]string, 0) |
| | | paramMap["sdkName"] = sdkName |
| | | respBody, err := client.DoGetRequest(url, paramMap, nil) |
| | | if err !=nil { |
| | | return sdkArr |
| | | } |
| | | var res Result |
| | | if err = json.Unmarshal(respBody, &res); err != nil { |
| | | fmt.Println(err) |
| | | return sdkArr |
| | | } |
| | | bytes, _ := json.Marshal(res.Data) |
| | | err = json.Unmarshal(bytes, &sdkArr) |
| | | return sdkArr |
| | | } |
| | | |
| | | //查找算法id的slice |
| | | func (api SdkApi) GetAllSdkIds() (sdkIds []string){ |
| | | sdkArr := api.FindAll("") |
| | | if len(sdkArr) == 0 { |
| | | return nil |
| | | } |
| | | for _,sdk := range sdkArr{ |
| | | sdkIds = append(sdkIds, sdk.Uuid) |
| | | } |
| | | return sdkIds |
| | | } |
| | | |
| | | //通过id获取算法信息 |
| | | func (api SdkApi) GetById(id string) Sdk{ |
| | | var sdk Sdk |
| | | url := BASIC_URL + DATA_URL_PREFIX + "/sdk/getById" |
| | | client := NewClient() |
| | | paramMap := make(map[string]string) |
| | | paramMap["id"] = id |
| | | respBody, err := client.DoGetRequest(url, paramMap, nil) |
| | | if err !=nil { |
| | | return sdk |
| | | } |
| | | var res Result |
| | | if err = json.Unmarshal(respBody, &res); err != nil { |
| | | fmt.Println(err) |
| | | return sdk |
| | | } |
| | | bytes, _ := json.Marshal(res.Data) |
| | | err = json.Unmarshal(bytes, &sdk) |
| | | return sdk |
| | | } |
| | |
| | | package dbapi |
| | | |
| | | import ( |
| | | "encoding/json" |
| | | "fmt" |
| | | ) |
| | | |
| | | type TaskApi struct {} |
| | | |
| | | //获取所有任务信息 |
| | | func (api TaskApi) FindAll() (taskInfos []TasksRes) { |
| | | url := BASIC_URL + DATA_URL_PREFIX + "/task/findAll" |
| | | client := NewClient() |
| | | |
| | | respBody, err := client.DoGetRequest(url, nil, nil) |
| | | if err !=nil { |
| | | return taskInfos |
| | | } |
| | | var res Result |
| | | if err = json.Unmarshal(respBody, &res); err != nil { |
| | | fmt.Println(err) |
| | | return taskInfos |
| | | } |
| | | bytes, _ := json.Marshal(res.Data) |
| | | err = json.Unmarshal(bytes, &taskInfos) |
| | | return taskInfos |
| | | } |
| | | |
| | | func (api TaskApi) FindAllTaskAndSdkInfo(){ |
| | | |
| | | } |