UNPKG

emotiv-ts

Version:

A Typescript library that wraps the Cortex API functionalities to communicate with Emotiv headsets

39 lines (38 loc) 1.65 kB
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); } }; }); } }