xdsopl-qsstv/qsstv/logbook/logbook.cpp

102 wiersze
2.1 KiB
C++

#include "logbook.h"
#include "appglobal.h"
#include "xmlrpc/xmlinterface.h"
#include "xmlrpc/ipcmessage.h"
#include "configparams.h"
#include "rig/rigcontrol.h"
#include <QDateTime>
slogParam logParamArray[NUMLOGPARAMS]=
{
{"program","QSSTV 9"},
{"version", "1"},
{"date","" },
{"time","" },
{"endTime","" },
{"call","" , },
{"mhz","" },
{"mode","" },
{"tx","" },
{"rx","" },
{"name","" },
{"qth","" },
{"state","" },
{"province","" },
{"country","" },
{"locator","" },
{"serialout","" },
{"serialin","" },
{"free1","" },
{"notes","" },
{"power","" }
};
// to be independent from localization
QString monthArray[12]=
{
"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"
};
logBook::logBook()
{
ipcQueue=new ipcMessage(1238);
}
void logBook::logQSO(QString call,QString mode,QString comment)
{
int i;
QDateTime dt(QDateTime::currentDateTimeUtc());
QString tmp;
getFrequency();
if(frequency!=-1) setParam(LFREQ,QString::number(frequency/1000000.,'g',9));
setParam(LCALL,call);
setParam(LNOTES,comment);
tmp=QString::number(dt.date().day())+" "+monthArray[dt.date().month()-1]+" "+QString::number(dt.date().year());
setParam(LDATE,tmp);
tmp=QString::number(dt.time().hour()*100+dt.time().minute()).rightJustified(4,'0');
setParam(LTIME,tmp);
setParam(LENDTIME,tmp);
setParam(LMODE,mode);
setParam(LNOTES,comment);
tmp.clear();
for(i=0;i<NUMLOGPARAMS;i++)
{
tmp+=logParamArray[i].tag+":"+logParamArray[i].val+QChar(0x01);
}
ipcQueue->sendMessage(tmp);
}
void logBook::getFrequency()
{
frequency=-1;
if(rigControllerPtr->params()->enableXMLRPC) // we get the frequency from flrig or alike
{
frequency=xmlIntfPtr->getFrequency();
}
else if(rigControllerPtr->params()->enableCAT) // we get the frequency from hamlib
{
if(!rigControllerPtr->getFrequency(frequency))
{
frequency=-1;
}
}
}
void logBook::setParam(eIndex tag,QString value)
{
logParamArray[tag].val=value;
}