From 539a78196da60eb97cf7057c5c85dfaa9b240741 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期五, 11 十月 2024 16:21:32 +0800
Subject: [PATCH] 添加A3平层传感器数据获取方式

---
 pkg/floor.go |   20 +++++++++++++-------
 1 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/pkg/floor.go b/pkg/floor.go
index c4c52a7..ad14c3b 100644
--- a/pkg/floor.go
+++ b/pkg/floor.go
@@ -56,21 +56,27 @@
 
 // RestoreFloor restores the three-character string back to the original floor string
 func RestoreFloor(encoded string) (string, string, error) {
-	if len(encoded) != 4 {
+	var direction, sign uint8
+	var floorNumber, floorStr, directionStr string
+
+	// 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")
 	}
 
-	direction := encoded[0]
-	sign := encoded[1]
-	number := encoded[2:]
-
 	// 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
 	}
 
-	var floorStr, directionStr string
 	if sign == '1' {
 		floorStr = fmt.Sprintf("-%dF", parsedNumber)
 	} else if sign == '0' {

--
Gitblit v1.8.0