Reverse Engineering

General Discussion on any topic relating to CPAP and/or Sleep Apnea.
camperroger
Posts: 5
Joined: Fri Feb 26, 2010 9:16 am

Reverse Engineering

Post by camperroger » Fri Feb 26, 2010 9:43 am

I have the PR System One APAP and I'd like to see my progress everyday, but i can't because there is no software avaliable...

So, i decided to do some reverse engineering. I'm about 30% done. Is everyone else doing the same ?


And would like to know, the people who bought this machine isn't tracking the own data ? How are you surviving ?

User avatar
blakepro
Posts: 507
Joined: Thu Oct 08, 2009 1:26 pm
Location: Utah

Re: Reverse Engineering

Post by blakepro » Fri Feb 26, 2010 10:39 am

camperroger wrote:I have the PR System One APAP and I'd like to see my progress everyday, but i can't because there is no software avaliable...

So, i decided to do some reverse engineering. I'm about 30% done. Is everyone else doing the same ?


And would like to know, the people who bought this machine isn't tracking the own data ? How are you surviving ?
Software is out there. Its Encore Pro 2.2 and if you look hard enough you can find it. I know several people here have it.

That being said, I think its very interesting to think of the possiblities to have the data free from EP2.2 and I think if you are successful it would alow for even better reporting capabilities/importing into other databases like excel etc.

User avatar
blakepro
Posts: 507
Joined: Thu Oct 08, 2009 1:26 pm
Location: Utah

Re: Reverse Engineering

Post by blakepro » Mon Mar 01, 2010 11:52 am

I would be interested to hear of any progress or advancement you have made on this.

You might be able to expedite your progress by loading the data into EP 2.2 and then comparing the data to what you have already figured out from the Reverse Engineering you have been doing.

User avatar
DreamStalker
Posts: 7509
Joined: Mon Aug 07, 2006 9:58 am
Location: Nowhere & Everywhere At Once

Re: Reverse Engineering

Post by DreamStalker » Mon Mar 01, 2010 12:35 pm

camperroger wrote:I have the PR System One APAP and I'd like to see my progress everyday, but i can't because there is no software avaliable...

So, i decided to do some reverse engineering. I'm about 30% done. Is everyone else doing the same ?


And would like to know, the people who bought this machine isn't tracking the own data ? How are you surviving ?
What are you doing that is 30% done?
President-pretender, J. Biden, said "the DNC has built the largest voter fraud organization in US history". Too bad they didn’t build the smartest voter fraud organization and got caught.

User avatar
GumbyCT
Posts: 5778
Joined: Fri Sep 14, 2007 6:22 pm
Location: CT
Contact:

Re: Reverse Engineering

Post by GumbyCT » Mon Mar 01, 2010 12:53 pm

camperroger wrote:I have the PR System One APAP and I'd like to see my progress everyday, but i can't because there is no software avaliable...

So, i decided to do some reverse engineering.
I think that is loooong over due. I like the way you think !!!

_________________
Humidifier: HC150 Heated Humidifier With Hose, 2 Chambers and Stand
Additional Comments: New users can't remember they can't remember YET!
BeganCPAP31Jan2007;AHI<0.5
I have no doubt, how I sleep affects every waking moment.
I am making progress-NOW I remember that I can't remember
;)
If this isn’t rocket science why are there so many spaceshots?
Be your own healthcare advocate!

User avatar
Doze
Posts: 36
Joined: Thu Nov 12, 2009 1:22 pm

Re: Reverse Engineering

Post by Doze » Tue Mar 02, 2010 1:42 am

DreamStalker wrote:
camperroger wrote:So, i decided to do some reverse engineering. I'm about 30% done. Is everyone else doing the same ?
What are you doing that is 30% done?
Count me in also as quite curious. Regarding what you're doing, and how you've figured that percentage.

I was also quite interested in 'interpreting' the data written to the three data files per session. I came to some very quick assumptions about the purpose and content of each of those files based on the various file sizes in comparison to each other and to prior sessions, as well as the atime ctime and mtime properties. It's clear that the .005 file is written continuously during a session and that the .001 and .002 are written immediately as a session ends. It's quite obvious too that the .005 contains most or all of the actual "data", thought that's assertion and not fact. I figure the .001 file is probably a session summary that the machine uses for its' on-screen compliance numbers and the 7/30 day averages. The .002 file is either used similarly as .001, or is (more likely) the index/key file for the data in the .005 file. Focusing on the .005 file with the data, I wrote some quick perl scripts to help me find a possible delimiter, sorting though and counting candidate sequences from hex/oct/bin dumps of the .005 file (sometimes the .002 file as well). I was generally looking for a delimiter to 'count' something very close to the exact number of minutes or seconds in a given session I was evaluating, but somehow I'd find more association to 2/3 of the expected value. Never came to any solid conclusions on that.

Then I found EP 2.2 and it just didn't seem worth banging my head against anymore. Saw the level of detail in the waveform report and realized I'd possibly been looking a tad off-scale anyway. If anyone has made significant progress in the data interpretation though, I'd be interested in knowing about that progress and would be willing to help out as I can.

_________________
Mask: Mirage Quattro™ Full Face CPAP Mask with Headgear
Additional Comments: trying Swift LT recently

User avatar
blakepro
Posts: 507
Joined: Thu Oct 08, 2009 1:26 pm
Location: Utah

Re: Reverse Engineering

Post by blakepro » Tue Mar 02, 2010 11:33 am

Interesting post doze.

Sounds like you were making some good progress.

While decoding the data on the card directly is very interesting, I wonder if you might be able to make a big breakthrough by doing a fresh instal of EP 2.2, importing the data off your SD card, and then looking at the SQL database to compare what it put in there with what is in the card...

I dont have any idea of how to do what you guys are doing, and you may have already thought of that... I just thought I would throw it out there.

User avatar
Tielman
Posts: 188
Joined: Wed Jan 06, 2010 11:06 am
Location: Orlando, Fl.
Contact:

Re: Reverse Engineering

Post by Tielman » Tue Mar 02, 2010 12:21 pm

blakepro wrote:looking at the SQL database to compare what it put in there with what is in the card...
You may be fascinated to learn (or not) that most of the raw data is NOT imported into SQL, but stays in the binary format blobs stored separately from the SQL database. These binary files don't seem to have a clear format, and that's a lot of the issue here. If they had a format I could put something together quickly, but without it I've not had the time to try and determine what the format is......

As a computer nerd for over 25 years, I can tell you with certainty that Encore Pro was contracted by Respironics and put together at the cheapest and simplest cost possible by a third party vendor. I'm not saying it's bad, just that there is no incentive to do any better, especially with a limited audience.

_________________
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear
Additional Comments: Pressure 11.5 cm, Cflex off, Humidity off, or 1 to 2

User avatar
Uncle_Bob
Posts: 2777
Joined: Tue Feb 24, 2009 12:10 pm
Location: Arizona

Re: Reverse Engineering

Post by Uncle_Bob » Tue Mar 02, 2010 2:36 pm

camperroger wrote:I have the PR System One APAP and I'd like to see my progress everyday, but i can't because there is no software avaliable...

So, i decided to do some reverse engineering. I'm about 30% done. Is everyone else doing the same ?


And would like to know, the people who bought this machine isn't tracking the own data ? How are you surviving ?
If you are doing what i think you are doing then I wanted to let you know there is a yahoo group called wide awake programmers. They are figuring out the file formats for each manufacturer and are trying to develop some open source software.

User avatar
GumbyCT
Posts: 5778
Joined: Fri Sep 14, 2007 6:22 pm
Location: CT
Contact:

Re: Reverse Engineering

Post by GumbyCT » Tue Mar 02, 2010 2:41 pm

With all the help here - can someone explain just how the data is stored on the card? Specifically, how & why would a session going over 8hrs preempt the daily detailed data but still manage to show up in compliance side - meaning the daily hours of use data still appears?

This appears to be the case with M-series with some firmware versions and has been written about by many who have called it "Missing Data".

Any help? Thoughts?

_________________
Humidifier: HC150 Heated Humidifier With Hose, 2 Chambers and Stand
Additional Comments: New users can't remember they can't remember YET!
BeganCPAP31Jan2007;AHI<0.5
I have no doubt, how I sleep affects every waking moment.
I am making progress-NOW I remember that I can't remember
;)
If this isn’t rocket science why are there so many spaceshots?
Be your own healthcare advocate!

User avatar
Tielman
Posts: 188
Joined: Wed Jan 06, 2010 11:06 am
Location: Orlando, Fl.
Contact:

Re: Reverse Engineering

Post by Tielman » Tue Mar 02, 2010 4:21 pm

Uncle_Bob wrote:If you are doing what i think you are doing then I wanted to let you know there is a yahoo group called wide awake programmers. They are figuring out the file formats for each manufacturer and are trying to develop some open source software.
Unfortunately, nobody's minding the store over there, and there isn't even much beyond the 'lets get started" stage.

I'm still looking into it, but it'll take some time...

_________________
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear
Additional Comments: Pressure 11.5 cm, Cflex off, Humidity off, or 1 to 2

User avatar
Tielman
Posts: 188
Joined: Wed Jan 06, 2010 11:06 am
Location: Orlando, Fl.
Contact:

Re: Reverse Engineering

Post by Tielman » Tue Mar 02, 2010 4:27 pm

GumbyCT wrote:With all the help here - can someone explain just how the data is stored on the card? Specifically, how & why would a session going over 8hrs preempt the daily detailed data but still manage to show up in compliance side - meaning the daily hours of use data still appears?

This appears to be the case with M-series with some firmware versions and has been written about by many who have called it "Missing Data".

Any help? Thoughts?

Yes and no. There are two types of binary data. I'm assuming one is the compliance data, and one's the detailed data based upon what it looks like. I could only theorize that your firmware doesn't write the detailed data out correctly, and the software doesn't do any error checking, but, again, that's a theory. That's also assuming that the GMT data is set correctly.

The Yes comes in that the GMT offset is very important, and it might be that your GMT offset is not set correctly. I noticed that my detailed data kept starting at 2:00 am and the like. Finally went into the Providers menu and found that the GMT offset was not set, changed it, and all my detailed data is now there. Also found that the DME only turned on CFLEX, and not CFLEX+ (nice!), but that's another story for another day.

_________________
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear
Additional Comments: Pressure 11.5 cm, Cflex off, Humidity off, or 1 to 2

User avatar
DreamStalker
Posts: 7509
Joined: Mon Aug 07, 2006 9:58 am
Location: Nowhere & Everywhere At Once

Re: Reverse Engineering

Post by DreamStalker » Tue Mar 02, 2010 10:09 pm

Tielman wrote:
blakepro wrote:looking at the SQL database to compare what it put in there with what is in the card...
You may be fascinated to learn (or not) that most of the raw data is NOT imported into SQL, but stays in the binary format blobs stored separately from the SQL database. These binary files don't seem to have a clear format, and that's a lot of the issue here. If they had a format I could put something together quickly, but without it I've not had the time to try and determine what the format is......

As a computer nerd for over 25 years, I can tell you with certainty that Encore Pro was contracted by Respironics and put together at the cheapest and simplest cost possible by a third party vendor. I'm not saying it's bad, just that there is no incentive to do any better, especially with a limited audience.

If the binary files are not going into SQL, then they are of little use since all the data we need to see is the data that makes it into the SQL database. So no need to waste time decoding the blobs.

I have considered trying to bypass Encore Pro software myself but never have found the time. I am not a computer nerd but do have some experience with reading binary files using PERL. I was hoping some computer nerd would beat me to it so I wouldn't have to
President-pretender, J. Biden, said "the DNC has built the largest voter fraud organization in US history". Too bad they didn’t build the smartest voter fraud organization and got caught.

User avatar
Tielman
Posts: 188
Joined: Wed Jan 06, 2010 11:06 am
Location: Orlando, Fl.
Contact:

Re: Reverse Engineering

Post by Tielman » Wed Mar 03, 2010 10:06 am

DreamStalker wrote:If the binary files are not going into SQL, then they are of little use since all the data we need to see is the data that makes it into the SQL database. So no need to waste time decoding the blobs.
No go. The only thing in the database is pointers to the binary blobs (SQL 2008 filestreams actually, but they are similar to the old binary blobs anyway) out on the file system.

One will have to reverse engineer the binary blobs to read the raw data.

_________________
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear
Additional Comments: Pressure 11.5 cm, Cflex off, Humidity off, or 1 to 2

camperroger
Posts: 5
Joined: Fri Feb 26, 2010 9:16 am

Re: Reverse Engineering

Post by camperroger » Fri Mar 05, 2010 3:24 am

Sorry guys. There is a lot of more post than the last time i visited here.

Well, there's 2 new things to change the course of the events:

1) I finally put my hands on the Encorepro 2.2, so, probably I will stop doing pure R.E. and will to try some direct reading from the dlls. That was about 1 week ago.

2) I'm experiencing some strange behavior. My machine is resetting when I hit the button to start the therapy, then, some few resets later it starts to work. But, sometimes, i don't know if just get used to the 6.5 cm h2o or if just the blower is weaker sometimes. ( My firmware is 1.07, is anyone else experiencing the same ? )


Some explanation about the 3 files:
001: Current Configuration of the session
002: Don't know yet precisely, but probably is all about the .005 file
003: Anyone was able to produce this file ?
004: Information about the last file (appears when you put a blank SD Card)
005: The actual data is written every 2 seconds, in blocks of 5 bytes following the structure:
Header + 1 byte code + DATA + 2 byte ending code (this should explain the "2/3 of the expected value")

Everything the machine shows to your (in the case of Pr System One Auto) is stored in its internal memory.


@Uncle_Bob, Thanks about about that information. See you there!

I said 30%, but it's probably less. Anyway, since now I have the Encorepro 2.2 I hope some meaningful progress soon.


One more question, who was able to run Encorepro 2.2 on Win 7 ?