我正在制定一個解決方案,將命令發送到銷售點收據打印機,並且有一些問題正確地獲取命令格式。我有一個插座打開設備,並且工作,因爲不正確的命令被打印。 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