脑波设备mindwave TGCD接口开发示例

对于TGCD的开发,神念科技提供的文件包括,头文件thinkgear.h,thinkgear.lib,thinkgear.dll,有这三个文件,在win32下开发就不是什么难事了吧

如果是java语言开发,那么有ThinkGear.java

如果是C#,那么可以参考ThinkGear.cs

我们这里只讲述C接口,对于C接口,在开发包目录下还有个示例程序thinkgear_testapp.c程序,你可以用vc打开,并链接上thinkgear.lib即可以运行。


/******************************************************************* 
*  Copyright(c) 2014-2015 传智播客 
*  All rights reserved. 
*   
*  文件名称: main.cpp
*  简要描述: 该文件演示了脑波程序通过TGCD与设备通信
*   
*  创建日期: 2014-02-03
*  作者: 
*  说明: 1.0
*   
*  修改日期: 
*  作者: 
*  说明: 
******************************************************************/
#include <Windows.h>
#include <stdio.h>
#include "thinkgear.h"

void wait() 
{
	system("pause");
}

int main()
{
	char *comPortName = NULL;
	int   dllVersion = 0;  // 动态库版本
	int   connectionId = 0;  // 连接ID
	int   packetsRead = 0;  // 包数量
	int   errCode = 0;      // 错误码

	/* 获取动态库版本 */
	dllVersion = TG_GetDriverVersion();
	printf( "ThinkGear DLL version: %d\n", dllVersion );

	/* 获取连接ID */
	connectionId = TG_GetNewConnectionId();
	if( connectionId < 0 ) 
	{
		printf("ERROR: TG_GetNewConnectionId() returned %d.\n", 
			connectionId );
		wait();
		exit( EXIT_FAILURE );
	}

	/* 原始数据日志 */
	errCode = TG_SetStreamLog( connectionId, "streamLog.txt" );
	if( errCode < 0 ) {
		printf("ERROR: TG_SetStreamLog() returned %d.\n", errCode );
		wait();
		exit( EXIT_FAILURE );
	}

	/* ThinkGear数据日志 */
	errCode = TG_SetDataLog( connectionId, "dataLog.txt" );
	if( errCode < 0 ) {
		printf("ERROR: TG_SetDataLog() returned %d.\n", errCode );
		wait();
		exit( EXIT_FAILURE );
	}

	/* 准备连接的COM口 */
	comPortName = "\\\\.\\COM3"; // \\.\COM3
	errCode = TG_Connect( connectionId, 
		comPortName, 
		TG_BAUD_9600, 
		TG_STREAM_PACKETS );
	if( errCode < 0 ) {
		printf("ERROR: TG_Connect() returned %d.\n", errCode );
		wait();
		exit( EXIT_FAILURE );
	}

	if( 0==TG_EnableBlinkDetection(connectionId, 1)) // 启动眨眼检测
	{
		printf("Success enalbe blink");
	}

	/* 不停的读取数据 */
	packetsRead = 0;
	while(1/* packetsRead < 10*/ ) 
	{
		//Sleep(50);
		/* 读一个报文 */
		errCode = TG_ReadPackets( connectionId, 1 );

		/* 如果这个报文读取成功 */
		if( errCode == 1 )
		{
			int att, det, sig;
#if 0
			/* 尝试读眨眼 */
			if(( errCode = TG_GetValueStatus(connectionId, TG_DATA_BLINK_STRENGTH)) != 0 ) 
			{
				/* 读取专注度值 */
				printf("blink: %d\n", TG_GetValue(connectionId, TG_DATA_BLINK_STRENGTH) );
				system("pause");
			}
#endif
			if(( errCode = TG_GetValueStatus(connectionId, TG_DATA_ATTENTION)) != 0 ) 
			{
				att = TG_GetValue(connectionId, TG_DATA_ATTENTION) ;
				det = TG_GetValue(connectionId, TG_DATA_MEDITATION);
				sig = TG_GetValue(connectionId, TG_DATA_POOR_SIGNAL);
				printf("attentin = %d, meditation=%d, signal=%d\n", att, det, sig);
			}
		} 
		else
		{
			printf("ReadPackets:errcode=%d\n", errCode);
			Sleep(1000);
		}

	} 

	/* 释放连接 */
	TG_FreeConnection( connectionId );

	/* End program */
	system("pause");
	return( EXIT_SUCCESS );
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值