瀏覽代碼

上线bug修复

chengqian 3 天之前
父節點
當前提交
7ea30aa064
共有 5 個文件被更改,包括 21 次插入8 次删除
  1. 二進制
      build/smart_tunnel_edge
  2. 2 4
      radar_test.go
  3. 5 0
      service/devmgr.go
  4. 13 3
      service/serialmgr.go
  5. 1 1
      timer/task.go

二進制
build/smart_tunnel_edge


+ 2 - 4
radar_test.go

@@ -3,7 +3,6 @@ package main
 import (
 	"encoding/hex"
 	"fmt"
-	"smart_tunnel_edge/protocol/switchRelay"
 	"testing"
 )
 
@@ -56,10 +55,9 @@ func Test_verify(t *testing.T) {
 	//pack := switchRelay.DataPack{Address: "fe", Way: 2, Command: 0}
 	//command := pack.GetSwitchRelayCommand()
 	//fmt.Println("MingLing。。。", hex.EncodeToString(command.Bytes()))
-	ints := []int{1, 2}
-	command := switchRelay.MultiLoopDataPack{Address: "FE", TurnOff: 0, State: ints}.GetControlMuchSwitchRelayCommand()
+	str := "01050000ff008c3a"
 	//state := generateHexSwitchState(ints)
-	fmt.Println("转换后:", hex.EncodeToString(command.Bytes()))
+	fmt.Println("dayin:", str[2:6])
 }
 
 func parseHexString(hexStr string) string {

+ 5 - 0
service/devmgr.go

@@ -32,6 +32,8 @@ func InitControl() {
 		go SetLampBright([]int8{1, 2}, LowLightLevel)
 	} else {
 		go SetSwitchRelay([]int8{1, 2}, 1, 1)
+		time.Sleep(100 * time.Millisecond)
+		go SetSwitchRelay([]int8{1, 2}, 2, 0)
 	}
 }
 
@@ -83,14 +85,17 @@ func OperationLampSwitchJudge(radarId []int8, brightness int, power string) {
 		case FullPower:
 			// 满功率:打开回路1和回路2
 			go SetSwitchRelay(radarId, 1, 1) // 打开回路1
+			time.Sleep(100 * time.Millisecond)
 			go SetSwitchRelay(radarId, 2, 1) // 打开回路2
 		case LowPower:
 			// 三分之一功率:打开回路1,关闭回路2
 			go SetSwitchRelay(radarId, 1, 1)
+			time.Sleep(100 * time.Millisecond)
 			go SetSwitchRelay(radarId, 2, 0)
 		case MediumPower:
 			// 三分之二功率:打开回路2,关闭回路1
 			go SetSwitchRelay(radarId, 2, 1) // 打开回路2
+			time.Sleep(100 * time.Millisecond)
 			go SetSwitchRelay(radarId, 1, 0) // 关闭回路1
 		}
 	}

+ 13 - 3
service/serialmgr.go

@@ -5,7 +5,7 @@ import (
 	"encoding/json"
 	"errors"
 	"github.com/tarm/serial"
-	"log"
+	"io"
 	"smart_tunnel_edge/util/config"
 	"smart_tunnel_edge/util/logger"
 	"strconv"
@@ -73,17 +73,24 @@ func OpenSerialPort(portMap map[int8]*config.SerialPort) error {
 }
 
 func listenPort(portCode int8, port *serial.Port) {
-	//fmt.Println("监听串口...")
+	//logger.Logger.Infof("监听串口:【%v】 \n", portCode)
 	buf := make([]byte, 512)
 	for {
 		// 读取数据
 		n, err := port.Read(buf)
 		if err != nil {
-			log.Printf("读取串口数据失败: %v", err)
+			if err == io.EOF {
+				continue
+			}
+			//打印错误并重新开启监听
+			logger.Logger.Errorf("读取串口失败,错误:%v", err)
+			time.Sleep(2 * time.Second)
+			go listenPort(portCode, port)
 			return
 		}
 		if n > 0 {
 			dataString := hex.EncodeToString(buf[:n])
+			//logger.Logger.Infof("串口=【%v】,读取到的数据:%v", portCode, dataString)
 			switch {
 			case len(dataString) == 42 && dataString[2:6] == "0310": //环境传感器数据
 				shiDu, _ := strconv.ParseInt(dataString[6:10], 16, 0)
@@ -180,6 +187,9 @@ func listenPort(portCode int8, port *serial.Port) {
 				//	fmt.Printf("错误数据: %s \n", dataString)
 			}
 			if config.Instance().Policy.Id == 1 && config.Instance().Nums.EnvNum == len(env) && config.Instance().Nums.OptNum == len(opt) {
+				if len(dataString) == 16 && dataString[2:6] == "0500" && dataString[10:12] == "00" {
+					continue
+				}
 				envAverage := calculateAverage(env)
 				optAverage := calculateAverage(opt)
 

+ 1 - 1
timer/task.go

@@ -15,7 +15,7 @@ func TimeTasks() {
 		if config.Instance().Policy.Id == 3 { //如果当前策略是定时改变光照亮度
 			endTime := config.Instance().Policy.EndTime
 			startTime := config.Instance().Policy.StartTime
-			currentTime := time.Now().Format("15:04")
+			currentTime := time.Now().Add(8 * time.Hour).Format("15:04")
 			if currentTime == startTime {
 				//开灯,将两条路亮度调高
 				service.OperationLampSwitchJudge([]int8{1, 2}, service.MediumLightLevel, service.MediumPower)