通常在终端中,我会执行此命令与串行USB设备进行通信。NsTask执行终端命令的问题
回声-e“\ XFF \ X01 \ X01”> /dev/cu.usbserial-A8003YzT
我试图使用NStask可可应用程序中做到这一点,但我没有得到爱因为某些原因。
继承人我的代码:
- (IBAction) doCommand:(id)sender{
{
NSTask *task;
task = [[NSTask alloc] init];
[task setLaunchPath:@"/bin/echo"];
[task setArguments:
[NSArray arrayWithObjects:@"-e '\\xFF\\x01\\x01' > /dev/cu.usbserial-A8003YzT", nil]];
[task launch];
[task release];
}}
我知道代码基本上是工作,因为我用同样的脚本执行的其他终端命令.....不知道为什么我不能得到回音开火....也许我错过了简单的东西?
感谢所有帮助
+1“或者。 ..“根据我的经验,需要启动shell的NSTasks是一个**糟糕的想法。首先,他们打破了NSLog的其余程序执行。 – Richard 2011-05-16 15:32:51
@Sherm ....是的,照顾了这个问题。现在工作。我确信我不了解正确运行命令的正确功能。谢谢你清理那个。我对Obj-c相当陌生,所以我会给NSFileHandle一看。听起来这是一个更好的方法,只是不知道现在怎么样.... @理查德,谢谢你的提高,我读过同样的东西,并将NSfilehandle看作一个更好的选择谢谢大家! – butteryak 2011-05-16 16:36:37