Commit 7ec97e7d by guanghui.cui

插件更新

parent 5f3adc7d
#include "fmp_printer_p.h"
#include "fmp_logger_i.h"
FMPPrinter::FMPPrinter(ctkPluginContext *context)
: FMPPrinterInterface(context),
FMPPrinter::FMPPrinter(const FMPContext ctx)
: FMPPrinterInterface(),
context(ctx),
_inited(false),
d_ptr(new FMPPrinterPrivate(this))
{
......
......@@ -2,6 +2,7 @@
#define FMPPRINTER_H
#include <QObject>
#include <ctkPluginContext.h>
#include "fmp_printer_i.h"
class FMPPrinterPrivate;
......@@ -13,16 +14,24 @@ class FMPPrinter : public QObject ,public FMPPrinterInterface
Q_DECLARE_PRIVATE(FMPPrinter)
public:
FMPPrinter(ctkPluginContext *context);
explicit FMPPrinter(const FMPContext ctx);
//!
bool DoPrint(QString data,QString strLabel);
QString GetPrintName();
virtual long GetPluginId() const { return GetContext()->getPlugin()->getPluginId(); }
protected:
const FMPContext GetContext() const { return context; }
void InitService();
void UninitService();
bool DoPrint(QString data,QString strLabel);
QString GetPrintName();
private:
bool _inited;
FMPPrinterPrivate *d_ptr;
const FMPContext context;
signals:
......
......@@ -3,6 +3,7 @@
#define FMP_INIKEY_PRINTERNAME "Printer/Name"
#define FMP_INIKEY_PRINTERTYPE "Printer/Mode"
#define FMP_INIKEY_PRINTERTYPET "Printer/PrintType"
#define FMP_INIKEY_PRINTERSIZE "Printer/PaperWidth"
#define FMP_INIKEY_PRINTERLEVLEL "Printer/Levlel"
#define FMP_INIKEY_PRINTERTYPE2 "Printer/Type"
......
......@@ -5,6 +5,8 @@
#include "fmp_printer_def.h"
class FMPPrinterInterface;
/**
* 业务插件接口,必须继承自 FMPluginInterface
* @brief The FMPPrinterInterface class
......@@ -12,17 +14,14 @@
class FMPPrinterInterface : public FMPBaseInterface
{
public:
explicit FMPPrinterInterface(ctkPluginContext *ctx) : FMPBaseInterface(), _ctx(ctx) {}
explicit FMPPrinterInterface() : FMPBaseInterface() {}
virtual bool DoPrint(QString data,QString strLabel)=0;
virtual QString GetPrintName()=0;
int PostEvent(const QString &topic, const FMPProps &pps) { return FMP_NOIMPL; }
public:
ctkPluginContext *_ctx;
int PostEvent(const QString &, const FMPProps &) { return FMP_NOIMPL; }
};
Q_DECLARE_INTERFACE(FMPPrinterInterface, "com.fmp.printer")
Q_DECLARE_INTERFACE(FMPPrinterInterface, "fmp.printer")
#endif // FMPPRINTERINTERFACE_H
#include "fmp_printer_p.h"
#include <fmp_settings_i.h>
#include <QDateTime>
#include <ctkPluginContext.h>
#include <ctkServiceReference.h>
#include <QDir>
#include "fmp_te_handlers.h"
......@@ -9,6 +8,7 @@
#include "fmp_home_i.h"
#include "fmp_logger_i.h"
#include "initclass.h"
#include "QSettings"
#include <windows.h>
#include <winspool.h>
......@@ -16,7 +16,6 @@
FMPPrinterPrivate::FMPPrinterPrivate(FMPPrinter *q)
: q_ptr(q)
{
FMPLoggerInterface::InitContext(q->_ctx);
}
int FMPPrinterPrivate::Init()
......@@ -45,9 +44,6 @@ FMPPrinterPrivate::~FMPPrinterPrivate()
int FMPPrinterPrivate::Uninit()
{
Q_Q(FMPPrinter);
if(_settings !=nullptr)
delete _settings;
_settings = 0;
q->_inited = false;
return FMP_SUCCESS;
......@@ -76,112 +72,109 @@ bool FMPPrinterPrivate::_DoPrint(QString data,QString strLabel="")
}
QLOG_INFO() <<"receive data is"<<data;
char m_data[2048]={0};char m_label[1024]={0};
switch (m_print.m_PrintType)
if(m_print.m_PrintSize == 58)
{
case 0:
case 1:
if(m_print.m_PrintSize == 58)
if(!strLabel.compare("balance"))
{
if(!strLabel.compare("balance"))
{
QLOG_INFO() <<"ready balance data 58 is"<<m_data;
QByteArray tmpData = data.toLocal8Bit();
strcpy(m_data,tmpData.data());
FM_printBalance(m_data);
FM_unloaddll();
return 1;
}
if(data.isEmpty())
{
QLOG_INFO() <<"ready e data isEmpty ";
return 0;
}
QLOG_INFO() <<"ready balance data 58 is"<<m_data;
QByteArray tmpData = data.toLocal8Bit();
strcpy(m_data,tmpData.data());
QLOG_INFO() <<"ready print data is"<<m_data;
FM_PrintData(m_data);
if(!strLabel.isEmpty())
{
QByteArray labelData = strLabel.toLocal8Bit();
strcpy(m_label,labelData.data());
FM_printTscData(m_label);
}
FM_printBalance(m_data);
FM_unloaddll();
return 1;
}
case 2:
if(m_print.m_PrintSize == 80)
if(data.isEmpty())
{
if(!strLabel.compare("balance"))
{
QLOG_INFO() <<"ready balance data is"<<m_data;
QByteArray tmpData = data.toLocal8Bit();
strcpy(m_data,tmpData.data());
FM_printBalance(m_data);
FM_unloaddll();
return 1;
}
if(data.isEmpty())
{
QLOG_INFO() <<"ready e data isEmpty ";
return 0;
}
QByteArray tmpData = data.toLocal8Bit();
strcpy(m_data,tmpData.data());
QLOG_INFO() <<"ready print data is"<<m_data;
FM_PrintData(m_data);
if(!strLabel.isEmpty())
{
QLOG_INFO() <<"ready strLabel data is"<<m_data;
QByteArray labelData = strLabel.toLocal8Bit();
strcpy(m_label,labelData.data());
FM_printTscData(m_label);
}
FM_unloaddll();
return 1;
QLOG_INFO() <<"ready e data isEmpty ";
return 0;
}
else if(m_print.m_PrintSize == 56)
QByteArray tmpData = data.toLocal8Bit();
strcpy(m_data,tmpData.data());
QLOG_INFO() <<"ready print data is"<<m_data;
FM_PrintData(m_data);
if(!strLabel.isEmpty())
{
;
QByteArray labelData = strLabel.toLocal8Bit();
strcpy(m_label,labelData.data());
FM_printTscData(m_label);
}
break;
default:
#if 0
if(GetInfo(m_print.printname,data))
FM_unloaddll();
return 1;
}
if(m_print.m_PrintSize == 80)
{
if(!strLabel.compare("balance"))
{
QLOG_INFO()<< "print is ok";
QLOG_INFO() <<"ready balance data is"<<m_data;
QByteArray tmpData = data.toLocal8Bit();
strcpy(m_data,tmpData.data());
FM_printBalance(m_data);
FM_unloaddll();
return 1;
}
else
if(data.isEmpty())
{
QLOG_INFO()<< "print is false";
QLOG_INFO() <<"ready e data isEmpty ";
return 0;
}
#endif
break;
QByteArray tmpData = data.toLocal8Bit();
strcpy(m_data,tmpData.data());
QLOG_INFO() <<"ready print data is"<<m_data;
FM_PrintData(m_data);
if(!strLabel.isEmpty())
{
QLOG_INFO() <<"ready strLabel data is"<<m_data;
QByteArray labelData = strLabel.toLocal8Bit();
strcpy(m_label,labelData.data());
FM_printTscData(m_label);
}
FM_unloaddll();
return 1;
}
#if 0
if(GetInfo(m_print.printname,data))
{
QLOG_INFO()<< "print is ok";
return 1;
}
else
{
QLOG_INFO()<< "print is false";
return 0;
}
#endif
return 0;
}
QString FMPPrinterPrivate::_GetPrintName()
{
Q_Q(FMPPrinter);
_settings = q->GetService<FMPSettingsInterface>(q->_ctx);
m_print.printname = _settings->GetString(FMP_INIKEY_PRINTERNAME);
m_print.m_PrintType = _settings->GetInt(FMP_INIKEY_PRINTERTYPE);
m_print.m_PrintSize = _settings->GetInt(FMP_INIKEY_PRINTERSIZE);
m_print.m_level = _settings->GetString(FMP_INIKEY_PRINTERLEVLEL);
m_print.m_parall = _settings->GetString(FMP_INIKEY_PRINTERPARALL);
m_print.type = _settings->GetInt(FMP_INIKEY_PRINTERTYPE2);
m_print.m_Usb = _settings->GetString(FMP_INIKEY_PRINTERUSB);
m_print.m_Ip = _settings->GetString(FMP_INIKEY_PRINTERNET);
m_print.m_printerLabel = _settings->GetString(FMP_INIKEY_PRINTERLABEL);
m_print.m_nDays = _settings->GetInt(FMP_INIKEY_LOGDAYS);
// settings = FMP::GetService<FMPSettingsInterface>();
// m_print.printname = settings->GetString(FMP_INIKEY_PRINTERNAME);
// m_print.m_PrintType = settings->GetInt(FMP_INIKEY_PRINTERTYPE);
// m_print.m_PrintSize = settings->GetInt(FMP_INIKEY_PRINTERSIZE);
// m_print.m_level = settings->GetString(FMP_INIKEY_PRINTERLEVLEL);
// m_print.m_parall = settings->GetString(FMP_INIKEY_PRINTERPARALL);
// m_print.type = settings->GetInt(FMP_INIKEY_PRINTERTYPE2);
// m_print.m_Usb = settings->GetString(FMP_INIKEY_PRINTERUSB);
// m_print.m_Ip = settings->GetString(FMP_INIKEY_PRINTERNET);
// m_print.m_printerLabel = settings->GetString(FMP_INIKEY_PRINTERLABEL);
// m_print.m_nDays = settings->GetInt(FMP_INIKEY_LOGDAYS);
QString apppath=QCoreApplication::applicationDirPath();
QSettings *settings = new QSettings(QString("%1/FreemudPOS.ini").arg(apppath), QSettings::IniFormat);
m_print.printname = settings->value(FMP_INIKEY_PRINTERNAME).toString();
m_print.m_PrintType = settings->value(FMP_INIKEY_PRINTERTYPET).toInt();
m_print.m_PrintSize = settings->value(FMP_INIKEY_PRINTERSIZE).toInt();
m_print.m_level = settings->value(FMP_INIKEY_PRINTERLEVLEL).toString();
m_print.m_parall = settings->value(FMP_INIKEY_PRINTERPARALL).toString();
m_print.type = settings->value(FMP_INIKEY_PRINTERTYPE2).toInt();
m_print.m_Usb = settings->value(FMP_INIKEY_PRINTERUSB).toString();
m_print.m_Ip = settings->value(FMP_INIKEY_PRINTERNET).toString();
m_print.m_printerLabel = settings->value(FMP_INIKEY_PRINTERLABEL).toString();
m_print.m_nDays = settings->value(FMP_INIKEY_LOGDAYS).toInt();
delete settings;
return m_print.printname;
}
......@@ -198,6 +191,7 @@ QString FMPPrinterPrivate::SendIniData()
.append(m_print.m_Ip==""?"127.0.0.1":m_print.m_Ip).append("|")
.append(m_print.m_printerLabel==""?"Gprinter 2120TF":m_print.m_printerLabel).append("|")
.append((QString::number(m_print.m_nDays,10)=="")?("10"):QString::number(m_print.m_nDays,10)).append("|");
FMP_INFO() << "m_print_ini is ok"<<m_print_ini;
return m_print_ini;
}
......
......@@ -5,6 +5,7 @@
class FMPSettingsInterface;
class FMPHomeInterface;
typedef struct
{
QString printname;//打印机的名字
......@@ -38,7 +39,7 @@ public:
PrintClass m_print;
private:
FMPSettingsInterface *_settings;
FMPSettingsInterface* settings;
};
#endif // FMP_PRINTER_P_H
......@@ -41,12 +41,15 @@ void FMPPrinterPlugin::start(ctkPluginContext* context)
void FMPPrinterPlugin::stop(ctkPluginContext* context)
{
Q_UNUSED(context)
if (_printer_service)
{
delete _printer_service;
_printer_service = 0;
}
qDebug() << __FUNCTION__ << "in";
Q_UNUSED(context)
if (_printer_service)
{
delete _printer_service;
_printer_service = 0;
}
qDebug() << __FUNCTION__;
}
#if (QT_VERSION < QT_VERSION_CHECK(5,0,0))
......
#include "fmp_te_handlers.h"
#include "fmp_printer.h"
FMPStartEventHandler::FMPStartEventHandler(ctkPluginContext *ctx, FMPPrinter *_printer)
: FMPPrinterEventHandler(FMP_TOPICS_SERVICES FMPE_SERVICE_REQ_START "/"+ QString::number(ctx->getPlugin()->getPluginId()),
_printer),
_ctx(ctx)
FMPStartEventHandler::FMPStartEventHandler(FMPPrinter *_printer)
: FMPPrinterEventHandler(FMP_TOPICS_SERVICES FMPE_SERVICE_REQ_START "/"+ QString::number(_printer->GetPluginId()), _printer)
{
FMPProps props;
props[ctkEventConstants::EVENT_TOPIC] = _topic;
_ctx->registerService<ctkEventHandler>(this, props);
FMP::RegisterService<ctkEventHandler>(this, props);
}
void FMPStartEventHandler::handleEvent(const ctkEvent &event)
......
......@@ -23,11 +23,8 @@ class FMPStartEventHandler : public QObject, public FMPPrinterEventHandler
Q_OBJECT
Q_INTERFACES(ctkEventHandler)
public:
explicit FMPStartEventHandler(ctkPluginContext *ctx, FMPPrinter *Takeout);
explicit FMPStartEventHandler(FMPPrinter *Takeout);
void handleEvent(const ctkEvent &event);
private:
ctkPluginContext* _ctx;
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment