Skip to content

Commit f0b58f3

Browse files
committed
Feature: Add support for recording from aux channels
1 parent 604c4c3 commit f0b58f3

2 files changed

Lines changed: 41 additions & 0 deletions

File tree

api/datatype.proto

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,27 @@ message BroadbandFrame {
6666

6767
// Used for reconstructing multiple frames
6868
uint32 sample_rate_hz = 4;
69+
70+
// Describes contiguous ranges of channel types in frame_data, in order.
71+
// When empty, all frame_data entries are electrode channels (legacy behavior).
72+
// Example:
73+
// [{type: ELECTRODE}, count: 64, {type:TTL, count:3, channel_ids:[0, 2, 5]}]
74+
// This means frame_data[0..63] are electrodes, frame_data[64..66] are TTL lines 0, 2, 5
75+
message ChannelRange {
76+
enum ChannelType {
77+
ELECTRODE = 0;
78+
TTL = 1;
79+
}
80+
ChannelType type = 1;
81+
82+
// Number of channels of this type in frame_data
83+
uint32 count = 2;
84+
85+
// Optional: for non-contiguous channels (e.g., TTL), specifies which
86+
// channel ids are included, in order. Empty for contiguous
87+
repeated uint32 channel_ids = 3;
88+
}
89+
repeated ChannelRange channel_ranges = 5;
6990
}
7091

7192
message Timeseries {

api/nodes/signal_config.proto

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,29 @@ import "api/channel.proto";
55
package synapse;
66

77
message ElectrodeConfig {
8+
// Electrode recording channels
89
repeated Channel channels = 1;
10+
11+
// Analog filter settings for electrode channels
912
float low_cutoff_hz = 2;
1013
float high_cutoff_hz = 3;
14+
15+
// Additional data channels to record beyond electrodes
16+
// These will appear in the broadband data stream after electrode
17+
// channels in the order specified here
18+
message AuxiliaryChannel {
19+
enum ChannelType {
20+
TTL = 0; // Digital input line
21+
}
22+
ChannelType type = 1;
23+
24+
// Channel identifier (TTL line 0-31, etc.)
25+
uint32 channel_id = 2;
26+
27+
// Optional human-readable label
28+
string label = 3;
29+
}
30+
repeated AuxiliaryChannel auxiliary_channels = 4;
1131
}
1232

1333
message PixelConfig {

0 commit comments

Comments
 (0)