UNPKG

emotiv-ts

Version:

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

81 lines (68 loc) 2.93 kB
import type {w3cwebsocket} from 'websocket'; 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: w3cwebsocket; headsetService: HeadsetService; constructor(socket: w3cwebsocket) { this.socket = socket; this.headsetService = new HeadsetService(this.socket); } setupProfile(name: string, action: ProfileActions){ 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 as string); if(data['id']==Requests.SETUP_PROFILE){ if(data['error']){ throw new Error(data['error']['message']) } 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); reject(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 { let data = JSON.parse(message.data as string); if(data['id'] == Requests.QUERY_PROFILE){ if(data['error']){ throw new Error(data['error']['message']) } resolve(message.data); } } catch (error) { console.error(error); resolve(error) } } }) } }