From 1fd0a4562d894542c4a9294c68cfae1e0e389e41 Mon Sep 17 00:00:00 2001 From: baocm Date: Tue, 13 Jan 2026 20:20:13 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E4=BC=98=E5=8C=96=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/Publisher.cxx | 81 + core/Publisher.hpp | 4 + gatectrl/MsgHandler.cxx | 22 +- print/MsgHandler.cxx | 3788 +++------------------------------------ print/MsgHandler.hpp | 13 - print/Subscriber.cxx | 6 +- print/main.cxx | 2 +- weigh/Publisher.cxx | 2 +- 8 files changed, 310 insertions(+), 3608 deletions(-) diff --git a/core/Publisher.cxx b/core/Publisher.cxx index c6fc75c..e28e4c0 100644 --- a/core/Publisher.cxx +++ b/core/Publisher.cxx @@ -54,6 +54,9 @@ PublisherApp::PublisherApp( , summary_topic_(nullptr) , summary_writer_(nullptr) , summary_type_(new WeighingSystem::SummaryUpdatePubSubType()) + , print_topic_(nullptr) + , print_writer_(nullptr) + , print_type_(new InternalSystem::PrintReqPubSubType()) , matched_(0) , samples_sent_(0) , stop_(false) @@ -76,6 +79,7 @@ PublisherApp::PublisherApp( bar_type_.register_type(participant_); light_type_.register_type(participant_); summary_type_.register_type(participant_); + print_type_.register_type(participant_); // Create the publisher PublisherQos pub_qos = PUBLISHER_QOS_DEFAULT; @@ -166,6 +170,33 @@ PublisherApp::PublisherApp( { throw std::runtime_error("WeighingSystem::SummaryUpdate DataWriter initialization failed"); } + + // Create the topic + topic_qos = TOPIC_QOS_DEFAULT; + participant_->get_default_topic_qos(topic_qos); + print_topic_ = participant_->create_topic("PrintReq", print_type_.get_type_name(), topic_qos); + if (print_topic_ == nullptr) + { + throw std::runtime_error("PrintReq Topic initialization failed"); + } + + // Create the data writer + writer_qos = DATAWRITER_QOS_DEFAULT; + publisher_->get_default_datawriter_qos(writer_qos); + writer_qos.reliability().kind = ReliabilityQosPolicyKind::RELIABLE_RELIABILITY_QOS; + writer_qos.reliability().max_blocking_time = Duration_t(1, 0); + writer_qos.durability().kind = DurabilityQosPolicyKind::VOLATILE_DURABILITY_QOS; + writer_qos.history().kind = HistoryQosPolicyKind::KEEP_LAST_HISTORY_QOS; + writer_qos.history().depth = 1; + writer_qos.resource_limits().max_samples = 200; + writer_qos.resource_limits().max_instances = 1; + writer_qos.resource_limits().max_samples_per_instance = 100; + writer_qos.data_sharing().off(); + print_writer_ = publisher_->create_datawriter(print_topic_, writer_qos, this, StatusMask::all()); + if (print_writer_ == nullptr) + { + throw std::runtime_error("InternalSystem::PrintReq DataWriter initialization failed"); + } } PublisherApp::~PublisherApp() @@ -288,6 +319,22 @@ bool PublisherApp::light_ctrl(const std::map& ctrl) return true; } +bool PublisherApp::print_receipt(const std::map& msg) +{ + InternalSystem::PrintReq req; + + req.msg() = msg; + + for (auto &m : req.msg()) + { + std::cout << "first: " << m.first << " second: " << m.second << std::endl; + } + + print_writer_->write(&req); + + return true; +} + void PublisherApp::run(std::shared_ptr dev) { uint8_t send_sum = 0; @@ -418,6 +465,40 @@ void PublisherApp::run(std::shared_ptr dev) WeighingSystem::WeightInfoOk info = std::move(DdsMsgData::WeightInfoOk_queue_.front()); DdsMsgData::WeightInfoOk_queue_.pop(); dds_lock.unlock(); + + std::map print_msg; + auto formatFloat = [](float value) -> std::string + { + std::ostringstream oss; + oss << std::fixed << std::setprecision(2) << value; + return oss.str(); + }; + + print_msg.clear(); + print_msg["Title"] = "过衡单"; + print_msg["DeviceID"] = std::to_string(info.DeviceID()); + print_msg["DeviceName"] = info.DeviceName(); + print_msg["TitleCorp"] = info.EnterpriseName(); + print_msg["CoalNumber"] = info.BillNumber(); + print_msg["CarNumber"] = info.CarNumber(); + print_msg["Supplier"] = info.Supplier(); + print_msg["GoodsType"] = info.GoodsType(); + print_msg["GrossWeight"] = formatFloat(info.GrossWeight()); + print_msg["GrossTime"] = info.GrossTime(); + print_msg["GrossOperater"] = info.GrossOperater(); + print_msg["TareWeight"] = formatFloat(info.Tare()); + print_msg["TareTime"] = info.TareTime(); + print_msg["TareOperater"] = info.TareOperater(); + print_msg["SuttleWeight"] = formatFloat(info.Suttle()); + print_msg["duduction1"] = formatFloat(info.duduction1()); + print_msg["duduction2"] = formatFloat(info.duduction2()); + print_msg["duduction3"] = formatFloat(info.duduction3()); + print_msg["INCoalYard"] = info.INCoalYard(); + print_msg["OUTCoalYard"] = info.OutCoalYard(); + print_msg["BatchNumber"] = info.BatchNumber(); + print_msg["Warning"] = info.Warning(); + + print_receipt(print_msg); } else if (!DdsMsgData::WeightInfoError_queue_.empty()) { diff --git a/core/Publisher.hpp b/core/Publisher.hpp index 173d78b..227dd33 100644 --- a/core/Publisher.hpp +++ b/core/Publisher.hpp @@ -53,6 +53,7 @@ public: bool bar_ctrl(const std::map& ctrl); bool light_ctrl(const std::map& ctrl); + bool print_receipt(const std::map& msg); private: @@ -74,6 +75,9 @@ private: eprosima::fastdds::dds::Topic* summary_topic_; eprosima::fastdds::dds::DataWriter* summary_writer_; eprosima::fastdds::dds::TypeSupport summary_type_; + eprosima::fastdds::dds::Topic* print_topic_; + eprosima::fastdds::dds::DataWriter* print_writer_; + eprosima::fastdds::dds::TypeSupport print_type_; std::condition_variable cv_; int32_t matched_; std::mutex mutex_; diff --git a/gatectrl/MsgHandler.cxx b/gatectrl/MsgHandler.cxx index bc21dba..3bc0c14 100644 --- a/gatectrl/MsgHandler.cxx +++ b/gatectrl/MsgHandler.cxx @@ -8,12 +8,12 @@ MsgHandler::MsgHandler() : fd(-1) { - this->iomap.omap["FrontBarUp"] = {1, 1}; - this->iomap.omap["FrontBarDown"] = {2, 1}; - this->iomap.omap["BackBarUp"] = {3, 1}; - this->iomap.omap["BackBarDown"] = {4, 1}; - this->iomap.omap["FrontLED"] = {5, 1}; - this->iomap.omap["BackLED"] = {6, 1}; + this->iomap.omap["FrontBarUp"] = {2, 0}; + this->iomap.omap["FrontBarDown"] = {1, 0}; + this->iomap.omap["BackBarUp"] = {3, 0}; + this->iomap.omap["BackBarDown"] = {4, 0}; + this->iomap.omap["FrontLED"] = {5, 0}; + this->iomap.omap["BackLED"] = {6, 0}; this->iomap.imap["FrontResistance"] = {5, 1}; this->iomap.imap["BackResistance"] = {6, 1}; @@ -143,7 +143,7 @@ void MsgHandler::HandleDdsMsg(const std::map& msg) bool MsgHandler::CtrlBar(const std::vector& port) { std::vector data; - data.resize(8, 1); + data.resize(8, 0); data.insert(data.begin(), {this->device_id, 0x51, 1}); for (const auto &port : this->iomap.omap) { @@ -155,20 +155,20 @@ bool MsgHandler::CtrlBar(const std::vector& port) auto port = this->iomap.omap.find(p); if (port != this->iomap.omap.end()) { - port->second.second = 0; + port->second.second = 1; data[port->second.first + 2] = port->second.second; } } SendDeviceMsg(data); - std::this_thread::sleep_for(std::chrono::seconds(1)); + std::this_thread::sleep_for(std::chrono::seconds(2)); for (const std::string& p : port) { auto port = this->iomap.omap.find(p); if (port != this->iomap.omap.end()) { - port->second.second = 1; + port->second.second = 0; data[port->second.first + 2] = port->second.second; } } @@ -181,7 +181,7 @@ bool MsgHandler::CtrlBar(const std::vector& port) bool MsgHandler::CtrlLight(const std::map& port) { std::vector data; - data.resize(8, 1); + data.resize(8, 0); data.insert(data.begin(), {this->device_id, 0x51, 1}); for (const auto &port : this->iomap.omap) { diff --git a/print/MsgHandler.cxx b/print/MsgHandler.cxx index b6074cb..7a46695 100644 --- a/print/MsgHandler.cxx +++ b/print/MsgHandler.cxx @@ -135,81 +135,15 @@ void MsgHandler::HandleDdsMsg(const std::map& msg) void MsgHandler::EncodeMsg(const std::map& msg) { - if(device == "T080") + if(device == "NP80A") { auto it = msg.find("Title"); if(it != msg.end()) { - if(it->second == "入厂排队票") - { - Print1_2(msg); - } - else if(it->second == "燃料轻磅票") - { - Print2_2(msg); - } - else if(it->second == "过衡单") - { - Print3_2(msg); - } - else if(it->second == "转煤单") - { - Print4_2(msg); - } - else if(it->second == "灰磅票") - { - Print5_2(msg); - } - else if(it->second == "提货单") - { - Print6_2(msg); - } - else if(it->second == "发货单") - { - Print6_2(msg); - } - } - } - else if(device == "Star") - { - auto it = msg.find("Title"); - if(it != msg.end()) - { - if(it->second == "入厂排队票") - { - Print1_1(msg); - } - } - } - else if(device == "NP80A") - { - auto it = msg.find("Title"); - if(it != msg.end()) - { - if(it->second == "排队票") + if(it->second == "过衡单") { Print1_3(msg); } - else if(it->second == "燃料轻磅票") - { - Print2_3(msg); - } - else if(it->second == "转煤单") - { - Print4_3(msg); - } - else if(it->second == "配煤票") - { - Print5_3(msg); - } - else if(it->second == "灰磅票") - { - Print6_3(msg); - } - else if(it->second == "过磅票") - { - Print8_3(msg); - } } } } @@ -510,401 +444,30 @@ void MsgHandler::GtstrLength(int iVal, char *p) memcpy(p, szTemp.c_str(), 4); } -//Star打印机打印排队票 -void MsgHandler::Print1_1(const std::map& msg) +//HS-K33打印通用称重 +void MsgHandler::Print1_3(const std::map& msg) { - //这里组装打印输出内容 std::string szTemp; std::map::const_iterator it; std::vector blTemp; std::map m_newObj; - char sTemp[5]={0}; - m_PrintData.clear(); - - //画线 - bool m_PrintGrossAndTare=false; - bool m_PrintSuttle=false; - int m_AllLines=8; - int m_iTemp=0; - int m_top=10120; - - if ((msg.find("GrossWeight") != msg.end()) || (msg.find("TareWeight") != msg.end())) - { - //需要打印发运毛重和发运皮重 - m_PrintGrossAndTare=true; - m_AllLines++; - } - - if (msg.find("SuttleWeight") != msg.end()) - { - //需要打印发运净重 - m_PrintSuttle=true; - m_AllLines++; - } - - it = msg.find("MCFB"); - int m_lines = 0; - int m_oneline=40; - if(it != msg.end()) - { - m_lines=it->second.length()/m_oneline; - if ((it->second.length()%m_oneline)>0) - { - m_lines+=1; - } - m_AllLines+=m_lines; - } - - m_iTemp=74*m_AllLines+m_top+100; - GtstrLength(m_iTemp,sTemp); - - - //单位为0.1毫米 - Page_ClearAndSet(m_PrintData, sTemp); //设置纸长 104 毫米 - - m_iTemp=74*m_AllLines+m_top; - GtstrLength(m_iTemp,sTemp); - - Page_ESCL(m_PrintData, (char *)"00", (char *)"0030", (char *)"0120", (char *)"0688", sTemp, '2','1'); //框 - - m_iTemp=m_top+74; - GtstrLength(m_iTemp,sTemp); - Page_ESCL(m_PrintData, (char *)"01", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线1 - - m_iTemp+=74; - GtstrLength(m_iTemp,sTemp); - Page_ESCL(m_PrintData, (char *)"02", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线2 - m_iTemp+=74; - - GtstrLength(m_iTemp,sTemp); - Page_ESCL(m_PrintData, (char *)"03", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线3 - - m_iTemp+=74; - GtstrLength(m_iTemp,sTemp); - Page_ESCL(m_PrintData, (char *)"04", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线4 - - //毛皮重 - if (m_PrintGrossAndTare) - { - m_iTemp+=74; - GtstrLength(m_iTemp,sTemp); - Page_ESCL(m_PrintData, (char *)"05", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线5 - } - - //净重 - if (m_PrintSuttle) - { - m_iTemp+=74; - GtstrLength(m_iTemp,sTemp); - Page_ESCL(m_PrintData, (char *)"06", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线6 - } - - - m_iTemp+=74; - GtstrLength(m_iTemp,sTemp); - Page_ESCL(m_PrintData, (char *)"07", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线7 - Page_ESCL(m_PrintData, (char *)"20", (char *)"0180", (char *)"0194", (char *)"0180", sTemp,'1','1'); //竖线1 - Page_ESCL(m_PrintData, (char *)"21", (char *)"0360", (char *)"0268", (char *)"0360", sTemp,'1','1'); //竖线2 - Page_ESCL(m_PrintData, (char *)"22", (char *)"0520", (char *)"0268", (char *)"0520", sTemp,'1','1'); //竖线3 - - - //煤场要若干行 - m_iTemp+=74*m_lines; - GtstrLength(m_iTemp,sTemp); - Page_ESCL(m_PrintData, (char *)"08", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线8 - - - char sTemp1[5]={0}; - m_iTemp+=74; - GtstrLength(m_iTemp,sTemp1); - Page_ESCL(m_PrintData, (char *)"09", (char *)"0030", sTemp1, (char *)"0688", sTemp1,'0','1'); //横线9 - - Page_ESCL(m_PrintData, (char *)"23", (char *)"0180", sTemp1, (char *)"0180", sTemp,'1','1'); //竖线1 - Page_ESCL(m_PrintData, (char *)"24", (char *)"0360", sTemp1, (char *)"0360", sTemp,'1','1'); //竖线2 - Page_ESCL(m_PrintData, (char *)"25", (char *)"0510", sTemp1, (char *)"0510", sTemp,'1','1'); //竖线3 - - - m_iTemp+=74; - GtstrLength(m_iTemp,sTemp); - Page_ESCL(m_PrintData, (char *)"10", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线10 - - //打印采样单 - it = msg.find("TitleCorp"); - if(it != msg.end()) - { - szTemp = ot::UTF8ToGB2312(it->second.c_str()) + ot::UTF8ToGB2312("入厂排队票"); //入厂排队票 - } - Page_ESCPC(m_PrintData, (char *)"00",(char *)"0030",(char *)"0000",'2','2','3',(char *)"00",(char *)"00"); - Page_ESCRC(m_PrintData, (char *)"00",ot::UTF8ToGB2312(szTemp.c_str()).c_str()); - //开票时间 - Page_ESCPC(m_PrintData, (char *)"01",(char *)"0040",(char *)"0140",'1','1','3',(char *)"00",(char *)"00"); - it = msg.find("DateTime"); - if(it != msg.end()) - { - Page_ESCRC(m_PrintData, (char *)"01",ot::UTF8ToGB2312(it->second.c_str()).c_str()); - } - //供应商 - Page_ESCPC(m_PrintData, (char *)"02",(char *)"0040",(char *)"0214",'1','1','3',(char *)"00",(char *)"00"); - Page_ESCRC(m_PrintData, (char *)"02",ot::UTF8ToGB2312("供应商").c_str()); - - Page_ESCPC(m_PrintData, (char *)"03",(char *)"0200",(char *)"0214",'1','1','3',(char *)"00",(char *)"00"); - it = msg.find("Supplier"); - if(it != msg.end()) - { - Page_ESCRC(m_PrintData, (char *)"03",ot::UTF8ToGB2312(it->second.c_str()).c_str()); - } - - //排队号 - Page_ESCPC(m_PrintData, (char *)"04",(char *)"0040",(char *)"0288",'1','1','3',(char *)"00",(char *)"00"); - Page_ESCRC(m_PrintData, (char *)"04",ot::UTF8ToGB2312("排队号").c_str()); - - Page_ESCPC(m_PrintData, (char *)"05",(char *)"0200",(char *)"0288",'1','1','3',(char *)"00",(char *)"00"); - it = msg.find("QueueID"); - if(it != msg.end()) - { - Page_ESCRC(m_PrintData, (char *)"05",ot::UTF8ToGB2312(it->second.c_str()).c_str()); - } - - //品 种 - Page_ESCPC(m_PrintData, (char *)"06",(char *)"0380",(char *)"0288",'1','1','3',(char *)"00",(char *)"00"); - Page_ESCRC(m_PrintData, (char *)"06",ot::UTF8ToGB2312("品 种").c_str()); - - Page_ESCPC(m_PrintData, (char *)"07",(char *)"0540",(char *)"0288",'1','1','3',(char *)"00",(char *)"00"); - it = msg.find("GoodsType"); - if(it != msg.end()) - { - Page_ESCRC(m_PrintData, (char *)"07",ot::UTF8ToGB2312(it->second.c_str()).c_str()); - } - - //车牌号 - Page_ESCPC(m_PrintData, (char *)"08",(char *)"0040",(char *)"0362",'1','1','3',(char *)"00",(char *)"00"); - Page_ESCRC(m_PrintData, (char *)"08",ot::UTF8ToGB2312("车牌号").c_str()); - - Page_ESCPC(m_PrintData, (char *)"09",(char *)"0200",(char *)"0362",'1','1','3',(char *)"00",(char *)"00"); - it = msg.find("CarNumber"); - if(it != msg.end()) - { - Page_ESCRC(m_PrintData, (char *)"09",ot::UTF8ToGB2312(it->second.c_str()).c_str()); - } - - //自编号 - Page_ESCPC(m_PrintData, (char *)"10",(char *)"0380",(char *)"0362",'1','1','3',(char *)"00",(char *)"00"); - Page_ESCRC(m_PrintData, (char *)"10",ot::UTF8ToGB2312("自编号").c_str()); - - Page_ESCPC(m_PrintData, (char *)"11",(char *)"0540",(char *)"0362",'1','1','3',(char *)"00",(char *)"00"); - it = msg.find("CarID"); - if(it != msg.end()) - { - Page_ESCRC(m_PrintData, (char *)"11",ot::UTF8ToGB2312(it->second.c_str()).c_str()); - } - - - m_iTemp=10362+74; - GtstrLength(m_iTemp,sTemp); - //毛皮重 - if (m_PrintGrossAndTare) - { - - //发运毛重 - it = msg.find("GrossWeight"); - if(it != msg.end()) - { - szTemp = ot::UTF8ToGB2312(it->second.c_str()); - } - else - szTemp=""; - - Page_ESCPC(m_PrintData, (char *)"12",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); - Page_ESCRC(m_PrintData, (char *)"12",ot::UTF8ToGB2312("发运毛重").c_str()); - - Page_ESCPC(m_PrintData, (char *)"13",(char *)"0200",sTemp,'1','1','3',(char *)"00",(char *)"00"); - Page_ESCRC(m_PrintData, (char *)"13",szTemp.c_str()); - - //发运皮重 - it = msg.find("TareWeight"); - if(it != msg.end()) - { - szTemp = ot::UTF8ToGB2312(it->second.c_str()); - } - else - szTemp=""; - Page_ESCPC(m_PrintData, (char *)"14",(char *)"0380",sTemp,'1','1','3',(char *)"00",(char *)"00"); - Page_ESCRC(m_PrintData, (char *)"14",ot::UTF8ToGB2312("发运皮重").c_str()); - - Page_ESCPC(m_PrintData, (char *)"15",(char *)"0540",sTemp,'1','1','3',(char *)"00",(char *)"00"); - Page_ESCRC(m_PrintData, (char *)"15",szTemp.c_str()); - - m_iTemp+=74; - GtstrLength(m_iTemp,sTemp); - } - - //发运净重 - if (m_PrintSuttle) - { - it = msg.find("SuttleWeight"); - if(it != msg.end()) - { - szTemp = ot::UTF8ToGB2312(it->second.c_str()); - } - else - szTemp=""; - - Page_ESCPC(m_PrintData, (char *)"16",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); - Page_ESCRC(m_PrintData, (char *)"16",ot::UTF8ToGB2312("发运净重").c_str()); - - Page_ESCPC(m_PrintData, (char *)"17",(char *)"0200",sTemp,'1','1','3',(char *)"00",(char *)"00"); - Page_ESCRC(m_PrintData, (char *)"17",szTemp.c_str()); - - m_iTemp+=74; - GtstrLength(m_iTemp,sTemp); - } - - - //采样机 - Page_ESCPC(m_PrintData, (char *)"18",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); - Page_ESCRC(m_PrintData, (char *)"18",ot::UTF8ToGB2312("采样机").c_str()); - - Page_ESCPC(m_PrintData, (char *)"19",(char *)"0200",sTemp,'1','1','3',(char *)"00",(char *)"00"); - it = msg.find("SampleID"); - if(it != msg.end()) - { - Page_ESCRC(m_PrintData, (char *)"19",ot::UTF8ToGB2312(it->second.c_str()).c_str()); - } - - //接样员 - Page_ESCPC(m_PrintData, (char *)"20",(char *)"0380",sTemp,'1','1','3',(char *)"00",(char *)"00"); - Page_ESCRC(m_PrintData, (char *)"20",ot::UTF8ToGB2312("接样员").c_str()); - - - //处理煤场 - it = msg.find("MCFB"); - if (m_lines>0) - { - m_iTemp+=74; - GtstrLength(m_iTemp,sTemp); - szTemp=it->second.substr(0,m_oneline); - Page_ESCPC(m_PrintData, (char *)"21",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); - Page_ESCRC(m_PrintData, (char *)"21",ot::UTF8ToGB2312(szTemp.c_str()).c_str()); - } - - if (m_lines>1) - { - m_iTemp+=74; - GtstrLength(m_iTemp,sTemp); - szTemp=it->second.substr(1*m_oneline,m_oneline); - Page_ESCPC(m_PrintData, (char *)"22",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); - Page_ESCRC(m_PrintData, (char *)"22",ot::UTF8ToGB2312(szTemp.c_str()).c_str()); - } - - if (m_lines>2) - { - m_iTemp+=74; - GtstrLength(m_iTemp,sTemp); - szTemp=it->second.substr(2*m_oneline,m_oneline); - Page_ESCPC(m_PrintData, (char *)"23",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); - Page_ESCRC(m_PrintData, (char *)"23",ot::UTF8ToGB2312(szTemp.c_str()).c_str()); - } - - if (m_lines>3) - { - m_iTemp+=74; - GtstrLength(m_iTemp,sTemp); - szTemp=it->second.substr(3*m_oneline,m_oneline); - Page_ESCPC(m_PrintData, (char *)"24",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); - Page_ESCRC(m_PrintData, (char *)"24",ot::UTF8ToGB2312(szTemp.c_str()).c_str()); - } - - if (m_lines>4) - { - m_iTemp+=74; - GtstrLength(m_iTemp,sTemp); - szTemp=it->second.substr(4*m_oneline,m_oneline); - Page_ESCPC(m_PrintData, (char *)"25",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); - Page_ESCRC(m_PrintData, (char *)"25",ot::UTF8ToGB2312(szTemp.c_str()).c_str()); - } - - if (m_lines>5) - { - m_iTemp+=74; - GtstrLength(m_iTemp,sTemp); - szTemp=it->second.substr(5*m_oneline,m_oneline); - Page_ESCPC(m_PrintData, (char *)"26",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); - Page_ESCRC(m_PrintData, (char *)"26",ot::UTF8ToGB2312(szTemp.c_str()).c_str()); - } - - if (m_lines>6) - { - m_iTemp+=74; - GtstrLength(m_iTemp,sTemp); - szTemp=it->second.substr(6*m_oneline,m_oneline); - Page_ESCPC(m_PrintData, (char *)"27",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); - Page_ESCRC(m_PrintData, (char *)"27",ot::UTF8ToGB2312(szTemp.c_str()).c_str()); - } - - m_iTemp+=74; - GtstrLength(m_iTemp,sTemp); - - //煤场验收 - Page_ESCPC(m_PrintData, (char *)"31",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); - Page_ESCRC(m_PrintData, (char *)"31",ot::UTF8ToGB2312("煤场验收").c_str()); - - //煤 场 - Page_ESCPC(m_PrintData, (char *)"32",(char *)"0380",sTemp,'1','1','3',(char *)"00",(char *)"00"); - Page_ESCRC(m_PrintData, (char *)"32",ot::UTF8ToGB2312("煤 场").c_str()); - - m_iTemp+=74; - GtstrLength(m_iTemp,sTemp); - Page_ESCPC(m_PrintData, (char *)"33",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); - Page_ESCRC(m_PrintData, (char *)"33",ot::UTF8ToGB2312("采样调换至 号,签字:").c_str()); - - m_iTemp+=74; - GtstrLength(m_iTemp,sTemp); - - - Page_ESCPC(m_PrintData, (char *)"34",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); - Page_ESCRC(m_PrintData, (char *)"34",ot::UTF8ToGB2312("煤场调换至 号,签字:").c_str()); - - Page_Cut(m_PrintData); - Page_End(m_PrintData); -} - -//北洋打印机打印排队票 -void MsgHandler::Print1_2(const std::map& msg) -{ - std::string szTemp; - std::map::const_iterator it; - std::vector blTemp; - std::map m_newObj; - int x = 40; - int y = 0; - int dx = 590; - int dy = 950; - char s[12]; m_PrintData.clear(); //初始化打印机 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); //设置中文模式 m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); - - //设置打印区域 - memcpy(s, &x, 2); - memcpy(s + 2, &y, 2); - memcpy(s + 4, &dx, 2); - memcpy(s + 6, &dy, 2); - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x57}); - m_PrintData.insert(m_PrintData.end(), s, s+8); - //设置居中 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); - //设置1号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); + + //打印转煤单 it = msg.find("TitleCorp"); if(it != msg.end()) { - szTemp = ot::UTF8ToGB2312(it->second.c_str()) + ot::UTF8ToGB2312("入厂排队票"); //入厂排队票 + szTemp = ot::UTF8ToGB2312(it->second.c_str()) + ot::UTF8ToGB2312("过衡单"); //过衡单 } m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); @@ -912,18 +475,16 @@ void MsgHandler::Print1_2(const std::map& msg) //设置0号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); - szTemp = ot::UTF8ToGB2312(" "); + szTemp=ot::UTF8ToGB2312(" "); m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //设置左对齐 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); - //设置页模式 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); - //=============================开票时间===================================== + //=============================开票时间===================================== //加顶框 m_newObj[1] = ("┌"); @@ -932,34 +493,39 @@ void MsgHandler::Print1_2(const std::map& msg) m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //票据时间 + + //====票据号===================== + m_newObj.clear(); m_newObj[1] = ("│"); - it = msg.find("DateTime"); + m_newObj[26] = ("票据号"); + m_newObj[120] = ("│"); + it = msg.find("CoalNumber"); if(it != msg.end()) { - m_newObj[25] = it->second; + m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //加框 + m_newObj.clear(); m_newObj[1] = ("├"); - m_newObj[6] = ("┬"); + m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //供应商 + //====车牌号===================== + m_newObj.clear(); m_newObj[1] = ("│"); - m_newObj[26] = ("供应商"); + m_newObj[26] = ("车牌号"); m_newObj[120] = ("│"); - it = msg.find("Supplier"); + it = msg.find("CarNumber"); if(it != msg.end()) { m_newObj[145] = it->second; @@ -969,101 +535,76 @@ void MsgHandler::Print1_2(const std::map& msg) m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //加框 m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); - m_newObj[12] = ("┬"); - m_newObj[17] = ("┬"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); + //====供应商===================== + m_newObj.clear(); m_newObj[1] = ("│"); - m_newObj[26] = ("排队号"); + m_newObj[26] = ("往来单位"); m_newObj[120] = ("│"); - it = msg.find("QueueID"); + it = msg.find("Supplier"); if(it != msg.end()) { m_newObj[145] = it->second; } - m_newObj[263] = ("│"); - m_newObj[288] = ("品 种"); - m_newObj[383] = ("│"); - it = msg.find("GoodsType"); - if(it != msg.end()) - { - m_newObj[408] = it->second; - } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //加框 m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); - m_newObj[12] = ("┬"); - m_newObj[17] = ("┬"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); + //====品种===================== + m_newObj.clear(); m_newObj[1] = ("│"); - m_newObj[26] = ("车牌号"); + m_newObj[26] = ("品 种"); m_newObj[120] = ("│"); - it = msg.find("CarNumber"); + it = msg.find("GoodsType"); if(it != msg.end()) { m_newObj[145] = it->second; } - m_newObj[263] = ("│"); - m_newObj[288] = ("自编号"); - m_newObj[383] = ("│"); - it = msg.find("CarID"); - if(it != msg.end()) - { - m_newObj[408] = it->second; - } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //加框 + m_newObj.clear(); m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); - m_newObj[12] = ("┬"); - m_newObj[17] = ("┬"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //需要打印发运毛重和发运皮重 + + //====装货点===================== + m_newObj.clear(); m_newObj[1] = ("│"); - m_newObj[26] = ("发运毛重"); + m_newObj[26] = ("装货点"); m_newObj[120] = ("│"); - it = msg.find("GrossWeight"); - if (it != msg.end()) + it = msg.find("OUTCoalYard"); + if(it != msg.end()) { m_newObj[145] = it->second; } - m_newObj[263] = ("│"); - m_newObj[288] = ("发运皮重"); - m_newObj[383] = ("│"); - it = msg.find("TareWeight"); - if (it != msg.end()) - { - m_newObj[408] = it->second; - } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); @@ -1071,26 +612,25 @@ void MsgHandler::Print1_2(const std::map& msg) m_newObj.clear(); m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); - m_newObj[12] = ("┼"); - m_newObj[17] = ("┼"); m_newObj[23] = ("┤"); - blTemp = BuildLine(24, m_newObj); + blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - // 需要打印发运净重 + + //====卸货点===================== + m_newObj.clear(); m_newObj[1] = ("│"); - m_newObj[26] = ("发运净重"); + m_newObj[26] = ("卸货点"); m_newObj[120] = ("│"); - it = msg.find("SuttleWeight"); - if (it != msg.end()) + it = msg.find("INCoalYard"); + if(it != msg.end()) { m_newObj[145] = it->second; } - m_newObj[263] = ("│"); - m_newObj[383] = ("│"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); @@ -1098,26 +638,25 @@ void MsgHandler::Print1_2(const std::map& msg) m_newObj.clear(); m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); - m_newObj[12] = ("┼"); - m_newObj[17] = ("┼"); + m_newObj[17] = ("┬"); m_newObj[23] = ("┤"); - blTemp = BuildLine(24, m_newObj); + blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); + //====批次号===================== + m_newObj.clear(); m_newObj[1] = ("│"); - m_newObj[26] = ("采样机"); + m_newObj[26] = ("批次号"); m_newObj[120] = ("│"); - it = msg.find("SampleID"); + it = msg.find("BatchNumber"); if(it != msg.end()) { m_newObj[145] = it->second; } - m_newObj[263] = ("│"); - m_newObj[288] = ("接样员"); - m_newObj[383] = ("│"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); @@ -1125,2774 +664,19 @@ void MsgHandler::Print1_2(const std::map& msg) m_newObj.clear(); m_newObj[1] = ("├"); - m_newObj[6] = ("┴"); - m_newObj[12] = ("┴"); - m_newObj[17] = ("┴"); + + m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //这里要加入煤场信息 - it = msg.find("MCFB"); - if(it != msg.end()) - { - int m_oneline=40; - int m_lines=it->second.length()/m_oneline; - if ((it->second.length()%m_oneline)>0) - { - m_lines+=1; - } - for (int i=0;isecond.substr(i*m_oneline,m_oneline); - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = (szTemp); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - } - } - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("采样调换至 号,签字:"); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("煤场调换至 号,签字:"); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┬"); - m_newObj[12] = ("┬"); - m_newObj[17] = ("┬"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("煤场验收"); - m_newObj[120] = ("│"); - m_newObj[263] = ("│"); - m_newObj[288] = ("煤 场"); - m_newObj[383] = ("│"); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[12] = ("┼"); - m_newObj[17] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("计 扣 量"); - m_newObj[120] = ("│"); - m_newObj[263] = ("│"); - m_newObj[288] = ("签 字"); - m_newObj[383] = ("│"); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("└"); - m_newObj[6] = ("┴"); - m_newObj[12] = ("┴"); - m_newObj[17] = ("┴"); - m_newObj[23] = ("┘"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //打印、切纸 - m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56, 0x01}); -} - -//北洋打印机打印轻磅票 -void MsgHandler::Print2_2(const std::map& msg) -{ - //这里组装打印输出内容 - std::string szTemp; - std::map::const_iterator it; - std::vector blTemp; - std::map m_newObj; - int x=40; - int y=0; - int dx=590; //570 - int dy=1400; - char s[12]; - - m_PrintData.clear(); - //初始化打印机 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); - //设置中文模式 - m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); - - //设置打印区域 - memcpy(s, &x, 2); - memcpy(s + 2, &y, 2); - memcpy(s + 4, &dx, 2); - memcpy(s + 6, &dy, 2); - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x57}); - m_PrintData.insert(m_PrintData.end(), s, s+8); - - //设置居中 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); - //设置打印方向 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x54, 0x03}); - //设置1号字 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); - //设置左对齐 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); - //设置页模式 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); - - - //打印磅单 - szTemp = (" "); - m_newObj.clear(); - m_newObj[100] = szTemp; - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //打印磅单 - m_newObj.clear(); - it = msg.find("TitleCorp"); - if(it != msg.end()) - { - m_newObj[340] = it->second + "收煤凭证"; //收煤凭证 - } - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - szTemp=(" "); - m_newObj.clear(); - m_newObj[100] = szTemp; - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //车牌号和票据号 - m_newObj.clear(); - m_newObj[10] = ("车牌号:"); - it = msg.find("CarNumber"); - if(it != msg.end()) - { - m_newObj[190] = it->second; - } - m_newObj[600] = ("NO:"); - it = msg.find("CoalNumber"); - if(it != msg.end()) - { - m_newObj[700] = it->second; - } - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[100] = (" "); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //供应商 - m_newObj.clear(); - m_newObj[10] = ("供应商:"); - it = msg.find("Supplier"); - if(it != msg.end()) - { - m_newObj[190] = it->second; - } - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - m_newObj.clear(); - m_newObj[100] = (" "); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //时间和品种 - m_newObj.clear(); - m_newObj[10] = ("品 种:"); - it = msg.find("GoodsType"); - if(it != msg.end()) - { - m_newObj[190] = it->second; - } - m_newObj[600] = ("时间:"); - it = msg.find("DateTime"); - if(it != msg.end()) - { - m_newObj[740] = it->second; - } - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[100] = (" "); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[10] = ("毛重"); - it = msg.find("GrossWeight"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[450] = ("皮重"); - it = msg.find("TareWeight"); - if(it != msg.end()) - { - m_newObj[558] = it->second; - } - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[100] = (" "); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[10] = ("扣矸"); - it = msg.find("RockWeight"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[450] = ("净重"); - it = msg.find("SuttleWeight"); - if(it != msg.end()) - { - m_newObj[558] = it->second; - } - - if(msg.find("AffixSeal") != msg.end()) - { - m_newObj[800] = ("盖章"); - } - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[100] = (" "); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[10] = ("扣水"); - it = msg.find("WaterWeight"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[450] = ("扣杂"); - it = msg.find("OtherWeight"); - if(it != msg.end()) - { - m_newObj[558] = it->second; - } - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[100] = (" "); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - // m_newObj.clear(); - // int count = 0; - // auto m_dsz = msg.find("dsz"); - // auto m_dsd = msg.find("dsd"); - // auto m_dsf = msg.find("dsf"); - // auto m_zsd = msg.find("zsd"); - // auto m_zsf = msg.find("zsf"); - // auto m_ksd = msg.find("ksd"); - // auto m_ksf = msg.find("ksf"); - // auto m_ddsf = msg.find("ddsf"); - // if((m_dsz != msg.end()) && (m_dsd != msg.end()) && (m_dsf != msg.end())) - // { - // if(m_dsz != msg.end()) - // { - // m_newObj[10] = ("大生中"); - // m_newObj[190] = m_dsz->second; - - // count++; - // } - // if(m_dsd != msg.end()) - // { - // if(count == 0) - // { - // m_newObj[10] = ("大生丁"); - // m_newObj[190] = m_dsd->second; - // } - // else if(count == 1) - // { - // m_newObj[500] = ("大生丁"); - // m_newObj[680] = m_dsd->second; - // } - // count++; - // } - // if(m_dsf != msg.end()) - // { - // if(count == 0) - // { - // m_newObj[10] = ("大生粉"); - // m_newObj[190] = m_dsf->second; - // } - // else if(count == 1) - // { - // m_newObj[500] = ("大生粉"); - // m_newObj[680] = m_dsf->second; - // } - // else if(count == 2) - // { - // m_newObj[900] = ("大生粉"); - // m_newObj[1080] = m_dsf->second; - // } - // count++; - // } - // } - // else if((m_zsd != msg.end()) || (m_zsf != msg.end())) - // { - // if(m_zsd != msg.end()) - // { - // m_newObj[10] = ("中生丁"); - // m_newObj[190] = m_zsd->second; - - // count++; - // } - // if(m_zsf != msg.end()) - // { - // if(count == 0) - // { - // m_newObj[10] = ("中生粉"); - // m_newObj[190] = m_zsf->second; - // } - // else if(count == 1) - // { - // m_newObj[500] = ("中生粉"); - // m_newObj[680] = m_zsf->second; - // } - // count++; - // } - // } - // else if((m_ksd != msg.end()) || (m_ksf != msg.end())) - // { - // if(m_ksd != msg.end()) - // { - // m_newObj[10] = ("块生丁"); - // m_newObj[190] = m_ksd->second; - - // count++; - // } - // if(m_ksf != msg.end()) - // { - // if(count == 0) - // { - // m_newObj[10] = ("块生粉"); - // m_newObj[190] = m_ksf->second; - // } - // else if(count == 1) - // { - // m_newObj[500] = ("块生粉"); - // m_newObj[680] = m_ksf->second; - // } - // count++; - // } - // } - // else if(m_ddsf != msg.end()) - // { - // m_newObj[10] = ("丁生粉"); - // m_newObj[190] = m_ddsf->second; - // } - // blTemp = BuildStringLine(m_newObj); - // m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - // m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[100] = (" "); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - //设置0号字 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); - m_newObj.clear(); - m_newObj[10] = ("备注:单位:吨"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - if(msg.find("ElectChapter") != msg.end()) - { - //打印电子章设置横向绝对位置 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x24, 0xB6, 0x03}); - //打印电子章设置纵向绝对位置 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x24, 0x26, 0x02}); - //打印下载NV位图 - m_PrintData.insert(m_PrintData.end(), {0x1C, 0x70, 0x01, 0x00}); - //打印条码设置横向绝对位置 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x24, 0xE4, 0x02}); - //打印条码设置纵向绝对位置 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x24, 0x0D, 0x02}); - //设置条码打印字符和条码宽度,高度 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x6F, 0x00, 0x08, 0x00, 0x02}); - //打印条码命令 - //票据号 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x6B, 0x0B, 0x51, 0x41, 0x2C}); - it = msg.find("CoalNumber"); - if(it != msg.end()) - { - szTemp = ot::UTF8ToGB2312(it->second.c_str()); - } - m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x00}); - } - //打印 - m_PrintData.insert(m_PrintData.end(), {0x0C}); - - //切纸 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x56, 0x01}); -} - -//北洋打印机打印通用称重票 -void MsgHandler::Print3_2(const std::map& msg) -{ - //这里组装打印输出内容 - std::string szTemp; - std::map::const_iterator it; - std::vector blTemp; - std::map m_newObj; - int x = 40; - int y = 0; - int dx = 590; - int dy = 850; - char s[12]; - - m_PrintData.clear(); - //初始化打印机 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); - //设置中文模式 - m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); - - //设置打印区域 - memcpy(s, &x, 2); - memcpy(s + 2, &y, 2); - memcpy(s + 4, &dx, 2); - memcpy(s + 6, &dy, 2); - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x57}); - m_PrintData.insert(m_PrintData.end(), s, s+8); - - //设置居中 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); - - //设置1号字 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); - //打印物料过衡单 - it = msg.find("TitleCorp"); - if(it != msg.end()) - { - szTemp = ot::UTF8ToGB2312(it->second.c_str()) + ot::UTF8ToGB2312("过衡单"); //过衡单 - } - m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); - m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //设置0号字 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); - szTemp = ot::UTF8ToGB2312(" "); - m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); - m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //设置左对齐 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); - - //设置页模式 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); - - - //=============================开票时间===================================== - - //加顶框 - //加顶框 - m_newObj[1] = ("┌"); - m_newObj[23] = ("┐"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //====票据号===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("票据号"); - m_newObj[120] = ("│"); - it = msg.find("CoalNumber"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //====车牌号===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("车牌号"); - m_newObj[120] = ("│"); - it = msg.find("CarNumber"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //=======供应商===================== - m_newObj.clear(); - m_newObj[1] = ("│"); - it = msg.find("SupplierTitle"); - if(it != msg.end()) - { - m_newObj[26] = it->second; - } - m_newObj[120] = ("│"); - it = msg.find("Supplier"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //=========品种===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("品种"); - m_newObj[120] = ("│"); - it = msg.find("GoodsType"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //=========皮重时间===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("皮重时间"); - m_newObj[120] = ("│"); - it = msg.find("TareWeightTime"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //=========毛重时间===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("毛重时间"); - m_newObj[120] = ("│"); - it = msg.find("GrossWeightTime"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[17] = ("┬"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //=========毛重====================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("毛重"); - m_newObj[120] = ("│"); - it = msg.find("GrossWeight"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[384] = ("│"); - m_newObj[404] = ("吨"); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[17] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //=========皮重====================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("皮重"); - m_newObj[120] = ("│"); - it = msg.find("TareWeight"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[384] = ("│"); - m_newObj[404] = ("吨"); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[17] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //=========净重====================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("净重"); - m_newObj[120] = ("│"); - - it = msg.find("SuttleWeight"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[384] = ("│"); - m_newObj[404] = ("吨"); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[17] = ("┴"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - //=========操作员===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("操作员"); - m_newObj[120] = ("│"); - it = msg.find("Operator"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //=========备注===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("备注"); - m_newObj[120] = ("│"); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("└"); - m_newObj[6] = ("┴"); - m_newObj[23] = ("┘"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //打印、切纸 - m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56, 0x01}); -} - -//北洋打印机打印转煤票 -void MsgHandler::Print4_2(const std::map& msg) -{ - //这里组装打印输出内容 - std::string szTemp; - std::map::const_iterator it; - std::vector blTemp; - std::map m_newObj; - int x = 40; - int y = 0; - int dx = 590; - int dy = 850; - char s[12]; - - m_PrintData.clear(); - //初始化打印机 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); - //设置中文模式 - m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); - - //设置打印区域 - memcpy(s, &x, 2); - memcpy(s + 2, &y, 2); - memcpy(s + 4, &dx, 2); - memcpy(s + 6, &dy, 2); - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x57}); - m_PrintData.insert(m_PrintData.end(), s, s+8); - - //设置居中 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); - //设置1号字 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); - it = msg.find("TitleCorp"); - if(it != msg.end()) - { - szTemp = ot::UTF8ToGB2312(it->second.c_str()) + ot::UTF8ToGB2312("转煤单"); //转煤单 - } - m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); - m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //设置0号字 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); - szTemp = ot::UTF8ToGB2312(" "); - m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); - m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //设置左对齐 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); - - //设置页模式 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); - - //=============================开票时间===================================== - - //加顶框 - m_newObj[1] = ("┌"); - m_newObj[23] = ("┐"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //====票据号===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("称重编号"); - m_newObj[120] = ("│"); - it = msg.find("CoalNumber"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //=========时间===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("时间"); - m_newObj[120] = ("│"); - it = msg.find("DateTime"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //====车牌号===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("车牌号"); - m_newObj[120] = ("│"); - it = msg.find("CarNumber"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - m_newObj.clear(); - m_newObj[1] = ("├"); - - m_newObj[6] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //====转出煤场===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("转出煤场"); - m_newObj[120] = ("│"); - it = msg.find("OUTCoalYard"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //====转入煤场===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("转入煤场"); - m_newObj[120] = ("│"); - it = msg.find("INCoalYard"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //====装载单位===================== - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("装载单位"); - m_newObj[120] = ("│"); - it = msg.find("Stevedor"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //====承运单位===================== - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("承运单位"); - m_newObj[120] = ("│"); - it = msg.find("Transport"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[17] = ("┬"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //=========毛重====================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("毛重"); - m_newObj[120] = ("│"); - it = msg.find("GrossWeight"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[384] = ("│"); - m_newObj[404] = ("吨"); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[17] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //=========皮重====================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("皮重"); - m_newObj[120] = ("│"); - it = msg.find("TareWeight"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[384] = ("│"); - m_newObj[404] = ("吨"); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[17] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //=========净重====================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("净重"); - m_newObj[120] = ("│"); - it = msg.find("SuttleWeight"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[384] = ("│"); - m_newObj[404] = ("吨"); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[17] = ("┴"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //=========备注===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("备注"); - m_newObj[120] = ("│"); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("└"); - m_newObj[6] = ("┴"); - m_newObj[23] = ("┘"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //打印、切纸 - m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56, 0x01}); -} - -//北洋打印机打印绥阳大宗物资重磅票 -void MsgHandler::Print5_2(const std::map& msg) -{ - //这里组装打印输出内容 - std::string szTemp; - std::map::const_iterator it; - std::vector blTemp; - std::map m_newObj; - int x = 40; - int y = 0; - int dx = 590; - int dy = 850; - char s[12]; - - m_PrintData.clear(); - //初始化打印机 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); - //设置中文模式 - m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); - - //设置打印区域 - memcpy(s, &x, 2); - memcpy(s + 2, &y, 2); - memcpy(s + 4, &dx, 2); - memcpy(s + 6, &dy, 2); - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x57}); - m_PrintData.insert(m_PrintData.end(), s, s+8); - - //设置居中 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); - //设置1号字 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); - - //打印 - szTemp=ot::UTF8ToGB2312("国家电投集团"); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - //打印名称 - it = msg.find("TitleCorp"); - if(it != msg.end()) - { - szTemp = ot::UTF8ToGB2312(it->second.c_str()); - } - m_PrintData.insert(m_PrintData.end(), {0x0A}); - m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - szTemp=ot::UTF8ToGB2312("提货单"); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A, 0x0A}); - - //设置左对齐 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); - - //设置页模式 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); - - //=============================内容===================================== - - //设置0号字 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); - - //====票据号===================== - - m_newObj.clear(); - m_newObj[15] = ("NO:"); - it = msg.find("CoalNumber"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //====品种===================== - - m_newObj.clear(); - m_newObj[15] = ("品种:"); - it = msg.find("GoodsType"); - if(it != msg.end()) - { - m_newObj[160] = it->second; - } - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //=========批号===================== - - m_newObj.clear(); - m_newObj[15] = ("批号:"); - it = msg.find("BatchNumber"); - if(it != msg.end()) - { - m_newObj[160] = it->second; - } - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - //====司机===================== - - m_newObj.clear(); - m_newObj[15] = ("司机:"); - it = msg.find("Operator"); - if(it != msg.end()) - { - m_newObj[160] = it->second; - } - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //====车牌号===================== - - m_newObj.clear(); - m_newObj[15] = ("车牌号:"); - it = msg.find("CarNumber"); - if(it != msg.end()) - { - m_newObj[160] = it->second; - } - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //====供应商===================== - - m_newObj.clear(); - m_newObj[15] = ("供应商:"); - it = msg.find("Supplier"); - if(it != msg.end()) - { - m_newObj[160] = it->second; - } - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //====目的地===================== - - m_newObj.clear(); - m_newObj[15] = ("目的地:"); - it = msg.find("Destination"); - if(it != msg.end()) - { - m_newObj[160] = it->second; - } - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //====提货地===================== - - m_newObj.clear(); - m_newObj[15] = ("提货地:"); - m_newObj[160] = ("水泥分厂"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //====毛重===================== - - m_newObj.clear(); - m_newObj[15] = ("毛重(t):"); - it = msg.find("GrossWeight"); - if(it != msg.end()) - { - m_newObj[160] = it->second; - } - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //====皮重===================== - - m_newObj.clear(); - m_newObj[15] = ("皮重(t):"); - it = msg.find("TareWeight"); - if(it != msg.end()) - { - m_newObj[160] = it->second; - } - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //====净重===================== - - m_newObj.clear(); - m_newObj[15] = ("净重(t):"); - it = msg.find("SuttleWeight"); - if(it != msg.end()) - { - m_newObj[160] = it->second; - } - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //====扣重===================== - - m_newObj.clear(); - m_newObj[15] = ("扣重(t):"); - it = msg.find("RockWeight"); - if(it != msg.end()) - { - m_newObj[160] = it->second; - } - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //====进厂时间===================== - - m_newObj.clear(); - m_newObj[15] = ("进厂时间:"); - it = msg.find("EnterTime"); - if(it != msg.end()) - { - m_newObj[160] = it->second; - } - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - //====出厂时间===================== - - m_newObj.clear(); - m_newObj[15] = ("出厂时间:"); - it = msg.find("LeaveTime"); - if(it != msg.end()) - { - m_newObj[160] = it->second; - } - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //打印、切纸 - m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56, 0x01}); -} - -//北洋打印机提货单发货单 -void MsgHandler::Print6_2(const std::map& msg) -{ - //这里组装打印输出内容 - std::string szTemp; - std::map::const_iterator it; - std::vector blTemp; - std::map m_newObj; - int x = 40; - int y = 0; - int dx = 590; - int dy = 750; - char s[12]; - - std::string title, title_corp; - std::string sender, receiver; - - it = msg.find("Title"); - if(it != msg.end()) - { - if(it->second == "提货单") - { - title = ot::UTF8ToGB2312("提货单"); - it = msg.find("Supplier"); - if(it != msg.end()) - { - sender = it->second; - } - it = msg.find("Customer"); - if(it != msg.end()) - { - receiver = it->second; - } - } - else - { - title = ot::UTF8ToGB2312("发货单"); - it = msg.find("Supplier"); - if(it != msg.end()) - { - receiver = it->second; - } - it = msg.find("Customer"); - if(it != msg.end()) - { - sender = it->second; - } - } - } - - it = msg.find("TitleCorp"); - if(it != msg.end()) - { - title_corp = ot::UTF8ToGB2312(it->second.c_str()); - } - - m_PrintData.clear(); - //初始化打印机 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); - //设置中文模式 - m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); - - //设置打印区域 - memcpy(s, &x, 2); - memcpy(s + 2, &y, 2); - memcpy(s + 4, &dx, 2); - memcpy(s + 6, &dy, 2); - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x57}); - m_PrintData.insert(m_PrintData.end(), s, s+8); - - //设置居中 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); - //设置1号字 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); - - //打印标题 - m_PrintData.insert(m_PrintData.end(), {0x0A}); - m_PrintData.insert(m_PrintData.end(), title_corp.begin(), title_corp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - m_PrintData.insert(m_PrintData.end(), title.begin(), title.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //设置左对齐 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); - - //设置页模式 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); - - //=============================内容===================================== - - std::vector names ={"NO:", "规格", "车牌号", "收货单位", "供货单位", "开票时间", "验收人"}; - std::vector items; - - it = msg.find("QueueID"); - if(it != msg.end()) - { - items.push_back(it->second); - } - it = msg.find("GoodsType"); - if(it != msg.end()) - { - items.push_back(it->second); - } - it = msg.find("CarNumber"); - if(it != msg.end()) - { - items.push_back(it->second); - } - items.push_back(receiver); - items.push_back(sender); - it = msg.find("DateTime"); - if(it != msg.end()) - { - items.push_back(it->second); - } - items.push_back(" "); - - //设置0号字 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); - - //顶框线 - m_newObj.clear(); - m_newObj[1] = ("┌"); - m_newObj[23] = ("┐"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - for(int i = 0; i < names.size(); i++) - { - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = names[i]; - m_newObj[120] = ("│"); - m_newObj[145] = items[i]; - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - } - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[120] = ("│"); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("备注"); - m_newObj[120] = ("│"); - m_newObj[280] = ("盖章处"); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[120] = ("│"); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //底框线 - m_newObj.clear(); - m_newObj[1] = ("└"); - m_newObj[6] = ("┴"); - m_newObj[23] = ("┘"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //打印、切纸 - m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56, 0x01}); -} - -//HS-K33打印排队票 -void MsgHandler::Print1_3(const std::map& msg) -{ - //这里组装打印输出内容 - std::string szTemp; - std::map::const_iterator it; - std::vector blTemp; - std::map m_newObj; - - m_PrintData.clear(); - //初始化打印机 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); - //设置中文模式 - m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); - //设置居中 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); - //设置1号字 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); - - //打印磅单 - m_newObj.clear(); - it = msg.find("TitleCorp"); - if(it != msg.end()) - { - m_newObj[340] = it->second + ("排队票"); //排队票 - } - blTemp = BuildStringLine_HSK33(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行 - - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x4C, 0x30, 0x00}); - //设置居中 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); - //设置1号字 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); - - //车牌号 - m_newObj.clear(); - m_newObj[10] = ("车牌号:"); - it = msg.find("CarNumber"); - if(it != msg.end()) - { - m_newObj[190] = it->second; - } - blTemp = BuildStringLine_HSK33(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行 - - //时间 - m_newObj.clear(); - m_newObj[600] = ("时间:"); - it = msg.find("DateTime"); - if(it != msg.end()) - { - m_newObj[740] = it->second; - } - blTemp = BuildStringLine_HSK33(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行 - - //排队号 - m_newObj.clear(); - m_newObj[10] = ("排队号:"); - it = msg.find("QueueID"); - if(it != msg.end()) - { - m_newObj[180] = it->second; - } - blTemp = BuildStringLine_HSK33(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行 - - //供应商 - m_newObj.clear(); - m_newObj[10] = ("供应商:"); - it = msg.find("Supplier"); - if(it != msg.end()) - { - m_newObj[190] = it->second; - } - blTemp = BuildStringLine_HSK33(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行 - - //品种 - m_newObj.clear(); - m_newObj[10] = ("品 种:"); - it = msg.find("GoodsType"); - if(it != msg.end()) - { - m_newObj[190] = it->second; - } - blTemp = BuildStringLine_HSK33(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行 - - //车道号 - m_newObj.clear(); - m_newObj[10] = ("车道号:"); - it = msg.find("VechileLaneNo"); - if(it != msg.end()) - { - m_newObj[190] = it->second; - } - blTemp = BuildStringLine_HSK33(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行 - - //采样机号 - m_newObj.clear(); - m_newObj[10] = ("采样机:"); - it = msg.find("SampleID"); - if(it != msg.end()) - { - m_newObj[190] = it->second; - } - blTemp = BuildStringLine_HSK33(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行 - - it = msg.find("SuttleWeight"); - if (it != msg.end()) - { - //需要打印发运净重 - //发运净重 - m_newObj.clear(); - m_newObj[10] = ("发运净重:"); - m_newObj[190] = it->second; - m_newObj[250] = ("吨"); - blTemp = BuildStringLine_HSK33(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行 - } - - //打印、切纸 - m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56 ,0x42, 0x00}); -} - -//HS-K33打印普安燃料轻磅票 -void MsgHandler::Print2_3(const std::map& msg) -{ - //这里组装打印输出内容 - std::string szTemp; - std::map::const_iterator it; - std::vector blTemp; - std::map m_newObj; - - m_PrintData.clear(); - //初始化打印机 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); - //设置中文模式 - m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); - //设置居中 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); - //设置1号字 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); - - //打印磅单 - //打印抬头 - it = msg.find("TitleCorp"); - if(it != msg.end()) - { - szTemp = ot::UTF8ToGB2312(it->second.c_str()); - } - m_PrintData.insert(m_PrintData.end(), {0x0A}); - m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - szTemp=ot::UTF8ToGB2312("燃料过磅单"); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //设置0号字 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); - //设置左对齐 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); - //设置页模式 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); - //设置左边空白量 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x4C, 0x3C, 0x00}); - - m_newObj.clear(); - m_newObj[430] = ("单位:吨"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //加顶框 - m_newObj.clear(); - m_newObj[1] = ("┌"); - m_newObj[6] = ("┬"); - m_newObj[23] = ("┐"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //====票据号===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("编 号"); - m_newObj[120] = ("│"); - it = msg.find("CoalNumber"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //=========供应商===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("供应商"); - m_newObj[120] = ("│"); - it = msg.find("Supplier"); - if (it != msg.end()) - { - if (it->second.length() > 24) - { - szTemp = it->second.substr(0, 24); - m_newObj[145] = szTemp; - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[120] = ("│"); - szTemp=it->second.substr(24, it->second.length()-24); - m_newObj[145] = szTemp; - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - } - else - { - m_newObj[145] = it->second; - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - } - } - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //=========供应商识别名===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("供 应"); - m_newObj[120] = ("│"); - it = msg.find("SupplierTitle"); - if (it != msg.end()) - { - if (it->second.length() > 24) - { - szTemp = it->second.substr(0, 24); - m_newObj[145] = szTemp; - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("识别名"); - m_newObj[120] = ("│"); - szTemp=it->second.substr(24, it->second.length()-24); - m_newObj[145] = szTemp; - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - } - else - { - m_newObj[145] = it->second; - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("识别名"); - m_newObj[120] = ("│"); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - } - } - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[12] = ("┬"); - m_newObj[17] = ("┬"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //====品种车牌===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("品 种"); - m_newObj[120] = ("│"); - it = msg.find("GoodsType"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - - m_newObj[264] = ("│"); - m_newObj[289] = ("车 牌"); - m_newObj[383] = ("│"); - it = msg.find("CarNumber"); - if(it != msg.end()) - { - m_newObj[408] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[12] = ("┴"); - m_newObj[17] = ("┴"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //=========时间===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("时 间"); - m_newObj[120] = ("│"); - it = msg.find("DateTime"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[12] = ("┬"); - m_newObj[17] = ("┬"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //====毛重皮重===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("毛 重"); - m_newObj[120] = ("│"); - it = msg.find("GrossWeight"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - - m_newObj[264] = ("│"); - m_newObj[289] = ("皮 重"); - m_newObj[383] = ("│"); - it = msg.find("TareWeight"); - if(it != msg.end()) - { - m_newObj[408] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[12] = ("┼"); - m_newObj[17] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //====扣矸扣水===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("扣 矸"); - m_newObj[120] = ("│"); - it = msg.find("RockWeight"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - - m_newObj[264] = ("│"); - m_newObj[289] = ("扣 水"); - m_newObj[383] = ("│"); - it = msg.find("WaterWeight"); - if(it != msg.end()) - { - m_newObj[408] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[12] = ("┼"); - m_newObj[17] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - //=========扣杂\净重====================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("扣 杂"); - m_newObj[120] = ("│"); - it = msg.find("OtherWeight"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - - m_newObj[264] = ("│"); - m_newObj[289] = ("净 重"); - m_newObj[383] = ("│"); - it = msg.find("SuttleWeight"); - if(it != msg.end()) - { - m_newObj[408] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("└"); - m_newObj[6] = ("┴"); - m_newObj[12] = ("┴"); - m_newObj[17] = ("┴"); - m_newObj[23] = ("┘"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //设置章位置 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x4C, 0x7C, 0x01}); - m_PrintData.insert(m_PrintData.end(), {0x1C, 0x70, 0x01, 0x00}); - - //打印、切纸 - m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56 ,0x42, 0x00}); -} - -//HS-K33打印转煤票 -void MsgHandler::Print4_3(const std::map& msg) -{ - //这里组装打印输出内容 - std::string szTemp; - std::map::const_iterator it; - std::vector blTemp; - std::map m_newObj; - - m_PrintData.clear(); - //初始化打印机 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); - //设置中文模式 - m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); - //设置居中 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); - //设置1号字 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); - - //打印转煤单 - it = msg.find("TitleCorp"); - if(it != msg.end()) - { - szTemp = ot::UTF8ToGB2312(it->second.c_str()) + ot::UTF8ToGB2312("转煤单"); //转煤单 - } - m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); - m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //设置0号字 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); - szTemp=ot::UTF8ToGB2312(" "); - m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); - m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - //设置左对齐 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); - //设置页模式 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); - - //=============================开票时间===================================== - - //加顶框 - m_newObj[1] = ("┌"); - m_newObj[23] = ("┐"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - //====票据号===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("称重编号"); - m_newObj[120] = ("│"); - it = msg.find("CoalNumber"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //=========时间===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("时间"); - m_newObj[120] = ("│"); - it = msg.find("DateTime"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - //====车牌号===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("车牌号"); - m_newObj[120] = ("│"); - it = msg.find("CarNumber"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - //====品种===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("品 种"); - m_newObj[120] = ("│"); - it = msg.find("GoodsType"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - m_newObj.clear(); - m_newObj[1] = ("├"); - - m_newObj[6] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - //====转出煤场===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("转出煤场"); - m_newObj[120] = ("│"); - it = msg.find("OUTCoalYard"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - - m_newObj[6] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - //====转入煤场===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("转入煤场"); - m_newObj[120] = ("│"); - it = msg.find("INCoalYard"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - - m_newObj[6] = ("┼"); - m_newObj[17] = ("┬"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //=========毛重====================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("毛重"); - m_newObj[120] = ("│"); - - it = msg.find("GrossWeight"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - - m_newObj[384] = ("│"); - m_newObj[404] = ("吨"); - - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[17] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - - //=========皮重====================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("皮重"); - m_newObj[120] = ("│"); - - it = msg.find("TareWeight"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - - m_newObj[384] = ("│"); - m_newObj[404] = ("吨"); - - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[17] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - //=========净重====================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("净重"); - m_newObj[120] = ("│"); - - it = msg.find("SuttleWeight"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - - m_newObj[384] = ("│"); - m_newObj[404] = ("吨"); - - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[17] = ("┴"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - //====磅号===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("磅号"); - m_newObj[120] = ("│"); - it = msg.find("DeviceName"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("├"); - - m_newObj[6] = ("┼"); - m_newObj[17] = ("┬"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - //=========备注===================== - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("备注"); - m_newObj[120] = ("│"); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - m_newObj.clear(); - m_newObj[1] = ("└"); - m_newObj[6] = ("┴"); - m_newObj[23] = ("┘"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //打印、切纸 - m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56 ,0x42, 0x00}); -} - -//HS-K33打印配煤票 -void MsgHandler::Print5_3(const std::map& msg) -{ - //这里组装打印输出内容 - std::string szTemp; - std::map::const_iterator it; - std::vector blTemp; - std::map m_newObj; - - m_PrintData.clear(); - //初始化打印机 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); - //设置中文模式 - m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); - //设置居中 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); - //设置1号字 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); - - - //打印配煤票 - it = msg.find("CarNumber"); - if(it != msg.end()) - { - szTemp = ot::UTF8ToGB2312(it->second.c_str()) + ot::UTF8ToGB2312(" "); // 配煤票 - } - m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - it = msg.find("Warning"); - if(it != msg.end()) - { - szTemp = ot::UTF8ToGB2312(it->second.c_str()); - } - m_PrintData.insert(m_PrintData.end(), {0x0A}); - m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //设置居中 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61 ,0x01}); - //票据号 - it = msg.find("CoalNumber"); - if(it != msg.end()) - { - szTemp = ot::UTF8ToGB2312(it->second.c_str()); - } - - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x6B, 0x61, 0x08, 0x02, static_cast(szTemp.length()), static_cast(szTemp.length()>>8)}); - m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //设置0号字 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); - //设置居右 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x02}); - it = msg.find("GrossWeightTime"); - if(it != msg.end()) - { - szTemp = ot::UTF8ToGB2312(it->second.c_str()); - } - m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //向前走纸行 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x64, 0x04}); - //打印、切纸 - m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56 ,0x42, 0x00}); -} - -//HS-K33打印灰磅票 -void MsgHandler::Print6_3(const std::map& msg) -{ - //这里组装打印输出内容 - std::string szTemp; - std::map::const_iterator it; - std::vector blTemp; - std::map m_newObj; - - m_PrintData.clear(); - //初始化打印机 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); - //设置中文模式 - m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); - //设置居中 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); - //设置1号字 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x0F}); - - //打印抬头 - it = msg.find("TitleCorp"); - if(it != msg.end()) - { - szTemp = ot::UTF8ToGB2312("国家电投集团"); - } - m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); - m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - it = msg.find("TitleCorp"); - if(it != msg.end()) - { - szTemp = ot::UTF8ToGB2312(it->second.c_str()) + ot::UTF8ToGB2312("提货单"); - } - m_PrintData.insert(m_PrintData.end(), {0x0A}); - m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //设置左对齐 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); - //设置页模式 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); - //换行 - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //====票据号===================== - - m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[26] = ("No:"); - m_newObj[120] = (" "); - it = msg.find("CoalNumber"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = (" "); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[6] = (" "); - m_newObj[23] = (" "); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - //====品种===================== - - m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[26] = ("品 种:"); - m_newObj[120] = (" "); - it = msg.find("GoodsType"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = (" "); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[6] = (" "); - m_newObj[23] = (" "); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - //====批号===================== - - m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[26] = ("批 号:"); - m_newObj[120] = (" "); - it = msg.find("BatchNumber"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = (" "); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[6] = (" "); - m_newObj[23] = (" "); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - //====司机===================== - - m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[26] = ("司 机:"); - m_newObj[120] = (" "); - it = msg.find("Operator"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = (" "); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[6] = (" "); - m_newObj[23] = (" "); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - //====车牌号===================== - - m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[26] = ("车牌号:"); - m_newObj[120] = (" "); - it = msg.find("CarNumber"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = (" "); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[6] = (" "); - m_newObj[23] = (" "); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - //====客户===================== - - m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[26] = ("客 户:"); - m_newObj[120] = (" "); - it = msg.find("Supplier"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = (" "); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[6] = (" "); - m_newObj[23] = (" "); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - //====目的地===================== - - m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[26] = ("目的地:"); - m_newObj[120] = (" "); - it = msg.find("Destination"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - m_newObj[528] = (" "); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[6] = (" "); - m_newObj[23] = (" "); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - //====提货地===================== - - m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[26] = ("提货地:"); - m_newObj[120] = (" "); - m_newObj[145] = ("水泥分厂"); - m_newObj[528] = (" "); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[6] = (" "); - m_newObj[23] = (" "); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //=========毛重====================== m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[26] = ("毛重(t):"); - m_newObj[120] = (" "); + m_newObj[1] = ("│"); + m_newObj[26] = ("毛重"); + m_newObj[120] = ("│"); it = msg.find("GrossWeight"); if(it != msg.end()) @@ -3900,390 +684,310 @@ void MsgHandler::Print6_3(const std::map& msg) m_newObj[145] = it->second; } - m_newObj[528] = (" "); + m_newObj[384] = ("│"); + m_newObj[404] = ("吨"); + + m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[6] = (" "); - m_newObj[23] = (" "); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[17] = ("┼"); + m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //=========皮重====================== + //=========毛重操作员====================== m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[26] = ("皮重(t):"); - m_newObj[120] = (" "); + m_newObj[1] = ("│"); + m_newObj[26] = ("操作员"); + m_newObj[120] = ("│"); - it = msg.find("TareWeight"); + it = msg.find("GrossOperater"); if(it != msg.end()) { m_newObj[145] = it->second; } - m_newObj[528] = (" "); + m_newObj[384] = ("│"); + m_newObj[404] = ("吨"); + + m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[6] = (" "); - m_newObj[23] = (" "); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[17] = ("┼"); + m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - - - //=========净重====================== + + //=========毛重时间====================== m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[26] = ("净重(t):"); - m_newObj[120] = (" "); + m_newObj[1] = ("│"); + m_newObj[26] = ("毛重时间"); + m_newObj[120] = ("│"); - it = msg.find("SuttleWeight"); + it = msg.find("GrossTime"); if(it != msg.end()) { m_newObj[145] = it->second; } - m_newObj[528] = (" "); + m_newObj[384] = ("│"); + m_newObj[404] = ("吨"); + + m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[6] = (" "); - m_newObj[23] = (" "); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[17] = ("┼"); + m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //====扣重===================== + //=========皮重====================== m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[26] = ("扣重(t):"); - m_newObj[120] = (" "); + m_newObj[1] = ("│"); + m_newObj[26] = ("皮重"); + m_newObj[120] = ("│"); - it = msg.find("RockWeight"); + it = msg.find("TareWeight"); if(it != msg.end()) { m_newObj[145] = it->second; } - m_newObj[528] = (" "); + m_newObj[384] = ("│"); + m_newObj[404] = ("吨"); + + m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[6] = (" "); - m_newObj[23] = (" "); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[17] = ("┼"); + m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //=========进厂时间===================== + //=========皮重操作员====================== m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[26] = ("进厂时间:"); - m_newObj[120] = (" "); - it = msg.find("EnterTime"); + m_newObj[1] = ("│"); + m_newObj[26] = ("操作员"); + m_newObj[120] = ("│"); + + it = msg.find("TareOperater"); if(it != msg.end()) { - m_newObj[160] = it->second; + m_newObj[145] = it->second; } - m_newObj[528] = (" "); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[6] = (" "); - m_newObj[23] = (" "); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_newObj[384] = ("│"); + m_newObj[404] = ("吨"); - //=========出厂时间===================== - - m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[26] = ("出厂时间:"); - m_newObj[120] = (" "); - it = msg.find("LeaveTime"); - if(it != msg.end()) - { - m_newObj[160] = it->second; - } - m_newObj[528] = (" "); + m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[6] = (" "); - m_newObj[23] = (" "); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[17] = ("┼"); + m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //=========备注===================== + //=========皮重时间====================== m_newObj.clear(); - m_newObj[1] = (" "); - m_newObj[26] = ("备注"); - m_newObj[120] = (" "); - m_newObj[145] = (" "); - m_newObj[528] = (" "); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //打印、切纸 - m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56 ,0x42, 0x00}); -} - -//HS-K33打印机打印黔西过磅票 -void MsgHandler::Print8_3(const std::map& msg) -{ - //这里组装打印输出内容 - std::string szTemp; - std::map::const_iterator it; - std::vector blTemp; - std::map m_newObj; - - m_PrintData.clear(); - //初始化打印机 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); - //设置中文模式 - m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); - //设置居中 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); - //设置1号字 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); + m_newObj[1] = ("│"); + m_newObj[26] = ("皮重时间"); + m_newObj[120] = ("│"); - //打印磅单 - //打印标题 - it = msg.find("TitleCorp"); + it = msg.find("TareTime"); if(it != msg.end()) { - szTemp = ot::UTF8ToGB2312(it->second.c_str()); + m_newObj[145] = it->second; } - m_PrintData.insert(m_PrintData.end(), {0x0A}); - m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - szTemp = ot::UTF8ToGB2312("过磅单(出厂)"); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); + m_newObj[384] = ("│"); + m_newObj[404] = ("吨"); + + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //设置0号字 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); - //设置左对齐 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); - //设置页模式 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); - //设置左边空白量 - m_PrintData.insert(m_PrintData.end(), {0x1D, 0x4C, 0x3C, 0x00}); - //加顶框 m_newObj.clear(); - m_newObj[1] = ("┌"); - m_newObj[6] = ("┬"); - m_newObj[23] = ("┐"); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[17] = ("┼"); + m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //====票据号===================== + //=========净重====================== + m_newObj.clear(); m_newObj[1] = ("│"); - m_newObj[26] = ("编号"); + m_newObj[26] = ("净重"); m_newObj[120] = ("│"); - it = msg.find("CoalNumber"); + + it = msg.find("SuttleWeight"); if(it != msg.end()) { m_newObj[145] = it->second; } + + m_newObj[384] = ("│"); + m_newObj[404] = ("吨"); + m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); + m_newObj[17] = ("┴"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //=========收货单位===================== + //=========扣矸====================== + m_newObj.clear(); m_newObj[1] = ("│"); - m_newObj[26] = ("收货单位"); + m_newObj[26] = ("扣矸"); m_newObj[120] = ("│"); - it = msg.find("Customer"); - if (it != msg.end()) + + it = msg.find("duduction1"); + if(it != msg.end()) { - if (it->second.length() > 24) - { - m_newObj[145] = it->second.substr(0, 24); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[120] = ("│"); - m_newObj[145] = it->second.substr(24, it->second.length() - 24); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 - } - else - { - m_newObj[145] = it->second; - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 - } + m_newObj[145] = it->second; } - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 + m_newObj[384] = ("│"); + m_newObj[404] = ("吨"); - //=========供货单位===================== + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("供货单位"); - m_newObj[120] = ("│"); - it = msg.find("Supplier"); - if (it != msg.end()) - { - if (it->second.length() > 24) - { - m_newObj[145] = it->second.substr(0, 24); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[120] = ("│"); - m_newObj[145] = it->second.substr(24, it->second.length() - 24); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 - } - else - { - m_newObj[145] = it->second; - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 - } - } m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); + m_newObj[17] = ("┴"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //=========扣水====================== - //====品种===================== m_newObj.clear(); m_newObj[1] = ("│"); - m_newObj[26] = ("规格"); + m_newObj[26] = ("扣水"); m_newObj[120] = ("│"); - it = msg.find("GoodsType"); + + it = msg.find("duduction2"); if(it != msg.end()) { m_newObj[145] = it->second; } + + m_newObj[384] = ("│"); + m_newObj[404] = ("吨"); + m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); + m_newObj[17] = ("┴"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //====车牌===================== + //=========扣杂====================== + m_newObj.clear(); m_newObj[1] = ("│"); - m_newObj[26] = ("车牌"); + m_newObj[26] = ("扣杂"); m_newObj[120] = ("│"); - it = msg.find("CarNumber"); + + it = msg.find("duduction3"); if(it != msg.end()) { m_newObj[145] = it->second; } - m_newObj[264] = ("│"); - m_newObj[289] = ("操作员"); - m_newObj[383] = ("│"); - it = msg.find("Operator"); - if(it != msg.end()) - { - m_newObj[408] = it->second; - } + + m_newObj[384] = ("│"); + m_newObj[404] = ("吨"); + m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 + m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); - m_newObj[12] = ("┴"); m_newObj[17] = ("┴"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====磅称名称===================== - //====时间===================== m_newObj.clear(); m_newObj[1] = ("│"); - m_newObj[26] = ("时间"); + m_newObj[26] = ("磅称编号"); m_newObj[120] = ("│"); - it = msg.find("DateTime"); + it = msg.find("DeviceID"); if(it != msg.end()) { m_newObj[145] = it->second; @@ -4295,112 +999,52 @@ void MsgHandler::Print8_3(const std::map& msg) m_newObj.clear(); m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); - m_newObj[12] = ("┬"); m_newObj[17] = ("┬"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====磅称名称===================== - //====毛重皮重===================== m_newObj.clear(); m_newObj[1] = ("│"); - m_newObj[26] = ("毛重(吨)"); + m_newObj[26] = ("磅称名称"); m_newObj[120] = ("│"); - it = msg.find("GrossWeight"); + it = msg.find("DeviceName"); if(it != msg.end()) { m_newObj[145] = it->second; } - - m_newObj[264] = ("│"); - m_newObj[289] = ("皮重(吨)"); - m_newObj[383] = ("│"); - it = msg.find("TareWeight"); - if(it != msg.end()) - { - m_newObj[408] = it->second; - } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 + m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); - m_newObj[12] = ("┼"); - m_newObj[17] = ("┼"); + m_newObj[17] = ("┬"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 + m_PrintData.insert(m_PrintData.end(), {0x0A}); - //=========扣杂\净重====================== + + //=========备注===================== m_newObj.clear(); m_newObj[1] = ("│"); - m_newObj[26] = ("净重(吨)"); + m_newObj[26] = ("备注"); m_newObj[120] = ("│"); - it = msg.find("SuttleWeight"); - if(it != msg.end()) - { - m_newObj[145] = it->second; - } - - m_newObj[264] = ("│"); - m_newObj[289] = ("扣重(吨)"); - m_newObj[383] = ("│"); - it = msg.find("RockWeight"); - if(it != msg.end()) - { - m_newObj[408] = it->second; - } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 + m_PrintData.insert(m_PrintData.end(), {0x0A}); - // 打印电子印章图片 - bool e_seal = true; //ElectChapter; - if(!e_seal) - { - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[6] = ("┼"); - m_newObj[12] = ("┴"); - m_newObj[17] = ("┴"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[120] = ("│"); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[26] = ("备注盖章"); - m_newObj[120] = ("│"); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - m_newObj.clear(); - m_newObj[1] = ("│"); - m_newObj[120] = ("│"); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - } m_newObj.clear(); m_newObj[1] = ("└"); @@ -4408,21 +1052,7 @@ void MsgHandler::Print8_3(const std::map& msg) m_newObj[23] = ("┘"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 - - it = msg.find("e_seal"); - if(it != msg.end()) - { - m_newObj.clear(); - m_newObj[26] = ("盖章:"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - // if(!PrintImage("image/qx-seal.bmp")) { - // m_PrintData.append(EnterChar).append(EnterChar).append(EnterChar).append(EnterChar).append(EnterChar); - // } - } + m_PrintData.insert(m_PrintData.end(), {0x0A}); //打印、切纸 m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56 ,0x42, 0x00}); diff --git a/print/MsgHandler.hpp b/print/MsgHandler.hpp index c22b589..60454ba 100644 --- a/print/MsgHandler.hpp +++ b/print/MsgHandler.hpp @@ -45,21 +45,8 @@ private: void Page_End(std::vector& Data); void GtstrLength(int iVal, char *p); - void Print1_1(const std::map& msg); - - void Print1_2(const std::map& msg); - void Print2_2(const std::map& msg); - void Print3_2(const std::map& msg); - void Print4_2(const std::map& msg); - void Print5_2(const std::map& msg); - void Print6_2(const std::map& msg); void Print1_3(const std::map& msg); - void Print2_3(const std::map& msg); - void Print4_3(const std::map& msg); - void Print5_3(const std::map& msg); - void Print6_3(const std::map& msg); - void Print8_3(const std::map& msg); }; #endif \ No newline at end of file diff --git a/print/Subscriber.cxx b/print/Subscriber.cxx index 907a658..e4b179e 100644 --- a/print/Subscriber.cxx +++ b/print/Subscriber.cxx @@ -76,7 +76,7 @@ SubscriberApp::SubscriberApp( // Create the topic TopicQos topic_qos = TOPIC_QOS_DEFAULT; participant_->get_default_topic_qos(topic_qos); - topic_ = participant_->create_topic("PrintReqTopic", type_.get_type_name(), topic_qos); + topic_ = participant_->create_topic("PrintReq", type_.get_type_name(), topic_qos); if (topic_ == nullptr) { throw std::runtime_error("InternalSystem::PrintReq Topic initialization failed"); @@ -86,7 +86,7 @@ SubscriberApp::SubscriberApp( DataReaderQos reader_qos = DATAREADER_QOS_DEFAULT; subscriber_->get_default_datareader_qos(reader_qos); reader_qos.reliability().kind = ReliabilityQosPolicyKind::RELIABLE_RELIABILITY_QOS; - reader_qos.durability().kind = DurabilityQosPolicyKind::TRANSIENT_LOCAL_DURABILITY_QOS; + reader_qos.durability().kind = DurabilityQosPolicyKind::VOLATILE_DURABILITY_QOS; reader_qos.history().kind = HistoryQosPolicyKind::KEEP_LAST_HISTORY_QOS; reader_ = subscriber_->create_datareader(topic_, reader_qos, this, StatusMask::all()); if (reader_ == nullptr) @@ -133,7 +133,7 @@ void SubscriberApp::on_data_available( std::string topic_name = reader->get_topicdescription()->get_name(); std::cout << topic_name << std::endl; - if (topic_name == "PrintReqTopic") + if (topic_name == "PrintReq") { InternalSystem::PrintReq sample_; while ((!is_stopped()) && (RETCODE_OK == reader->take_next_sample(&sample_, &info))) diff --git a/print/main.cxx b/print/main.cxx index 9409b41..7db34eb 100644 --- a/print/main.cxx +++ b/print/main.cxx @@ -78,7 +78,7 @@ int main(int argc, char** argv) const char* interface = "serial"; const char* port = "ttyS1"; const char* baudrate = "9600"; - const char* device = "Toledo"; + const char* device = "NP80A"; for (int i = 1; i < argc; i++) { diff --git a/weigh/Publisher.cxx b/weigh/Publisher.cxx index 486952e..e3638ad 100644 --- a/weigh/Publisher.cxx +++ b/weigh/Publisher.cxx @@ -155,7 +155,7 @@ void PublisherApp::run(std::shared_ptr handler) config.min_weight_threshold = handler->empty_weight; // 300kg开始检测 config.empty_car_threshold = handler->empty_weight; // 默认300kg为空车 config.fast_drop_threshold = 1000.0f; // 快速下降1吨认为车辆离开 - config.required_stable_count = 6; // 6次稳定即可 + config.required_stable_count = 20; // 20次稳定即可 config.min_jitter_count = 2; // 至少2次非增长 config.timeout_extra = 3; // 超时额外次数 config.window_size = 8; // 窗口大小8