@@ -4,7 +4,7 @@ namespace OpenEphys.Onix1
44{
55 class NeuropixelsV1eDataFrame
66 {
7- internal static unsafe void CopyAmplifierBuffer ( ushort * amplifierData , int [ ] frameCountBuffer , ushort [ , ] spikeBuffer , ushort [ , ] lfpBuffer , int index , double apGainCorrection , double lfpGainCorrection , ushort [ ] thresholds , ushort [ ] offsets , bool invertPolarity )
7+ internal static unsafe void CopyAmplifierBuffer ( ushort * amplifierData , int [ ] frameCountBuffer , ushort [ , ] spikeBuffer , ushort [ , ] lfpBuffer , int index , double apGainCorrection , double lfpGainCorrection , ushort [ ] thresholds , ushort [ ] offsets , bool invertPolarity , int [ , ] channelOrder )
88 {
99 var frameCountStartIndex = index * NeuropixelsV1 . FramesPerSuperFrame ;
1010 frameCountBuffer [ frameCountStartIndex ] = ( amplifierData [ 31 ] << 10 ) | ( amplifierData [ 39 ] << 0 ) ;
@@ -23,7 +23,7 @@ internal static unsafe void CopyAmplifierBuffer(ushort* amplifierData, int[] fra
2323 for ( int k = 0 ; k < NeuropixelsV1 . AdcCount ; k ++ )
2424 {
2525 var a = amplifierData [ adcToFrameIndex [ k ] ] ;
26- lfpBuffer [ RawToChannel [ k , lfpFrameIndex ] , lfpBufferIndex ] = ( ushort ) ( lfpInversionOffset - lfpGainCorrection * ( a > thresholds [ k ] ? a - offsets [ k ] : a ) ) ;
26+ lfpBuffer [ channelOrder [ k , lfpFrameIndex ] , lfpBufferIndex ] = ( ushort ) ( lfpInversionOffset - lfpGainCorrection * ( a > thresholds [ k ] ? a - offsets [ k ] : a ) ) ;
2727 }
2828
2929 // Loop over 12 AP frames within each "super-frame"
@@ -35,7 +35,7 @@ internal static unsafe void CopyAmplifierBuffer(ushort* amplifierData, int[] fra
3535 for ( int k = 0 ; k < NeuropixelsV1 . AdcCount ; k ++ )
3636 {
3737 var a = amplifierData [ adcToFrameIndex [ k ] + adcDataOffset ] ;
38- spikeBuffer [ RawToChannel [ k , i ] , index ] = ( ushort ) ( apInversionOffset - apGainCorrection * ( a > thresholds [ k ] ? a - offsets [ k ] : a ) ) ;
38+ spikeBuffer [ channelOrder [ k , i ] , index ] = ( ushort ) ( apInversionOffset - apGainCorrection * ( a > thresholds [ k ] ? a - offsets [ k ] : a ) ) ;
3939 }
4040
4141 frameCountBuffer [ frameCountStartIndex + i + 1 ] = ( amplifierData [ adcDataOffset + 31 ] << 10 ) | ( amplifierData [ adcDataOffset + 39 ] << 0 ) ;
@@ -46,7 +46,7 @@ internal static unsafe void CopyAmplifierBuffer(ushort* amplifierData, int[] fra
4646 for ( int k = 0 ; k < NeuropixelsV1 . AdcCount ; k ++ )
4747 {
4848 var a = amplifierData [ adcToFrameIndex [ k ] ] ;
49- lfpBuffer [ RawToChannel [ k , lfpFrameIndex ] , lfpBufferIndex ] = ( ushort ) ( lfpGainCorrection * ( a > thresholds [ k ] ? a - offsets [ k ] : a ) ) ;
49+ lfpBuffer [ channelOrder [ k , lfpFrameIndex ] , lfpBufferIndex ] = ( ushort ) ( lfpGainCorrection * ( a > thresholds [ k ] ? a - offsets [ k ] : a ) ) ;
5050 }
5151
5252 // Loop over 12 AP frames within each "super-frame"
@@ -58,7 +58,7 @@ internal static unsafe void CopyAmplifierBuffer(ushort* amplifierData, int[] fra
5858 for ( int k = 0 ; k < NeuropixelsV1 . AdcCount ; k ++ )
5959 {
6060 var a = amplifierData [ adcToFrameIndex [ k ] + adcDataOffset ] ;
61- spikeBuffer [ RawToChannel [ k , i ] , index ] = ( ushort ) ( apGainCorrection * ( a > thresholds [ k ] ? a - offsets [ k ] : a ) ) ;
61+ spikeBuffer [ channelOrder [ k , i ] , index ] = ( ushort ) ( apGainCorrection * ( a > thresholds [ k ] ? a - offsets [ k ] : a ) ) ;
6262 }
6363
6464 frameCountBuffer [ frameCountStartIndex + i + 1 ] = ( amplifierData [ adcDataOffset + 31 ] << 10 ) | ( amplifierData [ adcDataOffset + 39 ] << 0 ) ;
@@ -76,44 +76,6 @@ internal static unsafe void CopyAmplifierBuffer(ushort* amplifierData, int[] fra
7676 5 , 13 , 21 , 29 , 37 ,
7777 6 , 14 , 22 , 30 , 38 ,
7878 7 , 15 } ;
79-
80- // ADC to channel
81- // First dimension: ADC index
82- // Second dimension: frame index within super frame
83- // Output: channel number
84- static readonly int [ , ] RawToChannel = {
85- { 0 , 2 , 4 , 6 , 8 , 10 , 12 , 14 , 16 , 18 , 20 , 22 } ,
86- { 1 , 3 , 5 , 7 , 9 , 11 , 13 , 15 , 17 , 19 , 21 , 23 } ,
87- { 24 , 26 , 28 , 30 , 32 , 34 , 36 , 38 , 40 , 42 , 44 , 46 } ,
88- { 25 , 27 , 29 , 31 , 33 , 35 , 37 , 39 , 41 , 43 , 45 , 47 } ,
89- { 48 , 50 , 52 , 54 , 56 , 58 , 60 , 62 , 64 , 66 , 68 , 70 } ,
90- { 49 , 51 , 53 , 55 , 57 , 59 , 61 , 63 , 65 , 67 , 69 , 71 } ,
91- { 72 , 74 , 76 , 78 , 80 , 82 , 84 , 86 , 88 , 90 , 92 , 94 } ,
92- { 73 , 75 , 77 , 79 , 81 , 83 , 85 , 87 , 89 , 91 , 93 , 95 } ,
93- { 96 , 98 , 100 , 102 , 104 , 106 , 108 , 110 , 112 , 114 , 116 , 118 } ,
94- { 97 , 99 , 101 , 103 , 105 , 107 , 109 , 111 , 113 , 115 , 117 , 119 } ,
95- { 120 , 122 , 124 , 126 , 128 , 130 , 132 , 134 , 136 , 138 , 140 , 142 } ,
96- { 121 , 123 , 125 , 127 , 129 , 131 , 133 , 135 , 137 , 139 , 141 , 143 } ,
97- { 144 , 146 , 148 , 150 , 152 , 154 , 156 , 158 , 160 , 162 , 164 , 166 } ,
98- { 145 , 147 , 149 , 151 , 153 , 155 , 157 , 159 , 161 , 163 , 165 , 167 } ,
99- { 168 , 170 , 172 , 174 , 176 , 178 , 180 , 182 , 184 , 186 , 188 , 190 } ,
100- { 169 , 171 , 173 , 175 , 177 , 179 , 181 , 183 , 185 , 187 , 189 , 191 } ,
101- { 192 , 194 , 196 , 198 , 200 , 202 , 204 , 206 , 208 , 210 , 212 , 214 } ,
102- { 193 , 195 , 197 , 199 , 201 , 203 , 205 , 207 , 209 , 211 , 213 , 215 } ,
103- { 216 , 218 , 220 , 222 , 224 , 226 , 228 , 230 , 232 , 234 , 236 , 238 } ,
104- { 217 , 219 , 221 , 223 , 225 , 227 , 229 , 231 , 233 , 235 , 237 , 239 } ,
105- { 240 , 242 , 244 , 246 , 248 , 250 , 252 , 254 , 256 , 258 , 260 , 262 } ,
106- { 241 , 243 , 245 , 247 , 249 , 251 , 253 , 255 , 257 , 259 , 261 , 263 } ,
107- { 264 , 266 , 268 , 270 , 272 , 274 , 276 , 278 , 280 , 282 , 284 , 286 } ,
108- { 265 , 267 , 269 , 271 , 273 , 275 , 277 , 279 , 281 , 283 , 285 , 287 } ,
109- { 288 , 290 , 292 , 294 , 296 , 298 , 300 , 302 , 304 , 306 , 308 , 310 } ,
110- { 289 , 291 , 293 , 295 , 297 , 299 , 301 , 303 , 305 , 307 , 309 , 311 } ,
111- { 312 , 314 , 316 , 318 , 320 , 322 , 324 , 326 , 328 , 330 , 332 , 334 } ,
112- { 313 , 315 , 317 , 319 , 321 , 323 , 325 , 327 , 329 , 331 , 333 , 335 } ,
113- { 336 , 338 , 340 , 342 , 344 , 346 , 348 , 350 , 352 , 354 , 356 , 358 } ,
114- { 337 , 339 , 341 , 343 , 345 , 347 , 349 , 351 , 353 , 355 , 357 , 359 } ,
115- { 360 , 362 , 364 , 366 , 368 , 370 , 372 , 374 , 376 , 378 , 380 , 382 } ,
116- { 361 , 363 , 365 , 367 , 369 , 371 , 373 , 375 , 377 , 379 , 381 , 383 } } ;
11779 }
11880
11981 [ StructLayout ( LayoutKind . Sequential , Pack = 1 ) ]
0 commit comments