liuxiaolong
2019-11-19 dff6e09c415988cc0b5c558013822548ffab254e
protomsg.proto
@@ -1,24 +1,9 @@
syntax = "proto3";
package protomsg;
message TaskLabel {
   string taskid = 1;
   repeated string sdkids = 2;
   int32 index = 3 ;
}
import "base.proto";
message SdkMessage {
   string cid = 1;
   TaskLabel tasklab = 2;
   bytes   data =3 ;
}
// Image ipc struct
message Image{
    int32 width = 1;
    int32 height = 2;
    bytes data = 3;
}
//Area结构体
message Area{
@@ -31,18 +16,26 @@
message Camera {
    string id = 1;
    string name = 2;
    int32 type = 3;
    string addr = 4;
    int32 areaid = 5;
    float longitude = 6;
    float latitude = 7;
    string rtsp = 8;
    string ip = 9;
    int32 port = 10;
    string username = 11;
    string password = 12;
    string brand = 13;
    string reserved = 14;
    string alias = 3;
    string snapshot_url = 4;//摄像机底图快照
    int32 type = 5;
    string addr = 6;
    float longitude = 7;
    float latitude = 8;
    int32 floor = 9;
    string rtsp = 10;
    string ip = 11;
    int32 port = 12;
    string username = 13;
    string password = 14;
    string brand = 15;
    string reserved = 16;
    bool is_running = 17;//是否正在做任务(0:否,1:是)
    bool run_enable = 18;//是否启用实时或轮询(0:否,1:是)
    int32 run_type = 19;//做任务的类型(0:轮询,1:实时)
    string run_server_id = 20;//当前正在哪台服务器上做任务
}
//摄像机的任务信息
@@ -68,10 +61,20 @@
    repeated Sdk sdks = 2;
}
message SdkRun {
    string ipc_id = 1;
    string sdk_type = 2;
}
message TaskSdkRun {
    Task task = 1;
    repeated SdkRun sdks = 2;
}
//摄像机任务
message CameraTask {
    string id = 1;
    string camera_ids = 2;//摄像机id
    string camera_id = 2;//摄像机id
    string task_id = 3;//任务id
    repeated DayCtl time_rule = 4;//布防时间
    string react_rule = 5;//联动方式
@@ -81,7 +84,14 @@
    bool enable = 9; //是否启用
    int32 sort = 10; //任务排序
    bool is_full = 11;//参数是否设置完整
    string link_group_id = 12;
    string link_task_id = 12;
}
//摄像机布防的时间规则,可以设置多个,用id关联到具体的规则配置中
message CameraTimerule {
    string id = 1;//id
    string name = 2;//规则名称
    string time_rule = 3;//具体时间规则设置
}
//DayCtl struct   每天的时间控制规则
@@ -100,10 +110,30 @@
message Polygon {
    string id = 1;//形状id
    string name = 2;//形状的名称
    repeated Point points = 4;//点的集合
    repeated Point points = 3;//点的集合
}
message CameraTaskArgs {
    string camera_id = 1;
    repeated TaskGroupArgs task_args = 2;
}
message TaskGroupArgs {
    string task_id = 1;
    repeated GroupRule group_rules = 2;
    bool enable = 3;
}
message GroupRule {
    string group_id = 1;
    string group_text = 2;
    int32 alarm_level = 3;
    repeated Rule rules = 4;
    string set_type = 5;
    bool defence_state = 6;
}
message Rule {
    string id =1;
    string camera_task_id =2;
    string camera_id =3;
@@ -114,93 +144,200 @@
    string operator_type = 8;
    string sdk_arg_value = 9;
    int32 sort = 10;
    string rule_with_next = 11;
    string rule_with_pre = 11;
    string group_id =12;
}
//Sdk struct
message Sdk {
    string id = 1;
    string sdk_type = 2;//算法类型
    string sdk_name = 3;//sdk名称
    repeated SdkArg args = 4;//算法参数
    string icon = 5;//算法图标
    string url = 6;//算法下载地址
    string create_time = 7;
    string update_time = 8;
    string create_by = 9;
    string enabled = 10;//是否启用
    string del_flag = 11;//是否删除
    string ipc_id = 2;
    string sdk_type = 3;//算法类型
    string sdk_name = 4;//sdk名称
    repeated SdkArg args = 5;//算法参数
    string icon = 6;//算法图标
    string url = 7;//算法下载地址
    string create_time = 8;
    string update_time = 9;
    string create_by = 10;
    bool enable = 11;//是否启用
    int32 del_flag = 12;//是否删除
}
message TaskSdkRule {
    string taskId = 1;
    bool enable = 2;
    repeated SdkRuleSet sdkRules = 3;
}
message SdkRuleSet {
    string sdkId = 1;
    string ipcId = 2;
    repeated SdkRule rules = 3;
    int32 sort = 4;
}
message SdkRule {
    string id = 1;
    string sdk_arg_alias = 2;
    string operator = 3;
    string sdk_arg_value = 4;
}
//SdkArg struct
message SdkArg {
    string alias = 2;//参数别名
    string name = 3;//参数名称
    string type = 4;//参数类型
    bool must = 5;//参数是否必填
    string alias = 1;//参数别名
    string name = 2;//参数名称
    string type = 3;//参数类型
    bool must = 4;//参数是否必填
    string unit = 5;//单位
    string range = 6;//参数的范围
    int32 sort = 7;//参数排序
    string default_value = 7;//参数默认值
    string default_operator = 8;//参数默认计算符号
    int32 sort = 9;//参数排序
}
// struct for sdk
message Point{
   int32 x = 1;
   int32 y = 2;
//TableChanged enum
enum TableChanged {
    T_Camera = 0;//摄像机变化
    T_CameraTask = 1;//摄像机任务变化
    T_CameraTaskArgs = 2;//摄像机任务参数变化
    T_Task = 3;//任务表变化
    T_TaskSdk = 4;//任务算法变化
    T_TaskSdkRule = 5;//任务算法规则变化
    T_Sdk = 6;//sdk变化
    T_CameraPolygon = 7;//摄像机多边形变化
    T_TimeRule = 8;//时间规则变化
    T_Server = 9;//服务器信息变化
    T_PollConfig = 10;//轮询配置变化
}
message Rect{
   int32 left = 1;
   int32 top = 2;
   int32 right = 3;
   int32 bottom = 4;
enum DbAction {
    Insert = 0;//Insert
    Update = 1;//Update
    Delete = 2;//Delete
}
message FaceAngle{
   int32 yaw = 1;
   int32 pitch =2;
   int32 roll = 3;
   float confidence =4;
//publish db change message
message DbChangeMessage {
    TableChanged table = 1;//变化的表
    string id = 2;//变化数据id
    DbAction action = 3;//action
    string info = 4;//变化内容
}
message ThftResult{
   int32 gender = 1;
   int32 age = 2;
   int32 race = 3;
   int32 beauty = 4;
   int32 smile = 5;
message CameraPolygon {
    string id = 1;
    string camera_id = 2;//摄像机id
    string name = 3;//名称
    string polygon = 4;//坐标点集合
    string trigger_line = 5;
    string direction_line = 6;
    string type = 7;
    int32 defence_state = 8;
}
message FacePos{
   Rect rcFace = 1;
   Point ptLeftEye = 2;
   Point ptRightEye = 3;
   Point ptMouth = 4;
   Point ptNose = 5;
   FaceAngle fAngle = 6;
   int32 quality = 7;
   bytes facialData = 8;
message VideotapeInfo {
    string esDataId = 1;
    string cameraId = 2;
    string taskId = 3;
    int64 imgId = 4;
    string videoUrl = 5;
    repeated string sdkIds = 6;
    int32 type = 7;
}
message FaceInfo{
   Rect rcFace = 1;
   Point ptLeftEye = 2;
   Point ptRightEye = 3;
   Point ptMouth = 4;
   Point ptNose = 5;
   FaceAngle fAngle = 6;
   int32 quality = 7;
   bytes facialData = 8;
   int64 faceID = 9;
message CompareArgs {
    repeated string tableIds = 1;
    float compareThreshold = 2;
    bytes faceFeature = 3;
    repeated string tasks = 4;
    repeated string treeNodes = 5;
    repeated string tabs = 6;
    repeated int32 alarmLevel = 7;
    repeated string searchTime = 8;
    string inputValue = 9;
    string collection = 10;
    bool source = 11;
    string analyServerId = 12;
}
message ObjInfo{
   Rect rcObj = 1;
   int32 typ = 2;
   float prob = 3;
message CompareEvent {
    CompareEventType eventType =1;
    bytes payload = 2;
}
// sdk face property
message ParamFaceProperty{
   FacePos pos = 1;
   Image img = 2;
enum CompareEventType {
    ReInitCache = 0; // 重新初始化底库缓存(加入集群后执行)
    UpdateCache = 1; // 更新底库和人员缓存
    Compare = 2; // 做比对请求
}
// sdk face extract
message ParamFaceCompare{
   bytes feat1 = 1;
   bytes feat2 = 2;
message SdkCompareEach {
    string id           = 1;
    string tableid      = 2;
    float  compareScore = 3;
}
message SdkCompareResult {
    repeated SdkCompareEach compareResult = 1;
}
message EventPush {
    string id = 1;
    string name = 2;
    string time_start = 3;
    string time_end = 4;
    bool is_satisfy_all = 5;
    string rule_text = 6;
    bool enable = 7;
    string link_type = 8;
    string link_device = 9;
    repeated PushIpPort ip_ports = 10;
    repeated PushUrl urls = 11;
    repeated EventPushRule rules = 12;
}
message EventPushRule {
    string id = 1;
    string topic_type = 2;
    string topic_arg = 3;
    string operator = 4;
    string operator_type = 5;
    string rule_value = 6;
    string event_push_id = 7;
}
message PushIpPort {
    string server_ip = 1;
    int32 port = 2;
    bool enable = 3;
}
message PushUrl {
    string url = 1;
    bool enable = 2;
}
message PushAttach {
    string push_id = 1;
    Camera cam = 2;
    string server_id = 3;
    string server_name = 4;
    string local_ip = 5;
    string video_url = 6;
}
enum EsCacheChanged {
    T_DbTable = 0;//底库有效状态变化
    T_DbTablePerson = 1;//底库人员有效状态变化
}
message EsPersonCacheChange {
    EsCacheChanged type = 1;
    repeated string table_id = 2;//底库id
    string person_id = 3;//人员id
    string feature = 4;//特征值base64
    DbAction action = 5;
    int32 enable = 6;
}