@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.
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -1
- package/dist/demo.js +28 -109
- package/dist/demo.js.map +1 -1
- package/dist/nodes/disk_writer.d.ts +11 -0
- package/dist/nodes/disk_writer.d.ts.map +1 -0
- package/dist/nodes/disk_writer.js +28 -0
- package/dist/nodes/disk_writer.js.map +1 -0
- package/dist/nodes/index.d.ts +1 -0
- package/dist/nodes/index.d.ts.map +1 -1
- package/dist/nodes/index.js +3 -1
- package/dist/nodes/index.js.map +1 -1
- package/dist/utils/ndtp.d.ts +40 -0
- package/dist/utils/ndtp.d.ts.map +1 -0
- package/dist/utils/ndtp.js +140 -0
- package/dist/utils/ndtp.js.map +1 -0
- package/package.json +1 -1
- package/src/config.ts +2 -0
- package/src/demo.ts +1 -1
- package/src/nodes/disk_writer.ts +30 -0
- package/src/nodes/index.ts +1 -0
package/dist/config.d.ts.map
CHANGED
|
@@ -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;
|
|
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,
|
package/dist/config.js.map
CHANGED
|
@@ -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:
|
|
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
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
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
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
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
|
-
|
|
170
|
-
|
|
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("
|
|
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
|
-
|
|
189
|
-
if (!running)
|
|
156
|
+
if (!running) {
|
|
190
157
|
return;
|
|
191
|
-
|
|
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":";;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,kDAA0B;AAC1B,2CAAwC;AAExC,mCAAoC;AACpC,sDAA8B;AAC9B,sDAA8B;AAC9B,gFAA2D;
|
|
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"}
|
package/dist/nodes/index.d.ts
CHANGED
|
@@ -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"}
|
package/dist/nodes/index.js
CHANGED
|
@@ -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");
|
package/dist/nodes/index.js.map
CHANGED
|
@@ -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
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:
|
|
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;
|
package/src/nodes/index.ts
CHANGED
|
@@ -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";
|