You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用变量调用Linux的i2ctransfer命令时无法获取完整响应的问题求助

使用变量调用Linux的i2ctransfer命令时无法获取完整响应的问题求助

各位大佬好,最近在做一个C#调用Linux i2ctransfer命令的功能,遇到了一个奇怪的问题,想请教下大家。

当我把命令参数硬编码的时候,代码是这样的:

string regPartA = inputData.Substring(0,4);
string regPartB = inputData.Substring(4,5);
regPartB = regPartB.Insert(0, "0x");
response = SystemHelper.CommandExec("i2ctransfer", "-f -y -v 16 w2@0x18 0x30 0x12 r2");

这时候终端能返回完整的响应内容:

msg 0: addr 0x18, write, len 2, buf 0x30 0x12
msg 1: addr 0x18, read, len 2, buf 0x00 0x10

可是当我把硬编码的参数换成变量拼接之后,代码改成了这样:

response = SystemHelper.CommandExec("i2ctransfer", $"-f -y -v 16 w2@0x18 {regPartA} {regPartB} r2");

这时候我只能拿到msg 0的响应,完全看不到msg 1的部分,也就没法获取到需要的读取数据。

我期望用变量传递参数的时候,能得到和直接在命令行输入该命令时一样的完整响应——理想情况下能直接拿到类似"0x10 0x00"的结果,但就算是包含msg 1的完整输出也可以,我自己能从中提取需要的数据。

有没有大佬知道问题出在哪?该怎么调整才能让变量版的调用也返回完整的响应呢?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 09:03:07