- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须通过蓝牙与设备进行通信,该设备期望命令由回车+换行分隔。使用 RFCOMMChannel 建立连接。
Atm 似乎我的代码无法正常工作,因为我期待设备的回复,当我使用 simpel 终端程序向它发送命令时,它会回复。
此代码在建立连接后运行(这肯定有效,因为我可以记录来自外部设备的数据)
NSString *clockRequest = @"C\r\n";
void *clockRequestData = (__bridge void *)([clockRequest dataUsingEncoding:NSASCIIStringEncoding]);
NSLog(@"Data buffer to write: %@", clockRequestData);
[rfcommChannel writeAsync: clockRequestData length:100 refcon:NULL];
//writing data from rfcomm
- (void)rfcommChannelWriteComplete:(IOBluetoothRFCOMMChannel*)rfcommChannel refcon:(void*)refcon status:(IOReturn)error {
NSLog(@"Macbook wrote to Timecube, status: %d", error);
}
建立连接的代码取自并调整自 https://gist.github.com/crazycoder1999/3139668
提前致谢
最佳答案
将类别 NSStringHexToBytes 添加到您的项目:
NSString+NSStringHexToBytes.h
#import <Foundation/Foundation.h>
@interface NSString (NSStringHexToBytes)
+ (NSData *)dataWithString:(NSString *)string;
@end
NSString+NSStringHexToBytes.m
#import "NSString+NSStringHexToBytes.h"
@implementation NSString (NSStringHexToBytes)
+ (NSData *)dataWithString:(NSString *)string
{
//string = [string stringByReplacingOccurrencesOfString:@"0x" withString:@""];
//NSCharacterSet *notAllowedCharacters = [[NSCharacterSet characterSetWithCharactersInString:@"abcdefABCDEF1234567890"] invertedSet];
//string = [[string componentsSeparatedByCharactersInSet:notAllowedCharacters] componentsJoinedByString:@""];
const char *cString = [string cStringUsingEncoding:NSASCIIStringEncoding];
const char *idx = cString;
unsigned char result[[string length] / 2];
size_t count = 0;
for(count = 0; count < sizeof(result)/sizeof(result[0]); count++)
{
sscanf(idx, "%2hhx", &result[count]);
idx += 2 * sizeof(char);
}
return [[NSData alloc] initWithBytes:result length:sizeof(result)];
}
@end
在您的实现文件中导入 NSString+NSStringHexToBytes.h 并添加方法
-(void)sendMessage:(NSData *)data
{
[rfcommChannel writeSync:(void*)data.bytes length:data.length];
}
然后:
NSString* clockRequest = @"C\r\n";
NSData* data = [NSString dataWithString:clockRequest];
[rfcommChannel sendMessage:data];
关于cocoa - 如何构建通过 RFCOMMChannel 与 writeAsync 一起使用的命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16546997/
我尝试编写一个带有超时的简单异步写入代码,如下所示,并期望该函数在给定非常大的缓冲区和小等待时间的情况下抛出 TaskCanceledException。但是,这不会发生。 WriteAsync 将阻
我正在使用异步调用将文件写入 IsolatedStorageFile async void Base64ToImage() { byte[] data; using (IsolatedS
我正在尝试通过TComPort组件异步发送字符串, 但是所有内容都是同步发送的。 问题在于该应用将被阻止,并等待传输结束。 我的代码: procedure TForm1.Button1Click(Se
我有一个 ASP.NET Core API,我为此编写了自定义中间件,以便我可以处理异常并在一个位置写入日志。通过 Kestrel 调试并从浏览器或 postman 提交请求时,中间件按要求工作,但在
我正在尝试调用在模拟HttpResponse 上模拟的WriteAsync,但我不知道要使用的语法。 var responseMock = new Mock(); responseMock.Setup
我正在尝试开发一个基本的 Windows 8 应用商店应用程序,只需创建一个新文件并向其中写入一些示例数据。但是,当我运行我编写的函数时,应用程序挂起并且变得没有响应。我尝试了两种不同的文件创建方法,
您好,如果有人可以向我解释这两种从 Controller 返回数据的方法之间的区别,我正在徘徊。使用 on 方法比其他方法有优势或理由吗? 我猜测返回的函数只是调用 Response.WriteAsy
使用 TcpClient 通过网络推送数据。客户端只发送数据。在某些时候,服务器可能会关闭套接字。服务器关闭套接字后,第一个客户端发送无异常完成。客户端第二次发送抛出 IOException。我本以为
我有一个 asp.net webforms 应用程序,用于从数据库中检索以 varbinary 格式保存的视频并将其显示为 html5 视频标记。 在谷歌搜索后,我找到了一种使用ASP.Net Web
如果我在 Login 调用完成后终止我的服务器,则在调用 stream.WriteAsync(data, 0, data.Count()); 已创建,返回的任务中没有错误指示。 那么,我应该如何检测错
我一直在 Ayende Rahien 的博客上试验一些代码 here它演示了使用异步 HttpHandler 来提高可并发处理的请求数。 不幸的是,我连最基本的例子都无法运行。我收到以下错误: 'Sy
我一直在研究 Asp.Net Security,我发现了一些令人惊讶的代码: 奇怪的代码? context.Response.ContentType = "text/html"; await cont
我必须通过蓝牙与设备进行通信,该设备期望命令由回车+换行分隔。使用 RFCOMMChannel 建立连接。 Atm 似乎我的代码无法正常工作,因为我期待设备的回复,当我使用 simpel 终端程序向它
当有一个 TcpClient 在多个线程中获取其 stream 并在每个线程上对其执行 WriteAsync 时。它是线程安全的吗?数据(传递给 write 方法的字节数组)是否会作为传递给 Writ
我对该代码有疑问, XpsDocument doc = new XpsDocument(_filePath, FileAccess.Read); XpsDocument = doc.GetFixedD
我正在将视频流录制到磁盘。为此,我使用以下代码: private async Task SaveToFile(IntPtr data, Int32 size) { if (_FileStrea
我正在查看 C# 中新的 async 和 await 关键字,只是想感受一下它们。 我正在查看 MSDN FileStream.WriteAsync() example ,而且我不确定我是否理解了什么
我一直在尝试实现一个支持 ReadAsync 和 WriteAsync 的 Stream,并考虑到 documentation 的冗余性,我正在努力了解如何正确执行此操作。具体来说,关于流的光标位置。
在 HttpWebRequest.GetRequestStream() 创建的流上取消 WriteAsync 操作时,我收到一个 WebException 并显示以下消息: Cannot close
异步向客户端写入数据时如何防止这个问题 The BeginWrite method cannot be called when another write operation is pending 我
我是一名优秀的程序员,十分优秀!