Metadata-Version: 2.1
Name: binfilepy
Version: 0.1.1
Summary: Package for read/write binary file (.adibin format)
Home-page: https://github.com/hulab-ucsf/binfilepy.git
Author: Peter Li@HuLab UCSF
Author-email: peter0306@gmail.com
License: UNKNOWN
Keywords: ECG EKG binary chart adibin
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4
Description-Content-Type: text/markdown

# binfilepy

Software library to read and write binary file (.adibin format).

## Example to write a binary file:
```
from binfilepy import BinFile
from binfilepy import CFWBINARY
from binfilepy import CFWBCHANNEL

with BinFile(filename, "w") as f:
    header = CFWBINARY()
    header.setValue(1.0 / 240.0, 2019, 1, 28, 8, 30, 0.0, 0.0, 2, 0)
    f.setHeader(header)
    channel1 = CFWBCHANNEL()
    channel1.setValue("I", "mmHg", 1.0, 0.0)
    f.addChannel(channel1)
    channel2 = CFWBCHANNEL("II", "mmHg", 1.0, 0.0)
    f.addChannel(channel2)
    chanData = []
    d1 = [1, 2, 3, 4, 5, 6, 7, 8, 8, 7, 6, 5, 4, 3, 2, 1]
    d2 = [8, 7, 6, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5, 6, 7, 8]
    chanData.append(data1)
    chanData.append(data2)
    f.writeHeader()
    f.writeChannelData(chanData)
    f.updateSamplesPerChannel(16, True)
```

## Example to read a binary file:
```
from binfilepy import BinFile

with BinFile(filename, "r") as f:
    # You must read header first before you can read channel data
    f.readHeader()
    # readChannelData() supports reading in random location (Ex: Read 10 secs of data at 1 min mark)
    data = f.readChannelData(offset=60, length=10, useSecForOffset=True, useSecForLength=True)
```

## File open mode
Currently, there are three modes to open a file:
- "w": For writing to a new file.  You need to make sure the file doesn't exist.
- "r": For reading from an existing file.  You need to make sure the file exists.
- "r+": For appending data to an existing file.  You need to make sure the file exists.


