UNPKG

@neurosity/sdk

Version:
32 lines (31 loc) 1.11 kB
import { pipe, from } from "rxjs"; import { mergeMap, map } from "rxjs/operators"; import { epoch, addInfo } from "../../../utils/pipes"; const EPOCH_BUFFER_SIZE = 16; const SAMPLING_RATE_FALLBACK = 256; // Crown's sampling rate /** * @hidden */ export 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 pipe(csvBufferToSamples(), 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 }), addInfo({ channelNames: deviceInfo.channelNames, samplingRate: deviceInfo.samplingRate })); } /** * @hidden */ export function csvBufferToSamples() { return pipe(mergeMap((samples) => from(samples)), map(([timestamp, marker, ...data]) => ({ timestamp, data }))); }