UNPKG

@neurosity/sdk

Version:
37 lines (36 loc) 1.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.csvBufferToSamples = exports.csvBufferToEpoch = void 0; const rxjs_1 = require("rxjs"); const operators_1 = require("rxjs/operators"); const pipes_1 = require("../../../utils/pipes"); const EPOCH_BUFFER_SIZE = 16; const SAMPLING_RATE_FALLBACK = 256; // Crown's sampling rate /** * @hidden */ function csvBufferToEpoch(deviceInfo) { var _a; if (!(deviceInfo === null || deviceInfo === void 0 ? void 0 : deviceInfo.samplingRate)) { console.warn(`Didn't receive a sampling rate, defaulting to ${SAMPLING_RATE_FALLBACK}`); } return (0, rxjs_1.pipe)(csvBufferToSamples(), (0, pipes_1.epoch)({ duration: EPOCH_BUFFER_SIZE, interval: EPOCH_BUFFER_SIZE, samplingRate: (_a = deviceInfo === null || deviceInfo === void 0 ? void 0 : deviceInfo.samplingRate) !== null && _a !== void 0 ? _a : SAMPLING_RATE_FALLBACK }), (0, pipes_1.addInfo)({ channelNames: deviceInfo.channelNames, samplingRate: deviceInfo.samplingRate })); } exports.csvBufferToEpoch = csvBufferToEpoch; /** * @hidden */ function csvBufferToSamples() { return (0, rxjs_1.pipe)((0, operators_1.mergeMap)((samples) => (0, rxjs_1.from)(samples)), (0, operators_1.map)(([timestamp, marker, ...data]) => ({ timestamp, data }))); } exports.csvBufferToSamples = csvBufferToSamples;