mirror of
https://gitlab.com/pholy/OSCAR-code.git
synced 2025-04-07 11:40:42 +00:00
Applied the same fix to PRS1, along with minor performance improvement to it's event importer
This commit is contained in:
parent
46dd0d6446
commit
0284420b59
@ -584,6 +584,29 @@ bool PRS1Loader::Parse002v5(qint32 sequence, quint32 timestamp, unsigned char *b
|
|||||||
int ncodes=sizeof(Codes)/sizeof(QString);
|
int ncodes=sizeof(Codes)/sizeof(QString);
|
||||||
EventList * Code[0x20]={NULL};
|
EventList * Code[0x20]={NULL};
|
||||||
|
|
||||||
|
|
||||||
|
EventList * OA=session->AddEventList(CPAP_Obstructive, EVL_Event);
|
||||||
|
EventList * HY=session->AddEventList(CPAP_Hypopnea, EVL_Event);
|
||||||
|
EventList * CSR=session->AddEventList(CPAP_CSR, EVL_Event);
|
||||||
|
EventList * LEAK=session->AddEventList(CPAP_LeakTotal,EVL_Event);
|
||||||
|
EventList * SNORE=session->AddEventList(CPAP_Snore,EVL_Event);
|
||||||
|
EventList * IPAP=session->AddEventList(CPAP_IPAP,EVL_Event,0.1);
|
||||||
|
EventList * EPAP=session->AddEventList(CPAP_EPAP,EVL_Event,0.1);
|
||||||
|
EventList * PS=session->AddEventList(CPAP_PS,EVL_Event);
|
||||||
|
EventList * IPAPLo=session->AddEventList(CPAP_IPAPLo,EVL_Event,0.1);
|
||||||
|
EventList * IPAPHi=session->AddEventList(CPAP_IPAPHi,EVL_Event,0.1);
|
||||||
|
EventList * RR=session->AddEventList(CPAP_RespRate,EVL_Event);
|
||||||
|
EventList * PTB=session->AddEventList(CPAP_PTB,EVL_Event);
|
||||||
|
|
||||||
|
EventList * MV=session->AddEventList(CPAP_MinuteVent,EVL_Event);
|
||||||
|
EventList * TV=session->AddEventList(CPAP_TidalVolume,EVL_Event);
|
||||||
|
|
||||||
|
EventList * CA=NULL; //session->AddEventList(CPAP_ClearAirway, EVL_Event);
|
||||||
|
EventList * VS=NULL, * VS2=NULL, * FL=NULL;//,* RE=NULL;
|
||||||
|
|
||||||
|
//EventList * PRESSURE=NULL;
|
||||||
|
//EventList * PP=NULL;
|
||||||
|
|
||||||
EventDataType data[10],tmp;
|
EventDataType data[10],tmp;
|
||||||
|
|
||||||
|
|
||||||
@ -639,14 +662,14 @@ bool PRS1Loader::Parse002v5(qint32 sequence, quint32 timestamp, unsigned char *b
|
|||||||
Code[1]->AddEvent(t,0);
|
Code[1]->AddEvent(t,0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x02: // Pressure
|
case 0x02: // Pressure ???
|
||||||
data[0]=buffer[pos++];
|
data[0]=buffer[pos++];
|
||||||
if (!Code[2]) {
|
if (!Code[2]) {
|
||||||
if (!(Code[2]=session->AddEventList(cpapcode,EVL_Event,0.1))) return false;
|
if (!(Code[2]=session->AddEventList(cpapcode,EVL_Event,0.1))) return false;
|
||||||
}
|
}
|
||||||
Code[2]->AddEvent(t,data[0]);
|
Code[2]->AddEvent(t,data[0]);
|
||||||
break;
|
break;
|
||||||
case 0x04: // Pressure Pulse
|
case 0x04: // Pressure Pulse??
|
||||||
data[0]=buffer[pos++];
|
data[0]=buffer[pos++];
|
||||||
if (!Code[3]) {
|
if (!Code[3]) {
|
||||||
if (!(Code[3]=session->AddEventList(cpapcode,EVL_Event))) return false;
|
if (!(Code[3]=session->AddEventList(cpapcode,EVL_Event))) return false;
|
||||||
@ -655,29 +678,26 @@ bool PRS1Loader::Parse002v5(qint32 sequence, quint32 timestamp, unsigned char *b
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x05:
|
case 0x05:
|
||||||
|
//code=CPAP_Obstructive;
|
||||||
data[0]=buffer[pos++];
|
data[0]=buffer[pos++];
|
||||||
tt-=qint64(data[0])*1000L; // Subtract Time Offset
|
tt-=qint64(data[0])*1000L; // Subtract Time Offset
|
||||||
if (!Code[4]) {
|
OA->AddEvent(tt,data[0]);
|
||||||
if (!(Code[4]=session->AddEventList(cpapcode,EVL_Event))) return false;
|
|
||||||
}
|
|
||||||
Code[4]->AddEvent(tt,data[0]);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x06:
|
case 0x06:
|
||||||
|
//code=CPAP_ClearAirway;
|
||||||
data[0]=buffer[pos++];
|
data[0]=buffer[pos++];
|
||||||
tt-=qint64(data[0])*1000L; // Subtract Time Offset
|
tt-=qint64(data[0])*1000L; // Subtract Time Offset
|
||||||
if (!Code[5]) {
|
if (!CA) {
|
||||||
if (!(Code[5]=session->AddEventList(cpapcode,EVL_Event))) return false;
|
if (!(CA=session->AddEventList(cpapcode,EVL_Event))) return false;
|
||||||
}
|
}
|
||||||
Code[5]->AddEvent(tt,data[0]);
|
CA->AddEvent(tt,data[0]);
|
||||||
break;
|
break;
|
||||||
case 0x07:
|
case 0x07:
|
||||||
|
//code=CPAP_Hypopnea;
|
||||||
data[0]=buffer[pos++];
|
data[0]=buffer[pos++];
|
||||||
tt-=qint64(data[0])*1000L; // Subtract Time Offset
|
tt-=qint64(data[0])*1000L; // Subtract Time Offset
|
||||||
if (!Code[6]) {
|
HY->AddEvent(tt,data[0]);
|
||||||
if (!(Code[6]=session->AddEventList(cpapcode,EVL_Event))) return false;
|
|
||||||
}
|
|
||||||
Code[6]->AddEvent(tt,data[0]);
|
|
||||||
break;
|
break;
|
||||||
case 0x08: // ASV Codes
|
case 0x08: // ASV Codes
|
||||||
data[0]=buffer[pos++];
|
data[0]=buffer[pos++];
|
||||||
@ -688,12 +708,13 @@ bool PRS1Loader::Parse002v5(qint32 sequence, quint32 timestamp, unsigned char *b
|
|||||||
Code[10]->AddEvent(tt,data[0]);
|
Code[10]->AddEvent(tt,data[0]);
|
||||||
break;
|
break;
|
||||||
case 0x09: // ASV Codes
|
case 0x09: // ASV Codes
|
||||||
|
//code=CPAP_FlowLimit;
|
||||||
data[0]=buffer[pos++];
|
data[0]=buffer[pos++];
|
||||||
tt-=qint64(data[0])*1000L; // Subtract Time Offset
|
tt-=qint64(data[0])*1000L; // Subtract Time Offset
|
||||||
if (!Code[11]) {
|
if (!FL) {
|
||||||
if (!(Code[11]=session->AddEventList(cpapcode,EVL_Event))) return false;
|
if (!(FL=session->AddEventList(cpapcode,EVL_Event))) return false;
|
||||||
}
|
}
|
||||||
Code[11]->AddEvent(tt,data[0]);
|
FL->AddEvent(tt,data[0]);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -706,15 +727,6 @@ bool PRS1Loader::Parse002v5(qint32 sequence, quint32 timestamp, unsigned char *b
|
|||||||
Code[7]->AddEvent(tt,data[0]);
|
Code[7]->AddEvent(tt,data[0]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x0c:
|
|
||||||
data[0]=buffer[pos++];
|
|
||||||
tt-=qint64(data[0])*1000L; // Subtract Time Offset
|
|
||||||
if (!Code[8]) {
|
|
||||||
if (!(Code[8]=session->AddEventList(cpapcode,EVL_Event))) return false;
|
|
||||||
}
|
|
||||||
Code[8]->AddEvent(tt,data[0]);
|
|
||||||
break;
|
|
||||||
|
|
||||||
|
|
||||||
case 0x0b: // Cheyne Stokes
|
case 0x0b: // Cheyne Stokes
|
||||||
data[0]=((unsigned char *)buffer)[pos+1]<<8 | ((unsigned char *)buffer)[pos];
|
data[0]=((unsigned char *)buffer)[pos+1]<<8 | ((unsigned char *)buffer)[pos];
|
||||||
@ -724,47 +736,42 @@ bool PRS1Loader::Parse002v5(qint32 sequence, quint32 timestamp, unsigned char *b
|
|||||||
pos+=1;
|
pos+=1;
|
||||||
//tt-=delta;
|
//tt-=delta;
|
||||||
tt-=qint64(data[1])*1000L;
|
tt-=qint64(data[1])*1000L;
|
||||||
if (!Code[9]) {
|
if (!CSR) {
|
||||||
if (!(Code[9]=session->AddEventList(cpapcode,EVL_Event)))
|
if (!(CSR=session->AddEventList(cpapcode,EVL_Event)))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
Code[9]->AddEvent(tt,data[0]);
|
CSR->AddEvent(tt,data[0]);
|
||||||
//session->AddEvent(new Event(tt,cpapcode, data[0], data, 2));
|
|
||||||
break;
|
break;
|
||||||
case 0x0d: // All the other ASV graph stuff.
|
|
||||||
if (!Code[12]) {
|
|
||||||
if (!(Code[12]=session->AddEventList(CPAP_IPAP,EVL_Event,0.1))) return false;
|
|
||||||
if (!(Code[13]=session->AddEventList(CPAP_IPAPLo,EVL_Event,0.1))) return false;
|
|
||||||
if (!(Code[14]=session->AddEventList(CPAP_IPAPHi,EVL_Event,0.1))) return false;
|
|
||||||
if (!(Code[15]=session->AddEventList(CPAP_LeakTotal,EVL_Event))) return false;
|
|
||||||
if (!(Code[16]=session->AddEventList(CPAP_RespRate,EVL_Event))) return false;
|
|
||||||
if (!(Code[17]=session->AddEventList(CPAP_PTB,EVL_Event))) return false;
|
|
||||||
|
|
||||||
if (!(Code[18]=session->AddEventList(CPAP_MinuteVent,EVL_Event))) return false;
|
case 0x0c:
|
||||||
if (!(Code[19]=session->AddEventList(CPAP_TidalVolume,EVL_Event))) return false;
|
data[0]=buffer[pos++];
|
||||||
if (!(Code[20]=session->AddEventList(CPAP_Snore,EVL_Event))) return false;
|
tt-=qint64(data[0])*1000L; // Subtract Time Offset
|
||||||
if (!(Code[22]=session->AddEventList(CPAP_EPAP,EVL_Event,0.1))) return false;
|
if (!Code[8]) {
|
||||||
if (!(Code[23]=session->AddEventList(CPAP_PS,EVL_Event))) return false;
|
if (!(Code[8]=session->AddEventList(cpapcode,EVL_Event))) return false;
|
||||||
}
|
}
|
||||||
Code[12]->AddEvent(t,data[0]=buffer[pos++]); // IAP
|
Code[8]->AddEvent(tt,data[0]);
|
||||||
Code[13]->AddEvent(t,buffer[pos++]); // IAP Low
|
break;
|
||||||
Code[14]->AddEvent(t,buffer[pos++]); // IAP High
|
|
||||||
Code[15]->AddEvent(t,buffer[pos++]); // LEAK
|
case 0x0d: // All the other ASV graph stuff.
|
||||||
Code[16]->AddEvent(t,buffer[pos++]); // Breaths Per Minute
|
IPAP->AddEvent(t,data[0]=buffer[pos++]); // 00=IAP
|
||||||
Code[17]->AddEvent(t,buffer[pos++]); // Patient Triggered Breaths
|
IPAPLo->AddEvent(t,buffer[pos++]); // 01=IAP Low
|
||||||
Code[18]->AddEvent(t,buffer[pos++]); // Minute Ventilation
|
IPAPHi->AddEvent(t,buffer[pos++]); // 02=IAP High
|
||||||
tmp=buffer[pos++]*10.0;
|
LEAK->AddEvent(t,buffer[pos++]); // 03=LEAK
|
||||||
Code[19]->AddEvent(t,tmp); // Tidal Volume
|
RR->AddEvent(t,buffer[pos++]); // 04=Breaths Per Minute
|
||||||
Code[20]->AddEvent(t,data[2]=buffer[pos++]); // Snore
|
PTB->AddEvent(t,buffer[pos++]); // 05=Patient Triggered Breaths
|
||||||
|
MV->AddEvent(t,buffer[pos++]); // 06=Minute Ventilation
|
||||||
|
tmp=buffer[pos++] * 10.0;
|
||||||
|
TV->AddEvent(t,tmp); // 07=Tidal Volume
|
||||||
|
SNORE->AddEvent(t,data[2]=buffer[pos++]); // 08=Snore
|
||||||
if (data[2]>0) {
|
if (data[2]>0) {
|
||||||
if (!Code[21]) {
|
if (!VS) {
|
||||||
if (!(Code[21]=session->AddEventList(CPAP_VSnore,EVL_Event)))
|
if (!(VS2=session->AddEventList(CPAP_VSnore,EVL_Event)))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
Code[21]->AddEvent(t,0); //data[2]); // VSnore
|
VS->AddEvent(t,0); //data[2]); // VSnore
|
||||||
}
|
}
|
||||||
Code[22]->AddEvent(t,data[1]=buffer[pos++]); // EPAP
|
EPAP->AddEvent(t,data[1]=buffer[pos++]); // 09=EPAP
|
||||||
Code[23]->AddEvent(t,data[0]-data[1]); // Pressure Support
|
PS->AddEvent(t,data[0]-data[1]); // Pressure Support
|
||||||
break;
|
break;
|
||||||
case 0x03: // BIPAP Pressure
|
case 0x03: // BIPAP Pressure
|
||||||
qDebug() << "0x03 Observed in ASV data!!????";
|
qDebug() << "0x03 Observed in ASV data!!????";
|
||||||
@ -847,6 +854,26 @@ bool PRS1Loader::Parse002(qint32 sequence, quint32 timestamp, unsigned char *buf
|
|||||||
Session *session=new_sessions[sequence];
|
Session *session=new_sessions[sequence];
|
||||||
session->updateFirst(t);
|
session->updateFirst(t);
|
||||||
|
|
||||||
|
|
||||||
|
EventList * OA=session->AddEventList(CPAP_Obstructive, EVL_Event);
|
||||||
|
EventList * HY=session->AddEventList(CPAP_Hypopnea, EVL_Event);
|
||||||
|
EventList * CSR=session->AddEventList(CPAP_CSR, EVL_Event);
|
||||||
|
EventList * LEAK=session->AddEventList(CPAP_LeakTotal,EVL_Event);
|
||||||
|
EventList * SNORE=session->AddEventList(CPAP_Snore,EVL_Event);
|
||||||
|
|
||||||
|
EventList * CA=NULL; //session->AddEventList(CPAP_ClearAirway, EVL_Event);
|
||||||
|
EventList * VS=NULL, * VS2=NULL, * FL=NULL,* RE=NULL;
|
||||||
|
|
||||||
|
EventList * PRESSURE=NULL;
|
||||||
|
EventList * EPAP=NULL;
|
||||||
|
EventList * IPAP=NULL;
|
||||||
|
EventList * PS=NULL;
|
||||||
|
|
||||||
|
EventList * PP=NULL;
|
||||||
|
|
||||||
|
//session->AddEventList(CPAP_VSnore, EVL_Event);
|
||||||
|
//EventList * VS=session->AddEventList(CPAP_Obstructive, EVL_Event);
|
||||||
|
|
||||||
for (pos=0;pos<size;) {
|
for (pos=0;pos<size;) {
|
||||||
code=buffer[pos++];
|
code=buffer[pos++];
|
||||||
if (code>0x12) {
|
if (code>0x12) {
|
||||||
@ -875,69 +902,64 @@ bool PRS1Loader::Parse002(qint32 sequence, quint32 timestamp, unsigned char *buf
|
|||||||
Code[1]->AddEvent(t,0);
|
Code[1]->AddEvent(t,0);
|
||||||
break;
|
break;
|
||||||
case 0x02: // Pressure
|
case 0x02: // Pressure
|
||||||
if (!Code[2]) {
|
if (!PRESSURE) {
|
||||||
Code[2]=session->AddEventList(CPAP_Pressure,EVL_Event,0.1);
|
PRESSURE=session->AddEventList(CPAP_Pressure,EVL_Event,0.1);
|
||||||
if (!Code[2]) return false;
|
if (!PRESSURE) return false;
|
||||||
}
|
}
|
||||||
Code[2]->AddEvent(t,buffer[pos++]);
|
PRESSURE->AddEvent(t,buffer[pos++]);
|
||||||
break;
|
break;
|
||||||
case 0x03: // BIPAP Pressure
|
case 0x03: // BIPAP Pressure
|
||||||
if (!Code[3]) {
|
if (!EPAP) {
|
||||||
if (!(Code[3]=session->AddEventList(CPAP_EPAP,EVL_Event,0.1))) return false;
|
if (!(EPAP=session->AddEventList(CPAP_EPAP,EVL_Event,0.1))) return false;
|
||||||
if (!(Code[4]=session->AddEventList(CPAP_IPAP,EVL_Event,0.1))) return false;
|
if (!(IPAP=session->AddEventList(CPAP_IPAP,EVL_Event,0.1))) return false;
|
||||||
if (!(Code[5]=session->AddEventList(CPAP_PS,EVL_Event,0.1))) return false;
|
if (!(PS=session->AddEventList(CPAP_PS,EVL_Event,0.1))) return false;
|
||||||
}
|
}
|
||||||
Code[3]->AddEvent(t,data[0]=buffer[pos++]);
|
EPAP->AddEvent(t,data[0]=buffer[pos++]);
|
||||||
Code[4]->AddEvent(t,data[1]=buffer[pos++]);
|
IPAP->AddEvent(t,data[1]=buffer[pos++]);
|
||||||
Code[5]->AddEvent(t,data[1]-data[0]);
|
PS->AddEvent(t,data[1]-data[0]);
|
||||||
break;
|
break;
|
||||||
case 0x04: // Pressure Pulse
|
case 0x04: // Pressure Pulse
|
||||||
if (!Code[6]) {
|
if (!PP) {
|
||||||
if (!(Code[6]=session->AddEventList(CPAP_PressurePulse,EVL_Event))) return false;
|
if (!(PP=session->AddEventList(CPAP_PressurePulse,EVL_Event))) return false;
|
||||||
}
|
}
|
||||||
Code[6]->AddEvent(t,buffer[pos++]);
|
PP->AddEvent(t,buffer[pos++]);
|
||||||
//qDebug() << hex << data[0];
|
|
||||||
break;
|
break;
|
||||||
case 0x05: // RERA
|
case 0x05: // RERA
|
||||||
data[0]=buffer[pos++];
|
data[0]=buffer[pos++];
|
||||||
tt=t-(qint64(data[0])*1000L);
|
tt=t-(qint64(data[0])*1000L);
|
||||||
if (!Code[7]) {
|
if (!RE) {
|
||||||
if (!(Code[7]=session->AddEventList(CPAP_RERA,EVL_Event))) return false;
|
if (!(RE=session->AddEventList(CPAP_RERA,EVL_Event))) return false;
|
||||||
}
|
}
|
||||||
Code[7]->AddEvent(tt,data[0]);
|
RE->AddEvent(tt,data[0]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x06: // Obstructive Apoanea
|
case 0x06: // Obstructive Apoanea
|
||||||
data[0]=buffer[pos++];
|
data[0]=buffer[pos++];
|
||||||
tt=t-(qint64(data[0])*1000L);
|
tt=t-(qint64(data[0])*1000L);
|
||||||
if (!Code[8]) {
|
OA->AddEvent(tt,data[0]);
|
||||||
if (!(Code[8]=session->AddEventList(CPAP_Obstructive,EVL_Event))) return false;
|
|
||||||
}
|
|
||||||
Code[8]->AddEvent(tt,data[0]);
|
|
||||||
break;
|
break;
|
||||||
case 0x07: // Clear Airway
|
case 0x07: // Clear Airway
|
||||||
data[0]=buffer[pos++];
|
data[0]=buffer[pos++];
|
||||||
tt=t-(qint64(data[0])*1000L);
|
tt=t-(qint64(data[0])*1000L);
|
||||||
if (!Code[9]) {
|
if (!CA) {
|
||||||
if (!(Code[9]=session->AddEventList(CPAP_ClearAirway,EVL_Event))) return false;
|
if (!(CA=session->AddEventList(CPAP_ClearAirway,EVL_Event))) return false;
|
||||||
}
|
}
|
||||||
Code[9]->AddEvent(tt,data[0]);
|
CA->AddEvent(tt,data[0]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x0a: // Hypopnea
|
case 0x0a: // Hypopnea
|
||||||
data[0]=buffer[pos++];
|
data[0]=buffer[pos++];
|
||||||
tt=t-(qint64(data[0])*1000L);
|
tt=t-(qint64(data[0])*1000L);
|
||||||
if (!Code[10]) {
|
HY->AddEvent(tt,data[0]);
|
||||||
if (!(Code[10]=session->AddEventList(CPAP_Hypopnea,EVL_Event))) return false;
|
|
||||||
}
|
|
||||||
Code[10]->AddEvent(tt,data[0]);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x0c: // Flow Limitation
|
case 0x0c: // Flow Limitation
|
||||||
data[0]=buffer[pos++];
|
data[0]=buffer[pos++];
|
||||||
tt=t-(qint64(data[0])*1000L);
|
tt=t-(qint64(data[0])*1000L);
|
||||||
if (!Code[11]) {
|
if (!FL) {
|
||||||
if (!(Code[11]=session->AddEventList(CPAP_FlowLimit,EVL_Event))) return false;
|
if (!(FL=session->AddEventList(CPAP_FlowLimit,EVL_Event))) return false;
|
||||||
}
|
}
|
||||||
Code[11]->AddEvent(tt,data[0]);
|
FL->AddEvent(tt,data[0]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x0b: // Hypopnea related code
|
case 0x0b: // Hypopnea related code
|
||||||
@ -949,26 +971,25 @@ bool PRS1Loader::Parse002(qint32 sequence, quint32 timestamp, unsigned char *buf
|
|||||||
// FIXME
|
// FIXME
|
||||||
Code[12]->AddEvent(t,data[0]);
|
Code[12]->AddEvent(t,data[0]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x0d: // Vibratory Snore
|
case 0x0d: // Vibratory Snore
|
||||||
if (!Code[13]) {
|
if (!VS) {
|
||||||
if (!(Code[13]=session->AddEventList(CPAP_VSnore,EVL_Event))) return false;
|
if (!(VS=session->AddEventList(CPAP_VSnore,EVL_Event))) return false;
|
||||||
}
|
}
|
||||||
Code[13]->AddEvent(t,0);
|
VS->AddEvent(t,0);
|
||||||
break;
|
break;
|
||||||
case 0x11: // Leak Rate & Snore Graphs
|
case 0x11: // Leak Rate & Snore Graphs
|
||||||
data[0]=buffer[pos++];
|
data[0]=buffer[pos++];
|
||||||
data[1]=buffer[pos++];
|
data[1]=buffer[pos++];
|
||||||
if (!Code[14]) {
|
|
||||||
if (!(Code[14]=session->AddEventList(CPAP_LeakTotal,EVL_Event))) return false;
|
LEAK->AddEvent(t,data[0]);
|
||||||
if (!(Code[15]=session->AddEventList(CPAP_Snore,EVL_Event))) return false;
|
SNORE->AddEvent(t,data[1]);
|
||||||
}
|
|
||||||
Code[14]->AddEvent(t,data[0]);
|
|
||||||
Code[15]->AddEvent(t,data[1]);
|
|
||||||
if (data[1]>0) {
|
if (data[1]>0) {
|
||||||
if (!Code[16]) {
|
if (!VS2) {
|
||||||
if (!(Code[16]=session->AddEventList(CPAP_VSnore2,EVL_Event))) return false;
|
if (!(VS2=session->AddEventList(CPAP_VSnore2,EVL_Event))) return false;
|
||||||
}
|
}
|
||||||
Code[16]->AddEvent(t,data[1]);
|
VS2->AddEvent(t,data[1]);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 0x0e: // Unknown
|
case 0x0e: // Unknown
|
||||||
@ -1002,10 +1023,7 @@ bool PRS1Loader::Parse002(qint32 sequence, quint32 timestamp, unsigned char *buf
|
|||||||
pos+=2;
|
pos+=2;
|
||||||
data[1]=buffer[pos++];
|
data[1]=buffer[pos++];
|
||||||
tt=t-qint64(data[1])*1000L;
|
tt=t-qint64(data[1])*1000L;
|
||||||
if (!Code[23]) {
|
CSR->AddEvent(tt,data[0]);
|
||||||
if (!(Code[23]=session->AddEventList(CPAP_CSR,EVL_Event))) return false;
|
|
||||||
}
|
|
||||||
Code[23]->AddEvent(tt,data[0]);
|
|
||||||
break;
|
break;
|
||||||
case 0x12: // Summary
|
case 0x12: // Summary
|
||||||
data[0]=buffer[pos++];
|
data[0]=buffer[pos++];
|
||||||
|
Loading…
Reference in New Issue
Block a user