Giter Site home page Giter Site logo

abougouffa / m2hpf Goto Github PK

View Code? Open in Web Editor NEW
5.0 3.0 0.0 85 KB

HPF - DT High Performance File Format high speed decoding library, aka. a library to read Delsys EMGworks *.hpf files

License: GNU Lesser General Public License v3.0

Modula-2 100.00%
hpf high-performance-file-format delsys emgworks modula-2

m2hpf's Introduction

m2hpf

HPF - DT High Performance File Format high speed decoding library (for the Modula-2 programming language)

The current version of m2hpf only support reading *.hpf files. It cannot be used to write files in HPF format.

This implementation is based on the DT HPF file format, which is described in a document I found some where on the internet entitled DT High Performance File Format Specification.

Copyrighted as:

DT High Performance File Format Specification
_______________________________
Document Number: 22760, Rev A
Copyright © 2007 Data Translation, Inc. All rights reserved.
_______________________________
Data Translation, Inc.
100 Locke Drive
Marlborough, MA 01752-1192, USA
Telephone (508) 481-3700
Home Page http://www.datatranslation.com/

The m2hpf library implements a slightly modified version of the format described in the document above, it has been written to support the actual format of Delsys EMGworks signals.

This library is made to provide quick data access, to be used in a real-time signal processing project. For example; using this library to implement a HPF to CSV file converter will be much more efficient than using the Delsys File Utility.

The library has been written in Modula-2 and it is published under the LGPL-3.0 license.

Compiling m2hpf

m2hpf has been tested on the ADW Modula-2 compiler on a Win 32-bit target.

The m2hpf is implemented using the Modula-2 ISO standard, but uses some ADW Modula-2 language extensions and the specific compiler directive <*/PACK*> in HPFFile.def.

For this implementation to work also with another ISO compliant compiler, you need to find an equivalent directive to <*/PACK*> for your compiler. You will need to modify the HPFFile.def to use the equivalent directive, and modify some ADW Modula-2 specific code, like in the hard-coded values in the CHUNK_ID enumeration.

For example, in GNU Modula-2, there is an equivalent <* bytealignment (x) *> pragma to implement the packed types. However, you still need to modify the code yourself, and find an alternative way to deal with the hard-coded enumerations issue.


THIS LIBRARY IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.

IF YOU WANT USE THIS LIBRARY IN TOUR PROJECT, YOU MAY NEED TO READ THE FILE FORMAT SPECS DOCUMENT, SPECIALLY THE STATEMENT ON PAGE 1:

All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of Data Translation, Inc.

Abdelhak Bougouffa 2019-2021

m2hpf's People

Contributors

abougouffa avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.