Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;不是打字机;Android上的AVRDude错误_Android_Usb_Libusb_Avrdude - Fatal编程技术网

&引用;不是打字机;Android上的AVRDude错误

&引用;不是打字机;Android上的AVRDude错误,android,usb,libusb,avrdude,Android,Usb,Libusb,Avrdude,我从Android应用程序(使用)接收到一个设备的文件描述符,通过JNI以本机代码发送,并通过Unix套接字在子进程(AVRDude)中接收,并尝试用于上传 所以我得到了一个“不是打字机”错误。这是否意味着文件描述符传递不正确(它是一个正整数,接收后不等于-1)?还是会有另一个错误?这是否可能是权限问题(尽管已授予UsbDevice权限,并且通过套接字传递似乎持有权限,但该设备没有根目录) 使用的代码(ser_posix.c在AVRDude 5_11_0源代码中): 在收到套接字文件描述符后,立

我从Android应用程序(使用)接收到一个设备的文件描述符,通过JNI以本机代码发送,并通过Unix套接字在子进程(AVRDude)中接收,并尝试用于上传

所以我得到了一个“不是打字机”错误。这是否意味着文件描述符传递不正确(它是一个正整数,接收后不等于-1)?还是会有另一个错误?这是否可能是权限问题(尽管已授予UsbDevice权限,并且通过套接字传递似乎持有权限,但该设备没有根目录)

使用的代码(
ser_posix.c
在AVRDude 5_11_0源代码中):

在收到套接字文件描述符后,立即检查其是否有效(我相信它是有效的):

最初,ser_posix中的文件描述符是这样接收的(我相信它正在工作):


在我的实现中,我使用Android应用程序中的文件描述符。这是预期的吗?

在两台设备上测试,支持不同制造商和安卓操作系统版本(4.0.4和4.1)的USB主机-同一错误文件描述符保证在从套接字获取和用于设置波特率之间不会更改删除“isatty”没有帮助,因为我在以后的操作中会遇到相同的错误(实际设置波特率)使用串行
fprintf(stdout, "Try to set baud = %i for fd = %i", baud, usbfd);
if (!isatty(usbfd)) { // Error here!
    fprintf(stderr, "!isatty\n");
    return -ENOTTY;
}
if (!(fcntl(usbfd, F_GETFL) != -1 || errno != EBADF)) {
    fprintf(stderr, "Invalid file descriptor %d, - %s", usbfd, strerror(errno));
    exit(1);
}
fd = open(port, O_RDWR | O_NOCTTY | O_NONBLOCK);