- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用串行编程将串行电缆连接到我的 iPhone
我的代码如下
#include <stdio.h> /* Standard input/output definitions */
#include <string.h> /* String function definitions */
#include <unistd.h> /* UNIX standard function definitions */
#include <fcntl.h> /* File control definitions */
#include <errno.h> /* Error number definitions */
#include <termios.h> /* POSIX terminal control definitions */
static struct termios gOriginalTTYAttrs;
static int OpenSerialPort()
{
int fileDescriptor = -1;
int handshake;
struct termios options;
// Open the serial port read/write, with no controlling terminal, and don't wait for a connection.
// The O_NONBLOCK flag also causes subsequent I/O on the device to be non-blocking.
// See open(2) ("man 2 open") for details.
fileDescriptor = open("/dev/tty.iap", O_RDWR | O_NOCTTY | O_NONBLOCK);
if (fileDescriptor == -1)
{
printf("Error opening serial port %s - %s(%d).\n",
"/dev/tty.iap", strerror(errno), errno);
goto error;
}
// Note that open() follows POSIX semantics: multiple open() calls to the same file will succeed
// unless the TIOCEXCL ioctl is issued. This will prevent additional opens except by root-owned
// processes.
// See tty(4) ("man 4 tty") and ioctl(2) ("man 2 ioctl") for details.
if (ioctl(fileDescriptor, TIOCEXCL) == -1)
{
printf("Error setting TIOCEXCL on %s - %s(%d).\n",
"/dev/tty.iap", strerror(errno), errno);
goto error;
}
// Now that the device is open, clear the O_NONBLOCK flag so subsequent I/O will block.
// See fcntl(2) ("man 2 fcntl") for details.
if (fcntl(fileDescriptor, F_SETFL, 0) == -1)
{
printf("Error clearing O_NONBLOCK %s - %s(%d).\n",
"/dev/tty.iap", strerror(errno), errno);
goto error;
}
// Get the current options and save them so we can restore the default settings later.
if (tcgetattr(fileDescriptor, &gOriginalTTYAttrs) == -1)
{
printf("Error getting tty attributes %s - %s(%d).\n",
"/dev/tty.iap", strerror(errno), errno);
goto error;
}
// The serial port attributes such as timeouts and baud rate are set by modifying the termios
// structure and then calling tcsetattr() to cause the changes to take effect. Note that the
// changes will not become effective without the tcsetattr() call.
// See tcsetattr(4) ("man 4 tcsetattr") for details.
options = gOriginalTTYAttrs;
// Print the current input and output baud rates.
// See tcsetattr(4) ("man 4 tcsetattr") for details.
printf("Current input baud rate is %d\n", (int) cfgetispeed(&options));
printf("Current output baud rate is %d\n", (int) cfgetospeed(&options));
// Set raw input (non-canonical) mode, with reads blocking until either a single character
// has been received or a one second timeout expires.
// See tcsetattr(4) ("man 4 tcsetattr") and termios(4) ("man 4 termios") for details.
cfmakeraw(&options);
options.c_cc[VMIN] = 1;
options.c_cc[VTIME] = 10;
// The baud rate, word length, and handshake options can be set as follows:
cfsetspeed(&options, B19200); // Set 19200 baud
options.c_cflag |= (CS8); // RTS flow control of input
printf("Input baud rate changed to %d\n", (int) cfgetispeed(&options));
printf("Output baud rate changed to %d\n", (int) cfgetospeed(&options));
// Cause the new options to take effect immediately.
if (tcsetattr(fileDescriptor, TCSANOW, &options) == -1)
{
printf("Error setting tty attributes %s - %s(%d).\n",
"/dev/tty.iap", strerror(errno), errno);
goto error;
}
// Success
return fileDescriptor;
// Failure "/dev/tty.iap"
error:
if (fileDescriptor != -1)
{
close(fileDescriptor);
}
return -1;
}
int main(int args, char *argv[])
{
int fd;
char somechar[8];
fd=OpenSerialPort(); // Open tty.iap with no hardware control, 8 bit, BLOCKING and at 19200 baud
if(fd>-1)
{
write(fd,"*",1); // Write handshaking message over serial
///////////////////////////////////////////////////////////////////////////////////////////////////
// After this, our device or our PC program should be strobing serial ground to gain access to the Iphone Serial Line
//////////////////////////////////////////////////////////////////////////////////////////////////
read(fd,&somechar[0],1); // Read 1 byte over serial. This will block (wait) untill the byte has been received
if(somechar[0]=='*') // Check if this byte is a "handshaking" message
{
printf("Serial connection established!\n"); // If it is, we have established a connection to the device and can freely read/write over serial!
while(1) // Do this forever or untill someone presses CTRL+C
{
read(fd,&somechar[0],1); // Read a character over serial!
putchar(somechar[0]); // Write the character to the Terminal!!
}
}
}
return 0;
}
但是当我要检查电缆是否已连接时,我遇到了这样的错误
Error opening serial port /dev/tty.iap - Operation not permitted(1).
有谁知道解决方案吗?如果我走错了路,请给我建议实际上我是 iOS 开发的新手,所以比较困惑。
谢谢
最佳答案
关于iphone - 将配件连接到我的越狱 iPhone 设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7608001/
我有从 2.3.3 到 4.0 的升级表。它工作正常。现在,我已经通过示例代码安装了 ADB 测试应用程序。但它没有显示任何内容。当我连接 USB 鼠标或键盘时只有黑屏。鼠标和键盘工作正常但 ADB
HomeKit 附件模拟器 作为一个小按钮,可以让设备不公平。 鉴于它是一个附件模拟器,我假设有一些硬件编程规范允许编写取消配对功能。 但是,将其作为 HomeKit 框架 的一部分来实现并允许客户端
HomeKit 配件模拟器中有一个取消配对按钮。当您取消与某个配件的配对时,该配件似乎会保留在您之前分配给它的家中的 HomeKit 数据库中。我想添加一个过程来从数据库中删除配件,或者重新配对配件。
我有一个使用 我希望该 USB 与在前台运行的 App1 和在后台运行的 App2 通信。 App2 在我的后台运行。前台运行的App1是第三方的。我将无法访问 App1。 当我尝试这样做时,每当一
对于我的应用程序,我想要一些可以同时具有复选标记和详细信息披露按钮的单元格。也就是说,我希望它们看起来与 iOS 设置中的 Wi-Fi 网络选择完全一样:左侧为复选标记,中间为内容,右侧为详细信息披露
5月1日消息,据外媒报道,虚拟现实(VR)技术已经出现,但它并不尽如人意。其中最重要的就是:虽然今天的VR系统已经可以塑造令人身临其境的视觉体验,但它们并不能满足我们所有的感官体验,比如至关重要的触
我刚刚开始使用 android 附件协议(protocol)进行一些开发。我采购了入门套件(微芯片)以熟悉环境。我应该指出,我在嵌入式 C 方面有扎实的背景,但在 Android/Java 方面却不是
我正在开发一个包含蓝牙连接配对的应用程序。所以我想知道蓝牙是否连接到其他设备或任何配件? 检查蓝牙是否已在 iPhone 中配对? 最佳答案 您可以尝试使用 CBCentralManager 将连接的
我想制作一个与 iOS 的 MIDI 接口(interface)配件通信的应用程序。我购买了 MFI 许可设备 (iConnectMidi),插入并创建了一个简单的项目,该项目在应用程序启动后调用 [
我有一个自定义硬件,它作为安卓配件通过 USB 连接到手机。我设法通过 native android 应用程序与它通信。我想知道是否可以通过 WebUSB API 与它通信。 到目前为止,我只是尝试使
我想创建一个通过 3.5 毫米插孔与 iPhone/iPad 交互的项目。 kickstarter.com 上有很多此类配件。尽管如此,我找不到任何 SDK 可以让我从插孔输入获取数据。 我看到 pr
特此说明情况:我正在开发 Android 平板电脑,它必须在 Accessory 中工作模式。原因是因为平板电脑无法提供足够的电量来执行与串行 USB 微 Controller 的通信并继续为其电池充
是否可以检测 iPod Touch/iPhone 是否连接了耳机或其他配件? 我正在构建一个需要麦克风的应用程序,并且需要知道“iSomething”是否通过扩展坞连接或使用耳机端口(例如内联耳机/麦
在构建使用 USB 连接的 Android 配件的各种教程中,第一步是“选择可以支持 USB 主机模式的硬件平台”。这些教程中的大多数都声称这意味着获得一台运行 > Android 3.1 的设备(或
在 android usb 配件中 documentation ,有一个android list 的例子,其中Activity通过intent-filter捕获USB_ACCESSORY_ATTACH
我是一名优秀的程序员,十分优秀!