00001 #include "scolThinkGear.h"
00002 #include <ios>
00003 #include <sstream>
00004
00008 void handleDataValueFunc( unsigned char extendedCodeLevel,
00009 unsigned char code,
00010 unsigned char valueLength,
00011 const unsigned char *value,
00012 void *customData ) {
00013 if( extendedCodeLevel == 0 ) {
00014 switch( code )
00015 {
00016
00017 case( PARSER_CODE_BATTERY ):
00018 PostMessage(HScol, NEUROSKY_BATTERY_CB, (int)customData,(LPARAM)(value[0] & 0xFF));
00019 break;
00020
00021 case( PARSER_CODE_POOR_QUALITY ):
00022 PostMessage(HScol, NEUROSKY_POOR_QUALITY_CB, (int)customData,(LPARAM)(value[0] & 0xFF));
00023 break;
00024 case( PARSER_CODE_RAW_SIGNAL ):
00025 {
00026 short raw = value[0]*256 + value[1];
00027 if( raw >= 32768 ) raw = raw - 32768;
00028 PostMessage(HScol, NEUROSKY_RAW_SIGNAL_CB, (int)customData,(LPARAM)(raw));
00029 break;
00030 }
00031 case(PARSER_CODE_ASIC_EEG_POWER_INT):
00032 {
00033 eegResult * eeg = new eegResult() ;
00034 for( int i=0; i<8; i++ )
00035 {
00036 unsigned int mVal = 0;
00037 mVal |= value[i * 3] << 16;
00038 mVal |= value[(i * 3) + 1] << 8;
00039 mVal |= value[(i * 3) + 2];
00040 if(i == 0)eeg->delta = mVal ;
00041 else if(i == 1)eeg->theta = mVal ;
00042 else if(i == 2)eeg->low_alpha = mVal ;
00043 else if(i == 3)eeg->high_alpha = mVal ;
00044 else if(i == 4)eeg->low_beta = mVal ;
00045 else if(i == 5)eeg->high_beta = mVal ;
00046 else if(i == 6)eeg->low_gamma = mVal ;
00047 else if(i == 7)eeg->high_gamma = mVal ;
00048
00049 }
00050 PostMessage(HScol, NEUROSKY_EEG_CB, (int)customData,(LPARAM)(eeg));
00051 break;
00052 }
00053
00054 case( PARSER_CODE_ATTENTION ):
00055 PostMessage(HScol, NEUROSKY_ATTENTION_CB, (int)customData,(LPARAM)(value[0] & 0xFF));
00056 break;
00057
00058 case( PARSER_CODE_MEDITATION ):
00059 PostMessage(HScol, NEUROSKY_MEDITATION_CB, (int)customData,(LPARAM)(value[0] & 0xFF));
00060 break;
00061
00062 default:
00063 break;
00064 }
00065 }
00066 }
00067
00068 bool STG_Connect(LSerie * serie,int numPort, int serialBaudrate,int serialDataFormat)
00069 {
00070
00071 bool result = false ;
00072 result = serie->open(numPort,serialBaudrate, 8, 0, 1) ;
00073 return result ;
00074 }
00075 void STG_Disconnect(LSerie * serie)
00076 {
00077
00078 if(serie)
00079 serie->closeCom() ;
00080 }