Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ qt:如何向POS打印机发送控制命令?_C++_Qt_Printing - Fatal编程技术网

C++ qt:如何向POS打印机发送控制命令?

C++ qt:如何向POS打印机发送控制命令?,c++,qt,printing,C++,Qt,Printing,我正在创建一个通过POS打印机打印文本的应用程序 这些照片效果很好。但对于POS打印机,有一些控制命令可以执行某些功能,如:剪纸、现金提取打开等。。例如: 功能:部分切割 代码: ASCII-->ESC i 十六进制------>1B 69 十进制-->27 105 当我尝试发送命令27 105时,它只是打印在纸上,而不是执行操作。。我不太确定如何发送…有人能建议如何写入套接字… #包括“lanprinterui.h” #包括“ui_lanprinterui.h” LanPrinterUI:

我正在创建一个通过POS打印机打印文本的应用程序

这些照片效果很好。但对于POS打印机,有一些控制命令可以执行某些功能,如:剪纸、现金提取打开等。。例如:

功能:部分切割 代码:

  • ASCII-->ESC i
  • 十六进制------>1B 69
  • 十进制-->27 105
当我尝试发送命令27 105时,它只是打印在纸上,而不是执行操作。。我不太确定如何发送…有人能建议如何写入套接字… #包括“lanprinterui.h” #包括“ui_lanprinterui.h”

LanPrinterUI::LanPrinterUI(QWidget*父项): QMainWindow(父级), 用户界面(新用户界面::LanPrinterUI) { 用户界面->设置用户界面(此); m_TextInput=ui->textEdit; m_pSocket=新的QTcpSocket(); m_pSocket->connectToHost(“192.168.1.20”,9100); m_ConnectStatus=true; QObject::connect(用户界面->按钮,信号(单击()),此,插槽(打印()); } LanPrinterUI::~LanPrinterUI() { 删除用户界面; 删除m_pSocket; } void LanPrinterUI::print() { const int Timeout=5*1000; 如果(!m_ConnectStatus) { m_pSocket->connectToHost(“192.168.1.20”,9100); } 如果(!m_pSocket->waitForConnected(超时)) { //发送错误 qDebug(“waitForConnected()中的错误”); qDebug(qPrintable(m_pSocket->errorString()); m_ConnectStatus=假; 返回; } m_ConnectStatus=true; QByteArray区块; QDataStream out(块和QIODevice::WriteOnly); out.setVersion(QDataStream::Qt_4_0); out-toPlainText(); 外写(块); } 您想要的是

out << "\n\x1Bi";
或:

然后你就会:

out << '\n' << PARTIAL_PAPER_CUT;

out谢谢你,马萨。。它起作用了。。所以在所有命令都正确之前可以使用
\n\x
。@Abin:我编辑了它。很抱歉,我最初的回答过于简洁,我很匆忙。感谢您的编辑,但是
out我可以知道是否有定义\n\x应该使用?序列
“\n\x1bi”
表示“换行符”(可能是
char(10)
char(13)
,或
char(13)
,然后是
char(10)
,具体取决于平台),然后是
char(27)
(十六进制的“转义”字符,
0x1b
),然后是
char(105)
。。。由于某种原因,它没有对你起作用,这令人不安。()
out << '\n' << "\x1b\x69";
out << '\n' << char(27) << char(105);
out << '\n' << char(0x1b) << char(0x69);
class LanPrinterUI {
private:
  static const QString PARTIAL_PAPER_CUT = "\x1bi";
  static const QString CASHDRAWER_OPEN = "\x1b....";
//...
};
out << '\n' << PARTIAL_PAPER_CUT;