mirror of
https://gitlab.com/pholy/OSCAR-code.git
synced 2025-04-09 20:50:43 +00:00
Compiler warning cleanup
This commit is contained in:
parent
ed686a7f2c
commit
28b6171f60
@ -1,8 +1,8 @@
|
||||
/********************************************************************
|
||||
/*
|
||||
gBarChart Implementation
|
||||
Copyright (c)2011 Mark Watkins <jedimark@users.sourceforge.net>
|
||||
License: GPL
|
||||
*********************************************************************/
|
||||
*/
|
||||
|
||||
#include <math.h>
|
||||
#include <SleepLib/profiles.h>
|
||||
|
@ -6,6 +6,7 @@
|
||||
|
||||
#include <math.h>
|
||||
#include <QString>
|
||||
#include <QDebug>
|
||||
#include <SleepLib/profiles.h>
|
||||
#include "gLineChart.h"
|
||||
|
||||
@ -78,7 +79,7 @@ void gLineChart::Plot(gGraphWindow & w,float scrx,float scry)
|
||||
}
|
||||
|
||||
bool accel=m_accelerate;
|
||||
double sfit,sr;
|
||||
double sr;
|
||||
int dp,sam;
|
||||
|
||||
QColor & col=color[0];
|
||||
@ -116,7 +117,7 @@ void gLineChart::Plot(gGraphWindow & w,float scrx,float scry)
|
||||
point[siz-1]=t;
|
||||
x0=point[0].x();
|
||||
} else {
|
||||
qDebug("Reversed order sample fed to gLineChart - ignored.");
|
||||
qDebug() << "Reversed order sample fed to gLineChart - ignored.";
|
||||
continue;
|
||||
//assert(x1<x2);
|
||||
}
|
||||
@ -129,9 +130,9 @@ void gLineChart::Plot(gGraphWindow & w,float scrx,float scry)
|
||||
// if (accel) {
|
||||
sr=x1-x0; // Time distance between samples
|
||||
assert(sr>0);
|
||||
double qx=xL-x0; // Full time range of this segment
|
||||
double gx=xx/qx; // ratio of how much of the whole data set this represents
|
||||
double segwidth=width*gx;
|
||||
// double qx=xL-x0; // Full time range of this segment
|
||||
//double gx=xx/qx; // ratio of how much of the whole data set this represents
|
||||
//double segwidth=width*gx;
|
||||
double XR=xx/sr;
|
||||
double Z1=MAX(x0,minx);
|
||||
double Z2=MIN(xL,maxx);
|
||||
@ -248,7 +249,7 @@ void gLineChart::Plot(gGraphWindow & w,float scrx,float scry)
|
||||
// In accel mode, each pixel has a min/max Y value.
|
||||
// m_drawlist's index is the pixel index for the X pixel axis.
|
||||
|
||||
float zz=(maxy-miny)/2.0; // centreline
|
||||
//float zz=(maxy-miny)/2.0; // centreline
|
||||
float jy=point[i].y();
|
||||
|
||||
int y1=1+(jy-miny)*ymult;
|
||||
|
@ -75,8 +75,8 @@ void gLineOverlayBar::Plot(gGraphWindow & w,float scrx,float scry)
|
||||
// bool done=false;
|
||||
for (int i=0;i<data->np[n];i++) {
|
||||
QPointD & rp=data->point[n][i];
|
||||
float X=rp.x();
|
||||
float Y=rp.y();
|
||||
//float X=rp.x();
|
||||
//float Y=rp.y();
|
||||
if (rp.y() < w.min_x) continue;
|
||||
if (rp.x() > w.max_x) break;
|
||||
|
||||
|
@ -6,6 +6,7 @@
|
||||
|
||||
#include <QApplication>
|
||||
#include <QFontMetrics>
|
||||
#include <QDebug>
|
||||
#include <math.h>
|
||||
#include "glcommon.h"
|
||||
#include "SleepLib/profiles.h"
|
||||
@ -62,7 +63,7 @@ void DrawText(gGraphWindow & wid, QString text, int x, int y, float angle, QCol
|
||||
//int a=fm.overlinePos(); //ascent();
|
||||
//LinedRoundedRectangle(x,wid.GetScrY()-y,w,h,0,1,QColor("black"));
|
||||
if (!font) {
|
||||
qDebug("Font Problem. Forgot to call GraphInit() ?");
|
||||
qDebug() << "Font Problem. Forgot to call GraphInit() ?";
|
||||
abort();
|
||||
return;
|
||||
}
|
||||
@ -72,7 +73,7 @@ void DrawText(gGraphWindow & wid, QString text, int x, int y, float angle, QCol
|
||||
glFlush();
|
||||
QPainter painter(&wid);
|
||||
painter.setFont(*font);
|
||||
painter.setPen(Qt::black);
|
||||
painter.setPen(color);
|
||||
painter.setOpacity(1);
|
||||
// painter.setCompositionMode(QPainter::CompositionMode_);
|
||||
if (angle==0) {
|
||||
|
@ -31,9 +31,9 @@ void WaveData::Reload(Day *day)
|
||||
}
|
||||
max_y=0;
|
||||
bool first=true;
|
||||
int chunk=0;
|
||||
// int chunk=0;
|
||||
for (vector<Session *>::iterator s=day->begin();s!=day->end(); s++) {
|
||||
//qDebug("Processing waveform chunk %i",chunk++);
|
||||
//qDebug() << "Processing waveform chunk " << chunk++;
|
||||
if ((*s)->waveforms.find(code)==(*s)->waveforms.end()) continue;
|
||||
for (vector<Waveform *>::iterator l=(*s)->waveforms[code].begin();l!=(*s)->waveforms[code].end();l++) {
|
||||
int ps=point.size();
|
||||
@ -45,7 +45,7 @@ void WaveData::Reload(Day *day)
|
||||
Waveform *w=(*l);
|
||||
double st=w->start().toMSecsSinceEpoch()/86400000.0;
|
||||
double rate=(w->duration()/w->samples())/86400.0;
|
||||
//qDebug("Waveform Chunk contains %i samples",w->samples());
|
||||
//qDebug() << "Waveform Chunk contains " << w->samples() << " samples";
|
||||
for (int i=0;i<w->samples();i++) {
|
||||
QPointD r(st,(*w)[i]);
|
||||
st+=rate;
|
||||
@ -117,8 +117,8 @@ void EventData::Reload(Day *day)
|
||||
min_x=day->first().toMSecsSinceEpoch()/86400000.0;
|
||||
max_x=day->last().toMSecsSinceEpoch()/86400000.0;
|
||||
if (min_x>max_x) {
|
||||
int a=5;
|
||||
//assert(min_x<max_x);
|
||||
//int a=5;
|
||||
assert(min_x<max_x);
|
||||
}
|
||||
min_y=max_y=0;
|
||||
int tt=0;
|
||||
@ -227,10 +227,6 @@ void TAPData::Reload(Day *day)
|
||||
double d=last.msecsTo(ev.time())/1000.0;
|
||||
|
||||
assert(lastval<max_slots);
|
||||
if (lastval>max_slots) {
|
||||
int i=0;
|
||||
// throw BoundsError();
|
||||
}
|
||||
pTime[lastval]+=d;
|
||||
}
|
||||
cnt++;
|
||||
@ -382,6 +378,7 @@ double HistoryData::Calc(Day *day)
|
||||
|
||||
void HistoryData::Reload(Day *day)
|
||||
{
|
||||
day=day; //shuttup warnings..
|
||||
QDateTime date;
|
||||
vc=0;
|
||||
int i=0;
|
||||
|
@ -23,9 +23,9 @@ gLayer::~gLayer()
|
||||
|
||||
}
|
||||
|
||||
void gLayer::Plot(gGraphWindow & w,float scrx,float scry)
|
||||
{
|
||||
}
|
||||
//void gLayer::Plot(gGraphWindow & w,float scrx,float scry)
|
||||
//{
|
||||
//}
|
||||
|
||||
void gLayer::DataChanged(gGraphData *src)
|
||||
{
|
||||
|
@ -20,7 +20,7 @@ class gLayer
|
||||
public:
|
||||
gLayer(gPointData *g=NULL,QString title="");
|
||||
virtual ~gLayer();
|
||||
virtual void Plot(gGraphWindow & w,float scrx,float scry);
|
||||
virtual void Plot(gGraphWindow & w,float scrx,float scry)=0;
|
||||
vector<QColor> color;
|
||||
|
||||
virtual void SetData(gPointData * gd);;
|
||||
|
@ -17,6 +17,7 @@ License: GPL
|
||||
#include <QString>
|
||||
#include <QDateTime>
|
||||
#include <QFile>
|
||||
#include <QDebug>
|
||||
#include <list>
|
||||
|
||||
using namespace std;
|
||||
@ -169,7 +170,7 @@ bool CMS50Loader::OpenSPORFile(QString path,Machine *mach,Profile *profile)
|
||||
date.setDate(d2);
|
||||
}
|
||||
if (!date.isValid()) {
|
||||
qDebug("Invalid date time retreieved in CMS50::OpenSPORFile");
|
||||
qDebug() << "Invalid date time retreieved in CMS50::OpenSPORFile";
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -178,7 +179,7 @@ bool CMS50Loader::OpenSPORFile(QString path,Machine *mach,Profile *profile)
|
||||
buffer=new char [num_records];
|
||||
br=f.read(buffer,num_records);
|
||||
if (br!=num_records) {
|
||||
qDebug(("Short .spoR File: "+path).toLatin1());
|
||||
qDebug() << "Short .spoR File: " << path;
|
||||
delete [] buffer;
|
||||
return false;
|
||||
}
|
||||
@ -280,7 +281,7 @@ Machine *CMS50Loader::CreateMachine(Profile *profile)
|
||||
}
|
||||
}
|
||||
|
||||
qDebug("Create CMS50 Machine Record");
|
||||
qDebug() << "Create CMS50 Machine Record";
|
||||
|
||||
Machine *m=new Oximeter(profile,0);
|
||||
m->SetClass(cms50_class_name);
|
||||
@ -301,7 +302,7 @@ static bool cms50_initialized=false;
|
||||
void CMS50Loader::Register()
|
||||
{
|
||||
if (cms50_initialized) return;
|
||||
qDebug("Registering CMS50Loader");
|
||||
qDebug() << "Registering CMS50Loader";
|
||||
RegisterLoader(new CMS50Loader());
|
||||
//InitModelMap();
|
||||
cms50_initialized=true;
|
||||
|
@ -12,6 +12,7 @@ License: GPL
|
||||
#include <QFile>
|
||||
#include <QMessageBox>
|
||||
#include <QProgressBar>
|
||||
#include <QDebug>
|
||||
|
||||
#include "prs1_loader.h"
|
||||
#include "SleepLib/session.h"
|
||||
@ -56,7 +57,7 @@ PRS1Loader::~PRS1Loader()
|
||||
}
|
||||
Machine *PRS1Loader::CreateMachine(QString serial,Profile *profile)
|
||||
{
|
||||
qDebug(("Create Machine "+serial).toLatin1());
|
||||
qDebug() << "Create Machine " << serial;
|
||||
assert(profile!=NULL);
|
||||
|
||||
vector<Machine *> ml=profile->GetMachines(MT_CPAP);
|
||||
@ -102,7 +103,7 @@ bool PRS1Loader::Open(QString & path,Profile *profile)
|
||||
if ((!dir.exists() || !dir.isReadable()))
|
||||
return 0;
|
||||
|
||||
qDebug(("PRS1Loader::Open newpath="+newpath).toLatin1());
|
||||
qDebug() << "PRS1Loader::Open newpath=" << newpath;
|
||||
dir.setFilter(QDir::NoDotAndDotDot | QDir::Dirs | QDir::Files | QDir::Hidden | QDir::NoSymLinks);
|
||||
dir.setSorting(QDir::Name);
|
||||
QFileInfoList flist=dir.entryInfoList();
|
||||
@ -121,11 +122,11 @@ bool PRS1Loader::Open(QString & path,Profile *profile)
|
||||
QString file=fi.canonicalFilePath();
|
||||
QFile f(file);
|
||||
if (!fi.isReadable()) {
|
||||
qDebug("PRS1Loader: last.txt exists but I couldn't read it!");
|
||||
qDebug() << "PRS1Loader: last.txt exists but I couldn't read it!";
|
||||
continue;
|
||||
}
|
||||
if (!f.open(QIODevice::ReadOnly)) {
|
||||
qDebug("PRS1Loader: last.txt exists but I couldn't open it!");
|
||||
qDebug() << "PRS1Loader: last.txt exists but I couldn't open it!";
|
||||
continue;
|
||||
}
|
||||
last=f.readLine(64);
|
||||
@ -183,7 +184,7 @@ bool PRS1Loader::ParseProperties(Machine *m,QString filename)
|
||||
}
|
||||
}
|
||||
if (prop["SerialNumber"]!=m->properties["Serial"]) {
|
||||
qDebug("Serial Number in PRS1 properties.txt doesn't match directory structure");
|
||||
qDebug() << "Serial Number in PRS1 properties.txt doesn't match directory structure";
|
||||
} else prop.erase("SerialNumber"); // already got it stored.
|
||||
|
||||
for (map<QString,QString>::iterator i=prop.begin(); i!=prop.end(); i++) {
|
||||
@ -197,7 +198,7 @@ bool PRS1Loader::ParseProperties(Machine *m,QString filename)
|
||||
int PRS1Loader::OpenMachine(Machine *m,QString path,Profile *profile)
|
||||
{
|
||||
|
||||
qDebug(("Opening PRS1 "+path).toLatin1());
|
||||
qDebug() << "Opening PRS1 " << path;
|
||||
QDir dir(path);
|
||||
if (!dir.exists() || (!dir.isReadable()))
|
||||
return false;
|
||||
@ -277,22 +278,20 @@ int PRS1Loader::OpenMachine(Machine *m,QString path,Profile *profile)
|
||||
|
||||
Session *sess=new Session(m,session);
|
||||
if (!OpenSummary(sess,s->second[0])) {
|
||||
qWarning(("PRS1Loader: Could'nt open summary file "+s->second[0]).toLatin1());
|
||||
qWarning() << "PRS1Loader: Could'nt open summary file " << s->second[0];
|
||||
|
||||
delete sess;
|
||||
continue;
|
||||
}
|
||||
//wxLogMessage(sess->first().Format(wxT("%Y-%m-%d %H:%M:%S"))+wxT(" ")+sess->last().Format(wxT("%Y-%m-%d %H:%M:%S")));
|
||||
|
||||
//sess->SetSessionID(sess->start().GetTicks());
|
||||
if (!s->second[1].isEmpty()) {
|
||||
if (!OpenEvents(sess,s->second[1])) {
|
||||
qWarning(("PRS1Loader: Couldn't open event file "+s->second[1]).toLatin1());
|
||||
qWarning() << "PRS1Loader: Couldn't open event file " << s->second[1];
|
||||
}
|
||||
}
|
||||
if (!s->second[2].isEmpty()) {
|
||||
if (!OpenWaveforms(sess,s->second[2])) {
|
||||
qWarning(("PRS1Loader: Couldn't open event file "+s->second[2]).toLatin1());
|
||||
qWarning() << "PRS1Loader: Couldn't open event file " << s->second[2];
|
||||
}
|
||||
}
|
||||
const double ignore_thresh=300.0/3600.0;// Ignore useless sessions under 5 minute
|
||||
@ -383,7 +382,7 @@ bool PRS1Loader::OpenSummary(Session *session,QString filename)
|
||||
unsigned char header[24];
|
||||
unsigned char ext,sum;
|
||||
|
||||
//qDebug("Opening PRS1 Summary %s",filename);
|
||||
//qDebug() << "Opening PRS1 Summary " << filename;
|
||||
QFile f(filename);
|
||||
//,wxT("rb"));
|
||||
if (!f.open(QIODevice::ReadOnly))
|
||||
@ -417,13 +416,12 @@ bool PRS1Loader::OpenSummary(Session *session,QString filename)
|
||||
return false;
|
||||
|
||||
if (size<=19) {
|
||||
qDebug(("Ignoring short session file "+filename).toLatin1());
|
||||
qDebug() << "Ignoring short session file " << filename;
|
||||
return false;
|
||||
}
|
||||
|
||||
QDateTime date=QDateTime::fromTime_t(timestamp);
|
||||
//QDateTime tmpdate=date;
|
||||
//qDebug(date.Format()+wxT(" UTC=")+tmpdate.Format());
|
||||
//int ticks=date.GetTicks();
|
||||
|
||||
if (!date.isValid())
|
||||
@ -473,7 +471,7 @@ bool PRS1Loader::OpenSummary(Session *session,QString filename)
|
||||
quint16 bb=*(quint16*)b;
|
||||
unsigned duration=bb;// | (buffer[0x15] << 8);
|
||||
session->summary[CPAP_Duration]=(int)duration;
|
||||
//qDebug("ID: %i %i",session->session(),duration));
|
||||
//qDebug() << "ID: " << session->session() << " " << duration;
|
||||
float hours=float(duration)/3600.0;
|
||||
session->set_hours(hours);
|
||||
|
||||
@ -767,13 +765,10 @@ bool PRS1Loader::OpenWaveforms(Session *session,QString filename)
|
||||
if (min>c) min=c;
|
||||
if (max<c) max=c;
|
||||
}
|
||||
//wxLogMessage(wxT("Samples Per Breath: ")+QString::Format(wxT("%.2f"),double(breath_total)/double(breaths)));
|
||||
QDateTime dt=QDateTime::fromTime_t(start);
|
||||
Waveform *w=new Waveform(dt,CPAP_FlowRate,data,samples,duration,min,max);
|
||||
//wxLogMessage(QString::Format(wxT("%i %i %i %i %i"),start,samples,duration,min,max));
|
||||
session->AddWaveform(w);
|
||||
|
||||
//wxLogMessage(wxT("Done PRS1 Waveforms ")+filename);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -789,7 +784,7 @@ bool initialized=false;
|
||||
void PRS1Loader::Register()
|
||||
{
|
||||
if (initialized) return;
|
||||
qDebug("Registering PRS1Loader");
|
||||
qDebug() << "Registering PRS1Loader";
|
||||
RegisterLoader(new PRS1Loader());
|
||||
InitModelMap();
|
||||
initialized=true;
|
||||
|
@ -12,6 +12,7 @@ License: GPL
|
||||
#include <QFile>
|
||||
#include <QMessageBox>
|
||||
#include <QProgressBar>
|
||||
#include <QDebug>
|
||||
#include <math.h>
|
||||
|
||||
#include "resmed_loader.h"
|
||||
@ -77,11 +78,11 @@ bool EDFParser::Parse()
|
||||
startdate.setDate(d2);
|
||||
}
|
||||
if (!startdate.isValid()) {
|
||||
qDebug(("Invalid date time retreieved parsing EDF File"+filename).toLatin1());
|
||||
qDebug() << "Invalid date time retreieved parsing EDF File " << filename;
|
||||
return false;
|
||||
}
|
||||
|
||||
//qDebug(startdate.toString("yyyy-MM-dd HH:mm:ss").toLatin1());
|
||||
//qDebug() << startdate.toString("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
num_header_bytes=Read(8).toLong(&ok);
|
||||
if (!ok)
|
||||
@ -150,7 +151,7 @@ bool EDFParser::Open(QString name)
|
||||
if (!f.isReadable()) return false;
|
||||
filename=name;
|
||||
filesize=f.size();
|
||||
//qDebug(("Opening "+name).toLatin1());
|
||||
//qDebug() << "Opening " << name;
|
||||
buffer=new char [filesize];
|
||||
f.read(buffer,filesize);
|
||||
f.close();
|
||||
@ -179,7 +180,7 @@ Machine *ResmedLoader::CreateMachine(QString serial,Profile *profile)
|
||||
}
|
||||
if (found) return ResmedList[serial];
|
||||
|
||||
qDebug(("Create ResMed Machine"+serial).toLatin1());
|
||||
qDebug() << "Create ResMed Machine" << serial;
|
||||
Machine *m=new CPAP(profile,0);
|
||||
m->SetClass(resmed_class_name);
|
||||
|
||||
@ -228,7 +229,7 @@ bool ResmedLoader::Open(QString & path,Profile *profile)
|
||||
if ((!dir.exists() || !dir.isReadable()))
|
||||
return 0;
|
||||
|
||||
qDebug(("ResmedLoader::Open newpath="+newpath).toLatin1());
|
||||
qDebug() << "ResmedLoader::Open newpath=" << newpath;
|
||||
dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
|
||||
dir.setSorting(QDir::Name);
|
||||
QFileInfoList flist=dir.entryInfoList();
|
||||
@ -267,13 +268,13 @@ bool ResmedLoader::Open(QString & path,Profile *profile)
|
||||
size=sessfiles.size();
|
||||
for (map<SessionID,vector<QString> >::iterator si=sessfiles.begin();si!=sessfiles.end();si++) {
|
||||
sessionid=si->first;
|
||||
//qDebug("Parsing Session %li",sessionid);
|
||||
//qDebug() << "Parsing Session " << sessionid;
|
||||
bool done=false;
|
||||
bool first=true;
|
||||
for (int i=0;i<si->second.size();i++) {
|
||||
for (size_t i=0;i<si->second.size();i++) {
|
||||
fn=si->second[i].section("_",-1).toLower();
|
||||
EDFParser edf(si->second[i]);
|
||||
//qDebug("Parsing File %i %i",i,edf.filesize);
|
||||
//qDebug() << "Parsing File " << i << " " << edf.filesize;
|
||||
|
||||
if (!edf.Parse())
|
||||
continue;
|
||||
@ -283,7 +284,7 @@ bool ResmedLoader::Open(QString & path,Profile *profile)
|
||||
for (map<QString,QString>::iterator i=idmap.begin();i!=idmap.end();i++) {
|
||||
if (i->first=="SRN") {
|
||||
if (edf.serialnumber!=i->second) {
|
||||
qDebug("edf Serial number doesn't match Identification.tgt");
|
||||
qDebug() << "edf Serial number doesn't match Identification.tgt";
|
||||
}
|
||||
} else if (i->first=="PNA") {
|
||||
m->properties["Model"]=i->second;
|
||||
@ -298,10 +299,10 @@ bool ResmedLoader::Open(QString & path,Profile *profile)
|
||||
sess=new Session(m,sessionid);
|
||||
}
|
||||
if (!done) {
|
||||
if (fn=="eve.edf") LoadEVE(m,sess,edf);
|
||||
else if (fn=="pld.edf") LoadPLD(m,sess,edf);
|
||||
else if (fn=="brp.edf") LoadBRP(m,sess,edf);
|
||||
else if (fn=="sad.edf") LoadSAD(m,sess,edf);
|
||||
if (fn=="eve.edf") LoadEVE(sess,edf);
|
||||
else if (fn=="pld.edf") LoadPLD(sess,edf);
|
||||
else if (fn=="brp.edf") LoadBRP(sess,edf);
|
||||
else if (fn=="sad.edf") LoadSAD(sess,edf);
|
||||
}
|
||||
if (first) {
|
||||
sess->SetChanged(true);
|
||||
@ -340,7 +341,7 @@ bool ResmedLoader::Open(QString & path,Profile *profile)
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool ResmedLoader::LoadEVE(Machine *mach,Session *sess,EDFParser &edf)
|
||||
bool ResmedLoader::LoadEVE(Session *sess,EDFParser &edf)
|
||||
{
|
||||
QString t;
|
||||
long recs;
|
||||
@ -353,13 +354,13 @@ bool ResmedLoader::LoadEVE(Machine *mach,Session *sess,EDFParser &edf)
|
||||
QDateTime tt;
|
||||
EventDataType fields[3];
|
||||
MachineCode code;
|
||||
Event *e;
|
||||
//Event *e;
|
||||
for (int s=0;s<edf.GetNumSignals();s++) {
|
||||
recs=edf.edfsignals[s]->nr*edf.GetNumDataRecords()*2;
|
||||
totaldur=edf.GetNumDataRecords()*edf.GetDuration();
|
||||
totaldur/=3600.0;
|
||||
//t.sprintf("EVE: %li %.2f",recs,totaldur);
|
||||
//qDebug((edf.edfsignals[s]->label+" "+t).toLatin1());
|
||||
//qDebug() << edf.edfsignals[s]->label << " " << t;
|
||||
data=(char *)edf.edfsignals[s]->data;
|
||||
pos=0;
|
||||
tt=edf.startdate;
|
||||
@ -378,7 +379,7 @@ bool ResmedLoader::LoadEVE(Machine *mach,Session *sess,EDFParser &edf)
|
||||
} while ((c!=20) && (c!=21)); // start code
|
||||
d=t.toDouble(&ok);
|
||||
if (!ok) {
|
||||
qDebug(("Faulty EDF EVE file"+edf.filename).toLatin1());
|
||||
qDebug() << "Faulty EDF EVE file " << edf.filename;
|
||||
break;
|
||||
}
|
||||
if (!sign) d=-d;
|
||||
@ -397,7 +398,7 @@ bool ResmedLoader::LoadEVE(Machine *mach,Session *sess,EDFParser &edf)
|
||||
} while ((data[pos]!=20) && (pos<recs)); // start code
|
||||
duration=t.toDouble(&ok);
|
||||
if (!ok) {
|
||||
qDebug(("Faulty EDF EVE file (at %li) "+edf.filename).toLatin1(),pos);
|
||||
qDebug() << "Faulty EDF EVE file (at %" << pos << ") " << edf.filename;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -424,13 +425,13 @@ bool ResmedLoader::LoadEVE(Machine *mach,Session *sess,EDFParser &edf)
|
||||
sess->AddEvent(new Event(tt,code,fields,1));
|
||||
} else {
|
||||
if (t!="recording starts") {
|
||||
qDebug(("Unknown ResMed annotation field: "+t).toLatin1());
|
||||
qDebug() << "Unknown ResMed annotation field: " << t;
|
||||
}
|
||||
}
|
||||
// qDebug((tt.toString("yyyy-MM-dd HH:mm:ss")+t).toLatin1());
|
||||
}
|
||||
if (pos>=recs) {
|
||||
qDebug(("Short EDF EVE file"+edf.filename).toLatin1());
|
||||
qDebug() << "Short EDF EVE file" << edf.filename;
|
||||
break;
|
||||
}
|
||||
// pos++;
|
||||
@ -440,8 +441,9 @@ bool ResmedLoader::LoadEVE(Machine *mach,Session *sess,EDFParser &edf)
|
||||
}
|
||||
// qDebug(data);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
bool ResmedLoader::LoadBRP(Machine *mach,Session *sess,EDFParser &edf)
|
||||
bool ResmedLoader::LoadBRP(Session *sess,EDFParser &edf)
|
||||
{
|
||||
QString t;
|
||||
for (int s=0;s<edf.GetNumSignals();s++) {
|
||||
@ -451,7 +453,7 @@ bool ResmedLoader::LoadBRP(Machine *mach,Session *sess,EDFParser &edf)
|
||||
if (edf.edfsignals[s]->label=="Flow") code=CPAP_FlowRate;
|
||||
else if (edf.edfsignals[s]->label=="Mask Pres") code=CPAP_MaskPressure;
|
||||
else {
|
||||
qDebug(("Unknown Signal "+edf.edfsignals[s]->label).toLatin1());
|
||||
qDebug() << "Unknown Signal " << edf.edfsignals[s]->label;
|
||||
continue;
|
||||
}
|
||||
sess->set_first(edf.startdate);
|
||||
@ -465,8 +467,9 @@ bool ResmedLoader::LoadBRP(Machine *mach,Session *sess,EDFParser &edf)
|
||||
//t.sprintf("BRP: %li %.2f",recs,duration);
|
||||
//qDebug((edf.edfsignals[s]->label+" "+t).toLatin1());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
void ResmedLoader::ToTimeDelta(Machine *mach,Session *sess,EDFParser &edf, qint16 *data, MachineCode code, long recs, double duration,EventDataType divisor)
|
||||
void ResmedLoader::ToTimeDelta(Session *sess,EDFParser &edf, qint16 *data, MachineCode code, long recs, double duration,EventDataType divisor)
|
||||
{
|
||||
bool first=true;
|
||||
double rate=(duration/recs)*1000.0;
|
||||
@ -490,13 +493,15 @@ void ResmedLoader::ToTimeDelta(Machine *mach,Session *sess,EDFParser &edf, qint1
|
||||
}
|
||||
sess->AddEvent(new Event(tt,code,&c,1)); // add one at the end..
|
||||
}
|
||||
bool ResmedLoader::LoadSAD(Machine *mach,Session *sess,EDFParser &edf)
|
||||
bool ResmedLoader::LoadSAD(Session *sess,EDFParser &edf)
|
||||
{
|
||||
// Oximeter bull crap..
|
||||
// Oximeter bull crap.. this oximeter is not reported of highly..
|
||||
// nonetheless, the data is easy to access.
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool ResmedLoader::LoadPLD(Machine *mach,Session *sess,EDFParser &edf)
|
||||
bool ResmedLoader::LoadPLD(Session *sess,EDFParser &edf)
|
||||
{
|
||||
// Is it save to assume the order does not change here?
|
||||
enum PLDType { MaskPres=0, TherapyPres, ExpPress, Leak, RR, Vt, Mv, SnoreIndex, FFLIndex, U1, U2 };
|
||||
@ -518,10 +523,10 @@ bool ResmedLoader::LoadPLD(Machine *mach,Session *sess,EDFParser &edf)
|
||||
// } else
|
||||
if (edf.edfsignals[s]->label=="Snore Index") {
|
||||
code=CPAP_Snore;
|
||||
ToTimeDelta(mach,sess,edf,edf.edfsignals[s]->data, code,recs,duration);
|
||||
ToTimeDelta(sess,edf,edf.edfsignals[s]->data, code,recs,duration);
|
||||
} else if (edf.edfsignals[s]->label=="Therapy Pres") {
|
||||
code=CPAP_Pressure;
|
||||
ToTimeDelta(mach,sess,edf,edf.edfsignals[s]->data, code,recs,duration,50.0); //50.0
|
||||
ToTimeDelta(sess,edf,edf.edfsignals[s]->data, code,recs,duration,50.0); //50.0
|
||||
} else if (edf.edfsignals[s]->label=="MV") {
|
||||
code=CPAP_MinuteVentilation;
|
||||
//ToTimeDelta(mach,sess,edf,edf.edfsignals[s]->data, code,recs,duration,1.0);
|
||||
@ -542,15 +547,15 @@ bool ResmedLoader::LoadPLD(Machine *mach,Session *sess,EDFParser &edf)
|
||||
sess->AddWaveform(w);
|
||||
} else if (edf.edfsignals[s]->label=="Leak") {
|
||||
code=CPAP_Leak;
|
||||
ToTimeDelta(mach,sess,edf,edf.edfsignals[s]->data, code,recs,duration,1.0);
|
||||
ToTimeDelta(sess,edf,edf.edfsignals[s]->data, code,recs,duration,1.0);
|
||||
} else if (edf.edfsignals[s]->label=="FFL Index") {
|
||||
code=CPAP_FlowLimitGraph;
|
||||
ToTimeDelta(mach,sess,edf,edf.edfsignals[s]->data, code,recs,duration,1.0);
|
||||
ToTimeDelta(sess,edf,edf.edfsignals[s]->data, code,recs,duration,1.0);
|
||||
} else {
|
||||
qDebug(("Unknown Signal "+edf.edfsignals[s]->label).toLatin1());
|
||||
qDebug() << "Unknown Signal " << edf.edfsignals[s]->label;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void ResInitModelMap()
|
||||
@ -563,7 +568,7 @@ bool resmed_initialized=false;
|
||||
void ResmedLoader::Register()
|
||||
{
|
||||
if (resmed_initialized) return;
|
||||
qDebug("Registering ResmedLoader");
|
||||
qDebug() << "Registering ResmedLoader";
|
||||
RegisterLoader(new ResmedLoader());
|
||||
ResInitModelMap();
|
||||
resmed_initialized=true;
|
||||
|
@ -86,17 +86,17 @@ public:
|
||||
|
||||
virtual int Version() { return resmed_data_version; };
|
||||
virtual const QString & ClassName() { return resmed_class_name; };
|
||||
void ToTimeDelta(Machine *mach,Session *sess,EDFParser &edf, qint16 *data, MachineCode code, long recs,double duration,EventDataType divisor=1);
|
||||
void ToTimeDelta(Session *sess,EDFParser &edf, qint16 *data, MachineCode code, long recs,double duration,EventDataType divisor=1);
|
||||
|
||||
Machine *CreateMachine(QString serial,Profile *profile);
|
||||
|
||||
static void Register();
|
||||
protected:
|
||||
map<QString,Machine *> ResmedList;
|
||||
bool LoadEVE(Machine *mach,Session *sess,EDFParser &edf);
|
||||
bool LoadBRP(Machine *mach,Session *sess,EDFParser &edf);
|
||||
bool LoadSAD(Machine *mach,Session *sess,EDFParser &edf);
|
||||
bool LoadPLD(Machine *mach,Session *sess,EDFParser &edf);
|
||||
bool LoadEVE(Session *sess,EDFParser &edf);
|
||||
bool LoadBRP(Session *sess,EDFParser &edf);
|
||||
bool LoadSAD(Session *sess,EDFParser &edf);
|
||||
bool LoadPLD(Session *sess,EDFParser &edf);
|
||||
|
||||
};
|
||||
|
||||
|
@ -1,17 +1,20 @@
|
||||
/********************************************************************
|
||||
/*
|
||||
SleepLib Machine Class Implementation
|
||||
Copyright (c)2011 Mark Watkins <jedimark@users.sourceforge.net>
|
||||
License: GPL
|
||||
*********************************************************************/
|
||||
*/
|
||||
|
||||
#include <QDir>
|
||||
#include <QProgressBar>
|
||||
#include <QDebug>
|
||||
#include <QString>
|
||||
#include <QObject>
|
||||
#include <tr1/random>
|
||||
#include <sys/time.h>
|
||||
#include "binary_file.h"
|
||||
#include "machine.h"
|
||||
#include "profiles.h"
|
||||
#include <algorithm>
|
||||
#include <QDir>
|
||||
#include <QProgressBar>
|
||||
|
||||
extern QProgressBar * qprogress;
|
||||
|
||||
@ -98,58 +101,57 @@ map<MachineCode,QString> DefaultMCLongNames;
|
||||
{PRS1_VSnore2, wxT("Vibratory Snore")},
|
||||
{PRS1_PressurePulse,wxT("Pressue Pulse")}
|
||||
}; */
|
||||
inline const QString & _(const QString q) { return q; };
|
||||
|
||||
void InitMapsWithoutAwesomeInitializerLists()
|
||||
{
|
||||
CPAPModeNames[MODE_UNKNOWN]=_("Undetermined");
|
||||
CPAPModeNames[MODE_CPAP]=_("CPAP");
|
||||
CPAPModeNames[MODE_APAP]=_("Auto");
|
||||
CPAPModeNames[MODE_BIPAP]=_("BIPAP");
|
||||
CPAPModeNames[MODE_ASV]=_("ASV");
|
||||
CPAPModeNames[MODE_UNKNOWN]=QObject::tr("Undetermined");
|
||||
CPAPModeNames[MODE_CPAP]=QObject::tr("CPAP");
|
||||
CPAPModeNames[MODE_APAP]=QObject::tr("Auto");
|
||||
CPAPModeNames[MODE_BIPAP]=QObject::tr("BIPAP");
|
||||
CPAPModeNames[MODE_ASV]=QObject::tr("ASV");
|
||||
|
||||
PressureReliefNames[PR_UNKNOWN]=_("Undetermined");
|
||||
PressureReliefNames[PR_NONE]=_("None");
|
||||
PressureReliefNames[PR_CFLEX]=_("C-Flex");
|
||||
PressureReliefNames[PR_CFLEXPLUS]=_("C-Flex+");
|
||||
PressureReliefNames[PR_AFLEX]=_("A-Flex");
|
||||
PressureReliefNames[PR_BIFLEX]=_("Bi-Flex");
|
||||
PressureReliefNames[PR_EPR]=_("Exhalation Pressure Relief (EPR)");
|
||||
PressureReliefNames[PR_SMARTFLEX]=_("SmartFlex");
|
||||
PressureReliefNames[PR_UNKNOWN]=QObject::tr("Undetermined");
|
||||
PressureReliefNames[PR_NONE]=QObject::tr("None");
|
||||
PressureReliefNames[PR_CFLEX]=QObject::tr("C-Flex");
|
||||
PressureReliefNames[PR_CFLEXPLUS]=QObject::tr("C-Flex+");
|
||||
PressureReliefNames[PR_AFLEX]=QObject::tr("A-Flex");
|
||||
PressureReliefNames[PR_BIFLEX]=QObject::tr("Bi-Flex");
|
||||
PressureReliefNames[PR_EPR]=QObject::tr("Exhalation Pressure Relief (EPR)");
|
||||
PressureReliefNames[PR_SMARTFLEX]=QObject::tr("SmartFlex");
|
||||
|
||||
DefaultMCShortNames[CPAP_Obstructive]=_("OA");
|
||||
DefaultMCShortNames[CPAP_Hypopnea]=_("H");
|
||||
DefaultMCShortNames[CPAP_RERA]=_("RE");
|
||||
DefaultMCShortNames[CPAP_ClearAirway]=_("CA");
|
||||
DefaultMCShortNames[CPAP_CSR]=_("CSR/PB");
|
||||
DefaultMCShortNames[CPAP_VSnore]=_("VS");
|
||||
DefaultMCShortNames[PRS1_VSnore2]=_("VS2");
|
||||
DefaultMCShortNames[CPAP_FlowLimit]=_("FL");
|
||||
DefaultMCShortNames[CPAP_Pressure]=_("P");
|
||||
DefaultMCShortNames[CPAP_Leak]=_("LR");
|
||||
DefaultMCShortNames[CPAP_EAP]=_("EPAP");
|
||||
DefaultMCShortNames[CPAP_IAP]=_("IPAP");
|
||||
DefaultMCShortNames[PRS1_PressurePulse]=_("PP");
|
||||
DefaultMCShortNames[CPAP_Obstructive]=QObject::tr("OA");
|
||||
DefaultMCShortNames[CPAP_Hypopnea]=QObject::tr("H");
|
||||
DefaultMCShortNames[CPAP_RERA]=QObject::tr("RE");
|
||||
DefaultMCShortNames[CPAP_ClearAirway]=QObject::tr("CA");
|
||||
DefaultMCShortNames[CPAP_CSR]=QObject::tr("CSR/PB");
|
||||
DefaultMCShortNames[CPAP_VSnore]=QObject::tr("VS");
|
||||
DefaultMCShortNames[PRS1_VSnore2]=QObject::tr("VS2");
|
||||
DefaultMCShortNames[CPAP_FlowLimit]=QObject::tr("FL");
|
||||
DefaultMCShortNames[CPAP_Pressure]=QObject::tr("P");
|
||||
DefaultMCShortNames[CPAP_Leak]=QObject::tr("LR");
|
||||
DefaultMCShortNames[CPAP_EAP]=QObject::tr("EPAP");
|
||||
DefaultMCShortNames[CPAP_IAP]=QObject::tr("IPAP");
|
||||
DefaultMCShortNames[PRS1_PressurePulse]=QObject::tr("PP");
|
||||
|
||||
DefaultMCLongNames[CPAP_Obstructive]=_("Obstructive Apnea");
|
||||
DefaultMCLongNames[CPAP_Hypopnea]=_("Hypopnea");
|
||||
DefaultMCLongNames[CPAP_RERA]=_("RERA");
|
||||
DefaultMCLongNames[CPAP_ClearAirway]=_("Clear Airway Apnea");
|
||||
DefaultMCLongNames[CPAP_CSR]=_("Periodic Breathing");
|
||||
DefaultMCLongNames[CPAP_VSnore]=_("Vibratory Snore"); // flags type
|
||||
DefaultMCLongNames[CPAP_FlowLimit]=_("Flow Limitation");
|
||||
DefaultMCLongNames[CPAP_Pressure]=_("Pressure");
|
||||
DefaultMCLongNames[CPAP_Leak]=_("Leak Rate");
|
||||
DefaultMCLongNames[CPAP_EAP]=_("BIPAP EPAP");
|
||||
DefaultMCLongNames[CPAP_IAP]=_("BIPAP IPAP");
|
||||
DefaultMCLongNames[CPAP_Snore]=_("Vibratory Snore"); // Graph data
|
||||
DefaultMCLongNames[PRS1_VSnore2]=_("Vibratory Snore (Graph)");
|
||||
DefaultMCLongNames[PRS1_PressurePulse]=_("Pressure Pulse");
|
||||
DefaultMCLongNames[PRS1_Unknown0E]=_("Unknown 0E");
|
||||
DefaultMCLongNames[PRS1_Unknown00]=_("Unknown 00");
|
||||
DefaultMCLongNames[PRS1_Unknown01]=_("Unknown 01");
|
||||
DefaultMCLongNames[PRS1_Unknown0B]=_("Unknown 0B");
|
||||
DefaultMCLongNames[PRS1_Unknown10]=_("Unknown 10");
|
||||
DefaultMCLongNames[CPAP_Obstructive]=QObject::tr("Obstructive Apnea");
|
||||
DefaultMCLongNames[CPAP_Hypopnea]=QObject::tr("Hypopnea");
|
||||
DefaultMCLongNames[CPAP_RERA]=QObject::tr("RERA");
|
||||
DefaultMCLongNames[CPAP_ClearAirway]=QObject::tr("Clear Airway Apnea");
|
||||
DefaultMCLongNames[CPAP_CSR]=QObject::tr("Periodic Breathing");
|
||||
DefaultMCLongNames[CPAP_VSnore]=QObject::tr("Vibratory Snore"); // flags type
|
||||
DefaultMCLongNames[CPAP_FlowLimit]=QObject::tr("Flow Limitation");
|
||||
DefaultMCLongNames[CPAP_Pressure]=QObject::tr("Pressure");
|
||||
DefaultMCLongNames[CPAP_Leak]=QObject::tr("Leak Rate");
|
||||
DefaultMCLongNames[CPAP_EAP]=QObject::tr("BIPAP EPAP");
|
||||
DefaultMCLongNames[CPAP_IAP]=QObject::tr("BIPAP IPAP");
|
||||
DefaultMCLongNames[CPAP_Snore]=QObject::tr("Vibratory Snore"); // Graph data
|
||||
DefaultMCLongNames[PRS1_VSnore2]=QObject::tr("Vibratory Snore (Graph)");
|
||||
DefaultMCLongNames[PRS1_PressurePulse]=QObject::tr("Pressure Pulse");
|
||||
DefaultMCLongNames[PRS1_Unknown0E]=QObject::tr("Unknown 0E");
|
||||
DefaultMCLongNames[PRS1_Unknown00]=QObject::tr("Unknown 00");
|
||||
DefaultMCLongNames[PRS1_Unknown01]=QObject::tr("Unknown 01");
|
||||
DefaultMCLongNames[PRS1_Unknown0B]=QObject::tr("Unknown 0B");
|
||||
DefaultMCLongNames[PRS1_Unknown10]=QObject::tr("Unknown 10");
|
||||
}
|
||||
|
||||
|
||||
@ -202,13 +204,13 @@ Machine::Machine(Profile *p,MachineID id)
|
||||
m_id=temp;
|
||||
|
||||
} else m_id=id;
|
||||
qDebug("Create Machine: %lx",m_id);
|
||||
qDebug() << "Create Machine: " << hex << m_id; //%lx",m_id);
|
||||
m_type=MT_UNKNOWN;
|
||||
firstsession=true;
|
||||
}
|
||||
Machine::~Machine()
|
||||
{
|
||||
qDebug("Destroy Machine");
|
||||
qDebug() << "Destroy Machine";
|
||||
map<QDateTime,Day *>::iterator d;
|
||||
for (d=day.begin();d!=day.end();d++) {
|
||||
delete d->second;
|
||||
@ -308,8 +310,7 @@ bool Machine::Purge(int secret)
|
||||
return false;
|
||||
|
||||
|
||||
QString native="Purging "+QDir::toNativeSeparators(path);
|
||||
qDebug(native.toLatin1());
|
||||
qDebug() << "Purging " << QDir::toNativeSeparators(path);
|
||||
|
||||
dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
|
||||
dir.setSorting(QDir::Name);
|
||||
@ -323,15 +324,15 @@ bool Machine::Purge(int secret)
|
||||
int j=fullpath.lastIndexOf(".");
|
||||
QString ext_s=*(fullpath.rightRef(j+1).string());
|
||||
bool ok;
|
||||
int ext=ext_s.toInt(&ok,10);
|
||||
ext_s.toInt(&ok,10);
|
||||
if (ok) {
|
||||
qDebug(("TestMe: Deleting "+fullpath).toLatin1());
|
||||
qDebug() << "TestMe: Deleting " << fullpath;
|
||||
dir.remove(fullpath);
|
||||
} else could_not_kill++;
|
||||
|
||||
}
|
||||
if (could_not_kill>0) {
|
||||
qWarning(("Could not purge path\n"+path+"\n\n%i file(s) remain.. Suggest manually deleting this path\n").toLatin1(),could_not_kill);
|
||||
qWarning() << "Could not purge path\n" << path << "\n\n" << could_not_kill << " file(s) remain.. Suggest manually deleting this path\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -341,7 +342,7 @@ bool Machine::Load()
|
||||
{
|
||||
QString path=profile->Get("DataFolder")+"/"+hexid();
|
||||
QDir dir(path);
|
||||
qDebug(("Loading "+path).toLatin1());
|
||||
qDebug() << "Loading " << path;
|
||||
|
||||
if (!dir.exists() || !dir.isReadable())
|
||||
return false;
|
||||
@ -397,6 +398,7 @@ bool Machine::SaveSession(Session *sess)
|
||||
{
|
||||
QString path=profile->Get("DataFolder")+"/"+hexid();
|
||||
if (sess->IsChanged()) sess->Store(path);
|
||||
return true;
|
||||
}
|
||||
bool Machine::Save()
|
||||
{
|
||||
|
@ -16,6 +16,7 @@ License: GPL
|
||||
#include <QDateTime>
|
||||
#include <QDir>
|
||||
#include <QDesktopServices>
|
||||
#include <QDebug>
|
||||
|
||||
#include "preferences.h"
|
||||
|
||||
@ -163,7 +164,7 @@ bool Preferences::Open(QString filename)
|
||||
{
|
||||
if (!filename.isEmpty()) p_filename=filename;
|
||||
|
||||
qDebug(("Opening "+p_filename).toLatin1());
|
||||
qDebug() << "Opening " << p_filename;
|
||||
TiXmlDocument xml(p_filename.toLatin1());
|
||||
if (!xml.LoadFile()) {
|
||||
return false;
|
||||
@ -194,13 +195,13 @@ bool Preferences::Open(QString filename)
|
||||
if (type=="double") {
|
||||
double d=pText.toDouble(&ok);
|
||||
if (!ok)
|
||||
qDebug("String to number conversion error in Preferences::Open()");
|
||||
qDebug() << "String to number conversion error in Preferences::Open()";
|
||||
else
|
||||
p_preferences[pKey]=d;
|
||||
} else if (type=="qlonglong") {
|
||||
qlonglong d=pText.toLongLong(&ok);
|
||||
if (!ok)
|
||||
qDebug("String to number conversion error in Preferences::Open()");
|
||||
qDebug() << "String to number conversion error in Preferences::Open()";
|
||||
else
|
||||
p_preferences[pKey]=d;
|
||||
} else if (type=="bool") {
|
||||
@ -211,7 +212,7 @@ bool Preferences::Open(QString filename)
|
||||
else if (pText.toLower()=="false")
|
||||
p_preferences[pKey]=false;
|
||||
else
|
||||
qDebug("String to number conversion error in Preferences::Open()");
|
||||
qDebug() << "String to number conversion error in Preferences::Open()";
|
||||
} else
|
||||
p_preferences[pKey]=(bool)d;
|
||||
} else if (type=="qdatetime") {
|
||||
@ -220,7 +221,7 @@ bool Preferences::Open(QString filename)
|
||||
if (d.isValid())
|
||||
p_preferences[pKey]=d;
|
||||
else
|
||||
qWarning(("Invalid DateTime record in "+filename).toLatin1());
|
||||
qWarning() << "Invalid DateTime record in " << filename;
|
||||
|
||||
} else { // Assume string
|
||||
p_preferences[pKey]=pText;
|
||||
@ -258,7 +259,7 @@ bool Preferences::Save(QString filename)
|
||||
if (type==QVariant::Invalid) continue;
|
||||
|
||||
msg=new TiXmlElement(i->first.toLatin1());
|
||||
//qDebug(i->first.toLatin1());
|
||||
//qDebug() << i->first;
|
||||
msg->SetAttribute("type",i->second.typeName());
|
||||
QString t;
|
||||
|
||||
|
@ -6,17 +6,12 @@ Author: Mark Watkins <jedimark64@users.sourceforge.net>
|
||||
License: GPL
|
||||
|
||||
*/
|
||||
//#include <wx/filefn.h>
|
||||
//#include <wx/filename.h>
|
||||
//#include <wx/utils.h>
|
||||
//#include <wx/dir.h>
|
||||
//#include <wx/log.h>
|
||||
//#include <wx/msgdlg.h>
|
||||
|
||||
#include <QString>
|
||||
#include <QDateTime>
|
||||
#include <QDir>
|
||||
#include <QMessageBox>
|
||||
#include <QDebug>
|
||||
|
||||
#include "preferences.h"
|
||||
#include "profiles.h"
|
||||
@ -211,7 +206,7 @@ Day * Profile::GetDay(QDate date,MachineType type)
|
||||
void Profile::Import(QString path)
|
||||
{
|
||||
int c=0;
|
||||
qDebug(("Importing "+path).toLatin1());
|
||||
qDebug() << "Importing " << path;
|
||||
list<MachineLoader *>loaders=GetLoaders();
|
||||
for (list<MachineLoader *>::iterator i=loaders.begin(); i!=loaders.end(); i++) {
|
||||
if (c+=(*i)->Open(path,this)) break;
|
||||
@ -344,7 +339,7 @@ void Scan()
|
||||
return;
|
||||
}
|
||||
if (!dir.isReadable()) {
|
||||
qWarning(("Can't open "+path).toLatin1());
|
||||
qWarning() << "Can't open " << path;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -8,6 +8,7 @@
|
||||
#include "session.h"
|
||||
#include "math.h"
|
||||
#include <QDir>
|
||||
#include <QDebug>
|
||||
#include <SleepLib/binary_file.h>
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
@ -113,7 +114,7 @@ double Session::percentile(MachineCode mc,int field,double percent)
|
||||
|
||||
for (e=events[mc].begin(); e!=events[mc].end(); e++) {
|
||||
Event & ev = *(*e);
|
||||
array.push_back(ev[0]);
|
||||
array.push_back(ev[field]);
|
||||
}
|
||||
std::sort(array.begin(),array.end(),sortfunction);
|
||||
int size=array.size();
|
||||
@ -327,7 +328,7 @@ bool Session::StoreSummary(QString filename)
|
||||
mctype[mc]=MC_datetime;
|
||||
} else {
|
||||
QString t=i->second.typeToName(type);
|
||||
qWarning(("Error in Session->StoreSummary: Can't pack variant type "+t).toLatin1());
|
||||
qWarning() << "Error in Session->StoreSummary: Can't pack variant type " << t;
|
||||
exit(1);
|
||||
}
|
||||
f.Pack((qint16)mc);
|
||||
@ -360,7 +361,7 @@ bool Session::LoadSummary(QString filename)
|
||||
//qDebug(("Loading Summary "+filename).toLatin1());
|
||||
BinaryFile f;
|
||||
if (!f.Open(filename,BF_READ)) {
|
||||
qDebug(("Couldn't open file"+filename).toLatin1());
|
||||
qDebug() << "Couldn't open file" << filename;
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -496,14 +497,14 @@ bool Session::LoadEvents(QString filename)
|
||||
if (filename.isEmpty()) return false;
|
||||
BinaryFile f;
|
||||
if (!f.Open(filename,BF_READ)) {
|
||||
qDebug(("Couldn't open events file"+filename).toLatin1());
|
||||
qDebug() << "Couldn't open events file" << filename;
|
||||
return false;
|
||||
}
|
||||
|
||||
quint32 t32;
|
||||
quint16 t16;
|
||||
quint8 t8;
|
||||
qint16 i16;
|
||||
//qint16 i16;
|
||||
|
||||
// qint16 sumsize;
|
||||
|
||||
@ -561,7 +562,7 @@ bool Session::LoadEvents(QString filename)
|
||||
}
|
||||
EventDataType ED[max_number_event_fields];
|
||||
for (int c=0; c<mcfields[mc]; c++) {
|
||||
if (!f.Unpack(fl)); //throw UnpackError(); // Data Fields in float format
|
||||
if (!f.Unpack(fl)) {}; //throw UnpackError(); // Data Fields in float format
|
||||
ED[c]=fl;
|
||||
}
|
||||
Event *ev=new Event(d,mc,ED,mcfields[mc]);
|
||||
@ -635,7 +636,7 @@ bool Session::LoadWaveforms(QString filename)
|
||||
|
||||
BinaryFile f;
|
||||
if (!f.Open(filename,BF_READ)) {
|
||||
qDebug(("Couldn't open waveform file "+filename).toLatin1());
|
||||
qDebug() << "Couldn't open waveform file " << filename;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -407,7 +407,7 @@ void Daily::UpdateEventsTree(QTreeWidget *tree,Day *day)
|
||||
|
||||
map<MachineCode,vector<Event *> >::iterator m;
|
||||
|
||||
QTreeWidgetItem * ti,sroot;
|
||||
//QTreeWidgetItem * sroot;
|
||||
|
||||
for (m=(*s)->events.begin();m!=(*s)->events.end();m++) {
|
||||
MachineCode code=m->first;
|
||||
@ -496,7 +496,7 @@ void Daily::Load(QDate date)
|
||||
previous_date=date;
|
||||
Day *cpap=profile->GetDay(date,MT_CPAP);
|
||||
Day *oxi=profile->GetDay(date,MT_OXIMETER);
|
||||
Day *sleepstage=profile->GetDay(date,MT_SLEEPSTAGE);
|
||||
// Day *sleepstage=profile->GetDay(date,MT_SLEEPSTAGE);
|
||||
|
||||
QString html="<html><head><style type='text/css'>p,a,td,body { font-family: 'FreeSans', 'Sans Serif'; } p,a,td,body { font-size: 12px; } </style>";
|
||||
html+="</head>";
|
||||
@ -933,7 +933,7 @@ void Daily::on_JournalNotesUnderline_clicked()
|
||||
|
||||
|
||||
|
||||
AHIGraph::AHIGraph(QObject * parent)
|
||||
/*AHIGraph::AHIGraph(QObject * parent)
|
||||
{
|
||||
}
|
||||
AHIGraph::~AHIGraph()
|
||||
@ -977,3 +977,4 @@ QList<QWebPluginFactory::Plugin> AHIGraph::plugins() const
|
||||
|
||||
return QList<QWebPluginFactory::Plugin>() << plugin;
|
||||
}
|
||||
*/
|
||||
|
4
daily.h
4
daily.h
@ -83,7 +83,7 @@ private:
|
||||
QLabel *NoData;
|
||||
};
|
||||
|
||||
class AHIGraph:public QWebPluginFactory
|
||||
/*class AHIGraph:public QWebPluginFactory
|
||||
{
|
||||
public:
|
||||
AHIGraph(QObject * parent = 0);
|
||||
@ -91,6 +91,6 @@ public:
|
||||
virtual QObject * create ( const QString & mimeType, const QUrl & url, const QStringList & argumentNames, const QStringList & argumentValues) const;
|
||||
virtual QList<Plugin> plugins () const;
|
||||
//virtual void refreshPlugins ();
|
||||
};
|
||||
}; */
|
||||
|
||||
#endif // DAILY_H
|
||||
|
3
main.cpp
3
main.cpp
@ -8,6 +8,7 @@
|
||||
#include <QtGui/QApplication>
|
||||
#include <QFontDatabase>
|
||||
#include <QStringList>
|
||||
#include <QDebug>
|
||||
#include "mainwindow.h"
|
||||
#include "SleepLib/profiles.h"
|
||||
|
||||
@ -25,7 +26,7 @@ int main(int argc, char *argv[])
|
||||
int id=QFontDatabase::addApplicationFont(":/fonts/FreeSans.ttf");
|
||||
QStringList ffam=QFontDatabase::applicationFontFamilies(id);
|
||||
for (QStringList::iterator i=ffam.begin();i!=ffam.end();i++) {
|
||||
qDebug(("Loaded Font: "+*i).toLatin1());
|
||||
qDebug() << "Loaded Font: " << (*i);
|
||||
}
|
||||
|
||||
a.setFont(QFont("FreeSans",10));
|
||||
|
@ -77,11 +77,6 @@ MainWindow::~MainWindow()
|
||||
delete ui;
|
||||
Profiles::Done();
|
||||
}
|
||||
void MainWindow::showEvent(QShowEvent * event)
|
||||
{
|
||||
if (daily)
|
||||
daily->RedrawGraphs();
|
||||
}
|
||||
|
||||
void MainWindow::Startup()
|
||||
{
|
||||
@ -184,6 +179,7 @@ void MainWindow::on_overviewButton_clicked()
|
||||
|
||||
void MainWindow::on_webView_loadFinished(bool arg1)
|
||||
{
|
||||
arg1=arg1;
|
||||
qprogress->hide();
|
||||
if (first_load) {
|
||||
QTimer::singleShot(0,this,SLOT(Startup()));
|
||||
|
@ -59,7 +59,6 @@ private slots:
|
||||
void on_action_Link_Graphs_triggered(bool checked);
|
||||
|
||||
void on_actionUse_AntiAliasing_triggered(bool checked);
|
||||
void showEvent(QShowEvent * event);
|
||||
|
||||
private:
|
||||
Ui::MainWindow *ui;
|
||||
|
83
overview.cpp
83
overview.cpp
@ -122,7 +122,7 @@ void Overview::ReloadGraphs()
|
||||
(*h)->ResetDateRange();
|
||||
(*h)->Reload(NULL);
|
||||
}
|
||||
on_rbLastWeek_clicked(true);
|
||||
on_rbLastWeek_clicked();
|
||||
}
|
||||
void Overview::UpdateGraphs()
|
||||
{
|
||||
@ -136,46 +136,6 @@ void Overview::UpdateGraphs()
|
||||
}
|
||||
|
||||
|
||||
void Overview::on_rbLastWeek_clicked(bool checked)
|
||||
{
|
||||
ui->drStart->setDateRange(profile->FirstDay(),profile->LastDay());
|
||||
ui->drEnd->setDateRange(profile->FirstDay(),profile->LastDay());
|
||||
|
||||
QDate d=profile->LastDay();
|
||||
ui->drEnd->setDate(d);
|
||||
d=d.addDays(-7);
|
||||
if (d<profile->FirstDay()) d=profile->FirstDay();
|
||||
ui->drStart->setDate(d);
|
||||
UpdateGraphs();
|
||||
}
|
||||
|
||||
void Overview::on_rbLastMonth_clicked(bool checked)
|
||||
{
|
||||
ui->drStart->setDateRange(profile->FirstDay(),profile->LastDay());
|
||||
ui->drEnd->setDateRange(profile->FirstDay(),profile->LastDay());
|
||||
|
||||
QDate d=profile->LastDay();
|
||||
ui->drEnd->setDate(d);
|
||||
d=d.addDays(-30);
|
||||
if (d<profile->FirstDay()) d=profile->FirstDay();
|
||||
ui->drStart->setDate(d);
|
||||
UpdateGraphs();
|
||||
}
|
||||
|
||||
void Overview::on_rbEverything_clicked(bool checked)
|
||||
{
|
||||
ui->drStart->setDateRange(profile->FirstDay(),profile->LastDay());
|
||||
ui->drEnd->setDateRange(profile->FirstDay(),profile->LastDay());
|
||||
|
||||
ui->drEnd->setDate(profile->LastDay());
|
||||
ui->drStart->setDate(profile->FirstDay());
|
||||
UpdateGraphs();
|
||||
}
|
||||
|
||||
void Overview::on_rbDateRange_clicked(bool checked)
|
||||
{
|
||||
UpdateGraphs();
|
||||
}
|
||||
void UpdateCal(QCalendarWidget *cal)
|
||||
{
|
||||
QDate d1=cal->minimumDate();
|
||||
@ -217,3 +177,44 @@ void Overview::on_rbDateRange_toggled(bool checked)
|
||||
ui->drStartLabel->setEnabled(checked);
|
||||
ui->drEndLabel->setEnabled(checked);
|
||||
}
|
||||
|
||||
void Overview::on_rbLastWeek_clicked()
|
||||
{
|
||||
ui->drStart->setDateRange(profile->FirstDay(),profile->LastDay());
|
||||
ui->drEnd->setDateRange(profile->FirstDay(),profile->LastDay());
|
||||
|
||||
QDate d=profile->LastDay();
|
||||
ui->drEnd->setDate(d);
|
||||
d=d.addDays(-7);
|
||||
if (d<profile->FirstDay()) d=profile->FirstDay();
|
||||
ui->drStart->setDate(d);
|
||||
UpdateGraphs();
|
||||
}
|
||||
|
||||
void Overview::on_rbLastMonth_clicked()
|
||||
{
|
||||
ui->drStart->setDateRange(profile->FirstDay(),profile->LastDay());
|
||||
ui->drEnd->setDateRange(profile->FirstDay(),profile->LastDay());
|
||||
|
||||
QDate d=profile->LastDay();
|
||||
ui->drEnd->setDate(d);
|
||||
d=d.addDays(-30);
|
||||
if (d<profile->FirstDay()) d=profile->FirstDay();
|
||||
ui->drStart->setDate(d);
|
||||
UpdateGraphs();
|
||||
}
|
||||
|
||||
void Overview::on_rbEverything_clicked()
|
||||
{
|
||||
ui->drStart->setDateRange(profile->FirstDay(),profile->LastDay());
|
||||
ui->drEnd->setDateRange(profile->FirstDay(),profile->LastDay());
|
||||
|
||||
ui->drEnd->setDate(profile->LastDay());
|
||||
ui->drStart->setDate(profile->FirstDay());
|
||||
UpdateGraphs();
|
||||
}
|
||||
|
||||
void Overview::on_rbDateRange_clicked()
|
||||
{
|
||||
UpdateGraphs();
|
||||
}
|
||||
|
16
overview.h
16
overview.h
@ -31,20 +31,20 @@ public:
|
||||
|
||||
private slots:
|
||||
|
||||
void on_rbLastWeek_clicked(bool checked);
|
||||
|
||||
void on_rbLastMonth_clicked(bool checked);
|
||||
|
||||
void on_rbEverything_clicked(bool checked);
|
||||
|
||||
void on_rbDateRange_clicked(bool checked);
|
||||
|
||||
void on_drStart_dateChanged(const QDate &date);
|
||||
|
||||
void on_drEnd_dateChanged(const QDate &date);
|
||||
|
||||
void on_rbDateRange_toggled(bool checked);
|
||||
|
||||
void on_rbLastWeek_clicked();
|
||||
|
||||
void on_rbLastMonth_clicked();
|
||||
|
||||
void on_rbEverything_clicked();
|
||||
|
||||
void on_rbDateRange_clicked();
|
||||
|
||||
private:
|
||||
Ui::Overview *ui;
|
||||
Profile *profile;
|
||||
|
Loading…
Reference in New Issue
Block a user