Skip to content

TsaiHao/VRParser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VRParser

目的

本仓库是应用于康复工程实验室VR程序保存的二进制数据的解析和转码。

结构

parser

此文件夹下存放库的核心功能。

include

此文件夹包含dllmain.h头文件,parser库所有对外暴露函数签名都声明于此。在matlab中直接引用libparser需要输入此头文件。

source

此文件夹包含两部分,一部分utils文件夹包含库的一些辅助功能的纯C++实现。另外一部分是dllmain的代码的实现。

wrapper

此文件夹主要包含库的对其他语言的接口的包装,以及一些实例代码。

matlab文件夹包含用于matlab的接口,文件夹中的文件主要是纯matlab实现的功能,在functions中包含Matlab Mex封装的类接口,其功能都在文件名中有体现,编译这些代码的方式如下,以GetMarkers.cpp为例:

打开Matlab,导航至matlab下,在命令行键入:

mex functions/GetMarkers.cpp -I../../source -lparser
markers = GetMarkers('marker.txt');

test

此文件夹下存放测试parser的代码。可选择编译。

示例

下面的代码用于转码VR实验的eeg数据:

const char* root = "/home/zaijun/Research/vr/data";
const char* outDir = "/home/zaijun/Research/vr/transcode";

vector<int> subs{ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
vector<string> vibs{ "on", "off" };
vector<int> tris{ 0, 1, 2 };
for (int s : subs) {
    for (string& v : vibs) {
        for (int t : tris) {
            string indir = getDir(root, s, v, t);
            string outdir = getDir(outDir, s, v, t);
            vrEegConvertAllInFolder(indir.c_str(), outdir.c_str());
        }
    }
    cout << s << " subject has converted" << endl;
}

依赖

CMake (minimum 3.16.0)

Visual Studio 2019 or Clion 2020

编译

  1. 克隆本仓库到本地
    git clone git@github.com:rehabsdu/VRParser.git`
    
  2. 导航到根目录,执行cmake(Windows环境)
    mkdir build && cd build
    cmake -G "Visual Studio 16 2019" -DCMAKE_BUILD_TYPE=Debug ..
    需要生成matlab functions时需要指定:
    cmake -G "Visual Studio 16 2019" -DCMAKE_BUILD_TYPE=Debug -DADD_MATLAB=ON ..
    注意上面的命令需要系统安装matlab,并且添加到了PATH中。
  3. 打开.sln工程编译出DLL文件。

其他