Skip to main content
版本:1.2.4

Linux

Alg SDK接入説明

流程圖

設備藍牙流程圖

SDK 文件説明

下載alg-linux-v1.0.zip,並解壓

  • libalg_algorithm.so 算法動態鏈接庫
  • alg_algorithm.h 算法頭文件
  • inputData/zeng.csv 測試用eeg數據
  • mian.c sdk使用實例代碼
  • readcsv.c,readcsv.h 讀文件工具

SDK 方法説明

初始化方法

void initAll(void); 初始化數據

添加設備

int add_device(char *serial) 參數為設備名稱

連接設備成功後,需要添加設備,返回值為設備index,後面獲取指標需要用到

刪除設備

int delete_device(char * serial) 參數為設備名稱

刪除之前添加的設備

解析原始數據函數

get_eeg_info_t Split_data_frame(char *str)

參數為藍牙每幀的 16 進制字符串

返回結果

typedef struct
{
unsigned int frame_dect_ok; //檢測幀的完整性,完整則為1,否則為0
int frame_index;
unsigned long group_count; //得到eeg的採樣點組數

double AF7_eeg_data[50]; //AF7通道原始數據
int AF7_leadoff_flag[50]; //AF7通道信號質量

double AF8_eeg_data[50]; //AF8通道原始數據
int AF8_leadoff_flag[50]; //AF8通道信號質量

int have_4sec_time_flag; //得到4秒標誌
int time_flag_postion; //時間標誌在數據幀中的位置,如第一組時位置為0
long time_counter; //時間計數器
} get_eeg_info_t;

獲取算法指標

algorithmTarget get_algorithm_result(double data_raw[58],int index) 參數為藍牙解析後的原始數據,數組前 29 位 AF7,後 29 位 AF8;index 為添加設備方法獲取的下標。

返回結果

typedef struct {
double mindfullness; // 正念
double focus; // 專注
double emotion; // 情緒
double stress; // 壓力
double fatigue; // 疲勞
double relax; // 放鬆
energyName energy; // 5個波段能量
int isValid;
int sqd[2]; // 2個通道信號質量,0佩戴正常
int sqdValid; //數據是否合法標誌
} algorithmTarget;
typedef struct {
double alpha;
double beta;
double theta;
double delta;
double gamma;
}energyName;

具體的數據和指標説明請參考:數據説明

獲取正念指数指標

double get_alg_coherence(double * indata,int len) 獲取正念指数指標(傳輸原始值,512個AF7原始值+512個AF8原始值,128的步長窗口後移,傳入的len指定為512)

獲取正念雷達圖四個指標

mindfulnessScore getMindfulnessScore(double * array,int length)

array正念指数指標數組,length數組長度,返回指標結構體

typedef struct{
int stability; // 穩定度
double potential; // 潛力值
double percent; // 百分比
int score;// 分數
} mindfulnessScore;

具體的數據和指標説明請參考:數據説明