|
|
@@ -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)
|