From 22f649a39f7a453f516469feaba5723c6c9181c2 Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期三, 19 六月 2019 18:15:21 +0800
Subject: [PATCH] new pb.go

---
 /dev/null      | 2449 -----------------------------------------------
 sdk.pb.go      |  501 +++++++--
 protomsg.proto |  111 -
 sdk.proto      |   10 
 4 files changed, 388 insertions(+), 2,683 deletions(-)

diff --git a/protomsg.pb.go b/protomsg.pb.go
deleted file mode 100644
index 519e7f9..0000000
--- a/protomsg.pb.go
+++ /dev/null
@@ -1,2449 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// source: protomsg.proto
-
-package protomsg
-
-import (
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
-	math "math"
-)
-
-// Reference imports to suppress errors if they are not otherwise used.
-var _ = proto.Marshal
-var _ = fmt.Errorf
-var _ = math.Inf
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the proto package it is being compiled against.
-// A compilation error at this line likely means your copy of the
-// proto package needs to be updated.
-const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
-
-//TableChanged enum
-type TableChanged int32
-
-const (
-	TableChanged_T_Camera         TableChanged = 0
-	TableChanged_T_CameraTask     TableChanged = 1
-	TableChanged_T_CameraTaskArgs TableChanged = 2
-	TableChanged_T_Task           TableChanged = 3
-	TableChanged_T_TaskSdk        TableChanged = 4
-	TableChanged_T_TaskSdkRule    TableChanged = 5
-	TableChanged_T_Sdk            TableChanged = 6
-)
-
-var TableChanged_name = map[int32]string{
-	0: "T_Camera",
-	1: "T_CameraTask",
-	2: "T_CameraTaskArgs",
-	3: "T_Task",
-	4: "T_TaskSdk",
-	5: "T_TaskSdkRule",
-	6: "T_Sdk",
-}
-
-var TableChanged_value = map[string]int32{
-	"T_Camera":         0,
-	"T_CameraTask":     1,
-	"T_CameraTaskArgs": 2,
-	"T_Task":           3,
-	"T_TaskSdk":        4,
-	"T_TaskSdkRule":    5,
-	"T_Sdk":            6,
-}
-
-func (x TableChanged) String() string {
-	return proto.EnumName(TableChanged_name, int32(x))
-}
-
-func (TableChanged) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_32de24555f916688, []int{0}
-}
-
-type DbAction int32
-
-const (
-	DbAction_Insert DbAction = 0
-	DbAction_Update DbAction = 1
-	DbAction_Delete DbAction = 2
-)
-
-var DbAction_name = map[int32]string{
-	0: "Insert",
-	1: "Update",
-	2: "Delete",
-}
-
-var DbAction_value = map[string]int32{
-	"Insert": 0,
-	"Update": 1,
-	"Delete": 2,
-}
-
-func (x DbAction) String() string {
-	return proto.EnumName(DbAction_name, int32(x))
-}
-
-func (DbAction) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_32de24555f916688, []int{1}
-}
-
-type TaskLabel struct {
-	Taskid               string   `protobuf:"bytes,1,opt,name=taskid,proto3" json:"taskid,omitempty"`
-	Sdkids               []string `protobuf:"bytes,2,rep,name=sdkids,proto3" json:"sdkids,omitempty"`
-	Index                int32    `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *TaskLabel) Reset()         { *m = TaskLabel{} }
-func (m *TaskLabel) String() string { return proto.CompactTextString(m) }
-func (*TaskLabel) ProtoMessage()    {}
-func (*TaskLabel) Descriptor() ([]byte, []int) {
-	return fileDescriptor_32de24555f916688, []int{0}
-}
-
-func (m *TaskLabel) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_TaskLabel.Unmarshal(m, b)
-}
-func (m *TaskLabel) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_TaskLabel.Marshal(b, m, deterministic)
-}
-func (m *TaskLabel) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_TaskLabel.Merge(m, src)
-}
-func (m *TaskLabel) XXX_Size() int {
-	return xxx_messageInfo_TaskLabel.Size(m)
-}
-func (m *TaskLabel) XXX_DiscardUnknown() {
-	xxx_messageInfo_TaskLabel.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_TaskLabel proto.InternalMessageInfo
-
-func (m *TaskLabel) GetTaskid() string {
-	if m != nil {
-		return m.Taskid
-	}
-	return ""
-}
-
-func (m *TaskLabel) GetSdkids() []string {
-	if m != nil {
-		return m.Sdkids
-	}
-	return nil
-}
-
-func (m *TaskLabel) GetIndex() int32 {
-	if m != nil {
-		return m.Index
-	}
-	return 0
-}
-
-//SdkMessage struct test
-type SdkMessage struct {
-	Cid                  string        `protobuf:"bytes,1,opt,name=cid,proto3" json:"cid,omitempty"`
-	Tasklab              *TaskLabel    `protobuf:"bytes,2,opt,name=tasklab,proto3" json:"tasklab,omitempty"`
-	Data                 []byte        `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
-	Personaction         *Personaction `protobuf:"bytes,4,opt,name=personaction,proto3" json:"personaction,omitempty"`
-	Vedioperson          *Vediopersons `protobuf:"bytes,5,opt,name=vedioperson,proto3" json:"vedioperson,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
-	XXX_unrecognized     []byte        `json:"-"`
-	XXX_sizecache        int32         `json:"-"`
-}
-
-func (m *SdkMessage) Reset()         { *m = SdkMessage{} }
-func (m *SdkMessage) String() string { return proto.CompactTextString(m) }
-func (*SdkMessage) ProtoMessage()    {}
-func (*SdkMessage) Descriptor() ([]byte, []int) {
-	return fileDescriptor_32de24555f916688, []int{1}
-}
-
-func (m *SdkMessage) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_SdkMessage.Unmarshal(m, b)
-}
-func (m *SdkMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_SdkMessage.Marshal(b, m, deterministic)
-}
-func (m *SdkMessage) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_SdkMessage.Merge(m, src)
-}
-func (m *SdkMessage) XXX_Size() int {
-	return xxx_messageInfo_SdkMessage.Size(m)
-}
-func (m *SdkMessage) XXX_DiscardUnknown() {
-	xxx_messageInfo_SdkMessage.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_SdkMessage proto.InternalMessageInfo
-
-func (m *SdkMessage) GetCid() string {
-	if m != nil {
-		return m.Cid
-	}
-	return ""
-}
-
-func (m *SdkMessage) GetTasklab() *TaskLabel {
-	if m != nil {
-		return m.Tasklab
-	}
-	return nil
-}
-
-func (m *SdkMessage) GetData() []byte {
-	if m != nil {
-		return m.Data
-	}
-	return nil
-}
-
-func (m *SdkMessage) GetPersonaction() *Personaction {
-	if m != nil {
-		return m.Personaction
-	}
-	return nil
-}
-
-func (m *SdkMessage) GetVedioperson() *Vediopersons {
-	if m != nil {
-		return m.Vedioperson
-	}
-	return nil
-}
-
-type Personaction struct {
-	ImgKey               string   `protobuf:"bytes,1,opt,name=imgKey,proto3" json:"imgKey,omitempty"`
-	VideoReqNum          string   `protobuf:"bytes,2,opt,name=videoReqNum,proto3" json:"videoReqNum,omitempty"`
-	SdkType              string   `protobuf:"bytes,3,opt,name=sdkType,proto3" json:"sdkType,omitempty"`
-	PicName              string   `protobuf:"bytes,4,opt,name=picName,proto3" json:"picName,omitempty"`
-	Content              string   `protobuf:"bytes,5,opt,name=content,proto3" json:"content,omitempty"`
-	ClusterId            string   `protobuf:"bytes,6,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
-	PersonPicUrl         string   `protobuf:"bytes,7,opt,name=personPicUrl,proto3" json:"personPicUrl,omitempty"`
-	ChannlId             string   `protobuf:"bytes,8,opt,name=channlId,proto3" json:"channlId,omitempty"`
-	LikeDate             string   `protobuf:"bytes,9,opt,name=likeDate,proto3" json:"likeDate,omitempty"`
-	PicAddress           string   `protobuf:"bytes,10,opt,name=picAddress,proto3" json:"picAddress,omitempty"`
-	PicMaxUrl            string   `protobuf:"bytes,11,opt,name=picMaxUrl,proto3" json:"picMaxUrl,omitempty"`
-	PicDate              string   `protobuf:"bytes,12,opt,name=picDate,proto3" json:"picDate,omitempty"`
-	PicLocalUrl          string   `protobuf:"bytes,13,opt,name=picLocalUrl,proto3" json:"picLocalUrl,omitempty"`
-	IsDelete             string   `protobuf:"bytes,14,opt,name=isDelete,proto3" json:"isDelete,omitempty"`
-	LikePer              string   `protobuf:"bytes,15,opt,name=likePer,proto3" json:"likePer,omitempty"`
-	BaseName             string   `protobuf:"bytes,16,opt,name=baseName,proto3" json:"baseName,omitempty"`
-	VideoNum             string   `protobuf:"bytes,17,opt,name=videoNum,proto3" json:"videoNum,omitempty"`
-	Collection           string   `protobuf:"bytes,18,opt,name=collection,proto3" json:"collection,omitempty"`
-	PicSmUrl             string   `protobuf:"bytes,19,opt,name=picSmUrl,proto3" json:"picSmUrl,omitempty"`
-	Indeviceid           string   `protobuf:"bytes,20,opt,name=indeviceid,proto3" json:"indeviceid,omitempty"`
-	Idcard               string   `protobuf:"bytes,21,opt,name=idcard,proto3" json:"idcard,omitempty"`
-	AckAlarm             string   `protobuf:"bytes,22,opt,name=ack_alarm,json=ackAlarm,proto3" json:"ack_alarm,omitempty"`
-	PersonId             string   `protobuf:"bytes,23,opt,name=personId,proto3" json:"personId,omitempty"`
-	Id                   string   `protobuf:"bytes,24,opt,name=id,proto3" json:"id,omitempty"`
-	Indevicename         string   `protobuf:"bytes,25,opt,name=indevicename,proto3" json:"indevicename,omitempty"`
-	FaceFeature          string   `protobuf:"bytes,26,opt,name=faceFeature,proto3" json:"faceFeature,omitempty"`
-	PersonIsHub          string   `protobuf:"bytes,27,opt,name=personIsHub,proto3" json:"personIsHub,omitempty"`
-	VideoIp              string   `protobuf:"bytes,28,opt,name=videoIp,proto3" json:"videoIp,omitempty"`
-	TaskId               string   `protobuf:"bytes,29,opt,name=taskId,proto3" json:"taskId,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *Personaction) Reset()         { *m = Personaction{} }
-func (m *Personaction) String() string { return proto.CompactTextString(m) }
-func (*Personaction) ProtoMessage()    {}
-func (*Personaction) Descriptor() ([]byte, []int) {
-	return fileDescriptor_32de24555f916688, []int{2}
-}
-
-func (m *Personaction) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Personaction.Unmarshal(m, b)
-}
-func (m *Personaction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Personaction.Marshal(b, m, deterministic)
-}
-func (m *Personaction) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Personaction.Merge(m, src)
-}
-func (m *Personaction) XXX_Size() int {
-	return xxx_messageInfo_Personaction.Size(m)
-}
-func (m *Personaction) XXX_DiscardUnknown() {
-	xxx_messageInfo_Personaction.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Personaction proto.InternalMessageInfo
-
-func (m *Personaction) GetImgKey() string {
-	if m != nil {
-		return m.ImgKey
-	}
-	return ""
-}
-
-func (m *Personaction) GetVideoReqNum() string {
-	if m != nil {
-		return m.VideoReqNum
-	}
-	return ""
-}
-
-func (m *Personaction) GetSdkType() string {
-	if m != nil {
-		return m.SdkType
-	}
-	return ""
-}
-
-func (m *Personaction) GetPicName() string {
-	if m != nil {
-		return m.PicName
-	}
-	return ""
-}
-
-func (m *Personaction) GetContent() string {
-	if m != nil {
-		return m.Content
-	}
-	return ""
-}
-
-func (m *Personaction) GetClusterId() string {
-	if m != nil {
-		return m.ClusterId
-	}
-	return ""
-}
-
-func (m *Personaction) GetPersonPicUrl() string {
-	if m != nil {
-		return m.PersonPicUrl
-	}
-	return ""
-}
-
-func (m *Personaction) GetChannlId() string {
-	if m != nil {
-		return m.ChannlId
-	}
-	return ""
-}
-
-func (m *Personaction) GetLikeDate() string {
-	if m != nil {
-		return m.LikeDate
-	}
-	return ""
-}
-
-func (m *Personaction) GetPicAddress() string {
-	if m != nil {
-		return m.PicAddress
-	}
-	return ""
-}
-
-func (m *Personaction) GetPicMaxUrl() string {
-	if m != nil {
-		return m.PicMaxUrl
-	}
-	return ""
-}
-
-func (m *Personaction) GetPicDate() string {
-	if m != nil {
-		return m.PicDate
-	}
-	return ""
-}
-
-func (m *Personaction) GetPicLocalUrl() string {
-	if m != nil {
-		return m.PicLocalUrl
-	}
-	return ""
-}
-
-func (m *Personaction) GetIsDelete() string {
-	if m != nil {
-		return m.IsDelete
-	}
-	return ""
-}
-
-func (m *Personaction) GetLikePer() string {
-	if m != nil {
-		return m.LikePer
-	}
-	return ""
-}
-
-func (m *Personaction) GetBaseName() string {
-	if m != nil {
-		return m.BaseName
-	}
-	return ""
-}
-
-func (m *Personaction) GetVideoNum() string {
-	if m != nil {
-		return m.VideoNum
-	}
-	return ""
-}
-
-func (m *Personaction) GetCollection() string {
-	if m != nil {
-		return m.Collection
-	}
-	return ""
-}
-
-func (m *Personaction) GetPicSmUrl() string {
-	if m != nil {
-		return m.PicSmUrl
-	}
-	return ""
-}
-
-func (m *Personaction) GetIndeviceid() string {
-	if m != nil {
-		return m.Indeviceid
-	}
-	return ""
-}
-
-func (m *Personaction) GetIdcard() string {
-	if m != nil {
-		return m.Idcard
-	}
-	return ""
-}
-
-func (m *Personaction) GetAckAlarm() string {
-	if m != nil {
-		return m.AckAlarm
-	}
-	return ""
-}
-
-func (m *Personaction) GetPersonId() string {
-	if m != nil {
-		return m.PersonId
-	}
-	return ""
-}
-
-func (m *Personaction) GetId() string {
-	if m != nil {
-		return m.Id
-	}
-	return ""
-}
-
-func (m *Personaction) GetIndevicename() string {
-	if m != nil {
-		return m.Indevicename
-	}
-	return ""
-}
-
-func (m *Personaction) GetFaceFeature() string {
-	if m != nil {
-		return m.FaceFeature
-	}
-	return ""
-}
-
-func (m *Personaction) GetPersonIsHub() string {
-	if m != nil {
-		return m.PersonIsHub
-	}
-	return ""
-}
-
-func (m *Personaction) GetVideoIp() string {
-	if m != nil {
-		return m.VideoIp
-	}
-	return ""
-}
-
-func (m *Personaction) GetTaskId() string {
-	if m != nil {
-		return m.TaskId
-	}
-	return ""
-}
-
-type PersonBaseInfo struct {
-	PersonNamae          string   `protobuf:"bytes,1,opt,name=personNamae,proto3" json:"personNamae,omitempty"`
-	IDCard               string   `protobuf:"bytes,2,opt,name=iDCard,proto3" json:"iDCard,omitempty"`
-	Gender               string   `protobuf:"bytes,3,opt,name=gender,proto3" json:"gender,omitempty"`
-	PersonPicUrl         string   `protobuf:"bytes,4,opt,name=personPicUrl,proto3" json:"personPicUrl,omitempty"`
-	LikePer              string   `protobuf:"bytes,5,opt,name=likePer,proto3" json:"likePer,omitempty"`
-	TableId              string   `protobuf:"bytes,6,opt,name=tableId,proto3" json:"tableId,omitempty"`
-	MonitorLevel         string   `protobuf:"bytes,7,opt,name=monitorLevel,proto3" json:"monitorLevel,omitempty"`
-	PersonId             string   `protobuf:"bytes,8,opt,name=personId,proto3" json:"personId,omitempty"`
-	PhoneNum             string   `protobuf:"bytes,9,opt,name=phoneNum,proto3" json:"phoneNum,omitempty"`
-	Content              string   `protobuf:"bytes,10,opt,name=content,proto3" json:"content,omitempty"`
-	TableName            string   `protobuf:"bytes,11,opt,name=tableName,proto3" json:"tableName,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *PersonBaseInfo) Reset()         { *m = PersonBaseInfo{} }
-func (m *PersonBaseInfo) String() string { return proto.CompactTextString(m) }
-func (*PersonBaseInfo) ProtoMessage()    {}
-func (*PersonBaseInfo) Descriptor() ([]byte, []int) {
-	return fileDescriptor_32de24555f916688, []int{3}
-}
-
-func (m *PersonBaseInfo) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_PersonBaseInfo.Unmarshal(m, b)
-}
-func (m *PersonBaseInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_PersonBaseInfo.Marshal(b, m, deterministic)
-}
-func (m *PersonBaseInfo) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_PersonBaseInfo.Merge(m, src)
-}
-func (m *PersonBaseInfo) XXX_Size() int {
-	return xxx_messageInfo_PersonBaseInfo.Size(m)
-}
-func (m *PersonBaseInfo) XXX_DiscardUnknown() {
-	xxx_messageInfo_PersonBaseInfo.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_PersonBaseInfo proto.InternalMessageInfo
-
-func (m *PersonBaseInfo) GetPersonNamae() string {
-	if m != nil {
-		return m.PersonNamae
-	}
-	return ""
-}
-
-func (m *PersonBaseInfo) GetIDCard() string {
-	if m != nil {
-		return m.IDCard
-	}
-	return ""
-}
-
-func (m *PersonBaseInfo) GetGender() string {
-	if m != nil {
-		return m.Gender
-	}
-	return ""
-}
-
-func (m *PersonBaseInfo) GetPersonPicUrl() string {
-	if m != nil {
-		return m.PersonPicUrl
-	}
-	return ""
-}
-
-func (m *PersonBaseInfo) GetLikePer() string {
-	if m != nil {
-		return m.LikePer
-	}
-	return ""
-}
-
-func (m *PersonBaseInfo) GetTableId() string {
-	if m != nil {
-		return m.TableId
-	}
-	return ""
-}
-
-func (m *PersonBaseInfo) GetMonitorLevel() string {
-	if m != nil {
-		return m.MonitorLevel
-	}
-	return ""
-}
-
-func (m *PersonBaseInfo) GetPersonId() string {
-	if m != nil {
-		return m.PersonId
-	}
-	return ""
-}
-
-func (m *PersonBaseInfo) GetPhoneNum() string {
-	if m != nil {
-		return m.PhoneNum
-	}
-	return ""
-}
-
-func (m *PersonBaseInfo) GetContent() string {
-	if m != nil {
-		return m.Content
-	}
-	return ""
-}
-
-func (m *PersonBaseInfo) GetTableName() string {
-	if m != nil {
-		return m.TableName
-	}
-	return ""
-}
-
-type Vediopersons struct {
-	ID                   string            `protobuf:"bytes,1,opt,name=iD,proto3" json:"iD,omitempty"`
-	VideoReqNum          string            `protobuf:"bytes,2,opt,name=videoReqNum,proto3" json:"videoReqNum,omitempty"`
-	SdkType              string            `protobuf:"bytes,3,opt,name=sdkType,proto3" json:"sdkType,omitempty"`
-	Gender               string            `protobuf:"bytes,4,opt,name=gender,proto3" json:"gender,omitempty"`
-	PicName              string            `protobuf:"bytes,5,opt,name=picName,proto3" json:"picName,omitempty"`
-	Content              string            `protobuf:"bytes,6,opt,name=content,proto3" json:"content,omitempty"`
-	PersonPicUrl         string            `protobuf:"bytes,7,opt,name=personPicUrl,proto3" json:"personPicUrl,omitempty"`
-	ChannlId             string            `protobuf:"bytes,8,opt,name=channlId,proto3" json:"channlId,omitempty"`
-	LikeDate             string            `protobuf:"bytes,9,opt,name=likeDate,proto3" json:"likeDate,omitempty"`
-	Race                 string            `protobuf:"bytes,10,opt,name=race,proto3" json:"race,omitempty"`
-	PciAddress           string            `protobuf:"bytes,11,opt,name=pciAddress,proto3" json:"pciAddress,omitempty"`
-	PicMaxUrl            string            `protobuf:"bytes,12,opt,name=picMaxUrl,proto3" json:"picMaxUrl,omitempty"`
-	Age                  string            `protobuf:"bytes,13,opt,name=age,proto3" json:"age,omitempty"`
-	PicDate              string            `protobuf:"bytes,14,opt,name=picDate,proto3" json:"picDate,omitempty"`
-	PicLocalUrl          string            `protobuf:"bytes,15,opt,name=picLocalUrl,proto3" json:"picLocalUrl,omitempty"`
-	IsDelete             string            `protobuf:"bytes,16,opt,name=isDelete,proto3" json:"isDelete,omitempty"`
-	TableName            []string          `protobuf:"bytes,17,rep,name=tableName,proto3" json:"tableName,omitempty"`
-	VideoNum             string            `protobuf:"bytes,18,opt,name=videoNum,proto3" json:"videoNum,omitempty"`
-	PicSmUrl             string            `protobuf:"bytes,19,opt,name=picSmUrl,proto3" json:"picSmUrl,omitempty"`
-	SimleLevel           string            `protobuf:"bytes,20,opt,name=simleLevel,proto3" json:"simleLevel,omitempty"`
-	IndeviceId           string            `protobuf:"bytes,21,opt,name=indeviceId,proto3" json:"indeviceId,omitempty"`
-	IDcard               []string          `protobuf:"bytes,22,rep,name=iDcard,proto3" json:"iDcard,omitempty"`
-	PersonId             []string          `protobuf:"bytes,23,rep,name=personId,proto3" json:"personId,omitempty"`
-	BeautyLevel          string            `protobuf:"bytes,24,opt,name=beautyLevel,proto3" json:"beautyLevel,omitempty"`
-	IndeviceName         string            `protobuf:"bytes,25,opt,name=indeviceName,proto3" json:"indeviceName,omitempty"`
-	FaceFeature          string            `protobuf:"bytes,26,opt,name=faceFeature,proto3" json:"faceFeature,omitempty"`
-	PersonIsHub          string            `protobuf:"bytes,27,opt,name=personIsHub,proto3" json:"personIsHub,omitempty"`
-	VideoIp              string            `protobuf:"bytes,28,opt,name=videoIp,proto3" json:"videoIp,omitempty"`
-	AckAlarm             string            `protobuf:"bytes,29,opt,name=ackAlarm,proto3" json:"ackAlarm,omitempty"`
-	ClusterId            string            `protobuf:"bytes,30,opt,name=clusterId,proto3" json:"clusterId,omitempty"`
-	TaskId               string            `protobuf:"bytes,31,opt,name=taskId,proto3" json:"taskId,omitempty"`
-	TaskName             string            `protobuf:"bytes,32,opt,name=taskName,proto3" json:"taskName,omitempty"`
-	Baseinfo             []*PersonBaseInfo `protobuf:"bytes,33,rep,name=baseinfo,proto3" json:"baseinfo,omitempty"`
-	Collection           string            `protobuf:"bytes,34,opt,name=collection,proto3" json:"collection,omitempty"`
-	AgeDescription       string            `protobuf:"bytes,35,opt,name=ageDescription,proto3" json:"ageDescription,omitempty"`
-	TableId              []string          `protobuf:"bytes,36,rep,name=tableId,proto3" json:"tableId,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
-	XXX_unrecognized     []byte            `json:"-"`
-	XXX_sizecache        int32             `json:"-"`
-}
-
-func (m *Vediopersons) Reset()         { *m = Vediopersons{} }
-func (m *Vediopersons) String() string { return proto.CompactTextString(m) }
-func (*Vediopersons) ProtoMessage()    {}
-func (*Vediopersons) Descriptor() ([]byte, []int) {
-	return fileDescriptor_32de24555f916688, []int{4}
-}
-
-func (m *Vediopersons) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Vediopersons.Unmarshal(m, b)
-}
-func (m *Vediopersons) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Vediopersons.Marshal(b, m, deterministic)
-}
-func (m *Vediopersons) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Vediopersons.Merge(m, src)
-}
-func (m *Vediopersons) XXX_Size() int {
-	return xxx_messageInfo_Vediopersons.Size(m)
-}
-func (m *Vediopersons) XXX_DiscardUnknown() {
-	xxx_messageInfo_Vediopersons.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Vediopersons proto.InternalMessageInfo
-
-func (m *Vediopersons) GetID() string {
-	if m != nil {
-		return m.ID
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetVideoReqNum() string {
-	if m != nil {
-		return m.VideoReqNum
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetSdkType() string {
-	if m != nil {
-		return m.SdkType
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetGender() string {
-	if m != nil {
-		return m.Gender
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetPicName() string {
-	if m != nil {
-		return m.PicName
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetContent() string {
-	if m != nil {
-		return m.Content
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetPersonPicUrl() string {
-	if m != nil {
-		return m.PersonPicUrl
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetChannlId() string {
-	if m != nil {
-		return m.ChannlId
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetLikeDate() string {
-	if m != nil {
-		return m.LikeDate
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetRace() string {
-	if m != nil {
-		return m.Race
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetPciAddress() string {
-	if m != nil {
-		return m.PciAddress
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetPicMaxUrl() string {
-	if m != nil {
-		return m.PicMaxUrl
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetAge() string {
-	if m != nil {
-		return m.Age
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetPicDate() string {
-	if m != nil {
-		return m.PicDate
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetPicLocalUrl() string {
-	if m != nil {
-		return m.PicLocalUrl
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetIsDelete() string {
-	if m != nil {
-		return m.IsDelete
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetTableName() []string {
-	if m != nil {
-		return m.TableName
-	}
-	return nil
-}
-
-func (m *Vediopersons) GetVideoNum() string {
-	if m != nil {
-		return m.VideoNum
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetPicSmUrl() string {
-	if m != nil {
-		return m.PicSmUrl
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetSimleLevel() string {
-	if m != nil {
-		return m.SimleLevel
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetIndeviceId() string {
-	if m != nil {
-		return m.IndeviceId
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetIDcard() []string {
-	if m != nil {
-		return m.IDcard
-	}
-	return nil
-}
-
-func (m *Vediopersons) GetPersonId() []string {
-	if m != nil {
-		return m.PersonId
-	}
-	return nil
-}
-
-func (m *Vediopersons) GetBeautyLevel() string {
-	if m != nil {
-		return m.BeautyLevel
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetIndeviceName() string {
-	if m != nil {
-		return m.IndeviceName
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetFaceFeature() string {
-	if m != nil {
-		return m.FaceFeature
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetPersonIsHub() string {
-	if m != nil {
-		return m.PersonIsHub
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetVideoIp() string {
-	if m != nil {
-		return m.VideoIp
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetAckAlarm() string {
-	if m != nil {
-		return m.AckAlarm
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetClusterId() string {
-	if m != nil {
-		return m.ClusterId
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetTaskId() string {
-	if m != nil {
-		return m.TaskId
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetTaskName() string {
-	if m != nil {
-		return m.TaskName
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetBaseinfo() []*PersonBaseInfo {
-	if m != nil {
-		return m.Baseinfo
-	}
-	return nil
-}
-
-func (m *Vediopersons) GetCollection() string {
-	if m != nil {
-		return m.Collection
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetAgeDescription() string {
-	if m != nil {
-		return m.AgeDescription
-	}
-	return ""
-}
-
-func (m *Vediopersons) GetTableId() []string {
-	if m != nil {
-		return m.TableId
-	}
-	return nil
-}
-
-//Area缁撴瀯浣�
-type Area struct {
-	Id                   int32    `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
-	Parentid             int32    `protobuf:"varint,2,opt,name=parentid,proto3" json:"parentid,omitempty"`
-	Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *Area) Reset()         { *m = Area{} }
-func (m *Area) String() string { return proto.CompactTextString(m) }
-func (*Area) ProtoMessage()    {}
-func (*Area) Descriptor() ([]byte, []int) {
-	return fileDescriptor_32de24555f916688, []int{5}
-}
-
-func (m *Area) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Area.Unmarshal(m, b)
-}
-func (m *Area) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Area.Marshal(b, m, deterministic)
-}
-func (m *Area) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Area.Merge(m, src)
-}
-func (m *Area) XXX_Size() int {
-	return xxx_messageInfo_Area.Size(m)
-}
-func (m *Area) XXX_DiscardUnknown() {
-	xxx_messageInfo_Area.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Area proto.InternalMessageInfo
-
-func (m *Area) GetId() int32 {
-	if m != nil {
-		return m.Id
-	}
-	return 0
-}
-
-func (m *Area) GetParentid() int32 {
-	if m != nil {
-		return m.Parentid
-	}
-	return 0
-}
-
-func (m *Area) GetName() string {
-	if m != nil {
-		return m.Name
-	}
-	return ""
-}
-
-//Camera缁撴瀯浣�
-type Camera struct {
-	Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	Name                 string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
-	Type                 int32    `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"`
-	Addr                 string   `protobuf:"bytes,4,opt,name=addr,proto3" json:"addr,omitempty"`
-	Areaid               int32    `protobuf:"varint,5,opt,name=areaid,proto3" json:"areaid,omitempty"`
-	Longitude            float32  `protobuf:"fixed32,6,opt,name=longitude,proto3" json:"longitude,omitempty"`
-	Latitude             float32  `protobuf:"fixed32,7,opt,name=latitude,proto3" json:"latitude,omitempty"`
-	Rtsp                 string   `protobuf:"bytes,8,opt,name=rtsp,proto3" json:"rtsp,omitempty"`
-	Ip                   string   `protobuf:"bytes,9,opt,name=ip,proto3" json:"ip,omitempty"`
-	Port                 int32    `protobuf:"varint,10,opt,name=port,proto3" json:"port,omitempty"`
-	Username             string   `protobuf:"bytes,11,opt,name=username,proto3" json:"username,omitempty"`
-	Password             string   `protobuf:"bytes,12,opt,name=password,proto3" json:"password,omitempty"`
-	Brand                string   `protobuf:"bytes,13,opt,name=brand,proto3" json:"brand,omitempty"`
-	Reserved             string   `protobuf:"bytes,14,opt,name=reserved,proto3" json:"reserved,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *Camera) Reset()         { *m = Camera{} }
-func (m *Camera) String() string { return proto.CompactTextString(m) }
-func (*Camera) ProtoMessage()    {}
-func (*Camera) Descriptor() ([]byte, []int) {
-	return fileDescriptor_32de24555f916688, []int{6}
-}
-
-func (m *Camera) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Camera.Unmarshal(m, b)
-}
-func (m *Camera) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Camera.Marshal(b, m, deterministic)
-}
-func (m *Camera) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Camera.Merge(m, src)
-}
-func (m *Camera) XXX_Size() int {
-	return xxx_messageInfo_Camera.Size(m)
-}
-func (m *Camera) XXX_DiscardUnknown() {
-	xxx_messageInfo_Camera.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Camera proto.InternalMessageInfo
-
-func (m *Camera) GetId() string {
-	if m != nil {
-		return m.Id
-	}
-	return ""
-}
-
-func (m *Camera) GetName() string {
-	if m != nil {
-		return m.Name
-	}
-	return ""
-}
-
-func (m *Camera) GetType() int32 {
-	if m != nil {
-		return m.Type
-	}
-	return 0
-}
-
-func (m *Camera) GetAddr() string {
-	if m != nil {
-		return m.Addr
-	}
-	return ""
-}
-
-func (m *Camera) GetAreaid() int32 {
-	if m != nil {
-		return m.Areaid
-	}
-	return 0
-}
-
-func (m *Camera) GetLongitude() float32 {
-	if m != nil {
-		return m.Longitude
-	}
-	return 0
-}
-
-func (m *Camera) GetLatitude() float32 {
-	if m != nil {
-		return m.Latitude
-	}
-	return 0
-}
-
-func (m *Camera) GetRtsp() string {
-	if m != nil {
-		return m.Rtsp
-	}
-	return ""
-}
-
-func (m *Camera) GetIp() string {
-	if m != nil {
-		return m.Ip
-	}
-	return ""
-}
-
-func (m *Camera) GetPort() int32 {
-	if m != nil {
-		return m.Port
-	}
-	return 0
-}
-
-func (m *Camera) GetUsername() string {
-	if m != nil {
-		return m.Username
-	}
-	return ""
-}
-
-func (m *Camera) GetPassword() string {
-	if m != nil {
-		return m.Password
-	}
-	return ""
-}
-
-func (m *Camera) GetBrand() string {
-	if m != nil {
-		return m.Brand
-	}
-	return ""
-}
-
-func (m *Camera) GetReserved() string {
-	if m != nil {
-		return m.Reserved
-	}
-	return ""
-}
-
-//鎽勫儚鏈虹殑浠诲姟淇℃伅
-type CameraAndTaskInfo struct {
-	Camera               *Camera  `protobuf:"bytes,1,opt,name=camera,proto3" json:"camera,omitempty"`
-	Tasks                []*Task  `protobuf:"bytes,2,rep,name=tasks,proto3" json:"tasks,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *CameraAndTaskInfo) Reset()         { *m = CameraAndTaskInfo{} }
-func (m *CameraAndTaskInfo) String() string { return proto.CompactTextString(m) }
-func (*CameraAndTaskInfo) ProtoMessage()    {}
-func (*CameraAndTaskInfo) Descriptor() ([]byte, []int) {
-	return fileDescriptor_32de24555f916688, []int{7}
-}
-
-func (m *CameraAndTaskInfo) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_CameraAndTaskInfo.Unmarshal(m, b)
-}
-func (m *CameraAndTaskInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_CameraAndTaskInfo.Marshal(b, m, deterministic)
-}
-func (m *CameraAndTaskInfo) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CameraAndTaskInfo.Merge(m, src)
-}
-func (m *CameraAndTaskInfo) XXX_Size() int {
-	return xxx_messageInfo_CameraAndTaskInfo.Size(m)
-}
-func (m *CameraAndTaskInfo) XXX_DiscardUnknown() {
-	xxx_messageInfo_CameraAndTaskInfo.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_CameraAndTaskInfo proto.InternalMessageInfo
-
-func (m *CameraAndTaskInfo) GetCamera() *Camera {
-	if m != nil {
-		return m.Camera
-	}
-	return nil
-}
-
-func (m *CameraAndTaskInfo) GetTasks() []*Task {
-	if m != nil {
-		return m.Tasks
-	}
-	return nil
-}
-
-//Task缁撴瀯浣�
-type Task struct {
-	Taskid               string   `protobuf:"bytes,1,opt,name=taskid,proto3" json:"taskid,omitempty"`
-	Taskname             string   `protobuf:"bytes,2,opt,name=taskname,proto3" json:"taskname,omitempty"`
-	CreateAt             string   `protobuf:"bytes,3,opt,name=create_at,json=createAt,proto3" json:"create_at,omitempty"`
-	CreateBy             string   `protobuf:"bytes,4,opt,name=create_by,json=createBy,proto3" json:"create_by,omitempty"`
-	UpdateAt             string   `protobuf:"bytes,5,opt,name=update_at,json=updateAt,proto3" json:"update_at,omitempty"`
-	Enable               bool     `protobuf:"varint,6,opt,name=enable,proto3" json:"enable,omitempty"`
-	IsAlarm              bool     `protobuf:"varint,7,opt,name=is_alarm,json=isAlarm,proto3" json:"is_alarm,omitempty"`
-	DelFlag              bool     `protobuf:"varint,8,opt,name=del_flag,json=delFlag,proto3" json:"del_flag,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *Task) Reset()         { *m = Task{} }
-func (m *Task) String() string { return proto.CompactTextString(m) }
-func (*Task) ProtoMessage()    {}
-func (*Task) Descriptor() ([]byte, []int) {
-	return fileDescriptor_32de24555f916688, []int{8}
-}
-
-func (m *Task) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Task.Unmarshal(m, b)
-}
-func (m *Task) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Task.Marshal(b, m, deterministic)
-}
-func (m *Task) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Task.Merge(m, src)
-}
-func (m *Task) XXX_Size() int {
-	return xxx_messageInfo_Task.Size(m)
-}
-func (m *Task) XXX_DiscardUnknown() {
-	xxx_messageInfo_Task.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Task proto.InternalMessageInfo
-
-func (m *Task) GetTaskid() string {
-	if m != nil {
-		return m.Taskid
-	}
-	return ""
-}
-
-func (m *Task) GetTaskname() string {
-	if m != nil {
-		return m.Taskname
-	}
-	return ""
-}
-
-func (m *Task) GetCreateAt() string {
-	if m != nil {
-		return m.CreateAt
-	}
-	return ""
-}
-
-func (m *Task) GetCreateBy() string {
-	if m != nil {
-		return m.CreateBy
-	}
-	return ""
-}
-
-func (m *Task) GetUpdateAt() string {
-	if m != nil {
-		return m.UpdateAt
-	}
-	return ""
-}
-
-func (m *Task) GetEnable() bool {
-	if m != nil {
-		return m.Enable
-	}
-	return false
-}
-
-func (m *Task) GetIsAlarm() bool {
-	if m != nil {
-		return m.IsAlarm
-	}
-	return false
-}
-
-func (m *Task) GetDelFlag() bool {
-	if m != nil {
-		return m.DelFlag
-	}
-	return false
-}
-
-type TaskSdkInfo struct {
-	Task                 *Task    `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"`
-	Sdks                 []*Sdk   `protobuf:"bytes,2,rep,name=sdks,proto3" json:"sdks,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *TaskSdkInfo) Reset()         { *m = TaskSdkInfo{} }
-func (m *TaskSdkInfo) String() string { return proto.CompactTextString(m) }
-func (*TaskSdkInfo) ProtoMessage()    {}
-func (*TaskSdkInfo) Descriptor() ([]byte, []int) {
-	return fileDescriptor_32de24555f916688, []int{9}
-}
-
-func (m *TaskSdkInfo) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_TaskSdkInfo.Unmarshal(m, b)
-}
-func (m *TaskSdkInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_TaskSdkInfo.Marshal(b, m, deterministic)
-}
-func (m *TaskSdkInfo) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_TaskSdkInfo.Merge(m, src)
-}
-func (m *TaskSdkInfo) XXX_Size() int {
-	return xxx_messageInfo_TaskSdkInfo.Size(m)
-}
-func (m *TaskSdkInfo) XXX_DiscardUnknown() {
-	xxx_messageInfo_TaskSdkInfo.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_TaskSdkInfo proto.InternalMessageInfo
-
-func (m *TaskSdkInfo) GetTask() *Task {
-	if m != nil {
-		return m.Task
-	}
-	return nil
-}
-
-func (m *TaskSdkInfo) GetSdks() []*Sdk {
-	if m != nil {
-		return m.Sdks
-	}
-	return nil
-}
-
-//鎽勫儚鏈轰换鍔�
-type CameraTask struct {
-	Id                   string    `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	CameraId             string    `protobuf:"bytes,2,opt,name=camera_id,json=cameraId,proto3" json:"camera_id,omitempty"`
-	TaskId               string    `protobuf:"bytes,3,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
-	TimeRule             []*DayCtl `protobuf:"bytes,4,rep,name=time_rule,json=timeRule,proto3" json:"time_rule,omitempty"`
-	ReactRule            string    `protobuf:"bytes,5,opt,name=react_rule,json=reactRule,proto3" json:"react_rule,omitempty"`
-	ReactDevice          string    `protobuf:"bytes,6,opt,name=react_device,json=reactDevice,proto3" json:"react_device,omitempty"`
-	DelFlag              bool      `protobuf:"varint,7,opt,name=del_flag,json=delFlag,proto3" json:"del_flag,omitempty"`
-	UpdateFlag           bool      `protobuf:"varint,8,opt,name=update_flag,json=updateFlag,proto3" json:"update_flag,omitempty"`
-	Enable               bool      `protobuf:"varint,9,opt,name=enable,proto3" json:"enable,omitempty"`
-	Sort                 int32     `protobuf:"varint,10,opt,name=sort,proto3" json:"sort,omitempty"`
-	IsFull               bool      `protobuf:"varint,11,opt,name=is_full,json=isFull,proto3" json:"is_full,omitempty"`
-	LinkTaskId           string    `protobuf:"bytes,12,opt,name=link_task_id,json=linkTaskId,proto3" json:"link_task_id,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
-	XXX_unrecognized     []byte    `json:"-"`
-	XXX_sizecache        int32     `json:"-"`
-}
-
-func (m *CameraTask) Reset()         { *m = CameraTask{} }
-func (m *CameraTask) String() string { return proto.CompactTextString(m) }
-func (*CameraTask) ProtoMessage()    {}
-func (*CameraTask) Descriptor() ([]byte, []int) {
-	return fileDescriptor_32de24555f916688, []int{10}
-}
-
-func (m *CameraTask) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_CameraTask.Unmarshal(m, b)
-}
-func (m *CameraTask) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_CameraTask.Marshal(b, m, deterministic)
-}
-func (m *CameraTask) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CameraTask.Merge(m, src)
-}
-func (m *CameraTask) XXX_Size() int {
-	return xxx_messageInfo_CameraTask.Size(m)
-}
-func (m *CameraTask) XXX_DiscardUnknown() {
-	xxx_messageInfo_CameraTask.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_CameraTask proto.InternalMessageInfo
-
-func (m *CameraTask) GetId() string {
-	if m != nil {
-		return m.Id
-	}
-	return ""
-}
-
-func (m *CameraTask) GetCameraId() string {
-	if m != nil {
-		return m.CameraId
-	}
-	return ""
-}
-
-func (m *CameraTask) GetTaskId() string {
-	if m != nil {
-		return m.TaskId
-	}
-	return ""
-}
-
-func (m *CameraTask) GetTimeRule() []*DayCtl {
-	if m != nil {
-		return m.TimeRule
-	}
-	return nil
-}
-
-func (m *CameraTask) GetReactRule() string {
-	if m != nil {
-		return m.ReactRule
-	}
-	return ""
-}
-
-func (m *CameraTask) GetReactDevice() string {
-	if m != nil {
-		return m.ReactDevice
-	}
-	return ""
-}
-
-func (m *CameraTask) GetDelFlag() bool {
-	if m != nil {
-		return m.DelFlag
-	}
-	return false
-}
-
-func (m *CameraTask) GetUpdateFlag() bool {
-	if m != nil {
-		return m.UpdateFlag
-	}
-	return false
-}
-
-func (m *CameraTask) GetEnable() bool {
-	if m != nil {
-		return m.Enable
-	}
-	return false
-}
-
-func (m *CameraTask) GetSort() int32 {
-	if m != nil {
-		return m.Sort
-	}
-	return 0
-}
-
-func (m *CameraTask) GetIsFull() bool {
-	if m != nil {
-		return m.IsFull
-	}
-	return false
-}
-
-func (m *CameraTask) GetLinkTaskId() string {
-	if m != nil {
-		return m.LinkTaskId
-	}
-	return ""
-}
-
-//鎽勫儚鏈哄竷闃茬殑鏃堕棿瑙勫垯锛屽彲浠ヨ缃涓�,鐢╥d鍏宠仈鍒板叿浣撶殑瑙勫垯閰嶇疆涓�
-type CameraTimerule struct {
-	Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	Name                 string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
-	TimeRule             string   `protobuf:"bytes,3,opt,name=time_rule,json=timeRule,proto3" json:"time_rule,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *CameraTimerule) Reset()         { *m = CameraTimerule{} }
-func (m *CameraTimerule) String() string { return proto.CompactTextString(m) }
-func (*CameraTimerule) ProtoMessage()    {}
-func (*CameraTimerule) Descriptor() ([]byte, []int) {
-	return fileDescriptor_32de24555f916688, []int{11}
-}
-
-func (m *CameraTimerule) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_CameraTimerule.Unmarshal(m, b)
-}
-func (m *CameraTimerule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_CameraTimerule.Marshal(b, m, deterministic)
-}
-func (m *CameraTimerule) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CameraTimerule.Merge(m, src)
-}
-func (m *CameraTimerule) XXX_Size() int {
-	return xxx_messageInfo_CameraTimerule.Size(m)
-}
-func (m *CameraTimerule) XXX_DiscardUnknown() {
-	xxx_messageInfo_CameraTimerule.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_CameraTimerule proto.InternalMessageInfo
-
-func (m *CameraTimerule) GetId() string {
-	if m != nil {
-		return m.Id
-	}
-	return ""
-}
-
-func (m *CameraTimerule) GetName() string {
-	if m != nil {
-		return m.Name
-	}
-	return ""
-}
-
-func (m *CameraTimerule) GetTimeRule() string {
-	if m != nil {
-		return m.TimeRule
-	}
-	return ""
-}
-
-//DayCtl struct   姣忓ぉ鐨勬椂闂存帶鍒惰鍒�
-type DayCtl struct {
-	Day                  int32        `protobuf:"varint,1,opt,name=day,proto3" json:"day,omitempty"`
-	TimeRange            []*TimeRange `protobuf:"bytes,2,rep,name=time_range,json=timeRange,proto3" json:"time_range,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
-	XXX_unrecognized     []byte       `json:"-"`
-	XXX_sizecache        int32        `json:"-"`
-}
-
-func (m *DayCtl) Reset()         { *m = DayCtl{} }
-func (m *DayCtl) String() string { return proto.CompactTextString(m) }
-func (*DayCtl) ProtoMessage()    {}
-func (*DayCtl) Descriptor() ([]byte, []int) {
-	return fileDescriptor_32de24555f916688, []int{12}
-}
-
-func (m *DayCtl) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_DayCtl.Unmarshal(m, b)
-}
-func (m *DayCtl) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_DayCtl.Marshal(b, m, deterministic)
-}
-func (m *DayCtl) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DayCtl.Merge(m, src)
-}
-func (m *DayCtl) XXX_Size() int {
-	return xxx_messageInfo_DayCtl.Size(m)
-}
-func (m *DayCtl) XXX_DiscardUnknown() {
-	xxx_messageInfo_DayCtl.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_DayCtl proto.InternalMessageInfo
-
-func (m *DayCtl) GetDay() int32 {
-	if m != nil {
-		return m.Day
-	}
-	return 0
-}
-
-func (m *DayCtl) GetTimeRange() []*TimeRange {
-	if m != nil {
-		return m.TimeRange
-	}
-	return nil
-}
-
-//鏃堕棿璧峰鑼冨洿
-type TimeRange struct {
-	Start                string   `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"`
-	End                  string   `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *TimeRange) Reset()         { *m = TimeRange{} }
-func (m *TimeRange) String() string { return proto.CompactTextString(m) }
-func (*TimeRange) ProtoMessage()    {}
-func (*TimeRange) Descriptor() ([]byte, []int) {
-	return fileDescriptor_32de24555f916688, []int{13}
-}
-
-func (m *TimeRange) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_TimeRange.Unmarshal(m, b)
-}
-func (m *TimeRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_TimeRange.Marshal(b, m, deterministic)
-}
-func (m *TimeRange) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_TimeRange.Merge(m, src)
-}
-func (m *TimeRange) XXX_Size() int {
-	return xxx_messageInfo_TimeRange.Size(m)
-}
-func (m *TimeRange) XXX_DiscardUnknown() {
-	xxx_messageInfo_TimeRange.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_TimeRange proto.InternalMessageInfo
-
-func (m *TimeRange) GetStart() string {
-	if m != nil {
-		return m.Start
-	}
-	return ""
-}
-
-func (m *TimeRange) GetEnd() string {
-	if m != nil {
-		return m.End
-	}
-	return ""
-}
-
-//Polygon struct
-type Polygon struct {
-	Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	Name                 string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
-	Points               []*Point `protobuf:"bytes,3,rep,name=points,proto3" json:"points,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *Polygon) Reset()         { *m = Polygon{} }
-func (m *Polygon) String() string { return proto.CompactTextString(m) }
-func (*Polygon) ProtoMessage()    {}
-func (*Polygon) Descriptor() ([]byte, []int) {
-	return fileDescriptor_32de24555f916688, []int{14}
-}
-
-func (m *Polygon) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Polygon.Unmarshal(m, b)
-}
-func (m *Polygon) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Polygon.Marshal(b, m, deterministic)
-}
-func (m *Polygon) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Polygon.Merge(m, src)
-}
-func (m *Polygon) XXX_Size() int {
-	return xxx_messageInfo_Polygon.Size(m)
-}
-func (m *Polygon) XXX_DiscardUnknown() {
-	xxx_messageInfo_Polygon.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Polygon proto.InternalMessageInfo
-
-func (m *Polygon) GetId() string {
-	if m != nil {
-		return m.Id
-	}
-	return ""
-}
-
-func (m *Polygon) GetName() string {
-	if m != nil {
-		return m.Name
-	}
-	return ""
-}
-
-func (m *Polygon) GetPoints() []*Point {
-	if m != nil {
-		return m.Points
-	}
-	return nil
-}
-
-type CameraTaskArgs struct {
-	CameraId             string           `protobuf:"bytes,1,opt,name=camera_id,json=cameraId,proto3" json:"camera_id,omitempty"`
-	TaskArgs             []*TaskGroupArgs `protobuf:"bytes,2,rep,name=task_args,json=taskArgs,proto3" json:"task_args,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
-	XXX_unrecognized     []byte           `json:"-"`
-	XXX_sizecache        int32            `json:"-"`
-}
-
-func (m *CameraTaskArgs) Reset()         { *m = CameraTaskArgs{} }
-func (m *CameraTaskArgs) String() string { return proto.CompactTextString(m) }
-func (*CameraTaskArgs) ProtoMessage()    {}
-func (*CameraTaskArgs) Descriptor() ([]byte, []int) {
-	return fileDescriptor_32de24555f916688, []int{15}
-}
-
-func (m *CameraTaskArgs) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_CameraTaskArgs.Unmarshal(m, b)
-}
-func (m *CameraTaskArgs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_CameraTaskArgs.Marshal(b, m, deterministic)
-}
-func (m *CameraTaskArgs) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CameraTaskArgs.Merge(m, src)
-}
-func (m *CameraTaskArgs) XXX_Size() int {
-	return xxx_messageInfo_CameraTaskArgs.Size(m)
-}
-func (m *CameraTaskArgs) XXX_DiscardUnknown() {
-	xxx_messageInfo_CameraTaskArgs.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_CameraTaskArgs proto.InternalMessageInfo
-
-func (m *CameraTaskArgs) GetCameraId() string {
-	if m != nil {
-		return m.CameraId
-	}
-	return ""
-}
-
-func (m *CameraTaskArgs) GetTaskArgs() []*TaskGroupArgs {
-	if m != nil {
-		return m.TaskArgs
-	}
-	return nil
-}
-
-type TaskGroupArgs struct {
-	TaskId               string       `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
-	GroupRules           []*GroupRule `protobuf:"bytes,2,rep,name=group_rules,json=groupRules,proto3" json:"group_rules,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
-	XXX_unrecognized     []byte       `json:"-"`
-	XXX_sizecache        int32        `json:"-"`
-}
-
-func (m *TaskGroupArgs) Reset()         { *m = TaskGroupArgs{} }
-func (m *TaskGroupArgs) String() string { return proto.CompactTextString(m) }
-func (*TaskGroupArgs) ProtoMessage()    {}
-func (*TaskGroupArgs) Descriptor() ([]byte, []int) {
-	return fileDescriptor_32de24555f916688, []int{16}
-}
-
-func (m *TaskGroupArgs) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_TaskGroupArgs.Unmarshal(m, b)
-}
-func (m *TaskGroupArgs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_TaskGroupArgs.Marshal(b, m, deterministic)
-}
-func (m *TaskGroupArgs) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_TaskGroupArgs.Merge(m, src)
-}
-func (m *TaskGroupArgs) XXX_Size() int {
-	return xxx_messageInfo_TaskGroupArgs.Size(m)
-}
-func (m *TaskGroupArgs) XXX_DiscardUnknown() {
-	xxx_messageInfo_TaskGroupArgs.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_TaskGroupArgs proto.InternalMessageInfo
-
-func (m *TaskGroupArgs) GetTaskId() string {
-	if m != nil {
-		return m.TaskId
-	}
-	return ""
-}
-
-func (m *TaskGroupArgs) GetGroupRules() []*GroupRule {
-	if m != nil {
-		return m.GroupRules
-	}
-	return nil
-}
-
-type GroupRule struct {
-	GroupId              string   `protobuf:"bytes,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
-	Rules                []*Rule  `protobuf:"bytes,2,rep,name=rules,proto3" json:"rules,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *GroupRule) Reset()         { *m = GroupRule{} }
-func (m *GroupRule) String() string { return proto.CompactTextString(m) }
-func (*GroupRule) ProtoMessage()    {}
-func (*GroupRule) Descriptor() ([]byte, []int) {
-	return fileDescriptor_32de24555f916688, []int{17}
-}
-
-func (m *GroupRule) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GroupRule.Unmarshal(m, b)
-}
-func (m *GroupRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GroupRule.Marshal(b, m, deterministic)
-}
-func (m *GroupRule) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GroupRule.Merge(m, src)
-}
-func (m *GroupRule) XXX_Size() int {
-	return xxx_messageInfo_GroupRule.Size(m)
-}
-func (m *GroupRule) XXX_DiscardUnknown() {
-	xxx_messageInfo_GroupRule.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GroupRule proto.InternalMessageInfo
-
-func (m *GroupRule) GetGroupId() string {
-	if m != nil {
-		return m.GroupId
-	}
-	return ""
-}
-
-func (m *GroupRule) GetRules() []*Rule {
-	if m != nil {
-		return m.Rules
-	}
-	return nil
-}
-
-type Rule struct {
-	Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	CameraTaskId         string   `protobuf:"bytes,2,opt,name=camera_task_id,json=cameraTaskId,proto3" json:"camera_task_id,omitempty"`
-	CameraId             string   `protobuf:"bytes,3,opt,name=camera_id,json=cameraId,proto3" json:"camera_id,omitempty"`
-	PolygonId            string   `protobuf:"bytes,4,opt,name=polygon_id,json=polygonId,proto3" json:"polygon_id,omitempty"`
-	SdkId                string   `protobuf:"bytes,5,opt,name=sdk_id,json=sdkId,proto3" json:"sdk_id,omitempty"`
-	SdkArgAlias          string   `protobuf:"bytes,6,opt,name=sdk_arg_alias,json=sdkArgAlias,proto3" json:"sdk_arg_alias,omitempty"`
-	Operator             string   `protobuf:"bytes,7,opt,name=operator,proto3" json:"operator,omitempty"`
-	OperatorType         string   `protobuf:"bytes,8,opt,name=operator_type,json=operatorType,proto3" json:"operator_type,omitempty"`
-	SdkArgValue          string   `protobuf:"bytes,9,opt,name=sdk_arg_value,json=sdkArgValue,proto3" json:"sdk_arg_value,omitempty"`
-	Sort                 int32    `protobuf:"varint,10,opt,name=sort,proto3" json:"sort,omitempty"`
-	RuleWithPre          string   `protobuf:"bytes,11,opt,name=rule_with_pre,json=ruleWithPre,proto3" json:"rule_with_pre,omitempty"`
-	GroupId              string   `protobuf:"bytes,12,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *Rule) Reset()         { *m = Rule{} }
-func (m *Rule) String() string { return proto.CompactTextString(m) }
-func (*Rule) ProtoMessage()    {}
-func (*Rule) Descriptor() ([]byte, []int) {
-	return fileDescriptor_32de24555f916688, []int{18}
-}
-
-func (m *Rule) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Rule.Unmarshal(m, b)
-}
-func (m *Rule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Rule.Marshal(b, m, deterministic)
-}
-func (m *Rule) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Rule.Merge(m, src)
-}
-func (m *Rule) XXX_Size() int {
-	return xxx_messageInfo_Rule.Size(m)
-}
-func (m *Rule) XXX_DiscardUnknown() {
-	xxx_messageInfo_Rule.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Rule proto.InternalMessageInfo
-
-func (m *Rule) GetId() string {
-	if m != nil {
-		return m.Id
-	}
-	return ""
-}
-
-func (m *Rule) GetCameraTaskId() string {
-	if m != nil {
-		return m.CameraTaskId
-	}
-	return ""
-}
-
-func (m *Rule) GetCameraId() string {
-	if m != nil {
-		return m.CameraId
-	}
-	return ""
-}
-
-func (m *Rule) GetPolygonId() string {
-	if m != nil {
-		return m.PolygonId
-	}
-	return ""
-}
-
-func (m *Rule) GetSdkId() string {
-	if m != nil {
-		return m.SdkId
-	}
-	return ""
-}
-
-func (m *Rule) GetSdkArgAlias() string {
-	if m != nil {
-		return m.SdkArgAlias
-	}
-	return ""
-}
-
-func (m *Rule) GetOperator() string {
-	if m != nil {
-		return m.Operator
-	}
-	return ""
-}
-
-func (m *Rule) GetOperatorType() string {
-	if m != nil {
-		return m.OperatorType
-	}
-	return ""
-}
-
-func (m *Rule) GetSdkArgValue() string {
-	if m != nil {
-		return m.SdkArgValue
-	}
-	return ""
-}
-
-func (m *Rule) GetSort() int32 {
-	if m != nil {
-		return m.Sort
-	}
-	return 0
-}
-
-func (m *Rule) GetRuleWithPre() string {
-	if m != nil {
-		return m.RuleWithPre
-	}
-	return ""
-}
-
-func (m *Rule) GetGroupId() string {
-	if m != nil {
-		return m.GroupId
-	}
-	return ""
-}
-
-//Sdk struct
-type Sdk struct {
-	Id                   string    `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	SdkType              string    `protobuf:"bytes,2,opt,name=sdk_type,json=sdkType,proto3" json:"sdk_type,omitempty"`
-	SdkName              string    `protobuf:"bytes,3,opt,name=sdk_name,json=sdkName,proto3" json:"sdk_name,omitempty"`
-	Args                 []*SdkArg `protobuf:"bytes,4,rep,name=args,proto3" json:"args,omitempty"`
-	Icon                 string    `protobuf:"bytes,5,opt,name=icon,proto3" json:"icon,omitempty"`
-	Url                  string    `protobuf:"bytes,6,opt,name=url,proto3" json:"url,omitempty"`
-	CreateTime           string    `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
-	UpdateTime           string    `protobuf:"bytes,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
-	CreateBy             string    `protobuf:"bytes,9,opt,name=create_by,json=createBy,proto3" json:"create_by,omitempty"`
-	Enable               bool      `protobuf:"varint,10,opt,name=enable,proto3" json:"enable,omitempty"`
-	DelFlag              int32     `protobuf:"varint,11,opt,name=del_flag,json=delFlag,proto3" json:"del_flag,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
-	XXX_unrecognized     []byte    `json:"-"`
-	XXX_sizecache        int32     `json:"-"`
-}
-
-func (m *Sdk) Reset()         { *m = Sdk{} }
-func (m *Sdk) String() string { return proto.CompactTextString(m) }
-func (*Sdk) ProtoMessage()    {}
-func (*Sdk) Descriptor() ([]byte, []int) {
-	return fileDescriptor_32de24555f916688, []int{19}
-}
-
-func (m *Sdk) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Sdk.Unmarshal(m, b)
-}
-func (m *Sdk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Sdk.Marshal(b, m, deterministic)
-}
-func (m *Sdk) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Sdk.Merge(m, src)
-}
-func (m *Sdk) XXX_Size() int {
-	return xxx_messageInfo_Sdk.Size(m)
-}
-func (m *Sdk) XXX_DiscardUnknown() {
-	xxx_messageInfo_Sdk.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Sdk proto.InternalMessageInfo
-
-func (m *Sdk) GetId() string {
-	if m != nil {
-		return m.Id
-	}
-	return ""
-}
-
-func (m *Sdk) GetSdkType() string {
-	if m != nil {
-		return m.SdkType
-	}
-	return ""
-}
-
-func (m *Sdk) GetSdkName() string {
-	if m != nil {
-		return m.SdkName
-	}
-	return ""
-}
-
-func (m *Sdk) GetArgs() []*SdkArg {
-	if m != nil {
-		return m.Args
-	}
-	return nil
-}
-
-func (m *Sdk) GetIcon() string {
-	if m != nil {
-		return m.Icon
-	}
-	return ""
-}
-
-func (m *Sdk) GetUrl() string {
-	if m != nil {
-		return m.Url
-	}
-	return ""
-}
-
-func (m *Sdk) GetCreateTime() string {
-	if m != nil {
-		return m.CreateTime
-	}
-	return ""
-}
-
-func (m *Sdk) GetUpdateTime() string {
-	if m != nil {
-		return m.UpdateTime
-	}
-	return ""
-}
-
-func (m *Sdk) GetCreateBy() string {
-	if m != nil {
-		return m.CreateBy
-	}
-	return ""
-}
-
-func (m *Sdk) GetEnable() bool {
-	if m != nil {
-		return m.Enable
-	}
-	return false
-}
-
-func (m *Sdk) GetDelFlag() int32 {
-	if m != nil {
-		return m.DelFlag
-	}
-	return 0
-}
-
-//SdkArg struct
-type SdkArg struct {
-	Alias                string   `protobuf:"bytes,1,opt,name=alias,proto3" json:"alias,omitempty"`
-	Name                 string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
-	Type                 string   `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
-	Must                 bool     `protobuf:"varint,4,opt,name=must,proto3" json:"must,omitempty"`
-	Unit                 string   `protobuf:"bytes,5,opt,name=unit,proto3" json:"unit,omitempty"`
-	Range                string   `protobuf:"bytes,6,opt,name=range,proto3" json:"range,omitempty"`
-	Sort                 int32    `protobuf:"varint,7,opt,name=sort,proto3" json:"sort,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *SdkArg) Reset()         { *m = SdkArg{} }
-func (m *SdkArg) String() string { return proto.CompactTextString(m) }
-func (*SdkArg) ProtoMessage()    {}
-func (*SdkArg) Descriptor() ([]byte, []int) {
-	return fileDescriptor_32de24555f916688, []int{20}
-}
-
-func (m *SdkArg) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_SdkArg.Unmarshal(m, b)
-}
-func (m *SdkArg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_SdkArg.Marshal(b, m, deterministic)
-}
-func (m *SdkArg) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_SdkArg.Merge(m, src)
-}
-func (m *SdkArg) XXX_Size() int {
-	return xxx_messageInfo_SdkArg.Size(m)
-}
-func (m *SdkArg) XXX_DiscardUnknown() {
-	xxx_messageInfo_SdkArg.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_SdkArg proto.InternalMessageInfo
-
-func (m *SdkArg) GetAlias() string {
-	if m != nil {
-		return m.Alias
-	}
-	return ""
-}
-
-func (m *SdkArg) GetName() string {
-	if m != nil {
-		return m.Name
-	}
-	return ""
-}
-
-func (m *SdkArg) GetType() string {
-	if m != nil {
-		return m.Type
-	}
-	return ""
-}
-
-func (m *SdkArg) GetMust() bool {
-	if m != nil {
-		return m.Must
-	}
-	return false
-}
-
-func (m *SdkArg) GetUnit() string {
-	if m != nil {
-		return m.Unit
-	}
-	return ""
-}
-
-func (m *SdkArg) GetRange() string {
-	if m != nil {
-		return m.Range
-	}
-	return ""
-}
-
-func (m *SdkArg) GetSort() int32 {
-	if m != nil {
-		return m.Sort
-	}
-	return 0
-}
-
-//publish db change message
-type DbChangeMessage struct {
-	Table                TableChanged `protobuf:"varint,1,opt,name=table,proto3,enum=protomsg.TableChanged" json:"table,omitempty"`
-	Id                   string       `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
-	Action               DbAction     `protobuf:"varint,3,opt,name=action,proto3,enum=protomsg.DbAction" json:"action,omitempty"`
-	Info                 string       `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
-	XXX_unrecognized     []byte       `json:"-"`
-	XXX_sizecache        int32        `json:"-"`
-}
-
-func (m *DbChangeMessage) Reset()         { *m = DbChangeMessage{} }
-func (m *DbChangeMessage) String() string { return proto.CompactTextString(m) }
-func (*DbChangeMessage) ProtoMessage()    {}
-func (*DbChangeMessage) Descriptor() ([]byte, []int) {
-	return fileDescriptor_32de24555f916688, []int{21}
-}
-
-func (m *DbChangeMessage) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_DbChangeMessage.Unmarshal(m, b)
-}
-func (m *DbChangeMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_DbChangeMessage.Marshal(b, m, deterministic)
-}
-func (m *DbChangeMessage) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DbChangeMessage.Merge(m, src)
-}
-func (m *DbChangeMessage) XXX_Size() int {
-	return xxx_messageInfo_DbChangeMessage.Size(m)
-}
-func (m *DbChangeMessage) XXX_DiscardUnknown() {
-	xxx_messageInfo_DbChangeMessage.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_DbChangeMessage proto.InternalMessageInfo
-
-func (m *DbChangeMessage) GetTable() TableChanged {
-	if m != nil {
-		return m.Table
-	}
-	return TableChanged_T_Camera
-}
-
-func (m *DbChangeMessage) GetId() string {
-	if m != nil {
-		return m.Id
-	}
-	return ""
-}
-
-func (m *DbChangeMessage) GetAction() DbAction {
-	if m != nil {
-		return m.Action
-	}
-	return DbAction_Insert
-}
-
-func (m *DbChangeMessage) GetInfo() string {
-	if m != nil {
-		return m.Info
-	}
-	return ""
-}
-
-type CameraPolygon struct {
-	Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	CameraId             string   `protobuf:"bytes,2,opt,name=camera_id,json=cameraId,proto3" json:"camera_id,omitempty"`
-	Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
-	Polygon              string   `protobuf:"bytes,4,opt,name=polygon,proto3" json:"polygon,omitempty"`
-	TriggerLine          string   `protobuf:"bytes,5,opt,name=trigger_line,json=triggerLine,proto3" json:"trigger_line,omitempty"`
-	DirectionLine        string   `protobuf:"bytes,6,opt,name=direction_line,json=directionLine,proto3" json:"direction_line,omitempty"`
-	Type                 string   `protobuf:"bytes,7,opt,name=type,proto3" json:"type,omitempty"`
-	DefenceState         int32    `protobuf:"varint,8,opt,name=defence_state,json=defenceState,proto3" json:"defence_state,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *CameraPolygon) Reset()         { *m = CameraPolygon{} }
-func (m *CameraPolygon) String() string { return proto.CompactTextString(m) }
-func (*CameraPolygon) ProtoMessage()    {}
-func (*CameraPolygon) Descriptor() ([]byte, []int) {
-	return fileDescriptor_32de24555f916688, []int{22}
-}
-
-func (m *CameraPolygon) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_CameraPolygon.Unmarshal(m, b)
-}
-func (m *CameraPolygon) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_CameraPolygon.Marshal(b, m, deterministic)
-}
-func (m *CameraPolygon) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CameraPolygon.Merge(m, src)
-}
-func (m *CameraPolygon) XXX_Size() int {
-	return xxx_messageInfo_CameraPolygon.Size(m)
-}
-func (m *CameraPolygon) XXX_DiscardUnknown() {
-	xxx_messageInfo_CameraPolygon.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_CameraPolygon proto.InternalMessageInfo
-
-func (m *CameraPolygon) GetId() string {
-	if m != nil {
-		return m.Id
-	}
-	return ""
-}
-
-func (m *CameraPolygon) GetCameraId() string {
-	if m != nil {
-		return m.CameraId
-	}
-	return ""
-}
-
-func (m *CameraPolygon) GetName() string {
-	if m != nil {
-		return m.Name
-	}
-	return ""
-}
-
-func (m *CameraPolygon) GetPolygon() string {
-	if m != nil {
-		return m.Polygon
-	}
-	return ""
-}
-
-func (m *CameraPolygon) GetTriggerLine() string {
-	if m != nil {
-		return m.TriggerLine
-	}
-	return ""
-}
-
-func (m *CameraPolygon) GetDirectionLine() string {
-	if m != nil {
-		return m.DirectionLine
-	}
-	return ""
-}
-
-func (m *CameraPolygon) GetType() string {
-	if m != nil {
-		return m.Type
-	}
-	return ""
-}
-
-func (m *CameraPolygon) GetDefenceState() int32 {
-	if m != nil {
-		return m.DefenceState
-	}
-	return 0
-}
-
-func init() {
-	proto.RegisterEnum("protomsg.TableChanged", TableChanged_name, TableChanged_value)
-	proto.RegisterEnum("protomsg.DbAction", DbAction_name, DbAction_value)
-	proto.RegisterType((*TaskLabel)(nil), "protomsg.TaskLabel")
-	proto.RegisterType((*SdkMessage)(nil), "protomsg.SdkMessage")
-	proto.RegisterType((*Personaction)(nil), "protomsg.Personaction")
-	proto.RegisterType((*PersonBaseInfo)(nil), "protomsg.PersonBaseInfo")
-	proto.RegisterType((*Vediopersons)(nil), "protomsg.Vediopersons")
-	proto.RegisterType((*Area)(nil), "protomsg.Area")
-	proto.RegisterType((*Camera)(nil), "protomsg.Camera")
-	proto.RegisterType((*CameraAndTaskInfo)(nil), "protomsg.CameraAndTaskInfo")
-	proto.RegisterType((*Task)(nil), "protomsg.Task")
-	proto.RegisterType((*TaskSdkInfo)(nil), "protomsg.TaskSdkInfo")
-	proto.RegisterType((*CameraTask)(nil), "protomsg.CameraTask")
-	proto.RegisterType((*CameraTimerule)(nil), "protomsg.CameraTimerule")
-	proto.RegisterType((*DayCtl)(nil), "protomsg.DayCtl")
-	proto.RegisterType((*TimeRange)(nil), "protomsg.TimeRange")
-	proto.RegisterType((*Polygon)(nil), "protomsg.Polygon")
-	proto.RegisterType((*CameraTaskArgs)(nil), "protomsg.CameraTaskArgs")
-	proto.RegisterType((*TaskGroupArgs)(nil), "protomsg.TaskGroupArgs")
-	proto.RegisterType((*GroupRule)(nil), "protomsg.GroupRule")
-	proto.RegisterType((*Rule)(nil), "protomsg.Rule")
-	proto.RegisterType((*Sdk)(nil), "protomsg.Sdk")
-	proto.RegisterType((*SdkArg)(nil), "protomsg.SdkArg")
-	proto.RegisterType((*DbChangeMessage)(nil), "protomsg.DbChangeMessage")
-	proto.RegisterType((*CameraPolygon)(nil), "protomsg.CameraPolygon")
-}
-
-func init() { proto.RegisterFile("protomsg.proto", fileDescriptor_32de24555f916688) }
-
-var fileDescriptor_32de24555f916688 = []byte{
-	// 2155 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0xcd, 0x92, 0xdb, 0xc6,
-	0x11, 0x36, 0xff, 0x89, 0xe6, 0x8f, 0x28, 0x58, 0x96, 0xa0, 0x3f, 0x9b, 0x82, 0x94, 0x44, 0xa5,
-	0x8a, 0x75, 0x90, 0x75, 0x48, 0xe5, 0xb6, 0xd6, 0x96, 0x12, 0x56, 0xe4, 0x2d, 0x19, 0xbb, 0x56,
-	0x6e, 0x61, 0x0d, 0x31, 0xb3, 0xd4, 0x14, 0x41, 0x80, 0xc1, 0x80, 0x6b, 0xef, 0x21, 0xcf, 0x90,
-	0x6b, 0x5e, 0x21, 0xd7, 0x3c, 0x45, 0x4e, 0xa9, 0xdc, 0x72, 0xcc, 0x2d, 0x97, 0x54, 0xde, 0x21,
-	0xd5, 0xdd, 0x33, 0xf8, 0xa1, 0x56, 0xb2, 0xab, 0x5c, 0xbe, 0x4d, 0x7f, 0x3d, 0x18, 0xcc, 0x7c,
-	0xdd, 0xf3, 0x75, 0x03, 0x30, 0xdd, 0xe5, 0x59, 0x91, 0x6d, 0xcd, 0xfa, 0x29, 0x0d, 0xfc, 0xa1,
-	0xb3, 0xef, 0xc0, 0x4a, 0x18, 0xc5, 0x68, 0xf8, 0x35, 0x78, 0x67, 0xc2, 0x6c, 0x5e, 0x89, 0x95,
-	0x4a, 0xfc, 0x9b, 0xd0, 0x2f, 0x84, 0xd9, 0x68, 0x19, 0xb4, 0xe6, 0xad, 0xc7, 0x5e, 0x64, 0x2d,
-	0xc4, 0x8d, 0xdc, 0x68, 0x69, 0x82, 0xf6, 0xbc, 0x83, 0x38, 0x5b, 0xfe, 0x0d, 0xe8, 0xe9, 0x54,
-	0xaa, 0xef, 0x82, 0xce, 0xbc, 0xf5, 0xb8, 0x17, 0xb1, 0x11, 0xfe, 0xab, 0x05, 0x70, 0x2a, 0x37,
-	0x5f, 0x29, 0x63, 0xc4, 0x5a, 0xf9, 0x33, 0xe8, 0xc4, 0xe5, 0x8a, 0x38, 0xf4, 0x3f, 0x87, 0x01,
-	0x2e, 0x9c, 0x88, 0x55, 0xd0, 0x9e, 0xb7, 0x1e, 0x8f, 0x9e, 0x7d, 0xfc, 0xb4, 0xdc, 0x6b, 0xb9,
-	0x99, 0xc8, 0xcd, 0xf1, 0x7d, 0xe8, 0x4a, 0x51, 0x08, 0x7a, 0xc9, 0x38, 0xa2, 0xb1, 0xff, 0x6b,
-	0x18, 0xef, 0x54, 0x6e, 0xb2, 0x54, 0xc4, 0x85, 0xce, 0xd2, 0xa0, 0x4b, 0xeb, 0xdc, 0xac, 0xd6,
-	0x79, 0x5d, 0xf3, 0x46, 0x8d, 0xb9, 0xfe, 0xaf, 0x60, 0x74, 0xa1, 0xa4, 0xce, 0x18, 0x0c, 0x7a,
-	0x87, 0x8f, 0xbe, 0xa9, 0x9c, 0x26, 0xaa, 0x4f, 0x0d, 0xff, 0xd9, 0x87, 0x71, 0x7d, 0x61, 0x24,
-	0x46, 0x6f, 0xd7, 0xbf, 0x53, 0x97, 0x8e, 0x30, 0xb6, 0xfc, 0x39, 0x8c, 0x2e, 0xb4, 0x54, 0x59,
-	0xa4, 0xfe, 0x78, 0xb2, 0xdf, 0xd2, 0x29, 0xbd, 0xa8, 0x0e, 0xf9, 0x01, 0x0c, 0x8c, 0xdc, 0x9c,
-	0x5d, 0xee, 0x14, 0x9d, 0xcb, 0x8b, 0x9c, 0x89, 0x9e, 0x9d, 0x8e, 0x4f, 0xc4, 0x56, 0xd1, 0xa9,
-	0xbc, 0xc8, 0x99, 0xe8, 0x89, 0xb3, 0xb4, 0x50, 0x69, 0x41, 0x9b, 0xf6, 0x22, 0x67, 0xfa, 0xf7,
-	0x01, 0xe2, 0x64, 0x6f, 0x0a, 0x95, 0x2f, 0xb5, 0x0c, 0xfa, 0xe4, 0xf4, 0x2c, 0xb2, 0x90, 0x7e,
-	0xe8, 0xd8, 0x7a, 0xad, 0xe3, 0x6f, 0xf2, 0x24, 0x18, 0xd0, 0x84, 0x06, 0xe6, 0xdf, 0x81, 0x61,
-	0xfc, 0x56, 0xa4, 0x69, 0xb2, 0x90, 0xc1, 0x90, 0xfc, 0xa5, 0x8d, 0xbe, 0x44, 0x6f, 0xd4, 0xb1,
-	0x28, 0x54, 0xe0, 0xb1, 0xcf, 0xd9, 0xfe, 0xa7, 0x00, 0x3b, 0x1d, 0x1f, 0x49, 0x99, 0x2b, 0x63,
-	0x02, 0x20, 0x6f, 0x0d, 0xf1, 0xef, 0x81, 0xb7, 0xd3, 0xf1, 0x57, 0xe2, 0x3b, 0x7c, 0xf1, 0x88,
-	0x77, 0x56, 0x02, 0xf6, 0xb0, 0xb4, 0xf0, 0xb8, 0x3c, 0x2c, 0xad, 0x3b, 0x87, 0xd1, 0x4e, 0xc7,
-	0xaf, 0xb2, 0x58, 0x24, 0xf8, 0xe4, 0x84, 0x29, 0xac, 0x41, 0xb8, 0x2b, 0x6d, 0x8e, 0x55, 0xa2,
-	0x0a, 0x15, 0x4c, 0x79, 0x57, 0xce, 0xc6, 0x75, 0x71, 0x87, 0xaf, 0x55, 0x1e, 0x5c, 0xe3, 0x75,
-	0xad, 0x89, 0x4f, 0x61, 0xfa, 0x13, 0xbf, 0x33, 0x7e, 0xca, 0xd9, 0xe8, 0xa3, 0x18, 0x61, 0xcc,
-	0xae, 0xb3, 0xcf, 0xd9, 0x78, 0xce, 0x38, 0x4b, 0x12, 0xc5, 0xf9, 0xe6, 0xf3, 0x39, 0x2b, 0x04,
-	0x9f, 0xdd, 0xe9, 0xf8, 0x74, 0x8b, 0x9b, 0xfd, 0x98, 0x9f, 0x75, 0x36, 0x3e, 0x8b, 0x57, 0xe3,
-	0x42, 0xc7, 0x4a, 0xcb, 0xe0, 0x06, 0x3f, 0x5b, 0x21, 0x94, 0x46, 0x32, 0x16, 0xb9, 0x0c, 0x3e,
-	0xb1, 0x69, 0x44, 0x96, 0x7f, 0x17, 0x3c, 0x11, 0x6f, 0x96, 0x22, 0x11, 0xf9, 0x36, 0xb8, 0xc9,
-	0x8b, 0x8a, 0x78, 0x73, 0x84, 0x36, 0xbd, 0x90, 0x02, 0xb8, 0x90, 0xc1, 0x2d, 0xfb, 0x42, 0x6b,
-	0xfb, 0x53, 0x68, 0x6b, 0x19, 0x04, 0x84, 0xb6, 0x35, 0x25, 0x80, 0x7b, 0x5d, 0x8a, 0x07, 0xbf,
-	0xcd, 0x09, 0x50, 0xc7, 0x90, 0xf0, 0x73, 0x11, 0xab, 0x97, 0x4a, 0x14, 0xfb, 0x5c, 0x05, 0x77,
-	0x98, 0xf0, 0x1a, 0x44, 0x21, 0xe1, 0x37, 0x98, 0xdf, 0xee, 0x57, 0xc1, 0x5d, 0x1b, 0x92, 0x0a,
-	0x42, 0xda, 0x89, 0xb0, 0xc5, 0x2e, 0xb8, 0xc7, 0xb4, 0x5b, 0xd3, 0x49, 0xcb, 0x42, 0x06, 0xf7,
-	0x2b, 0x69, 0x59, 0xc8, 0xf0, 0x1f, 0x6d, 0x98, 0xf2, 0x95, 0xfa, 0x52, 0x18, 0xb5, 0x48, 0xcf,
-	0xb3, 0xea, 0x35, 0x27, 0x62, 0x2b, 0x94, 0xbd, 0x59, 0x75, 0x88, 0xf8, 0x3a, 0x7e, 0x81, 0x7c,
-	0xb5, 0x2d, 0x5f, 0x64, 0x21, 0xbe, 0x56, 0xa9, 0x54, 0xb9, 0xbd, 0x53, 0xd6, 0x7a, 0x27, 0xff,
-	0xbb, 0x57, 0xe4, 0x7f, 0x2d, 0x63, 0x7a, 0xcd, 0x8c, 0x09, 0x50, 0xae, 0x56, 0x89, 0x5a, 0xb8,
-	0x9b, 0xe5, 0x4c, 0x5c, 0x77, 0x9b, 0xa5, 0xba, 0xc8, 0xf2, 0x57, 0xea, 0x42, 0x95, 0xf7, 0xaa,
-	0x8e, 0x35, 0xc2, 0x34, 0x3c, 0x08, 0x13, 0xfa, 0xde, 0x66, 0xa9, 0xc2, 0x7c, 0xb3, 0xf7, 0xca,
-	0xd9, 0xf5, 0xcb, 0x0e, 0xcd, 0xcb, 0x7e, 0x0f, 0x3c, 0xda, 0x00, 0xa5, 0xb0, 0xbd, 0x51, 0x25,
-	0x10, 0xfe, 0x6d, 0x08, 0xe3, 0xba, 0x82, 0x51, 0x2e, 0x1c, 0x5b, 0x16, 0xdb, 0xfa, 0xf8, 0x47,
-	0x69, 0x53, 0x45, 0x70, 0xb7, 0x41, 0x70, 0x4d, 0xb3, 0x7a, 0xef, 0xd5, 0xac, 0x7e, 0xf3, 0x18,
-	0x3f, 0xa5, 0x28, 0xf9, 0xd0, 0xcd, 0x45, 0xac, 0x2c, 0x73, 0x34, 0x26, 0xa1, 0x8a, 0xb5, 0x13,
-	0xaa, 0x91, 0x15, 0xaa, 0x12, 0x69, 0x0a, 0xd5, 0xf8, 0x50, 0xa8, 0x66, 0xd0, 0x11, 0x6b, 0x65,
-	0x65, 0x08, 0x87, 0x75, 0xe9, 0x9a, 0x7e, 0x50, 0xba, 0xae, 0x7d, 0x58, 0xba, 0x66, 0x07, 0xd2,
-	0xd5, 0x08, 0xef, 0x75, 0xaa, 0xb7, 0x15, 0xd0, 0x90, 0x28, 0xff, 0x40, 0xa2, 0xbe, 0x47, 0x82,
-	0x8c, 0xde, 0x26, 0x8a, 0x13, 0xd5, 0x4a, 0x50, 0x85, 0xd4, 0x25, 0x6a, 0xe1, 0x64, 0xa8, 0x86,
-	0xf0, 0x95, 0x23, 0x89, 0xba, 0xc9, 0x2d, 0x00, 0x5b, 0x07, 0x2a, 0xd4, 0x69, 0xa4, 0xf7, 0x1c,
-	0x46, 0x2b, 0x25, 0xf6, 0xc5, 0x25, 0xbf, 0x94, 0xe5, 0xa8, 0x0e, 0xd5, 0x75, 0xe9, 0xe4, 0x0a,
-	0x5d, 0x3a, 0xf9, 0xe9, 0x75, 0xe9, 0x0e, 0x94, 0x8a, 0x6a, 0x95, 0xa9, 0x52, 0xd8, 0x7b, 0x50,
-	0xd5, 0xd0, 0xe0, 0xd3, 0xc3, 0xa2, 0x5a, 0x29, 0xda, 0x67, 0x75, 0x45, 0xc3, 0x15, 0x71, 0x44,
-	0xe7, 0x99, 0xf3, 0x8a, 0xce, 0xf6, 0x9f, 0x73, 0xf1, 0xd1, 0xe9, 0x79, 0x16, 0x3c, 0x98, 0x77,
-	0x1e, 0x8f, 0x9e, 0x05, 0x87, 0x2d, 0x8b, 0x93, 0xc1, 0xa8, 0x9c, 0x79, 0x50, 0x7a, 0xc2, 0x77,
-	0x4a, 0xcf, 0xcf, 0x61, 0x2a, 0xd6, 0xea, 0x58, 0x99, 0x38, 0xd7, 0x3b, 0x9a, 0xf3, 0x90, 0xe6,
-	0x1c, 0xa0, 0x75, 0x21, 0x7b, 0x44, 0xa1, 0x72, 0x66, 0xf8, 0x12, 0xba, 0x47, 0xb9, 0x12, 0xb6,
-	0x6e, 0xb4, 0xa8, 0x9b, 0xc3, 0xba, 0x81, 0xd1, 0x15, 0xb9, 0x4a, 0x0b, 0xcd, 0x52, 0xdb, 0x8b,
-	0x4a, 0x1b, 0xef, 0x18, 0xd5, 0x12, 0x96, 0x08, 0x1a, 0x87, 0x7f, 0x6f, 0x43, 0xff, 0x85, 0xd8,
-	0xaa, 0xbc, 0xbe, 0x14, 0x97, 0x20, 0x37, 0xbd, 0x5d, 0x4d, 0x47, 0xac, 0x70, 0x2a, 0xd3, 0x8b,
-	0x68, 0x8c, 0x98, 0x90, 0xd2, 0x09, 0x0c, 0x8d, 0x91, 0x6a, 0x91, 0x2b, 0xa1, 0x25, 0xa9, 0x4b,
-	0x2f, 0xb2, 0x16, 0x06, 0x28, 0xc9, 0xd2, 0xb5, 0x2e, 0xf6, 0x52, 0x91, 0xbc, 0xb4, 0xa3, 0x0a,
-	0x20, 0x81, 0x10, 0x05, 0x3b, 0x07, 0xe4, 0x2c, 0x6d, 0x12, 0x88, 0xc2, 0xec, 0xac, 0xa8, 0xd0,
-	0x98, 0x76, 0xbc, 0xb3, 0x52, 0xd2, 0xd6, 0x3b, 0x9c, 0xb3, 0xcb, 0x72, 0x96, 0xdf, 0x5e, 0x44,
-	0x63, 0x5c, 0x73, 0x6f, 0x54, 0x9e, 0x56, 0xd2, 0x5b, 0xda, 0x4c, 0x96, 0x31, 0xdf, 0x66, 0xb9,
-	0xb4, 0xfa, 0x51, 0xda, 0xd8, 0x29, 0xaf, 0x72, 0x91, 0x4a, 0x2b, 0x20, 0x6c, 0xe0, 0x13, 0xb9,
-	0x32, 0x2a, 0xbf, 0x50, 0xd2, 0x75, 0x30, 0xce, 0x0e, 0x63, 0xb8, 0xce, 0x4c, 0x1e, 0xa5, 0x12,
-	0x9b, 0x62, 0x2a, 0x8d, 0x8f, 0xa1, 0x1f, 0x13, 0x48, 0xc4, 0x8e, 0x9e, 0xcd, 0xaa, 0xec, 0xe1,
-	0xc9, 0x91, 0xf5, 0xfb, 0x8f, 0xa0, 0x87, 0x59, 0xc7, 0x1d, 0xfb, 0xe8, 0xd9, 0xb4, 0xd9, 0x61,
-	0x47, 0xec, 0x0c, 0xff, 0xdd, 0x82, 0x2e, 0xda, 0xef, 0xed, 0xfc, 0x6d, 0x32, 0xd7, 0x22, 0x57,
-	0xda, 0xd8, 0x9d, 0xc4, 0xb9, 0x12, 0x85, 0x5a, 0x8a, 0xc2, 0x66, 0xc1, 0x90, 0x81, 0xa3, 0xa2,
-	0xe6, 0x5c, 0x5d, 0xda, 0x58, 0x5a, 0xe7, 0x97, 0x97, 0xe8, 0xdc, 0xef, 0xa4, 0x7d, 0xb2, 0x67,
-	0x69, 0x24, 0xe0, 0xa8, 0xc0, 0xad, 0xa8, 0x14, 0xf3, 0x92, 0x22, 0x3a, 0x8c, 0xac, 0xe5, 0xdf,
-	0x46, 0xcd, 0xb4, 0xbd, 0xd0, 0x80, 0x3c, 0x03, 0x6d, 0xf8, 0xa2, 0xde, 0x86, 0xa1, 0x54, 0xc9,
-	0xf2, 0x3c, 0x11, 0x6b, 0x8a, 0xe8, 0x30, 0x1a, 0x48, 0x95, 0xbc, 0x4c, 0xc4, 0x3a, 0x3c, 0x83,
-	0x11, 0x1e, 0xf0, 0x54, 0x32, 0x81, 0x21, 0x74, 0x71, 0xff, 0x96, 0xbe, 0x43, 0x56, 0xc8, 0xe7,
-	0x3f, 0x80, 0xae, 0x91, 0x25, 0x73, 0x93, 0x6a, 0xce, 0xa9, 0xdc, 0x44, 0xe4, 0x0a, 0xff, 0xd3,
-	0x06, 0x60, 0xc2, 0x89, 0xbd, 0xc3, 0x5c, 0xc7, 0xc3, 0x93, 0x77, 0xa9, 0x5d, 0x8b, 0x32, 0x64,
-	0x60, 0x21, 0xfd, 0x5b, 0xfc, 0xf5, 0x83, 0xae, 0x4e, 0x43, 0x38, 0x3e, 0x07, 0xaf, 0xd0, 0x5b,
-	0xb5, 0xcc, 0xf7, 0x09, 0xb6, 0xfe, 0x9d, 0x66, 0x7c, 0x8f, 0xc5, 0xe5, 0x8b, 0x22, 0x89, 0x86,
-	0x38, 0x25, 0xda, 0x27, 0x0a, 0x7b, 0xfe, 0x5c, 0x89, 0xb8, 0xe0, 0xf9, 0xcc, 0xa2, 0x47, 0x08,
-	0xb9, 0x1f, 0xc0, 0x98, 0xdd, 0x2c, 0xa5, 0xb6, 0xfa, 0x8e, 0x08, 0x3b, 0x26, 0xa8, 0x41, 0xdb,
-	0xa0, 0x41, 0x9b, 0xff, 0x19, 0x8c, 0x6c, 0x84, 0x6a, 0xa4, 0x02, 0x43, 0x34, 0xa1, 0x8a, 0x92,
-	0xd7, 0x88, 0x92, 0x0f, 0x5d, 0x53, 0xbb, 0x34, 0x38, 0xc6, 0x13, 0x6b, 0xb3, 0x3c, 0xdf, 0x27,
-	0xfc, 0x01, 0x30, 0x8c, 0xfa, 0xda, 0xbc, 0xdc, 0x27, 0x89, 0x3f, 0x87, 0x71, 0xa2, 0xd3, 0xcd,
-	0xd2, 0xf1, 0xc1, 0xb7, 0x06, 0x10, 0x3b, 0xe3, 0xf6, 0xf0, 0x6b, 0x98, 0x5a, 0x9e, 0xf5, 0x56,
-	0xe1, 0x41, 0x7f, 0x90, 0xae, 0xdc, 0xad, 0x33, 0x69, 0x33, 0xd3, 0xf1, 0x16, 0x9e, 0x40, 0x9f,
-	0xb9, 0xc4, 0x9a, 0x2e, 0xc5, 0xa5, 0x95, 0x3b, 0x1c, 0xfa, 0xcf, 0x00, 0xf8, 0x41, 0x91, 0xae,
-	0x95, 0x4d, 0x80, 0xfa, 0xc7, 0x29, 0xae, 0x81, 0xae, 0x88, 0xd6, 0xa7, 0x61, 0xf8, 0x05, 0x78,
-	0x25, 0x8e, 0xf7, 0xdc, 0x14, 0x22, 0x2f, 0xec, 0x06, 0xd9, 0xc0, 0x17, 0xa9, 0xd4, 0x65, 0x02,
-	0x0e, 0xc3, 0x37, 0x30, 0x78, 0x9d, 0x25, 0x97, 0xeb, 0x2c, 0xfd, 0x41, 0x07, 0xfa, 0x05, 0xf4,
-	0x77, 0x99, 0x4e, 0x0b, 0x13, 0x74, 0x68, 0x4f, 0xd7, 0x6a, 0x55, 0x03, 0xf1, 0xc8, 0xba, 0xc3,
-	0xb8, 0xe4, 0x4b, 0x98, 0xcd, 0x51, 0xbe, 0x36, 0xcd, 0x5c, 0x6c, 0x1d, 0xe4, 0xe2, 0x73, 0xec,
-	0x35, 0xcc, 0x66, 0x29, 0xf2, 0xb5, 0xcb, 0xf7, 0x5b, 0xcd, 0x3b, 0xf1, 0x9b, 0x3c, 0xdb, 0xef,
-	0x70, 0x21, 0xbe, 0xf8, 0x38, 0x0a, 0xff, 0x00, 0x93, 0x86, 0xab, 0x9e, 0xd2, 0xad, 0x46, 0x4a,
-	0x3f, 0x87, 0xd1, 0x1a, 0x67, 0x51, 0x24, 0xcc, 0xbb, 0x84, 0xd2, 0x12, 0x18, 0x95, 0x08, 0xd6,
-	0x6e, 0x68, 0xc2, 0x57, 0xe0, 0x95, 0x0e, 0x4c, 0x52, 0x5e, 0xa2, 0x5c, 0x7c, 0x40, 0xf6, 0x42,
-	0xa2, 0xc6, 0xd5, 0xd7, 0xad, 0xdd, 0x66, 0x5a, 0x92, 0x9d, 0xe1, 0x7f, 0xdb, 0xd0, 0x8d, 0xae,
-	0xca, 0x9c, 0x47, 0x30, 0xb5, 0xcc, 0xb8, 0xcd, 0x33, 0xe5, 0xe3, 0xb8, 0x64, 0x70, 0x71, 0x70,
-	0x97, 0x3b, 0x07, 0xfc, 0xdd, 0x07, 0xd8, 0x71, 0x18, 0xd1, 0xdb, 0xb5, 0x4d, 0x23, 0x23, 0x0b,
-	0xe9, 0x7f, 0x42, 0xff, 0x4d, 0x96, 0xb6, 0x6e, 0x61, 0x3a, 0xc8, 0x0d, 0x7d, 0x36, 0x4c, 0x10,
-	0x16, 0xf9, 0x7a, 0x29, 0x12, 0x2d, 0x8c, 0xbb, 0x9b, 0x46, 0x22, 0xbf, 0x47, 0x08, 0xa1, 0xf0,
-	0x62, 0x07, 0x2f, 0x8a, 0x2c, 0xb7, 0x9d, 0x71, 0x69, 0xfb, 0x0f, 0x61, 0xe2, 0xc6, 0x4b, 0xaa,
-	0x9f, 0x5c, 0xc5, 0xc6, 0x0e, 0xa4, 0x56, 0xbd, 0xf6, 0x92, 0x0b, 0x91, 0xec, 0x5d, 0x8f, 0x6c,
-	0x5f, 0xf2, 0x06, 0xa1, 0x2b, 0x2f, 0x6b, 0x08, 0x13, 0xe4, 0x6d, 0xf9, 0xad, 0x2e, 0xde, 0x2e,
-	0x77, 0xb9, 0x2b, 0x73, 0x23, 0x04, 0x7f, 0xaf, 0x8b, 0xb7, 0xaf, 0xf3, 0x66, 0x4c, 0xc6, 0x8d,
-	0x98, 0x84, 0x7f, 0x6d, 0x43, 0xe7, 0x54, 0xbe, 0x2b, 0x89, 0xb7, 0x61, 0x88, 0xdb, 0xa1, 0xed,
-	0xb6, 0x9b, 0x1f, 0x15, 0xd6, 0x55, 0x6b, 0x26, 0xd0, 0x45, 0xfd, 0xd2, 0x23, 0xe8, 0x52, 0x6a,
-	0xbe, 0xa3, 0x86, 0xa7, 0x74, 0x8a, 0x88, 0xbc, 0x78, 0x0c, 0x1d, 0xdb, 0x3f, 0x39, 0x5e, 0x44,
-	0x63, 0xbc, 0x72, 0xfb, 0x3c, 0xb1, 0xcc, 0xe2, 0x10, 0x25, 0xcd, 0x56, 0x24, 0xbc, 0xbb, 0x96,
-	0x54, 0x60, 0x08, 0x2f, 0x70, 0x4d, 0xf3, 0x68, 0x02, 0x93, 0x6a, 0x35, 0x8f, 0x26, 0x34, 0x6a,
-	0x9a, 0x77, 0x50, 0xd3, 0x2a, 0x41, 0x84, 0xc3, 0xb2, 0x55, 0x8a, 0xec, 0x88, 0x78, 0x2e, 0x6b,
-	0xd3, 0x5f, 0x5a, 0xd0, 0xe7, 0x83, 0xa0, 0x6e, 0x70, 0x2a, 0x58, 0xdd, 0x20, 0xe3, 0x7b, 0x7b,
-	0x26, 0xaf, 0xea, 0x99, 0xb6, 0x7b, 0x53, 0x50, 0x02, 0x0e, 0x23, 0x1a, 0x23, 0xb6, 0x4f, 0xb5,
-	0x2b, 0xaf, 0x34, 0xc6, 0xb7, 0xb0, 0xb2, 0x31, 0x2d, 0x6c, 0x94, 0x59, 0x30, 0xa8, 0xb2, 0x20,
-	0xfc, 0x73, 0x0b, 0xae, 0x1d, 0xaf, 0x5e, 0xbc, 0xc5, 0x09, 0xee, 0x47, 0xde, 0x2f, 0xb1, 0xa5,
-	0xc0, 0x03, 0xe2, 0x1e, 0xa7, 0xf5, 0x3f, 0x66, 0x67, 0x08, 0xf3, 0x64, 0x19, 0xf1, 0x24, 0x9b,
-	0x00, 0xed, 0x32, 0x01, 0x9e, 0x40, 0xdf, 0xfe, 0xab, 0xeb, 0xd0, 0xe3, 0x7e, 0xad, 0xb4, 0xad,
-	0x8e, 0xf8, 0x3f, 0x9d, 0x9d, 0x41, 0x01, 0xc5, 0x16, 0xd9, 0xf6, 0x80, 0x38, 0x0e, 0xff, 0xd7,
-	0x82, 0x09, 0x4b, 0xdb, 0xfb, 0x84, 0xf3, 0x83, 0x55, 0xf7, 0x8a, 0x6e, 0x95, 0xbe, 0xe0, 0x78,
-	0xad, 0xf2, 0x4f, 0x9b, 0x5d, 0xfa, 0x01, 0x8c, 0x8b, 0x5c, 0xaf, 0xd7, 0x2a, 0x5f, 0x26, 0x3a,
-	0x75, 0xd5, 0x75, 0x64, 0xb1, 0x57, 0x3a, 0x55, 0xfe, 0xcf, 0x60, 0x2a, 0x75, 0xce, 0x1d, 0x38,
-	0x4f, 0x62, 0x52, 0x27, 0x25, 0x4a, 0xd3, 0x5c, 0xb8, 0x06, 0xb5, 0x70, 0x3d, 0x84, 0x89, 0x54,
-	0xe7, 0x2a, 0x8d, 0xd5, 0xd2, 0x14, 0xf8, 0xfd, 0x38, 0x24, 0xe6, 0xc7, 0x16, 0x3c, 0x45, 0xec,
-	0xc9, 0x9f, 0x60, 0x5c, 0xa7, 0xd5, 0x1f, 0xc3, 0xf0, 0x6c, 0xc9, 0x04, 0xcc, 0x3e, 0xf2, 0x67,
-	0x30, 0x76, 0x16, 0xea, 0xd4, 0xac, 0xe5, 0xdf, 0x80, 0x59, 0x1d, 0x41, 0x5d, 0x9e, 0xb5, 0x7d,
-	0x80, 0xfe, 0xd9, 0x92, 0x66, 0x74, 0xfc, 0x09, 0x78, 0x3c, 0x3e, 0x95, 0x9b, 0x59, 0xd7, 0xbf,
-	0x0e, 0x93, 0xd2, 0x44, 0x7d, 0x9c, 0xf5, 0x7c, 0x0f, 0x7a, 0x67, 0x4b, 0xf4, 0xf6, 0x9f, 0x3c,
-	0x85, 0xa1, 0x0b, 0x0b, 0x2e, 0xb2, 0x48, 0x8d, 0xca, 0x8b, 0xd9, 0x47, 0x38, 0xfe, 0x86, 0x6e,
-	0xc4, 0xac, 0x85, 0x63, 0xfe, 0x66, 0x9d, 0xb5, 0x57, 0x7d, 0x8a, 0xe6, 0x17, 0xff, 0x0f, 0x00,
-	0x00, 0xff, 0xff, 0x86, 0x3c, 0x56, 0x04, 0x76, 0x16, 0x00, 0x00,
-}
diff --git a/protomsg.proto b/protomsg.proto
index da3ef59..11fa01e 100644
--- a/protomsg.proto
+++ b/protomsg.proto
@@ -3,109 +3,27 @@
 
 package protomsg;
 
+message SdkmsgWithTask {
+    string sdkid = 1;
+    string sdktype = 2;
+    string sdkName = 3;
+    bytes  sdkdata = 4;
+}
+
 message TaskLabel {
 	string taskid = 1;
-	repeated string sdkids = 2;
-	int32 index = 3 ;
+    string taskname = 2;
+	repeated SdkmsgWithTask sdkinfos = 3;
+	int32 index = 4 ;
 }
 
 //SdkMessage struct test
 message SdkMessage {
-	string cid = 1;
-	TaskLabel tasklab = 2;
-	bytes	data =3 ;
-
-    Personaction personaction =4;
-    Vediopersons vedioperson = 5;
+	string    cid = 1;
+    string    caddr = 2;
+	TaskLabel tasklab =3 ;
+	bytes	  data = 4;
 }
-
-message Personaction{
-    string imgKey       = 1; 
-    string videoReqNum  = 2;
-    string sdkType      = 3;
-    string picName      = 4;
-    string content      = 5;
-    string cluster_id   = 6;
-    string personPicUrl = 7;
-    string channlId     = 8;
-    string likeDate     = 9;
-
-    string picAddress   = 10;
-    string picMaxUrl    = 11;
-    string picDate      = 12;
-    string picLocalUrl  = 13;
-    string isDelete     = 14;
-    string likePer      = 15;
-    string baseName     = 16;
-    string videoNum     = 17;
-    string collection   = 18;
-    string picSmUrl     = 19;
-    
-    string indeviceid   = 20;
-    string idcard       = 21;
-    string ack_alarm    = 22;
-    string personId     = 23;
-    string id           = 24;
-    string indevicename = 25;
-    string faceFeature  = 26;
-    string personIsHub  = 27;
-    string videoIp      = 28;
-    string taskId       = 29;
-}
-
-message PersonBaseInfo {
-    string personNamae  = 1;
-    string iDCard       = 2;
-    string gender       = 3;
-    string personPicUrl = 4;
-    string likePer      = 5;
-    string tableId      = 6;
-    string monitorLevel = 7;
-    string personId     = 8;
-    string phoneNum     = 9;
-    string content      = 10;
-    string tableName    = 11;
-}
-
-message Vediopersons {
-    string iD           = 1;
-    string videoReqNum  = 2;
-    string sdkType=3;
-    string gender=4;
-    string picName=5;
-    string content=6;
-    string personPicUrl=7;
-    string channlId=8;
-    string likeDate=9;
-    string race=10;
-    string pciAddress=11;
-    string picMaxUrl=12;
-    string age=13;
-    string picDate=14;
-    string picLocalUrl=15;
-    string isDelete=16;
-    repeated string tableName=17;
-    string videoNum=18;
-    string picSmUrl=19;
-    string simleLevel=20;
-    string indeviceId=21;
-    repeated string iDcard=22;
-    repeated string personId=23;
-    string beautyLevel=24;
-    string indeviceName=25;
-    string faceFeature=26;
-    string personIsHub=27;
-    string videoIp=28;
-    string ackAlarm=29;
-    string clusterId=30;
-    string taskId=31;
-    string taskName=32;
-    repeated PersonBaseInfo baseinfo =33;
-    string collection=34;
-    string ageDescription=35;
-    repeated string tableId=36;
-}
-
 
 //Area缁撴瀯浣�
 message Area{
@@ -288,4 +206,3 @@
     string type = 7;
     int32 defence_state = 8;
 }
-
diff --git a/sdk.pb.go b/sdk.pb.go
index 4914303..fc9c4ac 100644
--- a/sdk.pb.go
+++ b/sdk.pb.go
@@ -496,17 +496,67 @@
 }
 
 // sdk face property
-type ParamFacePos struct {
+type ResultFaceDetect struct {
 	Pos    *FacePos    `protobuf:"bytes,1,opt,name=pos,proto3" json:"pos,omitempty"`
 	Result *ThftResult `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"`
-	Img    *Image      `protobuf:"bytes,3,opt,name=img,proto3" json:"img,omitempty"`
+}
+
+func (m *ResultFaceDetect) Reset()         { *m = ResultFaceDetect{} }
+func (m *ResultFaceDetect) String() string { return proto.CompactTextString(m) }
+func (*ResultFaceDetect) ProtoMessage()    {}
+func (*ResultFaceDetect) Descriptor() ([]byte, []int) {
+	return fileDescriptor_70decb0fb6f436df, []int{6}
+}
+func (m *ResultFaceDetect) XXX_Unmarshal(b []byte) error {
+	return m.Unmarshal(b)
+}
+func (m *ResultFaceDetect) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	if deterministic {
+		return xxx_messageInfo_ResultFaceDetect.Marshal(b, m, deterministic)
+	} else {
+		b = b[:cap(b)]
+		n, err := m.MarshalTo(b)
+		if err != nil {
+			return nil, err
+		}
+		return b[:n], nil
+	}
+}
+func (m *ResultFaceDetect) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ResultFaceDetect.Merge(m, src)
+}
+func (m *ResultFaceDetect) XXX_Size() int {
+	return m.Size()
+}
+func (m *ResultFaceDetect) XXX_DiscardUnknown() {
+	xxx_messageInfo_ResultFaceDetect.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ResultFaceDetect proto.InternalMessageInfo
+
+func (m *ResultFaceDetect) GetPos() *FacePos {
+	if m != nil {
+		return m.Pos
+	}
+	return nil
+}
+
+func (m *ResultFaceDetect) GetResult() *ThftResult {
+	if m != nil {
+		return m.Result
+	}
+	return nil
+}
+
+type ParamFacePos struct {
+	Faces []*ResultFaceDetect `protobuf:"bytes,1,rep,name=faces,proto3" json:"faces,omitempty"`
 }
 
 func (m *ParamFacePos) Reset()         { *m = ParamFacePos{} }
 func (m *ParamFacePos) String() string { return proto.CompactTextString(m) }
 func (*ParamFacePos) ProtoMessage()    {}
 func (*ParamFacePos) Descriptor() ([]byte, []int) {
-	return fileDescriptor_70decb0fb6f436df, []int{6}
+	return fileDescriptor_70decb0fb6f436df, []int{7}
 }
 func (m *ParamFacePos) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -535,23 +585,53 @@
 
 var xxx_messageInfo_ParamFacePos proto.InternalMessageInfo
 
-func (m *ParamFacePos) GetPos() *FacePos {
+func (m *ParamFacePos) GetFaces() []*ResultFaceDetect {
 	if m != nil {
-		return m.Pos
+		return m.Faces
 	}
 	return nil
 }
 
-func (m *ParamFacePos) GetResult() *ThftResult {
-	if m != nil {
-		return m.Result
-	}
-	return nil
+type ParamFaceFeature struct {
+	Feats [][]byte `protobuf:"bytes,1,rep,name=feats,proto3" json:"feats,omitempty"`
 }
 
-func (m *ParamFacePos) GetImg() *Image {
+func (m *ParamFaceFeature) Reset()         { *m = ParamFaceFeature{} }
+func (m *ParamFaceFeature) String() string { return proto.CompactTextString(m) }
+func (*ParamFaceFeature) ProtoMessage()    {}
+func (*ParamFaceFeature) Descriptor() ([]byte, []int) {
+	return fileDescriptor_70decb0fb6f436df, []int{8}
+}
+func (m *ParamFaceFeature) XXX_Unmarshal(b []byte) error {
+	return m.Unmarshal(b)
+}
+func (m *ParamFaceFeature) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	if deterministic {
+		return xxx_messageInfo_ParamFaceFeature.Marshal(b, m, deterministic)
+	} else {
+		b = b[:cap(b)]
+		n, err := m.MarshalTo(b)
+		if err != nil {
+			return nil, err
+		}
+		return b[:n], nil
+	}
+}
+func (m *ParamFaceFeature) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ParamFaceFeature.Merge(m, src)
+}
+func (m *ParamFaceFeature) XXX_Size() int {
+	return m.Size()
+}
+func (m *ParamFaceFeature) XXX_DiscardUnknown() {
+	xxx_messageInfo_ParamFaceFeature.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ParamFaceFeature proto.InternalMessageInfo
+
+func (m *ParamFaceFeature) GetFeats() [][]byte {
 	if m != nil {
-		return m.Img
+		return m.Feats
 	}
 	return nil
 }
@@ -566,7 +646,7 @@
 func (m *ParamFaceCompare) String() string { return proto.CompactTextString(m) }
 func (*ParamFaceCompare) ProtoMessage()    {}
 func (*ParamFaceCompare) Descriptor() ([]byte, []int) {
-	return fileDescriptor_70decb0fb6f436df, []int{7}
+	return fileDescriptor_70decb0fb6f436df, []int{9}
 }
 func (m *ParamFaceCompare) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -612,14 +692,13 @@
 // sdk yolo detect
 type ParamYoloObj struct {
 	Infos []*ObjInfo `protobuf:"bytes,1,rep,name=infos,proto3" json:"infos,omitempty"`
-	Img   *Image     `protobuf:"bytes,2,opt,name=img,proto3" json:"img,omitempty"`
 }
 
 func (m *ParamYoloObj) Reset()         { *m = ParamYoloObj{} }
 func (m *ParamYoloObj) String() string { return proto.CompactTextString(m) }
 func (*ParamYoloObj) ProtoMessage()    {}
 func (*ParamYoloObj) Descriptor() ([]byte, []int) {
-	return fileDescriptor_70decb0fb6f436df, []int{8}
+	return fileDescriptor_70decb0fb6f436df, []int{10}
 }
 func (m *ParamYoloObj) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -655,13 +734,6 @@
 	return nil
 }
 
-func (m *ParamYoloObj) GetImg() *Image {
-	if m != nil {
-		return m.Img
-	}
-	return nil
-}
-
 func init() {
 	proto.RegisterType((*Image)(nil), "protomsg.Image")
 	proto.RegisterType((*FaceAngle)(nil), "protomsg.FaceAngle")
@@ -669,7 +741,9 @@
 	proto.RegisterType((*FacePos)(nil), "protomsg.FacePos")
 	proto.RegisterType((*FaceInfo)(nil), "protomsg.FaceInfo")
 	proto.RegisterType((*ObjInfo)(nil), "protomsg.ObjInfo")
+	proto.RegisterType((*ResultFaceDetect)(nil), "protomsg.ResultFaceDetect")
 	proto.RegisterType((*ParamFacePos)(nil), "protomsg.ParamFacePos")
+	proto.RegisterType((*ParamFaceFeature)(nil), "protomsg.ParamFaceFeature")
 	proto.RegisterType((*ParamFaceCompare)(nil), "protomsg.ParamFaceCompare")
 	proto.RegisterType((*ParamYoloObj)(nil), "protomsg.ParamYoloObj")
 }
@@ -677,45 +751,46 @@
 func init() { proto.RegisterFile("sdk.proto", fileDescriptor_70decb0fb6f436df) }
 
 var fileDescriptor_70decb0fb6f436df = []byte{
-	// 598 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x54, 0xcd, 0x6e, 0xd3, 0x40,
-	0x10, 0xae, 0xed, 0xda, 0x69, 0xa6, 0x15, 0x94, 0xa5, 0x42, 0x16, 0x07, 0x2b, 0x18, 0x44, 0x83,
-	0x80, 0x22, 0xc2, 0x1d, 0x09, 0x28, 0x48, 0x91, 0x80, 0x46, 0x2b, 0x38, 0xc0, 0x6d, 0xed, 0xac,
-	0x7f, 0x8a, 0xed, 0x35, 0xf6, 0x46, 0xc5, 0x77, 0x1e, 0x80, 0xc7, 0xe2, 0xc0, 0xa1, 0x47, 0x8e,
-	0x28, 0x11, 0xef, 0x81, 0x76, 0xbc, 0x4e, 0x52, 0x91, 0x9e, 0xb8, 0x72, 0xca, 0x7c, 0x33, 0x5f,
-	0xe6, 0xe7, 0x9b, 0x1d, 0x43, 0xbf, 0x9e, 0x7e, 0x3a, 0x2a, 0x2b, 0x21, 0x05, 0xd9, 0xc1, 0x9f,
-	0xbc, 0x8e, 0x6f, 0x42, 0xc0, 0x6a, 0xde, 0x7a, 0xfd, 0x31, 0xd8, 0xe3, 0x9c, 0xc5, 0x9c, 0x1c,
-	0x80, 0x7d, 0x96, 0x4e, 0x65, 0xe2, 0x1a, 0x03, 0x63, 0x68, 0xd3, 0x16, 0x90, 0x1b, 0xe0, 0x24,
-	0x3c, 0x8d, 0x13, 0xe9, 0x9a, 0xe8, 0xd6, 0x88, 0x10, 0xd8, 0x9e, 0x32, 0xc9, 0x5c, 0x6b, 0x60,
-	0x0c, 0xf7, 0x28, 0xda, 0x7e, 0x0c, 0xfd, 0x57, 0x2c, 0xe4, 0xcf, 0x8a, 0x38, 0xe3, 0x64, 0x1f,
-	0xac, 0x86, 0x9d, 0xe9, 0x64, 0xca, 0x54, 0x05, 0xca, 0x54, 0x86, 0x89, 0xce, 0xd4, 0x02, 0x95,
-	0xa8, 0x12, 0x59, 0x86, 0x89, 0x6c, 0x8a, 0x36, 0xf1, 0x00, 0x42, 0x51, 0x44, 0xe9, 0x94, 0x17,
-	0x21, 0x77, 0xb7, 0x07, 0xc6, 0xd0, 0xa4, 0x6b, 0x1e, 0xff, 0x0b, 0xc0, 0xbb, 0x24, 0x92, 0x94,
-	0xd7, 0xb3, 0x4c, 0xaa, 0x16, 0x63, 0x5e, 0x4c, 0x79, 0xa5, 0x8b, 0x69, 0xa4, 0x3a, 0x60, 0x31,
-	0xd7, 0xd5, 0x94, 0x89, 0xb5, 0x58, 0xc8, 0x97, 0xb5, 0x58, 0xc8, 0xd5, 0xbf, 0x03, 0xce, 0x66,
-	0xb2, 0xc1, 0x3a, 0x36, 0xd5, 0x48, 0x75, 0x5b, 0xe7, 0x69, 0xc6, 0x5d, 0xbb, 0xed, 0x16, 0x81,
-	0xff, 0xc3, 0x84, 0x9e, 0x9a, 0x71, 0x22, 0x6a, 0x72, 0x17, 0x9c, 0x2a, 0x54, 0x00, 0xeb, 0xee,
-	0x8e, 0xae, 0x1c, 0x75, 0x02, 0x1f, 0x51, 0x1e, 0x4a, 0xaa, 0xa3, 0xe4, 0x21, 0xf4, 0x4b, 0xf9,
-	0x9a, 0x47, 0xf2, 0x65, 0xd3, 0x76, 0xb3, 0x3b, 0xba, 0xba, 0xa2, 0x4e, 0x44, 0x5a, 0x48, 0xba,
-	0x62, 0x90, 0x47, 0x00, 0xa5, 0xa4, 0x4a, 0x64, 0xc5, 0xb7, 0x36, 0xf3, 0xd7, 0x28, 0xe4, 0x1e,
-	0xf4, 0x4a, 0xf9, 0x46, 0xcc, 0x64, 0x82, 0x23, 0x6c, 0x60, 0x77, 0x71, 0x72, 0x08, 0x4e, 0x29,
-	0xdf, 0x8a, 0xba, 0x9d, 0x6a, 0x03, 0x53, 0x87, 0xc9, 0x7d, 0x70, 0x22, 0xdc, 0xa3, 0xeb, 0x20,
-	0xf1, 0xfa, 0x8a, 0xb8, 0x5c, 0x31, 0xd5, 0x14, 0xe2, 0x42, 0xef, 0xf3, 0x8c, 0x65, 0xa9, 0x6c,
-	0xdc, 0x1e, 0x8a, 0xd5, 0x41, 0xb5, 0xc8, 0x88, 0x85, 0x29, 0xcb, 0x8e, 0xd5, 0x5b, 0xd9, 0xc1,
-	0xb7, 0xb2, 0xe6, 0xf1, 0x7f, 0x9b, 0xb0, 0xa3, 0xf2, 0x8d, 0x8b, 0x48, 0xfc, 0xd7, 0xf3, 0x9f,
-	0xf5, 0x54, 0x8f, 0x39, 0x52, 0x72, 0x1e, 0xbb, 0xfd, 0x81, 0x31, 0xb4, 0xa8, 0x46, 0xfe, 0x7b,
-	0xe8, 0x9d, 0x04, 0xa7, 0xa8, 0xf2, 0x1d, 0xb0, 0xab, 0xf0, 0x24, 0x38, 0xbd, 0x44, 0xe4, 0x36,
-	0xa8, 0x6e, 0x47, 0x36, 0x65, 0x77, 0x3b, 0xb2, 0x29, 0xd5, 0xed, 0x94, 0x95, 0x08, 0x50, 0x40,
-	0x93, 0xa2, 0xed, 0x7f, 0x35, 0x60, 0x6f, 0xc2, 0x2a, 0x96, 0x77, 0x27, 0x71, 0x1b, 0xac, 0x52,
-	0xd4, 0x3a, 0xf5, 0xb5, 0x8b, 0x33, 0x4e, 0x44, 0x4d, 0x55, 0x94, 0x3c, 0x00, 0xa7, 0xc2, 0xcb,
-	0xd5, 0xcb, 0x3b, 0x58, 0xf1, 0x56, 0x57, 0x4d, 0x35, 0x87, 0xdc, 0x02, 0x2b, 0xcd, 0xe3, 0xbf,
-	0xf7, 0x86, 0x1f, 0x2d, 0xaa, 0x62, 0xfe, 0x53, 0xd8, 0x5f, 0x76, 0xf1, 0x42, 0xe4, 0x25, 0xab,
-	0xf0, 0x6b, 0x16, 0x71, 0x26, 0x1f, 0x63, 0x2f, 0x7b, 0xb4, 0x05, 0x9d, 0x77, 0x84, 0x95, 0xb5,
-	0x77, 0xe4, 0x7f, 0xd4, 0x53, 0x7c, 0x10, 0x99, 0x50, 0xc3, 0x1f, 0x82, 0x9d, 0x16, 0x11, 0xce,
-	0x61, 0x5d, 0x9c, 0x43, 0x8b, 0x48, 0xdb, 0x78, 0xd7, 0x9b, 0x79, 0x79, 0x6f, 0xcf, 0xdd, 0xef,
-	0x73, 0xcf, 0x38, 0x9f, 0x7b, 0xc6, 0xaf, 0xb9, 0x67, 0x7c, 0x5b, 0x78, 0x5b, 0xe7, 0x0b, 0x6f,
-	0xeb, 0xe7, 0xc2, 0xdb, 0x0a, 0x1c, 0xa4, 0x3f, 0xf9, 0x13, 0x00, 0x00, 0xff, 0xff, 0x19, 0xbd,
-	0x52, 0xcd, 0xa2, 0x05, 0x00, 0x00,
+	// 624 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x54, 0x4d, 0x6f, 0xd3, 0x4c,
+	0x10, 0xae, 0x93, 0xda, 0x69, 0xa6, 0xd5, 0xfb, 0x96, 0xa5, 0x42, 0x56, 0x0f, 0x56, 0x64, 0x10,
+	0x35, 0x02, 0x0a, 0x0d, 0x07, 0x6e, 0x88, 0x8f, 0x52, 0xa9, 0x12, 0xd0, 0x68, 0x05, 0x07, 0x8e,
+	0x6b, 0x67, 0xfd, 0x51, 0x1c, 0xaf, 0xb1, 0x37, 0x2a, 0xfe, 0x17, 0xfc, 0x2c, 0x0e, 0x1c, 0x7a,
+	0xe4, 0x88, 0x5a, 0xf1, 0x3f, 0xd0, 0xec, 0xae, 0x6b, 0x57, 0x0a, 0x27, 0xae, 0x9c, 0x32, 0xcf,
+	0xcc, 0xe3, 0xf9, 0x78, 0x66, 0x27, 0x30, 0xae, 0xe7, 0x9f, 0xf6, 0xcb, 0x4a, 0x48, 0x41, 0x36,
+	0xd4, 0xcf, 0xa2, 0x4e, 0x76, 0x21, 0x64, 0x35, 0xd7, 0x5e, 0xff, 0x18, 0xec, 0xe3, 0x05, 0x4b,
+	0x38, 0xd9, 0x01, 0xfb, 0x2c, 0x9b, 0xcb, 0xd4, 0xb5, 0x26, 0x56, 0x60, 0x53, 0x0d, 0xc8, 0x2d,
+	0x70, 0x52, 0x9e, 0x25, 0xa9, 0x74, 0x07, 0xca, 0x6d, 0x10, 0x21, 0xb0, 0x3e, 0x67, 0x92, 0xb9,
+	0xc3, 0x89, 0x15, 0x6c, 0x51, 0x65, 0xfb, 0x09, 0x8c, 0x8f, 0x58, 0xc4, 0x5f, 0x14, 0x49, 0xce,
+	0xc9, 0x36, 0x0c, 0x1b, 0x76, 0x66, 0x92, 0xa1, 0x89, 0x05, 0xca, 0x4c, 0x46, 0xa9, 0xc9, 0xa4,
+	0x01, 0x26, 0xaa, 0x44, 0x9e, 0xab, 0x44, 0x36, 0x55, 0x36, 0xf1, 0x00, 0x22, 0x51, 0xc4, 0xd9,
+	0x9c, 0x17, 0x11, 0x77, 0xd7, 0x27, 0x56, 0x30, 0xa0, 0x3d, 0x8f, 0xff, 0x05, 0xe0, 0x7d, 0x1a,
+	0x4b, 0xca, 0xeb, 0x65, 0x2e, 0xb1, 0xc5, 0x84, 0x17, 0x73, 0x5e, 0x99, 0x62, 0x06, 0x61, 0x07,
+	0x2c, 0xe1, 0xa6, 0x1a, 0x9a, 0xaa, 0x16, 0x8b, 0xf8, 0x55, 0x2d, 0x16, 0x71, 0xfc, 0x3a, 0xe4,
+	0x6c, 0x29, 0x1b, 0x55, 0xc7, 0xa6, 0x06, 0x61, 0xb7, 0xf5, 0x22, 0xcb, 0xb9, 0x6b, 0xeb, 0x6e,
+	0x15, 0xf0, 0xbf, 0x0f, 0x60, 0x84, 0x33, 0xce, 0x44, 0x4d, 0xee, 0x82, 0x53, 0x45, 0x08, 0x54,
+	0xdd, 0xcd, 0xe9, 0x7f, 0xfb, 0xad, 0xc0, 0xfb, 0x94, 0x47, 0x92, 0x9a, 0x28, 0x79, 0x08, 0xe3,
+	0x52, 0xbe, 0xe1, 0xb1, 0x7c, 0xdd, 0xe8, 0x6e, 0x36, 0xa7, 0xff, 0x77, 0xd4, 0x99, 0xc8, 0x0a,
+	0x49, 0x3b, 0x06, 0x79, 0x04, 0x50, 0x4a, 0x8a, 0x22, 0x23, 0x7f, 0xb8, 0x9a, 0xdf, 0xa3, 0x90,
+	0x7b, 0x30, 0x2a, 0xe5, 0x5b, 0xb1, 0x94, 0xa9, 0x1a, 0x61, 0x05, 0xbb, 0x8d, 0x93, 0x3d, 0x70,
+	0x4a, 0xf9, 0x4e, 0xd4, 0x7a, 0xaa, 0x15, 0x4c, 0x13, 0x26, 0xf7, 0xc1, 0x89, 0xd5, 0x1e, 0x5d,
+	0x47, 0x11, 0x6f, 0x76, 0xc4, 0xab, 0x15, 0x53, 0x43, 0x21, 0x2e, 0x8c, 0x3e, 0x2f, 0x59, 0x9e,
+	0xc9, 0xc6, 0x1d, 0x29, 0xb1, 0x5a, 0x88, 0x8b, 0x8c, 0x59, 0x94, 0xb1, 0xfc, 0x10, 0xdf, 0xca,
+	0x86, 0x7a, 0x2b, 0x3d, 0x8f, 0xff, 0x6b, 0x00, 0x1b, 0x98, 0xef, 0xb8, 0x88, 0xc5, 0x3f, 0x3d,
+	0xff, 0x5a, 0x4f, 0x7c, 0xcc, 0x31, 0xca, 0x79, 0xe8, 0x8e, 0x27, 0x56, 0x30, 0xa4, 0x06, 0xf9,
+	0x1f, 0x60, 0x74, 0x12, 0x9e, 0x2a, 0x95, 0xef, 0x80, 0x5d, 0x45, 0x27, 0xe1, 0xe9, 0x1f, 0x44,
+	0xd6, 0x41, 0xbc, 0x1d, 0xd9, 0x94, 0xed, 0xed, 0xc8, 0xa6, 0xc4, 0xdb, 0x29, 0x2b, 0x11, 0x2a,
+	0x01, 0x07, 0x54, 0xd9, 0x3e, 0x87, 0x6d, 0x7d, 0x83, 0x38, 0xc3, 0x21, 0x97, 0x3c, 0x92, 0xe4,
+	0x36, 0x0c, 0x4b, 0x51, 0x9b, 0xec, 0x37, 0xae, 0x8f, 0x39, 0x13, 0x35, 0xc5, 0x28, 0x79, 0x00,
+	0x4e, 0xa5, 0x3e, 0x34, 0xfb, 0xdb, 0xe9, 0x78, 0xdd, 0x61, 0x53, 0xc3, 0xf1, 0x9f, 0xc3, 0xd6,
+	0x8c, 0x55, 0x6c, 0xd1, 0x1e, 0xde, 0x63, 0xb0, 0x71, 0x2e, 0x2c, 0x32, 0x0c, 0x36, 0xa7, 0xbb,
+	0xfd, 0x11, 0xae, 0x77, 0x43, 0x35, 0xd1, 0x0f, 0x60, 0xfb, 0x2a, 0xc3, 0x11, 0x67, 0x72, 0x59,
+	0xa9, 0xff, 0xbb, 0x98, 0x33, 0xa9, 0xb3, 0x6c, 0x51, 0x0d, 0xfc, 0x67, 0x3d, 0xe6, 0x2b, 0xb1,
+	0x28, 0x59, 0xc7, 0x3c, 0x50, 0x43, 0x19, 0xe6, 0x41, 0xeb, 0x9d, 0xaa, 0x11, 0x8c, 0x77, 0xea,
+	0x3f, 0x35, 0xbd, 0x7e, 0x14, 0xb9, 0x40, 0x21, 0xf7, 0xc0, 0xce, 0x8a, 0x58, 0xb4, 0xbd, 0xf6,
+	0x04, 0x31, 0x0b, 0xa1, 0x3a, 0xfe, 0xd2, 0xfd, 0x76, 0xe1, 0x59, 0xe7, 0x17, 0x9e, 0xf5, 0xf3,
+	0xc2, 0xb3, 0xbe, 0x5e, 0x7a, 0x6b, 0xe7, 0x97, 0xde, 0xda, 0x8f, 0x4b, 0x6f, 0x2d, 0x74, 0xd4,
+	0x27, 0x4f, 0x7e, 0x07, 0x00, 0x00, 0xff, 0xff, 0xba, 0xd3, 0x09, 0x2b, 0xcb, 0x05, 0x00, 0x00,
 }
 
 func (m *Image) Marshal() (dAtA []byte, err error) {
@@ -1056,7 +1131,7 @@
 	return i, nil
 }
 
-func (m *ParamFacePos) Marshal() (dAtA []byte, err error) {
+func (m *ResultFaceDetect) Marshal() (dAtA []byte, err error) {
 	size := m.Size()
 	dAtA = make([]byte, size)
 	n, err := m.MarshalTo(dAtA)
@@ -1066,7 +1141,7 @@
 	return dAtA[:n], nil
 }
 
-func (m *ParamFacePos) MarshalTo(dAtA []byte) (int, error) {
+func (m *ResultFaceDetect) MarshalTo(dAtA []byte) (int, error) {
 	var i int
 	_ = i
 	var l int
@@ -1091,15 +1166,61 @@
 		}
 		i += n15
 	}
-	if m.Img != nil {
-		dAtA[i] = 0x1a
-		i++
-		i = encodeVarintSdk(dAtA, i, uint64(m.Img.Size()))
-		n16, err16 := m.Img.MarshalTo(dAtA[i:])
-		if err16 != nil {
-			return 0, err16
+	return i, nil
+}
+
+func (m *ParamFacePos) Marshal() (dAtA []byte, err error) {
+	size := m.Size()
+	dAtA = make([]byte, size)
+	n, err := m.MarshalTo(dAtA)
+	if err != nil {
+		return nil, err
+	}
+	return dAtA[:n], nil
+}
+
+func (m *ParamFacePos) MarshalTo(dAtA []byte) (int, error) {
+	var i int
+	_ = i
+	var l int
+	_ = l
+	if len(m.Faces) > 0 {
+		for _, msg := range m.Faces {
+			dAtA[i] = 0xa
+			i++
+			i = encodeVarintSdk(dAtA, i, uint64(msg.Size()))
+			n, err := msg.MarshalTo(dAtA[i:])
+			if err != nil {
+				return 0, err
+			}
+			i += n
 		}
-		i += n16
+	}
+	return i, nil
+}
+
+func (m *ParamFaceFeature) Marshal() (dAtA []byte, err error) {
+	size := m.Size()
+	dAtA = make([]byte, size)
+	n, err := m.MarshalTo(dAtA)
+	if err != nil {
+		return nil, err
+	}
+	return dAtA[:n], nil
+}
+
+func (m *ParamFaceFeature) MarshalTo(dAtA []byte) (int, error) {
+	var i int
+	_ = i
+	var l int
+	_ = l
+	if len(m.Feats) > 0 {
+		for _, b := range m.Feats {
+			dAtA[i] = 0xa
+			i++
+			i = encodeVarintSdk(dAtA, i, uint64(len(b)))
+			i += copy(dAtA[i:], b)
+		}
 	}
 	return i, nil
 }
@@ -1160,16 +1281,6 @@
 			}
 			i += n
 		}
-	}
-	if m.Img != nil {
-		dAtA[i] = 0x12
-		i++
-		i = encodeVarintSdk(dAtA, i, uint64(m.Img.Size()))
-		n17, err17 := m.Img.MarshalTo(dAtA[i:])
-		if err17 != nil {
-			return 0, err17
-		}
-		i += n17
 	}
 	return i, nil
 }
@@ -1349,7 +1460,7 @@
 	return n
 }
 
-func (m *ParamFacePos) Size() (n int) {
+func (m *ResultFaceDetect) Size() (n int) {
 	if m == nil {
 		return 0
 	}
@@ -1363,9 +1474,35 @@
 		l = m.Result.Size()
 		n += 1 + l + sovSdk(uint64(l))
 	}
-	if m.Img != nil {
-		l = m.Img.Size()
-		n += 1 + l + sovSdk(uint64(l))
+	return n
+}
+
+func (m *ParamFacePos) Size() (n int) {
+	if m == nil {
+		return 0
+	}
+	var l int
+	_ = l
+	if len(m.Faces) > 0 {
+		for _, e := range m.Faces {
+			l = e.Size()
+			n += 1 + l + sovSdk(uint64(l))
+		}
+	}
+	return n
+}
+
+func (m *ParamFaceFeature) Size() (n int) {
+	if m == nil {
+		return 0
+	}
+	var l int
+	_ = l
+	if len(m.Feats) > 0 {
+		for _, b := range m.Feats {
+			l = len(b)
+			n += 1 + l + sovSdk(uint64(l))
+		}
 	}
 	return n
 }
@@ -1398,10 +1535,6 @@
 			l = e.Size()
 			n += 1 + l + sovSdk(uint64(l))
 		}
-	}
-	if m.Img != nil {
-		l = m.Img.Size()
-		n += 1 + l + sovSdk(uint64(l))
 	}
 	return n
 }
@@ -2595,7 +2728,7 @@
 	}
 	return nil
 }
-func (m *ParamFacePos) Unmarshal(dAtA []byte) error {
+func (m *ResultFaceDetect) Unmarshal(dAtA []byte) error {
 	l := len(dAtA)
 	iNdEx := 0
 	for iNdEx < l {
@@ -2618,10 +2751,10 @@
 		fieldNum := int32(wire >> 3)
 		wireType := int(wire & 0x7)
 		if wireType == 4 {
-			return fmt.Errorf("proto: ParamFacePos: wiretype end group for non-group")
+			return fmt.Errorf("proto: ResultFaceDetect: wiretype end group for non-group")
 		}
 		if fieldNum <= 0 {
-			return fmt.Errorf("proto: ParamFacePos: illegal tag %d (wire type %d)", fieldNum, wire)
+			return fmt.Errorf("proto: ResultFaceDetect: illegal tag %d (wire type %d)", fieldNum, wire)
 		}
 		switch fieldNum {
 		case 1:
@@ -2696,9 +2829,62 @@
 				return err
 			}
 			iNdEx = postIndex
-		case 3:
+		default:
+			iNdEx = preIndex
+			skippy, err := skipSdk(dAtA[iNdEx:])
+			if err != nil {
+				return err
+			}
+			if skippy < 0 {
+				return ErrInvalidLengthSdk
+			}
+			if (iNdEx + skippy) < 0 {
+				return ErrInvalidLengthSdk
+			}
+			if (iNdEx + skippy) > l {
+				return io.ErrUnexpectedEOF
+			}
+			iNdEx += skippy
+		}
+	}
+
+	if iNdEx > l {
+		return io.ErrUnexpectedEOF
+	}
+	return nil
+}
+func (m *ParamFacePos) Unmarshal(dAtA []byte) error {
+	l := len(dAtA)
+	iNdEx := 0
+	for iNdEx < l {
+		preIndex := iNdEx
+		var wire uint64
+		for shift := uint(0); ; shift += 7 {
+			if shift >= 64 {
+				return ErrIntOverflowSdk
+			}
+			if iNdEx >= l {
+				return io.ErrUnexpectedEOF
+			}
+			b := dAtA[iNdEx]
+			iNdEx++
+			wire |= uint64(b&0x7F) << shift
+			if b < 0x80 {
+				break
+			}
+		}
+		fieldNum := int32(wire >> 3)
+		wireType := int(wire & 0x7)
+		if wireType == 4 {
+			return fmt.Errorf("proto: ParamFacePos: wiretype end group for non-group")
+		}
+		if fieldNum <= 0 {
+			return fmt.Errorf("proto: ParamFacePos: illegal tag %d (wire type %d)", fieldNum, wire)
+		}
+		switch fieldNum {
+		case 1:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Img", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field Faces", wireType)
 			}
 			var msglen int
 			for shift := uint(0); ; shift += 7 {
@@ -2725,12 +2911,95 @@
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
-			if m.Img == nil {
-				m.Img = &Image{}
-			}
-			if err := m.Img.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+			m.Faces = append(m.Faces, &ResultFaceDetect{})
+			if err := m.Faces[len(m.Faces)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
 				return err
 			}
+			iNdEx = postIndex
+		default:
+			iNdEx = preIndex
+			skippy, err := skipSdk(dAtA[iNdEx:])
+			if err != nil {
+				return err
+			}
+			if skippy < 0 {
+				return ErrInvalidLengthSdk
+			}
+			if (iNdEx + skippy) < 0 {
+				return ErrInvalidLengthSdk
+			}
+			if (iNdEx + skippy) > l {
+				return io.ErrUnexpectedEOF
+			}
+			iNdEx += skippy
+		}
+	}
+
+	if iNdEx > l {
+		return io.ErrUnexpectedEOF
+	}
+	return nil
+}
+func (m *ParamFaceFeature) Unmarshal(dAtA []byte) error {
+	l := len(dAtA)
+	iNdEx := 0
+	for iNdEx < l {
+		preIndex := iNdEx
+		var wire uint64
+		for shift := uint(0); ; shift += 7 {
+			if shift >= 64 {
+				return ErrIntOverflowSdk
+			}
+			if iNdEx >= l {
+				return io.ErrUnexpectedEOF
+			}
+			b := dAtA[iNdEx]
+			iNdEx++
+			wire |= uint64(b&0x7F) << shift
+			if b < 0x80 {
+				break
+			}
+		}
+		fieldNum := int32(wire >> 3)
+		wireType := int(wire & 0x7)
+		if wireType == 4 {
+			return fmt.Errorf("proto: ParamFaceFeature: wiretype end group for non-group")
+		}
+		if fieldNum <= 0 {
+			return fmt.Errorf("proto: ParamFaceFeature: illegal tag %d (wire type %d)", fieldNum, wire)
+		}
+		switch fieldNum {
+		case 1:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field Feats", wireType)
+			}
+			var byteLen int
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowSdk
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				byteLen |= int(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			if byteLen < 0 {
+				return ErrInvalidLengthSdk
+			}
+			postIndex := iNdEx + byteLen
+			if postIndex < 0 {
+				return ErrInvalidLengthSdk
+			}
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
+			}
+			m.Feats = append(m.Feats, make([]byte, postIndex-iNdEx))
+			copy(m.Feats[len(m.Feats)-1], dAtA[iNdEx:postIndex])
 			iNdEx = postIndex
 		default:
 			iNdEx = preIndex
@@ -2937,42 +3206,6 @@
 			}
 			m.Infos = append(m.Infos, &ObjInfo{})
 			if err := m.Infos[len(m.Infos)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		case 2:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Img", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSdk
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthSdk
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthSdk
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			if m.Img == nil {
-				m.Img = &Image{}
-			}
-			if err := m.Img.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
 				return err
 			}
 			iNdEx = postIndex
diff --git a/sdk.proto b/sdk.proto
index e31ab08..10ac801 100644
--- a/sdk.proto
+++ b/sdk.proto
@@ -51,10 +51,15 @@
 }
 
 // sdk face property
-message ParamFacePos{
+message ResultFaceDetect{
     FacePos pos = 1;
     ThftResult result = 2;
-	Image img = 3;
+}
+message ParamFacePos{
+	repeated ResultFaceDetect faces = 1;
+}
+message ParamFaceFeature{
+	repeated bytes feats = 1;
 }
 // sdk face extract
 message ParamFaceCompare{
@@ -65,5 +70,4 @@
 // sdk yolo detect
 message ParamYoloObj{
     repeated ObjInfo infos = 1;
-    Image img = 2;
 }
\ No newline at end of file

--
Gitblit v1.8.0