使用变量调用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
相关产品推荐
相关产品推荐

