iOS 蓝牙命令数据格式转换,蓝牙返回数据解析

1.蓝牙命令写入数据格式转换:

- (NSMutableData*)convertHexStrToData:(NSString*)str{

    if(!str || [strlength] ==0) {

        returnnil;

    }

    NSMutableData *hexData = [[NSMutableData alloc] initWithCapacity:8];

    NSRangerange;

    if([strlength] %2==0) {

        range =NSMakeRange(0,2);

    }else{

        range =NSMakeRange(0,1);

    }

    for(NSIntegeri = range.location; i < [strlength]; i +=2) {

        unsignedintanInt;

        NSString*hexCharStr = [strsubstringWithRange:range];

        NSScanner*scanner = [[NSScanneralloc]initWithString:hexCharStr];


        [scannerscanHexInt:&anInt];

        NSData *entity = [[NSData alloc] initWithBytes:&anInt length:1];

        [hexDataappendData:entity];


        range.location+= range.length;

        range.length=2;

    }

    returnhexData;

}

2.蓝牙数据解析:

- (NSString*)hexStringFromData:(NSData*)myD{

    Byte*bytes = (Byte*)[myDbytes];

    //下面是Byte 转换为16进制。

    NSString*hexStr=@"";

    for(inti=0;i<[myDlength];i++){

        NSString*newHexStr = [NSStringstringWithFormat:@"%x",bytes[i]&0xff];///16进制数


        if([newHexStrlength]==1)

            hexStr = [NSStringstringWithFormat:@"%@0%@",hexStr,newHexStr];

        else

            hexStr = [NSStringstringWithFormat:@"%@%@",hexStr,newHexStr];

    }

    NSLog(@"hex = %@",hexStr);

    returnhexStr;

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • /**ios常见的几种加密方法: 普通的加密方法是讲密码进行加密后保存到用户偏好设置( [NSUserDefaul...
    彬至睢阳阅读 3,042评论 0 7
  • 最近在忙一个蓝牙项目,在处理蓝牙数据的时候,经常遇到进制之间的转换,蓝牙处理的是16进制(NSData),而我们习...
    代码移动工程师阅读 1,543评论 0 1
  • 之前的项目中接触过一些加密的方法,也没有太仔细的进行记录和研究。最近在写SDK时,加密模块的占比相当之大;借此时机...
    过半_e764阅读 627评论 0 0
  • - (NSString*)QQJXPinxCreator:(NSString*)sha256 { NSStri...
    24K纯城阅读 635评论 0 0
  • 如何融入孩子是家庭教育中的一个重要问题。融入孩子是俯下身而不是昂起头;融入孩子是你变他(她)而不是他(她)变你...
    乐观桂娥阅读 522评论 2 3