0
사용자가 텍스트 상자에 0에서 5000 사이의 값을 입력합니다. 내 필요는 dataToSend의 바이트 4와 5를 텍스트 상자의 16 진수 값으로 대체하는 것입니다. 예를 들어, 사용자가 250을 입력하면이를 00FA로 변환합니다. dataToSend에서 0x03을 0x00으로, 0xEB를 0xFA로 바꿉니다. str과 str2가 거기에 있으므로 데이터를 볼 수 있습니다. 그 (것)들 사이 다름이 있고, 나는 어느 것이 정확하다는 것을 모른다.NSData의 바이트를 16 진수 값으로 바꿉니다.
- (IBAction)handleConfig1DelayMoveChange:(id)sender
{
NSString *tmp;
int value;
tmp = [txtDelayBeforeMove1 stringValue];
NSString *hex = [NSString stringWithFormat:@"0x%04lX",(unsigned long)[tmp integerValue]];
NSString *hex1 = [NSString stringWithFormat:@"%04lX",(unsigned long)[tmp integerValue]];
dataToSend = [NSMutableData dataWithBytes:&((char[6]){0x51,0x04,0x02,0x03,0xEB,0x0D}) length:6];
NSString *str = [[NSString alloc] initWithData:dataToSend encoding:NSASCIIStringEncoding];
NSString *str2 = [NSString stringWithFormat:@"%.*s", [dataToSend length], [dataToSend bytes]];
tmp = @"";
tmp = [hex1 substringWithRange:NSMakeRange(1,2)];
value = [tmp intValue];
[dataToSend replaceBytesInRange: NSMakeRange(3,1) withBytes: &value];
str2 = [NSString stringWithFormat:@"%.*s", [dataToSend length], [dataToSend bytes]];
}