2014-01-10 1 views
0

나는 개발 한 Bluetooth 4.0 LE 모듈과 작동하도록 iOS 테스트 응용 프로그램을 작성 중입니다. 이 모듈은 다른 전자 장치에 대한 무선 UART 연결 역할을합니다. 주변 장치를 통해 이진 바이트 배열을 보내야합니다. 내 설정은 이미 NSdata를 사용하여 블루투스를 통해 모듈로 전송합니다.바이너리 바이트를 포함하는 NSdata 객체 만들기

예를 들어, "ABCDE"문자열이 NSdata로 변환되어 전송되면 "ABCDE"는 큰 문제없이 작동합니다.

그러나 내 주요 응용 프로그램 중 하나는 문자열의 charecters를 조회 테이블을 사용하여 독점 바이트 배열로 변환해야합니다. 그런 다음이 바이트 배열은 NSdata가되고 전송되어야합니다. "0111111 1001000 100100 0111111 0000000" (모든 문자 이진 데이터의 5 바이트로 구성 이제

:

하자가 내가 찾아 기능은 각각 "A"5 진 바이트가된다을 결정하는 string @"A"이 있다고 : 여기

은 예입니다. 블루투스를 통해 전송되도록 NSData 객체에 저장해야합니다. 내가 실행중인 문제는 해당 데이터의 문자열 표현을 사용하면 올바르지 않은 데이터 객체로 끝납니다. 하지만 아무것도 도움이 될 것입니다.

+0

당신이있는 NSData에있는 NSString을 Conver 유럽하는 방법을 묻는 : 그냥 제대로 바이트 배열의 값을 설정하고있는 NSData에 전달,이것은 단지 예입니다하지만 난 당신이 포인트를 얻을 수있을 것 같아요? –

+0

아니요, NSdata 객체의 실제 바이트를 이진 바이트로 설정하는 방법을 묻습니다. 그런 식으로 첫 번째 바이트는 문자열에있는 문자의 이진 또는 ASCII 표현 대신 "0111111"입니다. –

+0

나는 아직도 당신을 분명히 이해할 수 없다. [이 질문에 대한 답변] (http://stackoverflow.com/questions/20772161/set-data-for-each-bit-in-nsdata-ios/20775752#20775752)을 참조하십시오. 도움이 될 수도 있습니다. 알려줘 –

답변

0
char t[16]; 
t[0] = ((UUID >> 8) & 0xff); 
t[1] = (UUID & 0xff); 
NSData *data = [[NSData alloc] initWithBytes:t length:16];