UNPKG

emotiv-ts

Version:

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

61 lines (60 loc) 2.47 kB
import { HeadsetService } from "./headset.service"; import { AuthenticationService } from "./authentication.service"; import { Requests } from "../enums/internal/emotiv.requests"; import { SetupProfile } from "../models/requests/bci/setup/setup-profile"; import { ProfileActions } from "../enums/profile-action.enum"; import { QueryProfile } from "../models/requests/bci/setup/query-profile"; export class ProfileService { socket; headsetService; constructor(socket) { this.socket = socket; this.headsetService = new HeadsetService(this.socket); } setupProfile(name, action) { let context = this; let authToken = AuthenticationService.getAuthToken(); let headsetId = this.headsetService.getHeadsetId(); let setupProfileRequest = new SetupProfile(authToken, action, name, headsetId); return new Promise(function (resolve, reject) { context.socket.send(JSON.stringify(setupProfileRequest)); context.socket.onmessage = (message) => { if (action == ProfileActions.CREATE) { resolve(message.data); } try { let data = JSON.parse(message.data); if (data['id'] == Requests.SETUP_PROFILE) { if (data['result']['action'] == action) { console.log('SETUP PROFILE -------------------------------------'); console.log(message.data); console.log('\r\n'); resolve(message.data); } } } catch (error) { console.error(error); } }; }); } getProfiles() { let context = this; let authToken = AuthenticationService.getAuthToken(); let queryProfileRequest = new QueryProfile(authToken); return new Promise(function (resolve, reject) { context.socket.send(JSON.stringify(queryProfileRequest)); context.socket.onmessage = (message) => { try { if (JSON.parse(message.data)['id'] == Requests.QUERY_PROFILE) { resolve(message.data); } } catch (error) { console.error(error); } }; }); } }