小智机器人MCP
如果json包含MCP则 按照MCP去解析
strcmp(type->valuestring, "llm") 是一个字符串比较函数调用,作用是判断 type->valuestring 指向的字符串是否否等于 "mcp"。
else if (strcmp(type->valuestring, "mcp") == 0) {auto payload = cJSON_GetObjectItem(root, "payload");if (cJSON_IsObject(payload)) {McpServer::GetInstance().ParseMessage(payload);}大模型回复的function call json, 调节屏幕亮度
I (99214) Application: Incoming JSON:
{"type": "mcp","payload": {"jsonrpc": "2.0","method": "tools/call","id": 3,"params": {"name": "self.screen.set_brightness","arguments": {"brightness": 75}}},"session_id": "d0ab4e24"
}拍照
I (198434) Application: Incoming JSON:
{"type": "mcp","payload": {"jsonrpc": "2.0","method": "tools/call","id": 3,"params": {"name": "self.camera.take_photo","arguments": {"question": "你看看这是什么"}}},"session_id": "12815b2b"
}查询电量
I (233884) Application: Incoming JSON:
{"type": "mcp","payload": {"jsonrpc": "2.0","method": "tools/call","id": 4,"params": {"name": "self.get_device_status","arguments": {}}},"session_id": "12815b2b"
}