@science-corporation/synapse 0.12.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,OAAO,EAAE,MAAM,EAAc,MAAM,gBAAgB,CAAC;AAEpD,KAAK,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAYnC,cAAM,MAAM;IACV,WAAW,EAAE,UAAU,EAAE,CAAM;IAC/B,KAAK,EAAE,IAAI,EAAE,CAAM;IAEnB,UAAU,IAAI,MAAM;IAIpB,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM;IAU1B,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,MAAM;IAQ7C,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAkBxC,SAAS,CAAC,MAAM,KAAA,GAAG,MAAM;IAOzB,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,oBAAoB,GAAG,MAAM;IAgC7D,OAAO,IAAI,OAAO,CAAC,mBAAmB;CAWvC;AAED,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,OAAO,EAAE,MAAM,EAAc,MAAM,gBAAgB,CAAC;AAEpD,KAAK,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAanC,cAAM,MAAM;IACV,WAAW,EAAE,UAAU,EAAE,CAAM;IAC/B,KAAK,EAAE,IAAI,EAAE,CAAM;IAEnB,UAAU,IAAI,MAAM;IAIpB,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM;IAU1B,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,MAAM;IAQ7C,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAkBxC,SAAS,CAAC,MAAM,KAAA,GAAG,MAAM;IAOzB,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,oBAAoB,GAAG,MAAM;IAgC7D,OAAO,IAAI,OAAO,CAAC,mBAAmB;CAWvC;AAED,eAAe,MAAM,CAAC"}
package/dist/config.js CHANGED
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const api_1 = require("./api/api");
7
7
  const broadband_source_1 = __importDefault(require("./nodes/broadband_source"));
8
+ const disk_writer_1 = __importDefault(require("./nodes/disk_writer"));
8
9
  const electrical_stimulation_1 = __importDefault(require("./nodes/electrical_stimulation"));
9
10
  const optical_stimulation_1 = __importDefault(require("./nodes/optical_stimulation"));
10
11
  const spectral_filter_1 = __importDefault(require("./nodes/spectral_filter"));
@@ -15,6 +16,7 @@ const stream_out_1 = __importDefault(require("./nodes/stream_out"));
15
16
  const status_1 = require("./utils/status");
16
17
  const kNodeTypeObjectMap = {
17
18
  [api_1.synapse.NodeType.kBroadbandSource]: broadband_source_1.default,
19
+ [api_1.synapse.NodeType.kDiskWriter]: disk_writer_1.default,
18
20
  [api_1.synapse.NodeType.kElectricalStimulation]: electrical_stimulation_1.default,
19
21
  [api_1.synapse.NodeType.kSpikeSource]: spike_source_1.default,
20
22
  [api_1.synapse.NodeType.kOpticalStimulation]: optical_stimulation_1.default,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/demo.js CHANGED
@@ -19,11 +19,9 @@ const api_1 = require("./api/api");
19
19
  const config_1 = __importDefault(require("./config"));
20
20
  const device_1 = __importDefault(require("./device"));
21
21
  const broadband_source_1 = __importDefault(require("./nodes/broadband_source"));
22
- const optical_stimulation_1 = __importDefault(require("./nodes/optical_stimulation"));
23
- const stream_in_1 = __importDefault(require("./nodes/stream_in"));
24
- const stream_out_1 = __importDefault(require("./nodes/stream_out"));
25
22
  const discover_1 = require("./utils/discover");
26
23
  const enum_1 = require("./utils/enum");
24
+ const nodes_1 = require("./nodes");
27
25
  const cli = (0, yargs_1.default)((0, helpers_1.hideBin)(process.argv))
28
26
  .help()
29
27
  .command("discover", "Discover synapse devices")
@@ -90,7 +88,8 @@ const info = (device) => __awaiter(void 0, void 0, void 0, function* () {
90
88
  return true;
91
89
  });
92
90
  const read = (device, argv) => __awaiter(void 0, void 0, void 0, function* () {
93
- console.log("Reading from device's StreamOut node...");
91
+ // console.log("Reading from device's StreamOut node...");
92
+ console.log("Writing to disk...");
94
93
  const { multicastGroup, output } = argv;
95
94
  let status = null;
96
95
  let stream = null;
@@ -107,7 +106,7 @@ const read = (device, argv) => __awaiter(void 0, void 0, void 0, function* () {
107
106
  };
108
107
  const config = new config_1.default();
109
108
  const nodeEphys = new broadband_source_1.default({
110
- peripheralId: 3,
109
+ peripheralId: 100,
111
110
  signal: {
112
111
  electrode: {
113
112
  channels: [{ id: 0, referenceId: 0, electrodeId: 1 }],
@@ -116,128 +115,51 @@ const read = (device, argv) => __awaiter(void 0, void 0, void 0, function* () {
116
115
  bitWidth: 12,
117
116
  sampleRateHz: 16000,
118
117
  });
119
- const nodeStreamOut = new stream_out_1.default({
120
- multicastGroup,
121
- }, onMessage);
122
- status = config.add([nodeEphys, nodeStreamOut]);
123
- status = config.connect(nodeEphys, nodeStreamOut);
118
+ // const nodeStreamOut = new StreamOut(
119
+ // {
120
+ // multicastGroup,
121
+ // },
122
+ // onMessage
123
+ // );
124
+ // status = config.add([nodeEphys, nodeStreamOut]);
125
+ // status = config.connect(nodeEphys, nodeStreamOut);
126
+ const nodeDiskWriter = new nodes_1.DiskWriter({
127
+ filename: "test",
128
+ });
129
+ status = config.add([nodeEphys, nodeDiskWriter]);
130
+ status = config.connect(nodeEphys, nodeDiskWriter);
124
131
  if (!status.ok()) {
125
132
  console.error("failed to connect nodes: ", status.message);
126
133
  return;
127
134
  }
128
135
  console.log("Configuring device...");
129
- status = yield device.configure(config);
130
- if (!status.ok()) {
131
- console.error("failed to configure device: ", status.message);
132
- return;
133
- }
134
- console.log("Starting device...");
135
- status = yield device.start();
136
- if (!status.ok()) {
137
- console.error("failed to start device: ", status.message);
138
- return;
139
- }
140
- nodeStreamOut.start();
141
- let running = true;
142
- process.on("SIGINT", function () {
143
- if (!running) {
136
+ try {
137
+ status = yield device.configure(config);
138
+ if (!status.ok()) {
139
+ console.error("failed to configure device: ", status.message);
144
140
  return;
145
141
  }
146
- running = false;
147
- nodeStreamOut.stop();
148
- device.stop();
149
- });
150
- });
151
- const write = (device, argv) => __awaiter(void 0, void 0, void 0, function* () {
152
- const { input } = argv;
153
- if (input && !fs_1.default.existsSync(input)) {
154
- console.error(`File not found: ${input}`);
155
- return;
156
- }
157
- console.log("Writing to device's StreamOut node...");
158
- let status = null;
159
- const config = new config_1.default();
160
- const nodeStreamIn = new stream_in_1.default({
161
- dataType: api_1.synapse.DataType.kBroadband,
162
- });
163
- const nodeOptical = new optical_stimulation_1.default();
164
- status = config.add([nodeStreamIn, nodeOptical]);
165
- if (!status.ok()) {
166
- console.error("Failed to add nodes: ", status.message);
167
- return;
168
142
  }
169
- status = config.connect(nodeStreamIn, nodeOptical);
170
- if (!status.ok()) {
171
- console.error("Failed to connect nodes: ", status.message);
172
- return;
173
- }
174
- console.log("Configuring device...");
175
- status = yield device.configure(config);
176
- if (!status.ok()) {
177
- console.error("Failed to configure device: ", status.message);
143
+ catch (err) {
144
+ console.error("failed to configure device: ", err);
178
145
  return;
179
146
  }
180
147
  console.log("Starting device...");
181
148
  status = yield device.start();
182
149
  if (!status.ok()) {
183
- console.error("Failed to start device: ", status.message);
150
+ console.error("failed to start device: ", status.message);
184
151
  return;
185
152
  }
153
+ // nodeStreamOut.start();
186
154
  let running = true;
187
155
  process.on("SIGINT", function () {
188
- console.log("SIGINT", running);
189
- if (!running)
156
+ if (!running) {
190
157
  return;
191
- console.log("stopping...");
158
+ }
192
159
  running = false;
160
+ // nodeStreamOut.stop();
193
161
  device.stop();
194
- process.exit();
195
162
  });
196
- if (input) {
197
- console.log(`Reading from file: ${input}`);
198
- fs_1.default.open(input, "r", (err, fd) => {
199
- console.log("Opened file");
200
- const kBufSize = 4;
201
- const buffer = Buffer.alloc(kBufSize);
202
- if (err) {
203
- console.error(err);
204
- return;
205
- }
206
- const read = () => {
207
- if (!running) {
208
- fs_1.default.close(fd, () => { });
209
- return;
210
- }
211
- fs_1.default.read(fd, buffer, 0, kBufSize, null, (err, n) => {
212
- if (err) {
213
- console.error(err);
214
- return;
215
- }
216
- if (n === 0) {
217
- return;
218
- }
219
- console.log(`StreamIn | send: ${buffer.readUInt32BE()}`);
220
- nodeStreamIn.write(buffer.slice(0, n));
221
- read();
222
- });
223
- };
224
- read();
225
- });
226
- return;
227
- }
228
- let i = 0;
229
- const kInterval = 1;
230
- const buffer = Buffer.alloc(4);
231
- const write = () => {
232
- if (!running) {
233
- device.stop();
234
- return;
235
- }
236
- buffer.writeUInt32BE(i++);
237
- nodeStreamIn.write(buffer);
238
- setTimeout(write, kInterval);
239
- };
240
- setTimeout(write, kInterval);
241
163
  });
242
164
  const main = () => __awaiter(void 0, void 0, void 0, function* () {
243
165
  const argv = cli.parseSync();
@@ -265,9 +187,6 @@ const main = () => __awaiter(void 0, void 0, void 0, function* () {
265
187
  if (argv._.includes("read")) {
266
188
  return read(device, argv);
267
189
  }
268
- if (argv._.includes("write")) {
269
- return write(device, argv);
270
- }
271
190
  });
272
191
  main();
273
192
  //# sourceMappingURL=demo.js.map
package/dist/demo.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"demo.js","sourceRoot":"","sources":["../src/demo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"demo.js","sourceRoot":"","sources":["../src/demo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { synapse } from "../api/api";
2
+ import Node from "../node";
3
+ declare class DiskWriter extends Node {
4
+ type: synapse.NodeType;
5
+ config: synapse.IDiskWriterConfig;
6
+ constructor(config?: synapse.IDiskWriterConfig);
7
+ toProto(): synapse.NodeConfig;
8
+ static fromProto(proto: synapse.INodeConfig): DiskWriter;
9
+ }
10
+ export default DiskWriter;
11
+ //# sourceMappingURL=disk_writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disk_writer.d.ts","sourceRoot":"","sources":["../../src/nodes/disk_writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,cAAM,UAAW,SAAQ,IAAI;IAC3B,IAAI,mBAAgC;IACpC,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC;gBAEtB,MAAM,GAAE,OAAO,CAAC,iBAAsB;IAMlD,OAAO,IAAI,OAAO,CAAC,UAAU;IAM7B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,GAAG,UAAU;CAQzD;AAED,eAAe,UAAU,CAAC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const api_1 = require("../api/api");
7
+ const node_1 = __importDefault(require("../node"));
8
+ class DiskWriter extends node_1.default {
9
+ constructor(config = {}) {
10
+ super();
11
+ this.type = api_1.synapse.NodeType.kDiskWriter;
12
+ this.config = config;
13
+ }
14
+ toProto() {
15
+ return super.toProto({
16
+ diskWriter: this.config,
17
+ });
18
+ }
19
+ static fromProto(proto) {
20
+ const { diskWriter } = proto;
21
+ if (!diskWriter) {
22
+ throw new Error("Invalid config, missing diskWriter");
23
+ }
24
+ return new DiskWriter(proto.diskWriter);
25
+ }
26
+ }
27
+ exports.default = DiskWriter;
28
+ //# sourceMappingURL=disk_writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disk_writer.js","sourceRoot":"","sources":["../../src/nodes/disk_writer.ts"],"names":[],"mappings":";;;;;AAAA,oCAAqC;AACrC,mDAA2B;AAE3B,MAAM,UAAW,SAAQ,cAAI;IAI3B,YAAY,SAAoC,EAAE;QAChD,KAAK,EAAE,CAAC;QAJV,SAAI,GAAG,aAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;QAMlC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,OAAO;QACL,OAAO,KAAK,CAAC,OAAO,CAAC;YACnB,UAAU,EAAE,IAAI,CAAC,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAA0B;QACzC,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;CACF;AAED,kBAAe,UAAU,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export { default as BroadbandSource } from "./broadband_source";
2
+ export { default as DiskWriter } from "./disk_writer";
2
3
  export { default as ElectricalStimulation } from "./electrical_stimulation";
3
4
  export { default as OpticalStimulation } from "./optical_stimulation";
4
5
  export { default as SpectralFilter } from "./spectral_filter";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/nodes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpD,mBAAmB,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/nodes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpD,mBAAmB,YAAY,CAAC"}
@@ -3,9 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.StreamOut = exports.StreamIn = exports.SpikeSource = exports.SpikeDetect = exports.SpectralFilter = exports.OpticalStimulation = exports.ElectricalStimulation = exports.BroadbandSource = void 0;
6
+ exports.StreamOut = exports.StreamIn = exports.SpikeSource = exports.SpikeDetect = exports.SpectralFilter = exports.OpticalStimulation = exports.ElectricalStimulation = exports.DiskWriter = exports.BroadbandSource = void 0;
7
7
  var broadband_source_1 = require("./broadband_source");
8
8
  Object.defineProperty(exports, "BroadbandSource", { enumerable: true, get: function () { return __importDefault(broadband_source_1).default; } });
9
+ var disk_writer_1 = require("./disk_writer");
10
+ Object.defineProperty(exports, "DiskWriter", { enumerable: true, get: function () { return __importDefault(disk_writer_1).default; } });
9
11
  var electrical_stimulation_1 = require("./electrical_stimulation");
10
12
  Object.defineProperty(exports, "ElectricalStimulation", { enumerable: true, get: function () { return __importDefault(electrical_stimulation_1).default; } });
11
13
  var optical_stimulation_1 = require("./optical_stimulation");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/nodes/index.ts"],"names":[],"mappings":";;;;;;AAAA,uDAAgE;AAAvD,oIAAA,OAAO,OAAmB;AACnC,mEAA4E;AAAnE,gJAAA,OAAO,OAAyB;AACzC,6DAAsE;AAA7D,0IAAA,OAAO,OAAsB;AACtC,qDAA8D;AAArD,kIAAA,OAAO,OAAkB;AAClC,+CAAwD;AAA/C,4HAAA,OAAO,OAAe;AAC/B,+CAAwD;AAA/C,4HAAA,OAAO,OAAe;AAC/B,yCAAkD;AAAzC,sHAAA,OAAO,OAAY;AAC5B,2CAAoD;AAA3C,wHAAA,OAAO,OAAa"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/nodes/index.ts"],"names":[],"mappings":";;;;;;AAAA,uDAAgE;AAAvD,oIAAA,OAAO,OAAmB;AACnC,6CAAsD;AAA7C,0HAAA,OAAO,OAAc;AAC9B,mEAA4E;AAAnE,gJAAA,OAAO,OAAyB;AACzC,6DAAsE;AAA7D,0IAAA,OAAO,OAAsB;AACtC,qDAA8D;AAArD,kIAAA,OAAO,OAAkB;AAClC,+CAAwD;AAA/C,4HAAA,OAAO,OAAe;AAC/B,+CAAwD;AAA/C,4HAAA,OAAO,OAAe;AAC/B,yCAAkD;AAAzC,sHAAA,OAAO,OAAY;AAC5B,2CAAoD;AAA3C,wHAAA,OAAO,OAAa"}
@@ -0,0 +1,40 @@
1
+ import { synapse } from "../api/api";
2
+ export declare const NDTP_VERSION = 1;
3
+ export interface NDTPHeader {
4
+ version: number;
5
+ dataType: synapse.DataType;
6
+ timestamp: bigint;
7
+ seqNumber: number;
8
+ }
9
+ export interface ChannelData {
10
+ channelId: number;
11
+ channelData: bigint[];
12
+ }
13
+ export interface NDTPPayloadBroadband {
14
+ isSigned: boolean;
15
+ bitWidth: number;
16
+ chCount: number;
17
+ sampleRate: number;
18
+ channels: ChannelData[];
19
+ }
20
+ export interface NDTPPayloadSpiketrain {
21
+ binSizeMs: number;
22
+ spikeCounts: number[];
23
+ readonly BIT_WIDTH_BINNED_SPIKES: number;
24
+ }
25
+ export type NDTPPayload = NDTPPayloadBroadband | NDTPPayloadSpiketrain;
26
+ export interface NDTPMessage {
27
+ header: NDTPHeader;
28
+ payload: NDTPPayload;
29
+ crc16: number;
30
+ }
31
+ export declare class NDTPParser {
32
+ private static readonly NDTP_HEADER_SIZE;
33
+ private static crc16;
34
+ private static crc16Verify;
35
+ static unpackHeader(data: Uint8Array): NDTPHeader;
36
+ static unpackBroadband(data: Uint8Array): NDTPPayloadBroadband;
37
+ static unpackSpiketrain(data: Uint8Array): NDTPPayloadSpiketrain;
38
+ static unpack(data: Uint8Array, ignoreCrc?: boolean): NDTPMessage;
39
+ }
40
+ //# sourceMappingURL=ndtp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ndtp.d.ts","sourceRoot":"","sources":["../../src/utils/ndtp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAoBrC,eAAO,MAAM,YAAY,IAAO,CAAC;AAEjC,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;CAC1C;AAED,MAAM,MAAM,WAAW,GAAG,oBAAoB,GAAG,qBAAqB,CAAC;AAEvE,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IAE9C,OAAO,CAAC,MAAM,CAAC,KAAK;IAIpB,OAAO,CAAC,MAAM,CAAC,WAAW;IAK1B,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU;IA4BjD,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,oBAAoB;IAuC9D,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,qBAAqB;IAmChE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,UAAQ,GAAG,WAAW;CA8BhE"}
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NDTPParser = exports.NDTP_VERSION = void 0;
4
+ const api_1 = require("../api/api");
5
+ const crc_1 = require("crc");
6
+ // Helper functions for network byte order conversions
7
+ const htonl = (n) => {
8
+ return ((n & 0xff) << 24) | ((n & 0xff00) << 8) | ((n & 0xff0000) >> 8) | ((n & 0xff000000) >> 24);
9
+ };
10
+ const ntohl = htonl;
11
+ const htonll = (n) => {
12
+ if (new Int8Array(new Int16Array([1]).buffer)[0] === 1) {
13
+ // Little endian
14
+ return (BigInt(htonl(Number(n & BigInt(0xffffffff)))) << BigInt(32)) | BigInt(htonl(Number(n >> BigInt(32))));
15
+ }
16
+ return n; // Big endian
17
+ };
18
+ const ntohll = htonll;
19
+ exports.NDTP_VERSION = 0x01;
20
+ class NDTPParser {
21
+ static crc16(data) {
22
+ return (0, crc_1.crc16)(Buffer.from(data));
23
+ }
24
+ static crc16Verify(data, expectedCrc) {
25
+ const calculatedCrc = this.crc16(data);
26
+ return calculatedCrc === expectedCrc;
27
+ }
28
+ static unpackHeader(data) {
29
+ if (data.length < this.NDTP_HEADER_SIZE) {
30
+ throw new Error(`Invalid header size: expected ${this.NDTP_HEADER_SIZE}, got ${data.length}`);
31
+ }
32
+ let offset = 0;
33
+ const version = data[offset++];
34
+ if (version !== exports.NDTP_VERSION) {
35
+ throw new Error(`Invalid version: expected ${exports.NDTP_VERSION}, got ${version}`);
36
+ }
37
+ const dataType = data[offset++];
38
+ // Read timestamp (8 bytes)
39
+ const timestamp = ntohll(new DataView(data.buffer).getBigUint64(offset));
40
+ offset += 8;
41
+ // Read sequence number (2 bytes)
42
+ const seqNumber = new DataView(data.buffer).getUint16(offset);
43
+ return {
44
+ version,
45
+ dataType,
46
+ timestamp,
47
+ seqNumber,
48
+ };
49
+ }
50
+ static unpackBroadband(data) {
51
+ if (data.length < 7) {
52
+ throw new Error("Invalid data size for NDTPPayloadBroadband");
53
+ }
54
+ const bitWidth = data[0] >> 1;
55
+ const isSigned = (data[0] & 1) === 1;
56
+ const numChannels = (data[1] << 16) | (data[2] << 8) | data[3];
57
+ const sampleRate = (data[4] << 16) | (data[5] << 8) | data[6];
58
+ let offset = 7;
59
+ const channels = [];
60
+ for (let i = 0; i < numChannels; i++) {
61
+ // Read channel ID (24 bits)
62
+ const channelId = (data[offset] << 16) | (data[offset + 1] << 8) | data[offset + 2];
63
+ offset += 3;
64
+ // Read number of samples (16 bits)
65
+ const numSamples = (data[offset] << 8) | data[offset + 1];
66
+ offset += 2;
67
+ // Read channel data
68
+ const channelData = [];
69
+ // Note: Implementation of bit-packed data reading would go here
70
+ // This would require a more complex implementation similar to the C++ to_ints function
71
+ channels.push({ channelId, channelData });
72
+ }
73
+ return {
74
+ isSigned,
75
+ bitWidth,
76
+ chCount: numChannels,
77
+ sampleRate,
78
+ channels,
79
+ };
80
+ }
81
+ static unpackSpiketrain(data) {
82
+ if (data.length < 5) {
83
+ throw new Error("Invalid data size for NDTPPayloadSpiketrain");
84
+ }
85
+ const sampleCount = (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3];
86
+ const binSizeMs = data[4];
87
+ // Unpack spike counts (4 bits per count)
88
+ const spikeCounts = [];
89
+ const BIT_WIDTH_BINNED_SPIKES = 4;
90
+ // Read packed spike counts
91
+ let byteOffset = 5;
92
+ let bitOffset = 0;
93
+ for (let i = 0; i < sampleCount; i++) {
94
+ const currentByte = data[byteOffset];
95
+ const count = (currentByte >> (4 - bitOffset)) & 0x0f;
96
+ spikeCounts.push(count);
97
+ bitOffset += BIT_WIDTH_BINNED_SPIKES;
98
+ if (bitOffset >= 8) {
99
+ bitOffset = 0;
100
+ byteOffset++;
101
+ }
102
+ }
103
+ return {
104
+ binSizeMs,
105
+ spikeCounts,
106
+ BIT_WIDTH_BINNED_SPIKES,
107
+ };
108
+ }
109
+ static unpack(data, ignoreCrc = false) {
110
+ if (data.length < this.NDTP_HEADER_SIZE + 2) {
111
+ // +2 for CRC
112
+ throw new Error("Invalid data size for NDTPMessage");
113
+ }
114
+ const header = this.unpackHeader(data.slice(0, this.NDTP_HEADER_SIZE));
115
+ const payloadData = data.slice(this.NDTP_HEADER_SIZE, -2);
116
+ const crc16 = (data[data.length - 2] << 8) | data[data.length - 1];
117
+ // Verify CRC
118
+ if (!ignoreCrc) {
119
+ // Verify CRC here
120
+ }
121
+ let payload;
122
+ if (header.dataType === api_1.synapse.DataType.kBroadband) {
123
+ payload = this.unpackBroadband(payloadData);
124
+ }
125
+ else if (header.dataType === api_1.synapse.DataType.kSpiketrain) {
126
+ payload = this.unpackSpiketrain(payloadData);
127
+ }
128
+ else {
129
+ throw new Error("Unsupported data type in NDTP header");
130
+ }
131
+ return {
132
+ header,
133
+ payload,
134
+ crc16,
135
+ };
136
+ }
137
+ }
138
+ exports.NDTPParser = NDTPParser;
139
+ NDTPParser.NDTP_HEADER_SIZE = 12;
140
+ //# sourceMappingURL=ndtp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ndtp.js","sourceRoot":"","sources":["../../src/utils/ndtp.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@science-corporation/synapse",
3
- "version": "0.12.0",
3
+ "version": "0.13.0",
4
4
  "description": "Client library and CLI for the Synapse API",
5
5
  "license": "Apache-2.0",
6
6
  "main": "dist/index.js",
package/src/config.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import Node from "./node";
2
2
  import { synapse } from "./api/api";
3
3
  import BroadbandSource from "./nodes/broadband_source";
4
+ import DiskWriter from "./nodes/disk_writer";
4
5
  import ElectricalStimulation from "./nodes/electrical_stimulation";
5
6
  import OpticalStimulation from "./nodes/optical_stimulation";
6
7
  import SpectralFilter from "./nodes/spectral_filter";
@@ -13,6 +14,7 @@ import { Status, StatusCode } from "./utils/status";
13
14
  type Connection = [number, number];
14
15
  const kNodeTypeObjectMap = {
15
16
  [synapse.NodeType.kBroadbandSource]: BroadbandSource,
17
+ [synapse.NodeType.kDiskWriter]: DiskWriter,
16
18
  [synapse.NodeType.kElectricalStimulation]: ElectricalStimulation,
17
19
  [synapse.NodeType.kSpikeSource]: SpikeSource,
18
20
  [synapse.NodeType.kOpticalStimulation]: OpticalStimulation,
package/src/demo.ts CHANGED
@@ -111,7 +111,7 @@ const read = async (device: Device, argv: any) => {
111
111
 
112
112
  const config = new Config();
113
113
  const nodeEphys = new ElectricalBroadband({
114
- peripheralId: 3,
114
+ peripheralId: 100,
115
115
  signal: {
116
116
  electrode: {
117
117
  channels: [{ id: 0, referenceId: 0, electrodeId: 1 }],
@@ -0,0 +1,30 @@
1
+ import { synapse } from "../api/api";
2
+ import Node from "../node";
3
+
4
+ class DiskWriter extends Node {
5
+ type = synapse.NodeType.kDiskWriter;
6
+ config: synapse.IDiskWriterConfig;
7
+
8
+ constructor(config: synapse.IDiskWriterConfig = {}) {
9
+ super();
10
+
11
+ this.config = config;
12
+ }
13
+
14
+ toProto(): synapse.NodeConfig {
15
+ return super.toProto({
16
+ diskWriter: this.config,
17
+ });
18
+ }
19
+
20
+ static fromProto(proto: synapse.INodeConfig): DiskWriter {
21
+ const { diskWriter } = proto;
22
+ if (!diskWriter) {
23
+ throw new Error("Invalid config, missing diskWriter");
24
+ }
25
+
26
+ return new DiskWriter(proto.diskWriter);
27
+ }
28
+ }
29
+
30
+ export default DiskWriter;
@@ -1,4 +1,5 @@
1
1
  export { default as BroadbandSource } from "./broadband_source";
2
+ export { default as DiskWriter } from "./disk_writer";
2
3
  export { default as ElectricalStimulation } from "./electrical_stimulation";
3
4
  export { default as OpticalStimulation } from "./optical_stimulation";
4
5
  export { default as SpectralFilter } from "./spectral_filter";