BabyToy.m 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /*
  2. BabyBluetooth
  3. 简单易用的蓝牙ble库,基于CoreBluetooth 作者:刘彦玮
  4. https://github.com/coolnameismy/BabyBluetooth
  5. */
  6. // Created by 刘彦玮 on 15/8/1.
  7. // Copyright (c) 2015年 刘彦玮. All rights reserved.
  8. //
  9. #import "BabyToy.h"
  10. @implementation BabyToy
  11. //十六进制转换为普通字符串的。
  12. + (NSString *)ConvertHexStringToString:(NSString *)hexString {
  13. char *myBuffer = (char *)malloc((int)[hexString length] / 2 + 1);
  14. bzero(myBuffer, [hexString length] / 2 + 1);
  15. for (int i = 0; i < [hexString length] - 1; i += 2) {
  16. unsigned int anInt;
  17. NSString * hexCharStr = [hexString substringWithRange:NSMakeRange(i, 2)];
  18. NSScanner *scanner = [[NSScanner alloc] initWithString:hexCharStr];
  19. [scanner scanHexInt:&anInt];
  20. myBuffer[i / 2] = (char)anInt;
  21. }
  22. NSString *unicodeString = [NSString stringWithCString:myBuffer encoding:4];
  23. // BabyLog(@"===字符串===%@",unicodeString);
  24. return unicodeString;
  25. }
  26. //普通字符串转换为十六进制
  27. + (NSString *)ConvertStringToHexString:(NSString *)string {
  28. NSData *myD = [string dataUsingEncoding:NSUTF8StringEncoding];
  29. Byte *bytes = (Byte *)[myD bytes];
  30. //下面是Byte 转换为16进制。
  31. NSString *hexStr=@"";
  32. for (int i=0;i<[myD length];i++) {
  33. NSString *newHexStr = [NSString stringWithFormat:@"%x",bytes[i]&0xff];///16进制数
  34. if ([newHexStr length]==1) {
  35. hexStr = [NSString stringWithFormat:@"%@0%@",hexStr,newHexStr];
  36. }
  37. else{
  38. hexStr = [NSString stringWithFormat:@"%@%@",hexStr,newHexStr];
  39. }
  40. }
  41. return hexStr;
  42. }
  43. //int转data
  44. + (NSData *)ConvertIntToData:(int)i {
  45. NSData *data = [NSData dataWithBytes: &i length: sizeof(i)];
  46. return data;
  47. }
  48. //data转int
  49. + (int)ConvertDataToInt:(NSData *)data {
  50. int i;
  51. [data getBytes:&i length:sizeof(i)];
  52. return i;
  53. }
  54. //十六进制转换为普通字符串的。
  55. + (NSData *)ConvertHexStringToData:(NSString *)hexString {
  56. NSData *data = [[BabyToy ConvertHexStringToString:hexString] dataUsingEncoding:NSUTF8StringEncoding];
  57. return data;
  58. }
  59. //根据UUIDString查找CBCharacteristic
  60. + (CBCharacteristic *)findCharacteristicFormServices:(NSMutableArray *)services
  61. UUIDString:(NSString *)UUIDString {
  62. for (CBService *s in services) {
  63. for (CBCharacteristic *c in s.characteristics) {
  64. if ([c.UUID.UUIDString isEqualToString:UUIDString]) {
  65. return c;
  66. }
  67. }
  68. }
  69. return nil;
  70. }
  71. @end