Procházet zdrojové kódy

优化修改代码

niujiuru před 3 týdny
rodič
revize
910a0f9227

+ 1 - 0
Makefile

@@ -60,6 +60,7 @@ libmcu_ctrl_board.a :
 
 LIBS := -Wl,-Bstatic -L$(RTU_LINUX_MODULES_PATH)/swapi -lswapi -L$(RTU_LINUX_MODULES_PATH)/mvs_u_takephoto -lmvs_u_takephoto
 LIBS += -L$(RTU_LINUX_MODULES_PATH)/air720u -lair720u -L$(RTU_LINUX_MODULES_PATH)/air530z -lair530z -L$(RTU_LINUX_MODULES_PATH)/ec200u -lec200u
+LIBS += -L./mcu_ctrl_board -lmcu_ctrl_board
 ifeq ($(target),armv7hf)
   LIBS += -Wl,-Bdynamic -lc -lm -ldl -lpthread -L$(RTU_LINUX_MODULES_PATH)/mvs_u_takephoto/lib/armv7hf/. -lMvCameraControl
 else

+ 6 - 1
main.go

@@ -8,6 +8,7 @@ import (
 	baseapp "hnyfkj.com.cn/rtu/linux/baseapp"
 	camera1 "hnyfkj.com.cn/rtu/linux/mvs_u_takephoto" // 海康U口相机
 	netmgrd "hnyfkj.com.cn/rtu/linux/netmgrd"
+	mcu "hnyfkj.com.cn/rtu/xy_v/mcu_ctrl_board"
 )
 
 func main() {
@@ -43,7 +44,10 @@ func main() {
 		goto end_p
 	}
 
-	// 05, 初始化单片机控制板, Todo: 根据项目不同, 使用的控制版硬件和协议都不同, 具体看情况
+	// 05, 初始化单片机控制板
+	if !mcu.ModuleInit() {
+		goto end_p
+	}
 
 	// 06, 后台服务器业务交互, Todo: 根据项目不同, 实现具体的业务逻辑协议都不同, 具体看情况
 
@@ -52,6 +56,7 @@ func main() {
 
 	// 08, 退出程序并释放资源
 end_p:
+	mcu.ModuleExit()
 	netmgrd.ModemExit()
 	gps.ModuleExit()
 

+ 7 - 0
mcu_ctrl_board/lwjson/lwjson_opts.h

@@ -34,4 +34,11 @@
 #ifndef LWJSON_OPTS_HDR_H
 #define LWJSON_OPTS_HDR_H
 
+/*
+ * Open "include/lwjson/lwjson_opt.h" and
+ * copy & replace here settings you want to change values
+ */
+#define LWJSON_CFG_COMMENTS 1 // TODO: Stream parser: ignore comments (optional)
+#define LWJSON_CFG_STREAM_STRING_MAX_LEN 2048
+
 #endif /* LWJSON_OPTS_HDR_H */

+ 2 - 0
mcu_ctrl_board/mcb_test.c

@@ -1,3 +1,5 @@
+// +build ignore
+
 #include "mcu_ctrl_board.h"
 
 char *RTU_ProcessCommand(const char *request)

+ 1 - 1
mcu_ctrl_board/mcu_ctrl_board.c

@@ -31,7 +31,7 @@ static int comio_data_recv_proc(unsigned long wParam/*传递打开的串口句
   case lwjsonERRJSON:             // 1, 无效的字符  
   case lwjsonSTREAMWAITFIRSTCHAR: // 2, 等待首字符
     serial_printf_recv_buffer(pSerial, LEVEL_TRACE);
-    sw_log_warn("[%s] %s discarded %d bytes before JSON frame start!", MODULE_NAME, log_prefix, nRecvBytes);
+    sw_log_warn("[%s] %s discarding invalid JSON byte: 0x%02X(buffer length: %d)!", MODULE_NAME, log_prefix, pRecvBuf[0], nRecvBytes);
     serial_clear_recv_buffer(pSerial);
     goto retp;
   case lwjsonSTREAMINPROG:        // 3, 正在解析中

+ 4 - 1
mcu_ctrl_board/mcu_ctrl_board.go

@@ -45,5 +45,8 @@ func ModuleExit() {
 
 //export RTU_ProcessCommand
 func RTU_ProcessCommand(req *C.char) *C.char {
-	return C.CString("")
+	goReq := C.GoString(req)
+	baseapp.Logger.Debugf("[%s] 收到来自MCU控制板的请求: %s", MODULE_NAME, goReq)
+	goResp := "{\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32601,\"message\":\"Method not found\"},\"id\":1}"
+	return C.CString(goResp)
 }