浏览代码

优化修改代码,使其更符合面向对象的编程思想

niujiuru 2 周之前
父节点
当前提交
64523fb6c3
共有 3 个文件被更改,包括 21 次插入21 次删除
  1. 1 1
      main.go
  2. 18 18
      mcu_ctrl_board/bridge.go
  3. 2 2
      mcu_ctrl_board/mcu_ctrl_board.go

+ 1 - 1
main.go

@@ -58,7 +58,7 @@ func main() {
 	// 07, 阻塞等待退出信号量
 	select {
 	case <-baseapp.IsExit2():
-	case <-mcu.NotifyPwrWillOff():
+	case <-mcu.Board.NotifyPwrWillOff():
 	}
 
 	// 08, 退出程序并释放资源

+ 18 - 18
mcu_ctrl_board/bridge.go

@@ -105,7 +105,7 @@ func DetectJsonRole(jsonStr string) string {
 }
 
 // 处理控制板返回的-请求应答
-func handleResponse(jsonStr string) {
+func (board *MCUCtrlBoard) handleResponse(jsonStr string) {
 }
 
 //export RTU_JsonMsgProcCb
@@ -124,7 +124,7 @@ func RTU_JsonMsgProcCb(jsonStr *C.char) *C.char {
 	}
 
 	if role == "response" {
-		handleResponse(s)
+		Board.handleResponse(s)
 		return nil
 	}
 
@@ -149,16 +149,16 @@ func RTU_JsonMsgProcCb(jsonStr *C.char) *C.char {
 		switch r.Method {
 		// 控制板查询数据板状态
 		case "get_rtu_status":
-			w = call(getRTUStatus)
+			w = call(Board.getRTUStatus)
 		// 控制板发送传感器数据
 		case "send_sensor_data":
-			w = call(sendSensorData)
+			w = call(Board.sendSensorData)
 		// 控制板请求数据板拍照
 		case "take_photo":
-			w = call(takePhoto)
+			w = call(Board.takePhoto)
 		// 控制板发送预掉电通知
 		case "power_down":
-			w = call(powerDown)
+			w = call(Board.powerDown)
 		default:
 			w = jsonrpc2.BuildError(r, jsonrpc2.ErrMethodNotFound, "")
 		}
@@ -168,7 +168,7 @@ func RTU_JsonMsgProcCb(jsonStr *C.char) *C.char {
 }
 
 // 控制板查询数据板状态
-func getRTUStatus(r *jsonrpc2.Request) (*jsonrpc2.Response, error) {
+func (b *MCUCtrlBoard) getRTUStatus(r *jsonrpc2.Request) (*jsonrpc2.Response, error) {
 	netst := "offline"
 	if netmgrd.IsInetAvailable() {
 		netst = "online"
@@ -190,7 +190,7 @@ func getRTUStatus(r *jsonrpc2.Request) (*jsonrpc2.Response, error) {
 }
 
 // 控制板发送传感器数据
-func sendSensorData(r *jsonrpc2.Request) (*jsonrpc2.Response, error) {
+func (board *MCUCtrlBoard) sendSensorData(r *jsonrpc2.Request) (*jsonrpc2.Response, error) {
 	GlobalWorkState.Add(SensorDataReceiving)
 	defer GlobalWorkState.Remove(SensorDataReceiving)
 
@@ -200,30 +200,30 @@ func sendSensorData(r *jsonrpc2.Request) (*jsonrpc2.Response, error) {
 	}
 
 	select {
-	case Board.OneEnvDataCh <- &dataOne:
+	case board.OneEnvDataCh <- &dataOne:
 	default:
-		old := <-Board.OneEnvDataCh // 弹出旧数据
+		old := <-board.OneEnvDataCh // 弹出旧数据
 		baseapp.Logger.Warnf("OneEnvData 通道满, 丢弃一条老数据: %s!", old.String())
-		Board.OneEnvDataCh <- &dataOne
+		board.OneEnvDataCh <- &dataOne
 	}
 
 	return jsonrpc2.BuildResult(r, "success")
 }
 
 // 控制板请求数据板拍照
-func takePhoto(r *jsonrpc2.Request) (*jsonrpc2.Response, error) {
+func (board *MCUCtrlBoard) takePhoto(r *jsonrpc2.Request) (*jsonrpc2.Response, error) {
 	select {
-	case Board.ReqTakePhoCh <- true:
+	case board.ReqTakePhoCh <- true:
 	default:
-		<-Board.ReqTakePhoCh // 弹出旧数据
-		Board.ReqTakePhoCh <- true
+		<-board.ReqTakePhoCh // 弹出旧数据
+		board.ReqTakePhoCh <- true
 	}
 
 	return jsonrpc2.BuildResult(r, "success")
 }
 
 // 控制板发送预掉电通知
-func powerDown(r *jsonrpc2.Request) (*jsonrpc2.Response, error) {
+func (board *MCUCtrlBoard) powerDown(r *jsonrpc2.Request) (*jsonrpc2.Response, error) {
 	netst := "offline"
 	if netmgrd.IsInetAvailable() {
 		netst = "online"
@@ -238,8 +238,8 @@ func powerDown(r *jsonrpc2.Request) (*jsonrpc2.Response, error) {
 	wrkst := "idle"
 	if GlobalWorkState.Get() != Idle {
 		wrkst = "busy"
-	} else if Board != nil && Board.PwrWillOffCh != nil {
-		close(Board.PwrWillOffCh)
+	} else {
+		close(board.PwrWillOffCh)
 	}
 
 	wjson := fmt.Sprintf(`{"netst":"%s","systm":"%s","wrkst":"%s"}`, netst, systm, wrkst)

+ 2 - 2
mcu_ctrl_board/mcu_ctrl_board.go

@@ -79,6 +79,6 @@ func ModuleExit() {
 }
 
 // 通知数据板即将掉电
-func NotifyPwrWillOff() <-chan struct{} {
-	return Board.PwrWillOffCh
+func (board *MCUCtrlBoard) NotifyPwrWillOff() <-chan struct{} {
+	return board.PwrWillOffCh
 }