diff --git a/Graphs/gYAxis.cpp b/Graphs/gYAxis.cpp
index 6d084617..a1067cda 100644
--- a/Graphs/gYAxis.cpp
+++ b/Graphs/gYAxis.cpp
@@ -85,7 +85,7 @@ void gYAxis::Plot(gGraphWindow &w,float scrx,float scry)
}
}
- for (double i=miny; i<=maxy; i+=min_ytick) {
+ for (double i=miny; i<=maxy+min_ytick-0.00001; i+=min_ytick) {
ty=(i - miny) * ymult;
fd=Format(i); // Override this as a function.
GetTextExtent(fd,x,y);
diff --git a/SleepLib/loader_plugins/prs1_loader.cpp b/SleepLib/loader_plugins/prs1_loader.cpp
index 5179861e..9b0449d8 100644
--- a/SleepLib/loader_plugins/prs1_loader.cpp
+++ b/SleepLib/loader_plugins/prs1_loader.cpp
@@ -360,9 +360,9 @@ int PRS1Loader::OpenMachine(Machine *m,QString path,Profile *profile)
sess->summary[CPAP_LeakMedian]=sess->avg_event_field(CPAP_Leak,0);
sess->summary[CPAP_LeakAverage]=sess->weighted_avg_event_field(CPAP_Leak,0);
- sess->summary[CPAP_SnoreMinimum]=sess->min_event_field(CPAP_SnoreGraph,0);
- sess->summary[CPAP_SnoreMaximum]=sess->max_event_field(CPAP_SnoreGraph,0);
- sess->summary[CPAP_SnoreMedian]=sess->avg_event_field(CPAP_SnoreGraph,0);
+ sess->summary[CPAP_SnoreMinimum]=sess->min_event_field(CPAP_Snore,0);
+ sess->summary[CPAP_SnoreMaximum]=sess->max_event_field(CPAP_Snore,0);
+ sess->summary[CPAP_SnoreMedian]=sess->avg_event_field(CPAP_Snore,0);
sess->summary[CPAP_SnoreAverage]=sess->weighted_avg_event_field(CPAP_Snore,0);
//Printf(sess->start().Format()+wxT(" avgsummary=%.3f avgmine=%.3f\n"),sess->summary[CPAP_PressureAverage].GetDouble(),sess->weighted_avg_event_field(CPAP_Pressure,0));
@@ -561,9 +561,9 @@ bool PRS1Loader::Parse002(Session *session,unsigned char *buffer,int size,time_t
data[1]=buffer[pos++];
if (code==0x11) {
session->AddEvent(new Event(t,cpapcode, data,1));
- session->AddEvent(new Event(t,CPAP_SnoreGraph,&data[1],1));
+ session->AddEvent(new Event(t,CPAP_Snore,&data[1],1));
if (data[1]>0) {
- session->AddEvent(new Event(t,CPAP_Snore, &data[1],1));
+ session->AddEvent(new Event(t,PRS1_VSnore2, &data[1],1));
}
} else if (code==0x03) {
data[0]/=10.0;
diff --git a/SleepLib/loader_plugins/resmed_loader.cpp b/SleepLib/loader_plugins/resmed_loader.cpp
index cf9c8345..26613da2 100644
--- a/SleepLib/loader_plugins/resmed_loader.cpp
+++ b/SleepLib/loader_plugins/resmed_loader.cpp
@@ -302,6 +302,30 @@ bool ResmedLoader::Open(QString & path,Profile *profile)
first=false;
}
}
+ if (sess) {
+ sess->summary[CPAP_PressureMedian]=sess->avg_event_field(CPAP_Pressure,0);
+ sess->summary[CPAP_PressureAverage]=sess->weighted_avg_event_field(CPAP_Pressure,0);
+ sess->summary[CPAP_PressureMinAchieved]=sess->min_event_field(CPAP_Pressure,0);
+ sess->summary[CPAP_PressureMaxAchieved]=sess->max_event_field(CPAP_Pressure,0);
+ sess->summary[CPAP_PressureMin]=sess->summary[CPAP_PressureMinAchieved];
+ sess->summary[CPAP_PressureMax]=sess->summary[CPAP_PressureMaxAchieved];
+
+ sess->summary[CPAP_LeakMinimum]=sess->min_event_field(CPAP_Leak,0);
+ sess->summary[CPAP_LeakMaximum]=sess->max_event_field(CPAP_Leak,0); // should be merged..
+ sess->summary[CPAP_LeakMedian]=sess->avg_event_field(CPAP_Leak,0);
+ sess->summary[CPAP_LeakAverage]=sess->weighted_avg_event_field(CPAP_Leak,0);
+
+ sess->summary[CPAP_Snore]=sess->sum_event_field(CPAP_Snore,0);
+ sess->summary[CPAP_SnoreMinimum]=sess->min_event_field(CPAP_Snore,0);
+ sess->summary[CPAP_SnoreMaximum]=sess->max_event_field(CPAP_Snore,0);
+ sess->summary[CPAP_SnoreMedian]=sess->avg_event_field(CPAP_Snore,0);
+ sess->summary[CPAP_SnoreAverage]=sess->weighted_avg_event_field(CPAP_Snore,0);
+ sess->summary[CPAP_Obstructive]=sess->count_events(CPAP_Obstructive);
+ sess->summary[CPAP_Hypopnea]=sess->count_events(CPAP_Hypopnea);
+ sess->summary[CPAP_ClearAirway]=sess->count_events(CPAP_ClearAirway);
+ sess->summary[CPAP_Mode]=MODE_APAP;
+ }
+
if (qprogress) qprogress->setValue(33.0+(float(++cnt)/float(size)*33.0));
}
// m->save();
@@ -489,9 +513,11 @@ bool ResmedLoader::LoadPLD(Machine *mach,Session *sess,EDFParser &edf)
} else if (edf.edfsignals[s]->label=="Leak") {
code=CPAP_Leak;
ToTimeDelta(mach,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).toLatin1());
}
+
}
void ResInitModelMap()
diff --git a/SleepLib/loader_plugins/resmed_loader.h b/SleepLib/loader_plugins/resmed_loader.h
index 2615c4d1..9701795c 100644
--- a/SleepLib/loader_plugins/resmed_loader.h
+++ b/SleepLib/loader_plugins/resmed_loader.h
@@ -20,7 +20,7 @@ License: GPL
//********************************************************************************************
// Please INCREMENT the following value when making changes to this loaders implementation.
//
-const int resmed_data_version=1;
+const int resmed_data_version=0;
//
//********************************************************************************************
diff --git a/SleepLib/machine_common.h b/SleepLib/machine_common.h
index fe6ab058..520c1877 100644
--- a/SleepLib/machine_common.h
+++ b/SleepLib/machine_common.h
@@ -47,7 +47,7 @@ enum MachineCode//:qint16
BIPAP_EAPAverage,BIPAP_IAPAverage,BIPAP_EAPMin,BIPAP_EAPMax,BIPAP_IAPMin,BIPAP_IAPMax,CPAP_BrokenSummary,
// PRS1 Specific Codes
- PRS1_PressurePulse=0x1000,
+ PRS1_PressurePulse=0x1000,PRS1_VSnore2,
PRS1_Unknown00, PRS1_Unknown01, PRS1_Unknown08, PRS1_Unknown09, PRS1_Unknown0B, PRS1_Unknown0E, PRS1_Unknown10, PRS1_Unknown12,
PRS1_SystemLockStatus, PRS1_SystemResistanceStatus, PRS1_SystemResistanceSetting, PRS1_HoseDiameter, PRS1_AutoOff, PRS1_MaskAlert, PRS1_ShowAHI,
diff --git a/daily.cpp b/daily.cpp
index d797c324..0391f95f 100644
--- a/daily.cpp
+++ b/daily.cpp
@@ -116,18 +116,16 @@ Daily::Daily(QWidget *parent,QGLContext *context) :
AddCPAPData(frw=new WaveData(CPAP_FlowRate,700000)); //FlowRate
- AddCPAPData(mpw=new WaveData(CPAP_MaskPressure,700000)); //FlowRate
+ // AddCPAPData(mpw=new WaveData(CPAP_MaskPressure,700000)); //FlowRate
// Holy crap resmed stuff is huge..
AddGraph(FRW=new gGraphWindow(gSplitter,tr("Flow Rate"),SF));
//FRW->AddLayer(new gFooBar());
FRW->AddLayer(new gYAxis());
FRW->AddLayer(new gXAxis());
FRW->AddLayer(new gLineOverlayBar(flags[0],QColor("light green"),"CSR"));
- FRW->AddLayer(new gLineChart(mpw,Qt::blue,700000,true));
+ //FRW->AddLayer(new gLineChart(mpw,Qt::blue,700000,true));
gLineChart *g=new gLineChart(frw,Qt::black,700000,true);
g->ReportEmpty(true);
-
-
FRW->AddLayer(g);
FRW->AddLayer(new gLineOverlayBar(flags[3],QColor("blue"),"H"));
FRW->AddLayer(new gLineOverlayBar(flags[7],QColor("red"),"PR",LOT_Dot));
@@ -148,7 +146,7 @@ Daily::Daily(QWidget *parent,QGLContext *context) :
SNORE->setMinimumHeight(150);
AddCPAPData(mv=new EventData(CPAP_MinuteVentilation,0));
- AddGraph(MV=new gGraphWindow(gSplitter,tr("Minute Vent."),SF));
+ AddGraph(MV=new gGraphWindow(gSplitter,tr("Minute Ventilation"),SF));
MV->AddLayer(new gXAxis());
MV->AddLayer(new gYAxis());
MV->AddLayer(new gLineChart(mv,QColor(0x20,0x20,0x7f),65536,false,false,false));
@@ -524,31 +522,26 @@ void Daily::Load(QDate date)
html=html+"
"+cpap->first().date().toString(Qt::SystemLocaleShortDate)+" | "+cpap->first().toString("HH:mm")+" | "+cpap->last().toString("HH:mm")+" | "+a.sprintf("%02i:%02i",tt/3600,tt%60)+" |
\n";
html=html+"
|
\n";
- if (pref.Exists("fruitsalad") && pref["fruitsalad"].toBool()) {
- html=html+("");
- html=html+("")+tr("AHI")+(" | ")+a.sprintf("%.2f",ahi)+(" | \n");
- html=html+("")+tr("Hypopnea")+(" | ")+a.sprintf("%.2f",hi)+(" | \n");
- html=html+("")+tr("Obstructive")+(" | ")+a.sprintf("%.2f",oai)+(" | \n");
- html=html+("")+tr("ClearAirway")+(" | ")+a.sprintf("%.2f",cai)+(" | \n");
- html=html+(" | ");
- html=html+("")+tr("RERA")+(" | ")+a.sprintf("%.2f",rei)+(" | \n");
- html=html+("")+tr("FlowLimit")+(" | ")+a.sprintf("%.2f",fli)+(" | \n");
- html=html+("")+tr("Vsnore")+(" | ")+a.sprintf("%.2f",vsi)+(" | \n");
- html=html+("")+tr("PB/CSR")+(" | ")+a.sprintf("%.2f",csr)+("% | \n");
- html=html+(" |
");
- } else {
- html=html+("");
- html=html+("")+tr("AHI")+(" | ")+a.sprintf("%.2f",ahi)+(" | \n");
- html=html+("")+tr("Hypopnea")+(" | ")+a.sprintf("%.2f",hi)+(" | \n");
- html=html+("")+tr("Obstructive")+(" | ")+a.sprintf("%.2f",oai)+(" | \n");
- html=html+("")+tr("ClearAirway")+(" | ")+a.sprintf("%.2f",cai)+(" | \n");
- html=html+(" | ");
- html=html+("")+tr("RERA")+(" | ")+a.sprintf("%.2f",rei)+(" | \n");
- html=html+("")+tr("FlowLimit")+(" | ")+a.sprintf("%.2f",fli)+(" | \n");
- html=html+("")+tr("Vsnore")+(" | ")+a.sprintf("%.2f",vsi)+(" | \n");
- html=html+("")+tr("PB/CSR")+(" | ")+a.sprintf("%.2f%%",csr)+(" | \n");
- html=html+(" |
");
+ QString cs;
+ if (cpap->machine->GetClass()!="PRS1") {
+ cs="4 align=center>";
+ } else cs="2>";
+ html+=("");
+ html+=(" |
")+tr("AHI")+(" | ")+a.sprintf("%.2f",ahi)+(" |
\n");
+ html+=("")+tr("Hypopnea")+(" | ")+a.sprintf("%.2f",hi)+(" |
\n");
+ html+=("")+tr("Obstructive")+(" | ")+a.sprintf("%.2f",oai)+(" |
\n");
+ html+=("")+tr("ClearAirway")+(" | ")+a.sprintf("%.2f",cai)+(" |
\n");
+ html+="";
+ if (cpap->machine->GetClass()=="PRS1") {
+ html+="";
+ html+=""+tr("RERA")+(" | ")+a.sprintf("%.2f",rei)+(" | \n");
+ html+=""+tr("FlowLimit")+(" | ")+a.sprintf("%.2f",fli)+(" | \n");
+ html+=""+tr("Vsnore")+(" | ")+a.sprintf("%.2f",vsi)+(" | \n");
+ html+=""+tr("PB/CSR")+(" | ")+a.sprintf("%.2f",csr)+("% | \n");
+ html+=" | ";
}
+ html+="";
+
html=html+("")+tr("Event Breakdown")+(" |
\n");
{
G_AHI->setFixedSize(gwwidth,gwheight);