emotiv-ts
Version:
A Typescript library that wraps the Cortex API functionalities to communicate with Emotiv headsets
61 lines (60 loc) • 2.47 kB
JavaScript
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);
}
};
});
}
}