Skip to content
Snippets Groups Projects
Commit bd3a4217 authored by aacuevas's avatar aacuevas
Browse files

Fixed TTL events causing Spike Viewer glitch

SpikeDetector used the channel count as eventType on the event channel list, which was used by SpikeDisplayNode to draw the appropiate plot. However, eventType should be used to differentiate different event types, as TTL vs. SPIKE. As result, SpikeDisplayNode tried to plot TTL event channels as 3 electrode plots.
Fixed by adding an offset (SPIKE_BASE_CODE=100) to the channel count at eventType to avoid said collision. However, we perhaps should try to find a more elegant solution.
parent dcb6ab6a
Branches
Tags
No related merge requests found
......@@ -90,7 +90,7 @@ void SpikeDetector::updateSettings()
Channel* ch = new Channel(this, i);
ch->isEventChannel = true;
ch->eventType = electrodes[i]->numChannels;
ch->eventType = SPIKE_BASE_CODE + electrodes[i]->numChannels;
ch->name = electrodes[i]->name;
eventChannels.add(ch);
......
......@@ -86,14 +86,14 @@ int SpikeDisplayNode::getNumberOfChannelsForElectrode(int elec)
for (int i = 0; i < eventChannels.size(); i++)
{
if (eventChannels[i]->eventType < 999)
if ((eventChannels[i]->eventType < 999) && (eventChannels[i]->eventType > SPIKE_BASE_CODE))
{
electrodeIndex++;
if (electrodeIndex == elec)
{
std::cout << "Electrode " << elec << " has " << eventChannels[i]->eventType << " channels" << std::endl;
return eventChannels[i]->eventType;
return (eventChannels[i]->eventType - SPIKE_BASE_CODE);
}
}
}
......@@ -108,7 +108,7 @@ String SpikeDisplayNode::getNameForElectrode(int elec)
for (int i = 0; i < eventChannels.size(); i++)
{
if (eventChannels[i]->eventType < 999)
if ((eventChannels[i]->eventType < 999) && (eventChannels[i]->eventType > SPIKE_BASE_CODE))
{
electrodeIndex++;
......@@ -129,7 +129,7 @@ int SpikeDisplayNode::getNumElectrodes()
for (int i = 0; i < eventChannels.size(); i++)
{
if (eventChannels[i]->eventType < 999)
if ((eventChannels[i]->eventType < 999) && (eventChannels[i]->eventType > SPIKE_BASE_CODE))
{
nElectrodes++;
}
......
......@@ -34,6 +34,8 @@
#define SPIKE_EVENT_CODE 4;
#define MAX_SPIKE_BUFFER_LEN 512 // the true max calculated from the spike values below is actually 507
#define SPIKE_BASE_CODE 100
/**
Allows spikes to be transmitted between processors.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment