emotiv-ts
Version:
A Typescript library that wraps the Cortex API functionalities to communicate with Emotiv headsets
39 lines (38 loc) • 1.65 kB
JavaScript
import { AuthenticationService } from "./authentication.service";
import { SessionService } from "./session.service";
import { Requests } from "../enums/internal/emotiv.requests";
import { MentalCommandActiveAction } from "../models/requests/bci/mental-command-active-action";
export class BCIService {
socket;
constructor(socket) {
this.socket = socket;
}
activateActions(profile, actions) {
this.mentalCommandActiveActionRequest(profile, 'set', actions);
}
getActiveActions(profile) {
this.mentalCommandActiveActionRequest(profile, 'get');
}
mentalCommandActiveActionRequest(profile, status, actions) {
let context = this;
let authToken = AuthenticationService.getAuthToken();
let sessionId = SessionService.getSessionId();
let mentalCommandActiveActionRequest = new MentalCommandActiveAction(authToken, status, profile, sessionId, actions);
return new Promise(function (resolve, reject) {
context.socket.send(JSON.stringify(mentalCommandActiveActionRequest));
context.socket.onmessage = (message) => {
try {
if (JSON.parse(message.data)['id'] == Requests.MENTAL_COMMAND_ACTIVE_ACTION) {
console.log('MENTAL COMMAND ACTIVE ACTION RESULT --------------------');
console.log(message.data);
console.log('\r\n');
resolve(message.data);
}
}
catch (error) {
console.error(error);
}
};
});
}
}