是否有更简单的示例可用于使用EAAccessory执行串行通信?

时间:2011-01-06 13:33:30

标签: iphone cocoa-touch ios iphone-accessory

我正在编写一个需要通过串行连接发送和接收数据的iPhone应用程序。我一直在研究这里找到的Apple EADemoEAAccessory reference

问题在于我发现此示例太复杂而无法接受。是否有更简单的示例可用于如何通过串行连接发送和接收连接的附件?

我正在寻找向附件发送四个整数值,然后使用const char缓冲区将它们发送回iPhone的内容。

2 个答案:

答案 0 :(得分:1)

在亚马逊上花费5美元,但示例很简单:EAAccessory ebook

答案 1 :(得分:0)

如果您使用MFi编程,我认为这非常简单。 首先,您必须设置连接,在此步骤中您需要知道外部附件的协议字符串。使用此协议字符串打开会话。打开会话时使用代码:

 _session = [[EASession alloc] initWithAccessory:accessory forProtocol:_iAPProtocolString];
    if (_session)
    {
        [[_session inputStream] setDelegate:self];
        [[_session inputStream] scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
        [[_session inputStream] open];

        [[_session outputStream] setDelegate:self];
        [[_session outputStream] scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
        [[_session outputStream] open];
    }

然后,您可以将数据写入外部附件,如下所示:

uint8_t buff[4];
buff[0] = 0xE0;
buff[1] = 0x10;  
buff[2] = 0x00;
buff[3] = 0x1A;

bytesWritten = [[_session outputStream] write:[_writeData bytes] maxLength:[_writeData length]];