做一个字节的数据包,并通过蓝牙发送到外部辅助设备印刷iOS中 [英] Make a bytes packet and send to External accessory Device for print using Bluetooth in iOS
本文介绍了做一个字节的数据包,并通过蓝牙发送到外部辅助设备印刷iOS中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的工作中使用的iOS外部附件进行打印的图像,但我有问题,发送请求给打印机。结果
在这里,我连着图像,其中包需要发送打印机。
但我不知道如何使这个数据包发送数据包发送到打印机。
I am working to print image using External Accessory in iOS but I have problem to send request to Printer.
Here, I attached image in which Packet need to send Printer.
but i don't know how to make this packet and send packet to printer.
推荐答案
在这里,我附上样品code,使数据包,并使用Objective C语言发送给外部附属设备(打印机)。
Here, I attached the sample code to make the packet and send to External Accessory Device (printer) using Objective C language.
- (void)PrintImage:(UIImage *)image
{
NSMutableData* imagedata = [UIImageJPEGRepresentation(image, 0.0) mutableCopy];
NSMutableData *RequestData=[[NSMutableData alloc]init];
NSString *bitSeries = @"";
NSData *data = [[NSData alloc]init];
// 1
bitSeries = @"00011011";
data=[self stringToData:bitSeries];
NSLog(@"1 : %@", data);
[RequestData appendData:data];
// 2
bitSeries = @"00101010";
data=[self stringToData:bitSeries];
NSLog(@"2 : %@", data);
[RequestData appendData:data];
// 3
bitSeries = @"01000011";
data=[self stringToData:bitSeries];
NSLog(@"3 : %@", data);
[RequestData appendData:data];
// 4
bitSeries = @"01000001";
data=[self stringToData:bitSeries];
NSLog(@"4 : %@", data);
[RequestData appendData:data];
// 5
bitSeries = @"00000000";
data=[self stringToData:bitSeries];
NSLog(@"5 : %@", data);
[RequestData appendData:data];
// 6
bitSeries = @"00000000";
data=[self stringToData:bitSeries];
NSLog(@"6 : %@", data);
[RequestData appendData:data];
// 7
bitSeries = @"00000000";
data=[self stringToData:bitSeries];
NSLog(@"7 : %@", data);
[RequestData appendData:data];
// 8
bitSeries = @"00000000";
data=[self stringToData:bitSeries];
NSLog(@"8 : %@", data);
[RequestData appendData:data];
// 9
NSMutableArray *arrstr = [self intToBinary:(int)[imagedata length]];
bitSeries = [arrstr objectAtIndex:0];
data=[self stringToData:bitSeries];
NSLog(@"9 : %@", data);
[RequestData appendData:data];
bitSeries = [arrstr objectAtIndex:1];
data=[self stringToData:bitSeries];
NSLog(@"9 : %@", data);
[RequestData appendData:data];
bitSeries =[arrstr objectAtIndex:2];
data=[self stringToData:bitSeries];
NSLog(@"9 : %@", data);
[RequestData appendData:data];
// 10
bitSeries = @"00000001";
data=[self stringToData:bitSeries];
NSLog(@"10 : %@", data);
[RequestData appendData:data];
// 11
bitSeries = @"00000000";
data=[self stringToData:bitSeries];
NSLog(@"11 : %@", data);
[RequestData appendData:data];
// 12
bitSeries = @"00000000";
data=[self stringToData:bitSeries];
NSLog(@"12 : %@", data);
[RequestData appendData:data];
bitSeries = @"00000000";
data=[self stringToData:bitSeries];
NSLog(@"12 : %@", data);
[RequestData appendData:data];
// 13
bitSeries = @"00000000";
data=[self stringToData:bitSeries];
NSLog(@"13 : %@", data);
[RequestData appendData:data];
NSLog(@"Final Data is : %@", RequestData);
if (imagedata !=nil)
{
SessionData *obj=[SessionData sharedInstance];
obj.imageData=imagedata;
obj.RequestData = RequestData;
[obj setupSessionManager];
}
else
{
[[[UIAlertView alloc]initWithTitle:@"Error" message:@"Please Select Image." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] show];
}
}
-(NSData *)stringToData : (NSString *)bitSeries
{
uint8_t value = strtoul([bitSeries UTF8String], NULL, 2);
NSLog(@"bitSeries : %@ -------> Value : %u",bitSeries, value);
NSData *data = [NSData dataWithBytes:&value length:sizeof(value)];
return data;
}
- (NSMutableArray *)intToBinary:(int)number
{
int bits = sizeof(number) * 8;
int bitcnt=bits;
NSMutableArray *arrStr=[[NSMutableArray alloc]init];
NSMutableString *binaryStr = [NSMutableString string];
for (; bits > 0; bits--, number >>= 1)
{
[binaryStr insertString:((number & 1) ? @"1" : @"0") atIndex:0];
}
if (bitcnt == 32)
{
binaryStr=[[binaryStr substringFromIndex:8] mutableCopy];
}
else if(bitcnt ==16)
{
binaryStr = [[@"00000000" stringByAppendingString:binaryStr] mutableCopy];
}
else if (bitcnt == 8)
{
binaryStr = [[@"0000000000000000" stringByAppendingString:binaryStr] mutableCopy];
}
[arrStr addObject:[binaryStr substringToIndex:8]];
[arrStr addObject:[binaryStr substringWithRange:NSMakeRange(8, 8)]];
[arrStr addObject:[binaryStr substringFromIndex:16]];
NSLog(@"%@",arrStr);
return arrStr;
}
这篇关于做一个字节的数据包,并通过蓝牙发送到外部辅助设备印刷iOS中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文