| | |
| | | ChannelNo string `mapstructure:"channel-number"` // 通道号, 同id |
| | | HeartbeatInterval int `mapstructure:"heartbeat-interval"` // 心跳周期 |
| | | HeartbeatFailCount int `mapstructure:"heartbeat-count"` // 心跳超时次数 |
| | | AddFloorToFaceId bool `mapstructure:"add-floor-faceId"` |
| | | Enable bool `mapstructure:"enable"` |
| | | } |
| | | |
| | |
| | | "fmt" |
| | | "strconv" |
| | | "strings" |
| | | |
| | | "gat1400Exchange/pkg/snowflake" |
| | | ) |
| | | |
| | | // 生成一个包含楼层的人脸id,解析楼层 |
| | | // 使用48位源id, 其中前41位是imageid, 不可以修改 +99 + 3位楼层(第一位0表示正,1表示负) + 2位随机数 |
| | | // 使用48位源id, 其中前41位是imageid, 不可以修改 41-43位填 06 代表图像, +99 + 3位楼层(第一位0表示正,1表示负) |
| | | func GenerateFaceIdContainFloor(srcId, floorStr string) string { |
| | | floorNum, _ := parseFloor(floorStr) |
| | | newId := srcId[0:41] + "99" + floorNum + snowflake.CreateRandomNumber(2) |
| | | newId := srcId[0:43] + "99" + floorNum |
| | | //newId := srcId[0:43] + "99" + floorNum + snowflake.CreateRandomNumber(1) |
| | | |
| | | return newId |
| | | } |
| | |
| | | return "", fmt.Errorf("invalid id %s", srcId) |
| | | } |
| | | |
| | | if srcId[41:43] != "99" { |
| | | return "", fmt.Errorf("invalid flag %s", srcId[41:43]) |
| | | if srcId[43:45] != "99" { |
| | | return "", fmt.Errorf("invalid flag %s", srcId[43:45]) |
| | | } |
| | | |
| | | return restoreFloor(srcId[43:46]) |
| | | return restoreFloor(srcId[45:48]) |
| | | } |
| | | |
| | | // parseFloor parses the floor string and returns a three-character string |
| | |
| | | } |
| | | |
| | | // 尝试从faceId提取楼层 |
| | | if pd.CameraFloor == "" { |
| | | if pd.CameraFloor == "" && config.ClientConf.AddFloorToFaceId { |
| | | pd.CameraFloor, _ = pkg.ParseFloorFromId(face.FaceID) |
| | | } |
| | | //logger.Debug("device %s, CameraFloor:%s", deviceId, pd.CameraFloor) |
| | |
| | | |
| | | for idx, face := range msg.FaceListObject.FaceObject { |
| | | msg.FaceListObject.FaceObject[idx].OtherFeature = devPos.Pos |
| | | msg.FaceListObject.FaceObject[idx].FaceID = pkg.GenerateFaceIdContainFloor(face.FaceID, devPos.Pos) |
| | | if config.ClientConf.AddFloorToFaceId { |
| | | msg.FaceListObject.FaceObject[idx].FaceID = pkg.GenerateFaceIdContainFloor(face.FaceID, devPos.Pos) |
| | | } |
| | | } |
| | | |
| | | b, _ := json.Marshal(msg) |