Calling all F&P Icon users!
Calling all F&P Icon users!
Hi,
I very much want to add support for the data capable F&P Icon series to the free, open-source CPAP review software "SleepyHead", which already supports ResMed, Philips Respironics and Intellipap machines. SleepyHead runs on Windows, Mac & Linux.
I discovered the nifty little USB sticks in your Icon's can be accessed via a drive letter in windows.. meaning this data is accessible.
I need a willing soul who has one of these data capable machines to share a zip of their F&P data with me so I can start to analyse the data format.
Please PM me if you can assist.. I promise you that any data you share will be anonymised, not shared with anyone else and deleted when done..
/Mark
I very much want to add support for the data capable F&P Icon series to the free, open-source CPAP review software "SleepyHead", which already supports ResMed, Philips Respironics and Intellipap machines. SleepyHead runs on Windows, Mac & Linux.
I discovered the nifty little USB sticks in your Icon's can be accessed via a drive letter in windows.. meaning this data is accessible.
I need a willing soul who has one of these data capable machines to share a zip of their F&P data with me so I can start to analyse the data format.
Please PM me if you can assist.. I promise you that any data you share will be anonymised, not shared with anyone else and deleted when done..
/Mark
_________________
Machine: ResMed AirSense™ 10 AutoSet™ CPAP Machine with HumidAir™ Heated Humidifier |
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear |
Humidifier: S9™ Series H5i™ Heated Humidifier with Climate Control |
Additional Comments: CMS50D+/F Oximeter, S9 VPAP Auto/Adapt, PRS1 Auto, Intellipap Auto, SleepyHead :) |
Author of the free, cross platform, open-source sleep tracking software SleepyHead.
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code
Re: Calling all F&P Icon users!
Sorry I can't get the data out of S8 smartcard.
I'm a Ubuntu Linux user. Maybe Sleepyhead is a good reason to buy any of the expensive resmed card readers.
Maybe you are thinking of a .deb package to make thing even easier. Thanks.
I'm a Ubuntu Linux user. Maybe Sleepyhead is a good reason to buy any of the expensive resmed card readers.
Maybe you are thinking of a .deb package to make thing even easier. Thanks.
_________________
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear |
Additional Comments: Diagnosed AHI ~40 / Titrated @ 10 / CPAP8 EPR 0 |
Re: Calling all F&P Icon users!
I'm starting to make a little sense of the ICON summary file format.. (SUM00##.FPH)
But what I really need to crack this open is a data set with matching printouts from the F&P software.
I'll keep tinkering and post what I discover here, but if anyone knows how to get access to such a report printout and the matching data set, I'd really like to know about it..
Cracking data formats is a lot like solving sodoku puzzles..
The file has a 0x200 (hex) byte header, mostly empty.. followed by repeating data blocks 0x1D bytes long representing each session.. The first 4 bytes of decoded data is a 32bit timestamp, stored in two (out of order) little endian words. The starting date epoch is 1st of January 2000, same as Intellipap.
Here is 3 lines extracted from the data block.. (can't copy and paste from the stupid hex editor, had to type them.. I'll figure out how to get a better extract later)
[timestamp], and the rest of the [numbers] appear to be pressures, multiplied by 10. (they are round numbers when converted to decimal)
The numbers in <> always appear equal to each other, with the one on the left being occasionally larger.
Potential Pressure values, stored the same format as Intellipap and PRS1 (* 10) format.
46=70
3c=60
a0=160
64=100
Some of the other values will represent session length (in minutes, seconds, or some other time unit), perhaps counts of obstructive, hypopnea, etc... maybe a leak summary or average figure. Maybe a humidifier or pressure relief setting.
Once these are discovered I can move onto the Details file structure, then the Flow waveform data..
But what I really need to crack this open is a data set with matching printouts from the F&P software.
I'll keep tinkering and post what I discover here, but if anyone knows how to get access to such a report printout and the matching data set, I'd really like to know about it..
Cracking data formats is a lot like solving sodoku puzzles..
The file has a 0x200 (hex) byte header, mostly empty.. followed by repeating data blocks 0x1D bytes long representing each session.. The first 4 bytes of decoded data is a 32bit timestamp, stored in two (out of order) little endian words. The starting date epoch is 1st of January 2000, same as Intellipap.
Here is 3 lines extracted from the data block.. (can't copy and paste from the stupid hex editor, had to type them.. I'll figure out how to get a better extract later)
Code: Select all
e6 16 a7 65 3f 3e 00 46 1f 03 00 25 00 21 01 46 46 00 02 17 00 72 00 00 3c a0 64 40 03
e7 16 f4 5e 01 01 00 46 1d 00 00 00 00 1d 00 46 46 00 00 00 00 00 00 00 3c a0 64 40 04
37 16 0b 63 03 03 00 46 1d 00 00 00 00 1d 00 46 46 00 00 00 00 00 00 00 3c a0 64 40 04
[37 16 0b 63] <03 03> 00 [46] 1d 00 00 00 00 1d 00 [46 46] 00 00 00 00 00 00 00 [3c a0 64] 40 04
The numbers in <> always appear equal to each other, with the one on the left being occasionally larger.
Potential Pressure values, stored the same format as Intellipap and PRS1 (* 10) format.
46=70
3c=60
a0=160
64=100
Some of the other values will represent session length (in minutes, seconds, or some other time unit), perhaps counts of obstructive, hypopnea, etc... maybe a leak summary or average figure. Maybe a humidifier or pressure relief setting.
Once these are discovered I can move onto the Details file structure, then the Flow waveform data..
_________________
Machine: ResMed AirSense™ 10 AutoSet™ CPAP Machine with HumidAir™ Heated Humidifier |
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear |
Humidifier: S9™ Series H5i™ Heated Humidifier with Climate Control |
Additional Comments: CMS50D+/F Oximeter, S9 VPAP Auto/Adapt, PRS1 Auto, Intellipap Auto, SleepyHead :) |
Author of the free, cross platform, open-source sleep tracking software SleepyHead.
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code
Re: Calling all F&P Icon users!
DETXXXX.fph files are rather well designed.. Each of these Details files is 64Kb, and the Icon creates a new file when there is no more space in the previous one..
Same 0x200 byte header, basically text.. giving the filename, machine serial number, etc..
Followed by a 0x800 byte index, consisting of repeating 7 byte codes, one for each session
[xx xx xx xx] [xx xx] [xx]
timestamp start recs
The index consists of timestamps word flipped order as summary, (2000/1/1 0:00:00 epoch)
start is the index position into the actual data, and recs is the count of records in this session.
(Each follows the next in sequence)
The data is the remainder of the file, and consists of one dump containing a 5 byte pattern.
The first byte is the pressure.
The second byte is most probably total leaks
The next three bytes are rather sparse... I'll have a better idea of what they are when I try to graph them..
I'm assuming these records are spaced equally apart.. (probably in crappy 5 minute chunks - curse you F&P!)
Will figure out how far apart when the length field is decode from the summary (if there is one, and this isn't simply an evil data format)
Ends in 0xFEFA, and zero padding for the remainder of the 64Kb block.
Very disappointingly, there appears to be NO obstructive/hypopnea/etc events recorded apart from what's in the summary, so the only event overlays will be ones detected by my code.. (which we all know isn't that great yet.. maybe one day it will get good) Plus maybe snore flags, etc... provided the data is recorded.
The AHI will still be accurate provided this information is stored in the summary file..
Just need to crack the length, and I can start writing the basic importer. To be honest, it's nearly done, I've been using SleepyHead as the platform to help crack this..(along with the hex editor)
Same 0x200 byte header, basically text.. giving the filename, machine serial number, etc..
Followed by a 0x800 byte index, consisting of repeating 7 byte codes, one for each session
[xx xx xx xx] [xx xx] [xx]
timestamp start recs
The index consists of timestamps word flipped order as summary, (2000/1/1 0:00:00 epoch)
start is the index position into the actual data, and recs is the count of records in this session.
(Each follows the next in sequence)
The data is the remainder of the file, and consists of one dump containing a 5 byte pattern.
The first byte is the pressure.
The second byte is most probably total leaks
The next three bytes are rather sparse... I'll have a better idea of what they are when I try to graph them..
I'm assuming these records are spaced equally apart.. (probably in crappy 5 minute chunks - curse you F&P!)
Will figure out how far apart when the length field is decode from the summary (if there is one, and this isn't simply an evil data format)
Ends in 0xFEFA, and zero padding for the remainder of the 64Kb block.
Very disappointingly, there appears to be NO obstructive/hypopnea/etc events recorded apart from what's in the summary, so the only event overlays will be ones detected by my code.. (which we all know isn't that great yet.. maybe one day it will get good) Plus maybe snore flags, etc... provided the data is recorded.
The AHI will still be accurate provided this information is stored in the summary file..
Just need to crack the length, and I can start writing the basic importer. To be honest, it's nearly done, I've been using SleepyHead as the platform to help crack this..(along with the hex editor)
_________________
Machine: ResMed AirSense™ 10 AutoSet™ CPAP Machine with HumidAir™ Heated Humidifier |
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear |
Humidifier: S9™ Series H5i™ Heated Humidifier with Climate Control |
Additional Comments: CMS50D+/F Oximeter, S9 VPAP Auto/Adapt, PRS1 Auto, Intellipap Auto, SleepyHead :) |
Author of the free, cross platform, open-source sleep tracking software SleepyHead.
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code
Re: Calling all F&P Icon users!
Are you familiar with the command "od"? Stands for Octal Dump, but the -x flag gives hex output. You can probably see the applicable addresses in your hex editor, and with them, you can use more flags to restrict the output to a specified byte offset and length.jedimark wrote:Here is 3 lines extracted from the data block.. (can't copy and paste from the stupid hex editor, had to type them.. I'll figure out how to get a better extract later)
_________________
Mask: AirFit™ P10 For Her Nasal Pillow CPAP Mask with Headgear |
Additional Comments: Software: SleepyHead, loosely following HEAD |
Re: Calling all F&P Icon users!
I usually use hexdump on the console for that stuff.. ghex is my current favourite hacking tool since they wrecked bless..tetragon wrote:Are you familiar with the command "od"? Stands for Octal Dump, but the -x flag gives hex output. You can probably see the applicable addresses in your hex editor, and with them, you can use more flags to restrict the output to a specified byte offset and length.jedimark wrote:Here is 3 lines extracted from the data block.. (can't copy and paste from the stupid hex editor, had to type them.. I'll figure out how to get a better extract later)
But "od" is rather darn useful. Just used it to extract a bit more of the Details data block below..
Thanks heaps for the reminder.. I had completely forgotten about it.
Hey, you might be able to give an opinion on the timestamps.. they aren't making sense to me.. I thought I had them sorted, but something's not right...
I'm very sure it's the first 4 bytes of each line, because they match up correctly with the Summary files and Details file index..
e6 16 a7 65
e7 16 f4 5e
e7 16 0b 63
Eg, unravelling the top one as: 16 e6 65 a7
I've tried flipping byte and bit orders around..
The details files indexes 16bit values are definitely little endian, (they add up, and are in sequence)
Not sure if it's another type of date encoding.. Mostly I've been tinkering with seconds since various epochs..
The dates seem right, but the times don't.. The sessions seem to be stacking up funny in the Session Times chart.
Going slightly bonkers.. I just know it's probably going to be blindingly obvious..
I've got the pressure, leaks, snore, etc.. loading, so the structures are nailed.. it's just the timestamps are screwy..
Code: Select all
0000000 e6 16 a7 65 3f 3e 00 46 1f 03 00 25 00 21 01 46 46 00 02 17 00 72 00 00 3c a0 64 40 03
0000035 e7 16 f4 5e 01 01 00 46 1d 00 00 00 00 1d 00 46 46 00 00 00 00 00 00 00 3c a0 64 40 04
0000072 e7 16 0b 63 03 03 00 46 1d 00 00 00 00 1d 00 46 46 00 00 00 00 00 00 00 3c a0 64 40 04
0000127 e7 16 c8 65 29 29 00 46 20 04 00 7c 00 21 00 46 46 00 02 33 00 67 00 00 3c a0 64 40 04
0000164 e7 16 49 88 0c 0c 00 46 1d 08 00 21 00 20 00 46 46 00 01 04 00 70 00 00 3c a0 64 40 04
0000221 e8 16 c8 65 15 15 00 46 20 00 00 00 00 2d 00 46 46 00 00 00 00 00 00 00 3c a0 64 40 05
0000256 e8 16 80 78 1d 1d 00 46 27 25 00 a8 00 38 00 46 46 00 0b 31 00 95 00 01 3c a0 64 40 05
0000313 e9 16 92 5b 09 09 00 46 1e 00 00 00 00 1f 00 46 46 00 00 00 00 00 00 00 3c a0 64 40 04
0000350 eb 16 e2 5b 18 18 00 46 1c 00 00 10 00 1d 00 46 46 00 00 04 00 00 00 00 3c a0 64 40 04
0000405 ed 16 77 5b 01 01 00 46 21 00 00 00 00 21 00 46 46 00 00 00 00 00 00 00 3c a0 64 40 04
0000442 ed 16 f2 62 1d 1d 00 46 20 00 00 03 00 23 00 46 46 00 00 01 00 00 00 00 3c a0 64 40 04
0000477 ed 16 63 87 1b 1b 00 46 23 03 00 16 00 25 00 46 46 00 01 06 00 69 00 00 3c a0 64 40 04
0000534 ee 16 53 68 01 01 00 46 20 00 00 00 00 20 00 46 46 00 00 00 00 00 00 00 3c a0 64 40 05
0000571 ee 16 d0 69 0b 0b 00 46 20 00 00 00 00 21 00 46 46 00 00 00 00 00 00 00 3c a0 64 40 05
0000626 ef 16 18 61 01 01 00 46 1f 00 00 00 00 1f 00 46 46 00 00 00 00 00 00 00 3c a0 64 40 05
0000663 ef 16 80 62 27 27 00 46 21 07 00 38 00 25 00 46 46 00 03 16 00 68 00 00 3c a0 64 40 05
0000720 f0 16 e1 64 08 08 00 46 1e 00 00 0c 00 20 00 46 46 00 00 01 00 00 00 00 3c a0 64 40 05
0000755 f1 16 89 55 01 01 00 46 1e 00 00 00 00 1e 00 46 46 00 00 00 00 00 00 00 3c a0 64 40 04
0001012 f1 16 60 58 04 04 00 46 1d 00 00 00 00 1d 00 46 46 00 00 00 00 00 00 00 3c a0 64 40 04
0001047 f1 16 34 5c 08 08 00 46 1e 00 00 0c 00 1f 00 46 46 00 00 01 00 00 00 00 3c a0 64 40 04
0001104 f1 16 6f 63 15 15 00 46 1f 00 00 00 00 1f 00 46 46 00 00 00 00 00 00 00 3c a0 64 40 04
0001141 f2 16 88 5b 0c 0c 00 46 1f 00 00 00 00 20 00 46 46 00 00 00 00 00 00 00 3c a0 64 40 05
0001176 f4 16 99 5c 05 05 00 46 29 00 00 00 00 2a 00 46 46 00 00 00 00 00 00 00 3c a0 64 40 05
0001233 f5 16 9d 5e 04 04 00 46 2a 00 00 00 00 2c 00 46 46 00 00 00 00 00 00 00 3c a0 64 40 04
0001270 f5 16 6f 63 0a 0a 00 46 29 00 00 00 00 36 00 46 46 00 00 00 00 00 00 00 3c a0 64 40 04
0001325 f6 16 a3 64 05 05 00 46 31 00 00 14 00 39 00 46 46 00 00 01 00 00 00 00 3c a0 64 40 04
0001362 f6 16 c0 69 08 08 00 46 2c 00 00 00 00 3b 00 46 46 00 00 00 00 00 00 00 3c a0 64 40 04
0001417 fb 16 1d 5e 03 03 00 46 1c 00 00 00 00 1e 00 46 46 00 00 00 00 00 00 00 3c a0 64 40 04
0001454 fb 16 09 62 04 04 00 46 1a 00 00 00 00 1b 00 46 46 00 00 00 00 00 00 00 3c a0 64 40 04
0001511 03 17 03 67 11 11 00 46 2a 00 00 0b 00 30 00 46 46 00 00 02 00 00 00 00 3c a0 64 40 04
0001546 03 17 ee 75 1c 1c 00 46 29 00 00 03 00 33 00 46 46 00 00 01 00 00 00 00 3c a0 64 40 04
0001603 04 17 a1 61 02 02 00 46 2c 00 00 00 00 2e 00 46 46 00 00 00 00 00 00 00 3c a0 64 40 04
0001640 04 17 2e 64 0f 0f 00 46 30 00 00 00 00 35 00 46 46 00 00 00 00 00 00 00 3c a0 64 40 04
_________________
Machine: ResMed AirSense™ 10 AutoSet™ CPAP Machine with HumidAir™ Heated Humidifier |
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear |
Humidifier: S9™ Series H5i™ Heated Humidifier with Climate Control |
Additional Comments: CMS50D+/F Oximeter, S9 VPAP Auto/Adapt, PRS1 Auto, Intellipap Auto, SleepyHead :) |
Author of the free, cross platform, open-source sleep tracking software SleepyHead.
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code
Re: Calling all F&P Icon users!
Worked the time format out..
Two 16byte words..
The first is the day number since a 1995/1/1, and the second one is the time seconds, but needs to be multiplied by 1.5.
Each division in the details file is 5 minutes..
It all adds up now..
I now have (very) basic F&P Icon loader support
Two 16byte words..
The first is the day number since a 1995/1/1, and the second one is the time seconds, but needs to be multiplied by 1.5.
Each division in the details file is 5 minutes..
It all adds up now..
I now have (very) basic F&P Icon loader support
_________________
Machine: ResMed AirSense™ 10 AutoSet™ CPAP Machine with HumidAir™ Heated Humidifier |
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear |
Humidifier: S9™ Series H5i™ Heated Humidifier with Climate Control |
Additional Comments: CMS50D+/F Oximeter, S9 VPAP Auto/Adapt, PRS1 Auto, Intellipap Auto, SleepyHead :) |
Author of the free, cross platform, open-source sleep tracking software SleepyHead.
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code
Re: Calling all F&P Icon users!
I have the InfoSmart software and it requested a start date when I set up the device in the software. The device itself doesn't have a date feature that I have found. The files always have the same modified date no matter what. I think it only infers the date based on the start date you give the InfoSmart software.
I am excited to see you working on the data format!
I am excited to see you working on the data format!
_________________
Mask: Mirage™ FX Nasal CPAP Mask with Headgear |
Additional Comments: PR FullLife FFM as backup, SleepyHead v0.92 for Mac |
Re: Calling all F&P Icon users!
Any work on the FLW000#.FPH files? I am guessing they are the wake up 'music' files but I might be wrong.
_________________
Mask: Mirage™ FX Nasal CPAP Mask with Headgear |
Additional Comments: PR FullLife FFM as backup, SleepyHead v0.92 for Mac |
Re: Calling all F&P Icon users!
I used to use hexdump, but then I started working on BSD boxes, instead of just Linux. These days, I use combinations of od, dd, strings, vim, and perl.jedimark wrote:I usually use hexdump on the console for that stuff.. ghex is my current favourite hacking tool since they wrecked bless..
_________________
Mask: AirFit™ P10 For Her Nasal Pillow CPAP Mask with Headgear |
Additional Comments: Software: SleepyHead, loosely following HEAD |
Re: Calling all F&P Icon users!
I have the basics nearly working.. I have commited the initial importer to GIT. It's missing quite a bit of stuff, but is a good start.KrisasMan wrote:I have the InfoSmart software and it requested a start date when I set up the device in the software. The device itself doesn't have a date feature that I have found. The files always have the same modified date no matter what. I think it only infers the date based on the start date you give the InfoSmart software.
I am excited to see you working on the data format!
What I really need is a report/screenshot/PDF of F&P's software, and a copy of the same data used to generate it, so I can tell for sure which fields are what in regards Obstructive, Hypopnea and Flow limitation events.. At the moment I'm just guessing what's what.. (There are only 3 fields, so it's not that difficult)
The machine only has a 5 minute accuracy in it's detailed data, so I'm not sure what the numbers mean.. Surely it's capable of detecting more than one event per 5 minutes.. unless it just counts time in events..? If I view the Obstructive/Hypopneas/etc data fields as event counts for that 5 minute window, it gives very wrong looking figures..
There won't be a way to overlay this data over the flow waveform, as the 5 minute window makes it too rough to be useful.
_________________
Machine: ResMed AirSense™ 10 AutoSet™ CPAP Machine with HumidAir™ Heated Humidifier |
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear |
Humidifier: S9™ Series H5i™ Heated Humidifier with Climate Control |
Additional Comments: CMS50D+/F Oximeter, S9 VPAP Auto/Adapt, PRS1 Auto, Intellipap Auto, SleepyHead :) |
Author of the free, cross platform, open-source sleep tracking software SleepyHead.
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code
Re: Calling all F&P Icon users!
Here is a little teaser for users of F&P Icon machines..
Event's are probably mixed up here, and I still need to compare against the F&P reports to finish/verify the AHI calcs.
There is still plenty more to do..
Summary data still needs to be interpreted, Flow waveform still needs to be parsed.. Settings need to be read..
Daily View (Flow limitation graph is out of view)

Overview Screen (Pressure, Total Leaks, Peak AHI and Sessions charts are out of view)

Event's are probably mixed up here, and I still need to compare against the F&P reports to finish/verify the AHI calcs.
There is still plenty more to do..
Summary data still needs to be interpreted, Flow waveform still needs to be parsed.. Settings need to be read..
Daily View (Flow limitation graph is out of view)

Overview Screen (Pressure, Total Leaks, Peak AHI and Sessions charts are out of view)

_________________
Machine: ResMed AirSense™ 10 AutoSet™ CPAP Machine with HumidAir™ Heated Humidifier |
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear |
Humidifier: S9™ Series H5i™ Heated Humidifier with Climate Control |
Additional Comments: CMS50D+/F Oximeter, S9 VPAP Auto/Adapt, PRS1 Auto, Intellipap Auto, SleepyHead :) |
Author of the free, cross platform, open-source sleep tracking software SleepyHead.
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code
Re: Calling all F&P Icon users!
Awesome work JediMark. Can't wait till it's available. Hey, this link gives some screenshots of the F&P data report - viewtopic/t72666/viewtopic.php?f=1&t=71 ... on#p662378
Is this what you are after?
Is this what you are after?
_________________
Mask: AirFit™ P10 Nasal Pillow CPAP Mask with Headgear |
Humidifier: S9™ Series H5i™ Heated Humidifier with Climate Control |
Additional Comments: SleepyHead software for Mac |
Re: Calling all F&P Icon users!
I've got the data I need now, and a printout to compare it to.
Date format is still not right damnit.. It's an evil binary packed format.. Frustratement..
Worked out heaps of other stuff already though..
Date format is still not right damnit.. It's an evil binary packed format.. Frustratement..
Worked out heaps of other stuff already though..
_________________
Machine: ResMed AirSense™ 10 AutoSet™ CPAP Machine with HumidAir™ Heated Humidifier |
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear |
Humidifier: S9™ Series H5i™ Heated Humidifier with Climate Control |
Additional Comments: CMS50D+/F Oximeter, S9 VPAP Auto/Adapt, PRS1 Auto, Intellipap Auto, SleepyHead :) |
Author of the free, cross platform, open-source sleep tracking software SleepyHead.
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code
Re: Calling all F&P Icon users!
Okay, I finally nailed the TimeStamp fields properly. It's binary packed..
For once I have microsoft to thank... basically ripped of their idea..
http://msdn.microsoft.com/en-us/library ... 71%29.aspx
But the bitfields are reversed, and years are based from year 2000 instead of 1980..
Summary file data block breakdown:
0x0000 e6 16 a7 65 // Timestamp
0x0004 3f // Running Time (in 6 minute steps)
0x0005 3e // Usage Time (in 6 minute steps... multiply these by 360 to get session length in seconds)
0x0006 00 // ??Ramp time??
0x0007 46 // 90% pressure? in cpap mode = Lo & Hi *10
0x0008 1f //
0x0009 03 //
0x000a 00
0x000b 25
0x000c 00
0x000d 21 // 90% Leak value.. (They _interpolate_ the 90% values between sessions..)
0x000e 01
0x000f 46 // Pressure Lo *10
0x0010 46 // Pressure Hi *10
0x0011 00
0x0012 02 // Apnea event count
0x0013 17 // Hypopnea event count
0x0014 00 // Flow Limitation event count
0x0015 72
0x0016 00
0x0017 00
0x0018 3c
0x0019 a0
0x001a 64
0x001b 40
0x001c 03 // Humidifier setting
timestamp
Details file segments are in groups of 3 for each index (so spaced 2 minutes apart)
I have the importer ready for testing and matching InfoSmart reports... sans Flow Waveform, which is next on the list..
Ie, any brave testers with the development software setup can play with it already..
For once I have microsoft to thank... basically ripped of their idea..
http://msdn.microsoft.com/en-us/library ... 71%29.aspx
But the bitfields are reversed, and years are based from year 2000 instead of 1980..
Summary file data block breakdown:
0x0000 e6 16 a7 65 // Timestamp
0x0004 3f // Running Time (in 6 minute steps)
0x0005 3e // Usage Time (in 6 minute steps... multiply these by 360 to get session length in seconds)
0x0006 00 // ??Ramp time??
0x0007 46 // 90% pressure? in cpap mode = Lo & Hi *10
0x0008 1f //
0x0009 03 //
0x000a 00
0x000b 25
0x000c 00
0x000d 21 // 90% Leak value.. (They _interpolate_ the 90% values between sessions..)
0x000e 01
0x000f 46 // Pressure Lo *10
0x0010 46 // Pressure Hi *10
0x0011 00
0x0012 02 // Apnea event count
0x0013 17 // Hypopnea event count
0x0014 00 // Flow Limitation event count
0x0015 72
0x0016 00
0x0017 00
0x0018 3c
0x0019 a0
0x001a 64
0x001b 40
0x001c 03 // Humidifier setting
timestamp
Details file segments are in groups of 3 for each index (so spaced 2 minutes apart)
I have the importer ready for testing and matching InfoSmart reports... sans Flow Waveform, which is next on the list..
Ie, any brave testers with the development software setup can play with it already..
_________________
Machine: ResMed AirSense™ 10 AutoSet™ CPAP Machine with HumidAir™ Heated Humidifier |
Mask: Swift™ FX Nasal Pillow CPAP Mask with Headgear |
Humidifier: S9™ Series H5i™ Heated Humidifier with Climate Control |
Additional Comments: CMS50D+/F Oximeter, S9 VPAP Auto/Adapt, PRS1 Auto, Intellipap Auto, SleepyHead :) |
Author of the free, cross platform, open-source sleep tracking software SleepyHead.
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code
Download http://sleepyhead.jedimark.net
Source Code http://gitlab.com/sleepyhead/sleepyhead-code