From bb48a3ef0bdc2b5a0b50ca429bc5bc0a118f9732 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期五, 13 九月 2024 02:49:22 +0800
Subject: [PATCH] use goroutinne run rfid read
---
pkg/floor.go | 67 ++++++++++++++++++++-------------
1 files changed, 40 insertions(+), 27 deletions(-)
diff --git a/pkg/floor.go b/pkg/floor.go
index 591c115..ad14c3b 100644
--- a/pkg/floor.go
+++ b/pkg/floor.go
@@ -4,33 +4,33 @@
"fmt"
"strconv"
"strings"
-
- "gat1400Exchange/pkg/snowflake"
)
+// 宸插純鐢�
// 鐢熸垚涓�涓寘鍚ゼ灞傜殑浜鸿劯id,瑙f瀽妤煎眰
-// 浣跨敤48浣嶆簮id, 鍏朵腑鍓�41浣嶆槸imageid, 涓嶅彲浠ヤ慨鏀� +99 + 3浣嶆ゼ灞�(绗竴浣�0琛ㄧず姝�,1琛ㄧず璐�) + 2浣嶉殢鏈烘暟
+// 浣跨敤48浣嶆簮id, 鍏朵腑鍓�41浣嶆槸imageid, 涓嶅彲浠ヤ慨鏀� 41-43浣嶅~ 06 浠h〃鍥惧儚, +99 + 3浣嶆ゼ灞�(绗竴浣�0琛ㄧず姝�,1琛ㄧず璐�)
func GenerateFaceIdContainFloor(srcId, floorStr string) string {
- floorNum, _ := parseFloor(floorStr)
- newId := srcId[0:41] + "99" + floorNum + snowflake.CreateRandomNumber(2)
+ floorNum, _ := ParseFloor("0", floorStr)
+ newId := srcId[0:43] + "99" + floorNum
+ //newId := srcId[0:43] + "99" + floorNum + snowflake.CreateRandomNumber(1)
return newId
}
-func ParseFloorFromId(srcId string) (string, error) {
+func ParseFloorFromId(srcId string) (string, string, error) {
if len(srcId) != 48 {
- return "", fmt.Errorf("invalid id %s", srcId)
+ 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
-func parseFloor(floor string) (string, error) {
+// ParseFloor parses the floor string and returns a three-character string
+func ParseFloor(direction, floor string) (string, error) {
var sign string
var number string
@@ -51,32 +51,45 @@
// Format the number to be two digits
formattedNumber := fmt.Sprintf("%02s", number)
- return sign + formattedNumber, nil
+ return direction + sign + formattedNumber, nil
}
-// restoreFloor restores the three-character string back to the original floor string
-func restoreFloor(encoded string) (string, error) {
- if len(encoded) != 3 {
- return "", fmt.Errorf("encoded string must be 3 characters long")
- }
+// RestoreFloor restores the three-character string back to the original floor string
+func RestoreFloor(encoded string) (string, string, error) {
+ var direction, sign uint8
+ var floorNumber, floorStr, directionStr string
- sign := encoded[0]
- number := encoded[1:]
+ // 3浣嶆槸鏃х殑鏍煎紡, 涓轰簡鍏煎, 鏆傛椂淇濈暀
+ if len(encoded) == 3 {
+ sign = encoded[0]
+ floorNumber = encoded[1:]
+ } else if len(encoded) == 4 {
+ direction = encoded[0]
+ sign = encoded[1]
+ floorNumber = encoded[2:]
+ } else {
+ return "", "", fmt.Errorf("encoded string must be 3 characters long")
+ }
// Convert the number back to integer to remove any leading zeros
- parsedNumber, err := strconv.Atoi(number)
+ parsedNumber, err := strconv.Atoi(floorNumber)
if err != nil {
- return "", err
+ return "", "", err
}
- var restoredFloor string
if sign == '1' {
- restoredFloor = fmt.Sprintf("-%dF", parsedNumber)
+ floorStr = fmt.Sprintf("-%dF", parsedNumber)
} else if sign == '0' {
- restoredFloor = fmt.Sprintf("%dF", parsedNumber)
+ floorStr = fmt.Sprintf("%dF", parsedNumber)
} else {
- return "", fmt.Errorf("invalid sign character in encoded string")
+ return "", "", fmt.Errorf("invalid sign character in encoded string")
}
- return restoredFloor, nil
+ if direction == '1' {
+ directionStr = "in"
+ } else if direction == '2' {
+ directionStr = "out"
+ }
+
+ return directionStr, floorStr, nil
}
--
Gitblit v1.8.0