syntax = "proto3";
|
|
package protomsg;
|
|
message TaskLabel {
|
string taskid = 1;
|
repeated string sdkids = 2;
|
int32 index = 3 ;
|
}
|
|
//SdkMessage struct test
|
message SdkMessage {
|
string cid = 1;
|
TaskLabel tasklab = 2;
|
bytes data =3 ;
|
}
|
|
|
//Area结构体
|
message Area{
|
int32 id = 1;
|
int32 parentid = 2;
|
string name = 3;
|
}
|
|
//Camera结构体
|
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;
|
}
|
|
//摄像机的任务信息
|
message CameraAndTaskInfo {
|
Camera camera = 1;//摄像机信息
|
repeated Task tasks = 2;//任务列表
|
}
|
|
//Task结构体
|
message Task {
|
string taskid = 1;
|
string taskname = 2;
|
string create_at = 3;
|
string create_by = 4;
|
string update_at = 5;
|
bool enable = 6;
|
bool is_alarm = 7;
|
bool del_flag = 8;
|
}
|
|
message TaskSdkInfo {
|
Task task = 1;
|
repeated Sdk sdks = 2;
|
}
|
|
//摄像机任务
|
message CameraTask {
|
string id = 1;
|
string camera_ids = 2;//摄像机id
|
string task_id = 3;//任务id
|
repeated DayCtl time_rule = 4;//布防时间
|
string react_rule = 5;//联动方式
|
string react_device = 6;//联动设备
|
bool del_flag = 7; //逻辑删除标记
|
bool update_flag = 8;//是否参数更新了
|
bool enable = 9; //是否启用
|
int32 sort = 10; //任务排序
|
bool is_full = 11;//参数是否设置完整
|
string link_group_id = 12;
|
}
|
|
//摄像机布防的时间规则,可以设置多个,用id关联到具体的规则配置中
|
message CameraTimerule {
|
string id = 1;//id
|
string name = 2;//规则名称
|
string time_rule = 3;//具体时间规则设置
|
}
|
|
//DayCtl struct 每天的时间控制规则
|
message DayCtl {
|
int32 day = 1;//1-7表示星期一到星期日
|
repeated TimeRange time_range = 2;
|
}
|
|
//时间起始范围
|
message TimeRange {
|
string start = 1;//开始
|
string end = 2;//结束
|
}
|
|
//Polygon struct
|
message Polygon {
|
string id = 1;//形状id
|
string name = 2;//形状的名称
|
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;
|
}
|
|
message GroupRule {
|
string group_id = 1;
|
repeated Rule rules = 2;
|
}
|
|
message Rule {
|
string id =1;
|
string camera_task_id =2;
|
string camera_id =3;
|
string polygon_id =4;
|
string sdk_id = 5;
|
string sdk_arg_alias = 6;
|
string operator = 7;
|
string operator_type = 8;
|
string sdk_arg_value = 9;
|
int32 sort = 10;
|
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;
|
bool enabled = 10;//是否启用
|
int32 del_flag = 11;//是否删除
|
}
|
|
//SdkArg struct
|
message SdkArg {
|
string alias = 1;//参数别名
|
string name = 2;//参数名称
|
string type = 3;//参数类型
|
bool must = 4;//参数是否必填
|
string unit = 5;//单位
|
string range = 6;//参数的范围
|
int32 sort = 7;//参数排序
|
}
|
|
//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变化
|
}
|
|
enum DbAction {
|
Insert = 0;//Insert
|
Update = 1;//Update
|
Delete = 2;//Delete
|
}
|
|
//publish db change message
|
message DbChangeMessage {
|
TableChanged table = 1;//变化的表
|
string id = 2;//变化数据id
|
DbAction action = 3;//action
|
string info = 4;//变化内容
|
}
|
|
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;
|
}
|
|
|
// struct for sdk
|
message Point{
|
int32 x = 1;
|
int32 y = 2;
|
}
|
message Rect{
|
int32 left = 1;
|
int32 top = 2;
|
int32 right = 3;
|
int32 bottom = 4;
|
}
|
// Image ipc struct
|
message Image{
|
int32 width = 1;
|
int32 height = 2;
|
bytes data = 3;
|
}
|
|
message FaceAngle{
|
int32 yaw = 1;
|
int32 pitch =2;
|
int32 roll = 3;
|
float confidence =4;
|
}
|
message ThftResult{
|
int32 gender = 1;
|
int32 age = 2;
|
int32 race = 3;
|
int32 beauty = 4;
|
int32 smile = 5;
|
}
|
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 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 ObjInfo{
|
Rect rcObj = 1;
|
int32 typ = 2;
|
float prob = 3;
|
}
|
|
// sdk face property
|
message ParamFacePos{
|
FacePos pos = 1;
|
ThftResult result = 2;
|
Image img = 3;
|
}
|
// sdk face extract
|
message ParamFaceCompare{
|
bytes feat1 = 1;
|
bytes feat2 = 2;
|
}
|
|
// sdk yolo detect
|
message ParamYoloObj{
|
repeated ObjInfo infos = 1;
|
Image img = 2;
|
}
|