int main(int argc, char **argv) { struct emokit_device* d; signal(SIGINT, cleanup); //trap cntrl c quit=0; d = emokit_create(); int count=emokit_get_count(d, EMOKIT_VID, EMOKIT_PID); printf("Current epoc devices connected: %d\n", count ); int r = emokit_open(d, EMOKIT_VID, EMOKIT_PID, 1); if(r != 0) { emokit_close(d); emokit_delete(d); d = emokit_create(); r = emokit_open(d, EMOKIT_VID, EMOKIT_PID, 0); if (r!=0) { printf("CANNOT CONNECT: %d\n", r); return 1; } } printf("Connected to headset.\n"); r = emokit_read_data_timeout(d,1000); if (r<=0) { if(r<0) fprintf(stderr, "Error reading from headset\n"); else fprintf(stderr, "Headset Timeout...\n"); emokit_close(d); emokit_delete(d); return 1; } struct emokit_frame c; while (!quit) { int err = emokit_read_data_timeout(d, 1000); if(err > 0) { c = emokit_get_next_frame(d); fprintf(stdout,"\033[H\033[2JPress CTRL+C to exit\n\nContact quality:\nF3 %4d\nFC6 %4d\nP7 %4d\nT8 %4d\nF7 %4d\nF8 %4d\nT7 %4d\nP8 %4d\nAF4 %4d\nF4 %4d\nAF3 %4d\nO2 %4d\nO1 %4d\nFC5 %4d",c.cq.F3, c.cq.FC6, c.cq.P7, c.cq.T8,c.cq.F7, c.cq.F8, c.cq.T7, c.cq.P8, c.cq.AF4, c.cq.F4, c.cq.AF3, c.cq.O2, c.cq.O1, c.cq.FC5); fflush(stdout); } else if(err == 0) { fprintf(stderr, "Headset Timeout...\n"); } } emokit_close(d); emokit_delete(d); return 0; }
int main(int argc, char **argv) { struct emokit_device* d; d = emokit_create(); printf("Current epoc devices connected: %d\n", emokit_get_count(d, EMOKIT_VID, EMOKIT_PID)); int r = emokit_open(d, EMOKIT_VID, EMOKIT_PID, 0); if(r != 0) { printf("CANNOT CONNECT: %d\n", r); return 1; } printf("Connected\n"); while(1) { printf("Starting read\n"); if(emokit_read_data(d) > 0) { printf("Read data!\n"); struct emokit_frame c; c = emokit_get_next_frame(d); printf("%d %d %d %d %d %d\n", c.counter, c.gyroX, c.gyroY, c.F3, c.FC6, c.P7); fflush(stdout); } } emokit_close(d); emokit_delete(d); return 0; }
int main(int argc, char **argv) { emokit_device* d; d = emokit_create(); std::cout << "Current epoc devices connected " << emokit_get_count(d, EMOKIT_VID, EMOKIT_PID) << "\n"; if(emokit_open(d, EMOKIT_VID, EMOKIT_PID, 1) != 0) { std::cout << "CANNOT CONNECT\n"; return 1; } UdpTransmitSocket transmitSocket( IpEndpointName( ADDRESS, PORT ) ); char buffer[OUTPUT_BUFFER_SIZE]; char raw_frame[32]; struct emokit_frame frame; std::cout << "Connected\n"; while(1) { std::cout << "Starting read\n"; if(emokit_read_data(d) > 0) { struct emokit_frame c; c = emokit_get_next_frame(d); osc::OutboundPacketStream p( buffer, OUTPUT_BUFFER_SIZE ); p << osc::BeginMessage( "/emokit/channels" ) << c.F3 << c.FC6 << c.P7 << c.T8 << c.F7 << c.F8 << c.T7 << c.P8 << c.AF4 << c.F4 << c.AF3 << c.O2 << c.O1 << c.FC5 << osc::EndMessage; transmitSocket.Send( p.Data(), p.Size() ); osc::OutboundPacketStream q( buffer, OUTPUT_BUFFER_SIZE ); q << osc::BeginMessage( "/emokit/gyro" ) << (int)frame.gyroX << (int)frame.gyroY << osc::EndMessage; transmitSocket.Send( q.Data(), q.Size() ); osc::OutboundPacketStream info( buffer, OUTPUT_BUFFER_SIZE ); info << osc::BeginMessage( "/emokit/info" ) << (int)c.battery << c.cq.F3 << c.cq.FC6 << c.cq.P7 << c.cq.T8 << c.cq.F7 << c.cq.F8 << c.cq.T7 << c.cq.P8 << c.cq.AF4 << c.cq.F4 << c.cq.AF3 << c.cq.O2 << c.cq.O1 << c.cq.FC5 << osc::EndMessage; transmitSocket.Send( info.Data(), info.Size() ); } } fflush(stdout); emokit_close(d); emokit_delete(d); return 0; }
int main(int argc, char* argv[]) { signal(SIGINT, sigproc); #ifndef WIN32 signal(SIGQUIT, sigproc); #endif UdpTransmitSocket transmitSocket( IpEndpointName( ADDRESS, PORT ) ); char buffer[OUTPUT_BUFFER_SIZE]; FILE *input; FILE *output; char raw_frame[32]; struct emokit_frame frame; emokit_device* d; uint8_t data[32]; d = emokit_create(); printf("Current epoc devices connected: %d\n", emokit_get_count(d, EMOKIT_VID, EMOKIT_PID)); if(emokit_open(d, EMOKIT_VID, EMOKIT_PID, 1) != 0) { printf("CANNOT CONNECT\n"); return 1; } while(1) { int r; if((r=emokit_read_data_timeout(d, 1000)) > 0) { frame = emokit_get_next_frame(d); osc::OutboundPacketStream p( buffer, OUTPUT_BUFFER_SIZE ); p << osc::BeginMessage( "/multiplot" ) << conv(frame.F3) << conv(frame.FC6) << conv(frame.P7) << conv(frame.T8) << conv(frame.F7) << conv(frame.F8) << conv(frame.T7) << conv(frame.P8) << conv(frame.AF4) << conv(frame.F4) << conv(frame.AF3) << conv(frame.O2) << conv(frame.O1) << conv(frame.FC5) << osc::EndMessage; transmitSocket.Send( p.Data(), p.Size() ); } else if(r == 0) fprintf(stderr, "Headset Timeout\n"); else { fprintf(stderr, "Headset Error\n"); break; } } emokit_close(d); emokit_delete(d); return 0; }
int main(int argc, char* argv[]) { signal(SIGINT, sigproc); #ifndef WIN32 signal(SIGQUIT, sigproc); #endif bool noHelmet = false; if((argc > 1) && (argv[1] == std::string("-n"))) noHelmet = true; UdpTransmitSocket transmitSocket( IpEndpointName( ADDRESS, PORT ) ); char buffer[OUTPUT_BUFFER_SIZE]; emokit_device* d; d = emokit_create(); printf("Current epoc devices connected: %d\n", emokit_get_count(d, EMOKIT_VID, EMOKIT_PID)); if(emokit_open(d, EMOKIT_VID, EMOKIT_PID, 0) != 0 && !noHelmet) { printf("CANNOT CONNECT\n"); return 1; } else if(noHelmet) { std::cout << "Sending random data" << std::endl; } if (!noHelmet) { while(true) { if(emokit_read_data(d) > 0) { emokit_get_next_frame(d); struct emokit_frame frame = d->current_frame; std::cout << "\r\33[2K" << "gyroX: " << (int)frame.gyroX << "; gyroY: " << (int)frame.gyroY << "; F3: " << frame.F3 << "; FC6: " << frame.FC6 << "; battery: " << (int)d->battery << "%"; flush(std::cout); osc::OutboundPacketStream channels( buffer, OUTPUT_BUFFER_SIZE ); osc::OutboundPacketStream gyro( buffer, OUTPUT_BUFFER_SIZE ); osc::OutboundPacketStream info( buffer, OUTPUT_BUFFER_SIZE ); channels << osc::BeginMessage( "/emokit/channels" ) << frame.F3 << frame.FC6 << frame.P7 << frame.T8 << frame.F7 << frame.F8 << frame.T7 << frame.P8 << frame.AF4 << frame.F4 << frame.AF3 << frame.O2 << frame.O1 << frame.FC5 << osc::EndMessage; transmitSocket.Send( channels.Data(), channels.Size() ); gyro << osc::BeginMessage( "/emokit/gyro" ) << (int)frame.gyroX << (int)frame.gyroY << osc::EndMessage; transmitSocket.Send( gyro.Data(), gyro.Size() ); info << osc::BeginMessage( "/emokit/info" ) << (int)d->battery; for (int i = 0; i<14 ; i++) info << (int)d->contact_quality[i]; info << osc::EndMessage; transmitSocket.Send( info.Data(), info.Size() ); } } } else { while (true) { usleep(FREQ); osc::OutboundPacketStream channels( buffer, OUTPUT_BUFFER_SIZE ); osc::OutboundPacketStream gyro( buffer, OUTPUT_BUFFER_SIZE ); osc::OutboundPacketStream info( buffer, OUTPUT_BUFFER_SIZE ); channels << osc::BeginMessage( "/emokit/channels" ); for (int i=0 ; i < 14 ; i++) channels << rand() % 10000; channels << osc::EndMessage; transmitSocket.Send( channels.Data(), channels.Size() ); gyro << osc::BeginMessage( "/emokit/gyro" ) << rand() % 100 << rand() % 100 << osc::EndMessage; transmitSocket.Send( gyro.Data(), gyro.Size() ); info << osc::BeginMessage( "/emokit/info" ) << rand() % 100; for (int i = 0; i<14 ; i++) info << rand() % 50; info << osc::EndMessage; transmitSocket.Send( info.Data(), info.Size() ); } } emokit_close(d); emokit_delete(d); return 0; }