我的字符串值为@“hello world”。我需要传递字符串值和crc命令我的crc命令在这里。我已经转换了这样的字符串
Nsstring * total=@"hello world ";
uint8_t *cString = (uint8_t *)[total UTF8String];
Byte comm[5];
comm[0]=0x01;//START_BYTE_LEN
comm[1]=0X06;//PACKET_LENGTH_LEN
comm[2]=0x62;//COMMAND_ID_LEN
comm[3]=0x00;//SUB_TYPE_LEN
comm[4]=cString; //STRIN_len
comm[3]=-59;//CRC_LEN
comm[4]=-91; //CRC_LEN
我正在使用这些命令并写入外围设备以响应我的值011e6300000000000000000000000000000000000000000000000000e5e2
。
我得到的实际响应为 63 ,但是当我传递了字符串值时
所有数据都是零。请帮帮我
答案 0 :(得分:1)
你是如何传递价值的? 像这样转换它:
NSData *someData = [@"HELLO WORLD" dataUsingEncoding:NSUTF8StringEncoding];
const void *bytes = [someData bytes];
int length = [someData length];
uint8_t *cString = (uint8_t*)bytes;
然后回到字符串:
NSString *yourString = [[NSString alloc] initWithBytes:cString
length:length
encoding:NSUTF8StringEncoding];
NSLog(@"%@",yourString); -----> HELLO WORLD.
请参阅here.