diff --git a/.gitmodules b/.gitmodules index eed9e0f..e69de29 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule "OpenEphys.ProbeInterface"] - path = OpenEphys.ProbeInterface - url = https://github.com/open-ephys/OpenEphys.ProbeInterface diff --git a/OpenEphys.Onix1.Design/ChannelConfigurationDialog.cs b/OpenEphys.Onix1.Design/ChannelConfigurationDialog.cs index 89fb002..412cd26 100644 --- a/OpenEphys.Onix1.Design/ChannelConfigurationDialog.cs +++ b/OpenEphys.Onix1.Design/ChannelConfigurationDialog.cs @@ -4,7 +4,7 @@ using System.Windows.Forms; using ZedGraph; using System; -using OpenEphys.ProbeInterface; +using OpenEphys.ProbeInterface.NET; using System.Collections.Generic; namespace OpenEphys.Onix1.Design @@ -19,7 +19,7 @@ public abstract partial class ChannelConfigurationDialog : Form /// /// Local variable that holds the channel configuration in memory until the user presses Okay /// - ProbeGroup ChannelConfiguration; + internal ProbeGroup ChannelConfiguration; internal readonly List ReferenceContacts = new(); diff --git a/OpenEphys.Onix1.Design/NeuropixelsV2eChannelConfigurationDialog.cs b/OpenEphys.Onix1.Design/NeuropixelsV2eChannelConfigurationDialog.cs index 4f84501..f69189c 100644 --- a/OpenEphys.Onix1.Design/NeuropixelsV2eChannelConfigurationDialog.cs +++ b/OpenEphys.Onix1.Design/NeuropixelsV2eChannelConfigurationDialog.cs @@ -3,7 +3,7 @@ using System.Drawing; using System.Linq; using System.Windows.Forms; -using OpenEphys.ProbeInterface; +using OpenEphys.ProbeInterface.NET; using ZedGraph; namespace OpenEphys.Onix1.Design @@ -57,6 +57,10 @@ internal override ProbeGroup DefaultChannelLayout() internal override void LoadDefaultChannelLayout() { ProbeConfiguration = new(ProbeConfiguration.Probe, ProbeConfiguration.Reference); + ChannelConfiguration = ProbeConfiguration.ChannelConfiguration; + + DrawProbeGroup(); + RefreshZedGraph(); OnFileOpenHandler(); } diff --git a/OpenEphys.Onix1.Design/OpenEphys.Onix1.Design.csproj b/OpenEphys.Onix1.Design/OpenEphys.Onix1.Design.csproj index 82c3b81..ae3173e 100644 --- a/OpenEphys.Onix1.Design/OpenEphys.Onix1.Design.csproj +++ b/OpenEphys.Onix1.Design/OpenEphys.Onix1.Design.csproj @@ -11,14 +11,14 @@ - + + - diff --git a/OpenEphys.Onix1.sln b/OpenEphys.Onix1.sln index e82153c..7798333 100644 --- a/OpenEphys.Onix1.sln +++ b/OpenEphys.Onix1.sln @@ -12,40 +12,20 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Directory.Build.props = Directory.Build.props EndProjectSection EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenEphys.ProbeInterface", "OpenEphys.ProbeInterface\OpenEphys.ProbeInterface\OpenEphys.ProbeInterface.csproj", "{CDC8058A-48DD-49FE-BFC8-9F12F353D29D}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU Debug|x64 = Debug|x64 - Release|Any CPU = Release|Any CPU Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {353B1EBC-F8EB-4D99-8331-9FF15EC17F38}.Debug|Any CPU.ActiveCfg = Debug|x64 - {353B1EBC-F8EB-4D99-8331-9FF15EC17F38}.Debug|Any CPU.Build.0 = Debug|x64 {353B1EBC-F8EB-4D99-8331-9FF15EC17F38}.Debug|x64.ActiveCfg = Debug|x64 {353B1EBC-F8EB-4D99-8331-9FF15EC17F38}.Debug|x64.Build.0 = Debug|x64 - {353B1EBC-F8EB-4D99-8331-9FF15EC17F38}.Release|Any CPU.ActiveCfg = Release|x64 - {353B1EBC-F8EB-4D99-8331-9FF15EC17F38}.Release|Any CPU.Build.0 = Release|x64 {353B1EBC-F8EB-4D99-8331-9FF15EC17F38}.Release|x64.ActiveCfg = Release|x64 {353B1EBC-F8EB-4D99-8331-9FF15EC17F38}.Release|x64.Build.0 = Release|x64 - {149E86EC-B865-463D-81A8-8290CA7F8871}.Debug|Any CPU.ActiveCfg = Debug|x64 - {149E86EC-B865-463D-81A8-8290CA7F8871}.Debug|Any CPU.Build.0 = Debug|x64 {149E86EC-B865-463D-81A8-8290CA7F8871}.Debug|x64.ActiveCfg = Debug|x64 {149E86EC-B865-463D-81A8-8290CA7F8871}.Debug|x64.Build.0 = Debug|x64 - {149E86EC-B865-463D-81A8-8290CA7F8871}.Release|Any CPU.ActiveCfg = Release|x64 - {149E86EC-B865-463D-81A8-8290CA7F8871}.Release|Any CPU.Build.0 = Release|x64 {149E86EC-B865-463D-81A8-8290CA7F8871}.Release|x64.ActiveCfg = Release|x64 {149E86EC-B865-463D-81A8-8290CA7F8871}.Release|x64.Build.0 = Release|x64 - {CDC8058A-48DD-49FE-BFC8-9F12F353D29D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CDC8058A-48DD-49FE-BFC8-9F12F353D29D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CDC8058A-48DD-49FE-BFC8-9F12F353D29D}.Debug|x64.ActiveCfg = Debug|Any CPU - {CDC8058A-48DD-49FE-BFC8-9F12F353D29D}.Debug|x64.Build.0 = Debug|Any CPU - {CDC8058A-48DD-49FE-BFC8-9F12F353D29D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CDC8058A-48DD-49FE-BFC8-9F12F353D29D}.Release|Any CPU.Build.0 = Release|Any CPU - {CDC8058A-48DD-49FE-BFC8-9F12F353D29D}.Release|x64.ActiveCfg = Release|Any CPU - {CDC8058A-48DD-49FE-BFC8-9F12F353D29D}.Release|x64.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/OpenEphys.Onix1/ConfigureNeuropixelsV2e.cs b/OpenEphys.Onix1/ConfigureNeuropixelsV2e.cs index 1f5a336..6256527 100644 --- a/OpenEphys.Onix1/ConfigureNeuropixelsV2e.cs +++ b/OpenEphys.Onix1/ConfigureNeuropixelsV2e.cs @@ -51,6 +51,12 @@ public ConfigureNeuropixelsV2e(ConfigureNeuropixelsV2e configureNode) /// /// Gets or sets the electrode configuration for Probe A. /// + /// + /// Configuration is accomplished using a GUI to aid in channel selection and relevant configuration properties. + /// To open a probe configuration GUI, select the ellipses next the variable + /// in the property pane, or double-click to configure both + /// probes and the simultaneously. + /// [Category(ConfigurationCategory)] [Description("Probe A electrode configuration.")] [Editor("OpenEphys.Onix1.Design.NeuropixelsV2eProbeConfigurationEditor, OpenEphys.Onix1.Design", typeof(UITypeEditor))] @@ -63,6 +69,7 @@ public ConfigureNeuropixelsV2e(ConfigureNeuropixelsV2e configureNode) /// Each probe must be provided with a gain calibration file that contains calibration data /// specific to each probe. This file is mandatory for accurate recordings. /// + [Category(ConfigurationCategory)] [FileNameFilter("Gain calibration files (*_gainCalValues.csv)|*_gainCalValues.csv")] [Description("Path to the gain calibration file for probe A.")] [Editor("Bonsai.Design.OpenFileNameEditor, Bonsai.Design", DesignTypes.UITypeEditor)] @@ -71,6 +78,12 @@ public ConfigureNeuropixelsV2e(ConfigureNeuropixelsV2e configureNode) /// /// Gets or sets the electrode configuration for Probe B. /// + /// + /// Configuration is accomplished using a GUI to aid in channel selection and relevant configuration properties. + /// To open a probe configuration GUI, select the ellipses next the variable + /// in the property pane, or double-click to configure both + /// probes and the simultaneously. + /// [Category(ConfigurationCategory)] [Description("Probe B electrode configuration.")] [Editor("OpenEphys.Onix1.Design.NeuropixelsV2eProbeConfigurationEditor, OpenEphys.Onix1.Design", typeof(UITypeEditor))] @@ -83,6 +96,7 @@ public ConfigureNeuropixelsV2e(ConfigureNeuropixelsV2e configureNode) /// Each probe must be provided with a gain calibration file that contains calibration data /// specific to each probe. This file is mandatory for accurate recordings. /// + [Category(ConfigurationCategory)] [FileNameFilter("Gain calibration files (*_gainCalValues.csv)|*_gainCalValues.csv")] [Description("Path to the gain calibration file for probe B.")] [Editor("Bonsai.Design.OpenFileNameEditor, Bonsai.Design", DesignTypes.UITypeEditor)] diff --git a/OpenEphys.Onix1/ConfigureNeuropixelsV2eBeta.cs b/OpenEphys.Onix1/ConfigureNeuropixelsV2eBeta.cs index abac067..c16e9fe 100644 --- a/OpenEphys.Onix1/ConfigureNeuropixelsV2eBeta.cs +++ b/OpenEphys.Onix1/ConfigureNeuropixelsV2eBeta.cs @@ -54,6 +54,7 @@ public ConfigureNeuropixelsV2eBeta() /// Each probe must be provided with a gain calibration file that contains calibration data /// specific to each probe. This file is mandatory for accurate recordings. /// + [Category(ConfigurationCategory)] [FileNameFilter("Gain calibration files (*_gainCalValues.csv)|*_gainCalValues.csv")] [Description("Path to the gain calibration file for probe A.")] [Editor("Bonsai.Design.OpenFileNameEditor, Bonsai.Design", DesignTypes.UITypeEditor)] @@ -73,6 +74,7 @@ public ConfigureNeuropixelsV2eBeta() /// Each probe must be provided with a gain calibration file that contains calibration data /// specific to each probe. This file is mandatory for accurate recordings. /// + [Category(ConfigurationCategory)] [FileNameFilter("Gain calibration files (*_gainCalValues.csv)|*_gainCalValues.csv")] [Description("Path to the gain calibration file for probe B.")] [Editor("Bonsai.Design.OpenFileNameEditor, Bonsai.Design", DesignTypes.UITypeEditor)] diff --git a/OpenEphys.Onix1/NeuropixelsV2.cs b/OpenEphys.Onix1/NeuropixelsV2.cs index ef17562..ccf7aec 100644 --- a/OpenEphys.Onix1/NeuropixelsV2.cs +++ b/OpenEphys.Onix1/NeuropixelsV2.cs @@ -39,10 +39,10 @@ internal static BitArray[] GenerateShankBits(NeuropixelsV2QuadShankProbeConfigur { BitArray[] shankBits = { - new(NeuropixelsV2.RegistersPerShank, false), - new(NeuropixelsV2.RegistersPerShank, false), - new(NeuropixelsV2.RegistersPerShank, false), - new(NeuropixelsV2.RegistersPerShank, false) + new(RegistersPerShank, false), + new(RegistersPerShank, false), + new(RegistersPerShank, false), + new(RegistersPerShank, false) }; @@ -69,7 +69,7 @@ internal static BitArray[] GenerateShankBits(NeuropixelsV2QuadShankProbeConfigur shankBits[3][1285] = true; } - const int PixelOffset = (NeuropixelsV2.ElectrodePerShank - 1) / 2; + const int PixelOffset = (ElectrodePerShank - 1) / 2; const int ReferencePixelOffset = 3; foreach (var c in probe.ChannelMap) { @@ -89,8 +89,8 @@ internal static BitArray[] GenerateBaseBits(NeuropixelsV2QuadShankProbeConfigura { BitArray[] baseBits = { - new(NeuropixelsV2.ChannelCount * NeuropixelsV2.BaseBitsPerChannel / 2, false), - new(NeuropixelsV2.ChannelCount * NeuropixelsV2.BaseBitsPerChannel / 2, false) + new(ChannelCount * BaseBitsPerChannel / 2, false), + new(ChannelCount * BaseBitsPerChannel / 2, false) }; var referenceBit = probe.Reference switch @@ -103,10 +103,10 @@ internal static BitArray[] GenerateBaseBits(NeuropixelsV2QuadShankProbeConfigura _ => throw new InvalidOperationException("Invalid reference selection."), }; - for (int i = 0; i < NeuropixelsV2.ChannelCount; i++) + for (int i = 0; i < ChannelCount; i++) { var configIndex = i % 2; - var bitOffset = (382 - i + configIndex) / 2 * NeuropixelsV2.BaseBitsPerChannel; + var bitOffset = (382 - i + configIndex) / 2 * BaseBitsPerChannel; baseBits[configIndex][bitOffset + 0] = false; // standby bit baseBits[configIndex][bitOffset + referenceBit] = true; } diff --git a/OpenEphys.Onix1/NeuropixelsV2eProbeGroup.cs b/OpenEphys.Onix1/NeuropixelsV2eProbeGroup.cs index 026a666..150cc4b 100644 --- a/OpenEphys.Onix1/NeuropixelsV2eProbeGroup.cs +++ b/OpenEphys.Onix1/NeuropixelsV2eProbeGroup.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Linq; using Newtonsoft.Json; -using OpenEphys.ProbeInterface; +using OpenEphys.ProbeInterface.NET; namespace OpenEphys.Onix1 { diff --git a/OpenEphys.Onix1/OpenEphys.Onix1.csproj b/OpenEphys.Onix1/OpenEphys.Onix1.csproj index 6a5a0e9..0674335 100644 --- a/OpenEphys.Onix1/OpenEphys.Onix1.csproj +++ b/OpenEphys.Onix1/OpenEphys.Onix1.csproj @@ -13,10 +13,7 @@ - - - - + diff --git a/OpenEphys.ProbeInterface b/OpenEphys.ProbeInterface deleted file mode 160000 index 524b4c1..0000000 --- a/OpenEphys.ProbeInterface +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 524b4c1e03aa3acbeaecb3964810c9c3a84dfc50