我正在制定一个解决方案,将命令发送到销售点收据打印机,并且有一些问题正确地获取命令格式。我有一个插座打开设备,并且工作,因为不正确的命令被打印。 SPEC要求的命令是发送以下内容:Swift通过TCP套接字发送十六进制数据
1B 07或十进制27 7. ASCII中的哪一个是ESC_KEY BEL。该规范给出了唯一的例子是.NET:
MSComm1.Output = CHR $(& H1B)& CHR $(& H07)
我一直想:
//套接字先前使用CFStreamCreatePairWithSocketToHost打开。
var cmd = "27 07"
if let dataString = "\(cmd)\r".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false), let oStream = self.outputStream {
self.outputData.append(dataString)
if oStream.hasSpaceAvailable {
oStream.write(UnsafePointer((self.outputData.first! as NSData).bytes), maxLength: self.outputData.first!length)
}
}
数据到达那里,但我认为该消息的格式是错误的。任何帮助,将不胜感激。
发送给打印机的是字节序列0x50,0x55,0x32,0x48,0x55,0x13。您的打印机正在等待字节序列0x1b,0x07 – user3441734