From ed9e0b0fbb01a32a326a289df8a34fcf9d8135c7 Mon Sep 17 00:00:00 2001 From: bo <1700012121@pku.edu.cn> Date: Fri, 2 Sep 2022 16:43:57 +0800 Subject: [PATCH 1/5] update core scripts --- CMakeLists.txt | 2 +- Source/EventQueue.h | 143 +++++++++++++++++++++++++++++++++++++ Source/MatlabInterface.cpp | 27 +++++-- Source/MatlabInterface.h | 7 ++ Source/MatlabSocket.cpp | 43 ++++++++++- Source/MatlabSocket.h | 15 ++++ Source/SocketThread.cpp | 55 ++++++++++++-- Source/SocketThread.h | 17 ++++- 8 files changed, 294 insertions(+), 15 deletions(-) create mode 100644 Source/EventQueue.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 53ca538..a8755f8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,7 @@ if (NOT DEFINED GUI_BASE_DIR) if (DEFINED ENV{GUI_BASE_DIR}) set(GUI_BASE_DIR $ENV{GUI_BASE_DIR}) else() - set(GUI_BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../plugin-GUI) + set(GUI_BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../plugin-GUI-main) endif() endif() diff --git a/Source/EventQueue.h b/Source/EventQueue.h new file mode 100644 index 0000000..9dee47f --- /dev/null +++ b/Source/EventQueue.h @@ -0,0 +1,143 @@ +/* + ------------------------------------------------------------------ + + This file is part of the Open Ephys GUI + Copyright (C) 2014 Open Ephys + + ------------------------------------------------------------------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +*/ + +#ifndef EVENTQUEUE_H_INCLUDED +#define EVENTQUEUE_H_INCLUDED + +#include + +#include + +//#include "../Events/Spike.h" + +template +class AsyncEventMessage : + public ReferenceCountedObject +{ +public: + AsyncEventMessage(const MsgContainer& m, int64 t, int extra) : + ReferenceCountedObject(), + m_data(m), + m_timestamp(t), + m_extra(extra) + {} + + ~AsyncEventMessage() {}; + + const MsgContainer& getData() const { return m_data; } + const int64& getTimestamp() const { return m_timestamp; } + const int& getExtra() const { return m_extra; } + +private: + const MsgContainer m_data; + const int64 m_timestamp; + const int m_extra; + +}; + +template +class EventQueue +{ +public: + typedef AsyncEventMessage EventContainer; + typedef ReferenceCountedObjectPtr EventClassPtr; + + EventQueue(int size) : + m_fifo(size) + { + m_data.resize(size); + } + + ~EventQueue() + {} + + int getRemainingEvents() const + { + return m_fifo.getNumReady(); + } + + void reset() + { + m_data.clear(); + m_data.resize(m_fifo.getTotalSize()); + } + + void resize(int size) + { + m_data.clear(); + m_fifo.setTotalSize(size); + m_data.resize(size); + } + + void addEvent(const EventClass& ev, int64 t, int extra = 0) + { + int pos1, size1, pos2, size2; + size1 = 0; + m_fifo.prepareToWrite(1, pos1, size1, pos2, size2); + + /* This means there is a buffer overrun. Instead of overwritting the existing data and risking a collision of both threads + we just skip the incoming samples. TODO: use this to notify of the overrun and act consequently */ + if (size1 > 0) + { + m_data[pos1] = new EventContainer(ev, t, extra); + m_fifo.finishedWrite(1); + } + } + + int getEvents(std::vector& vec, int max) + { + int pos1, size1, pos2, size2; + int numAvailable = m_fifo.getNumReady(); + int numToRead = ((max < numAvailable) && (max > 0)) ? max : numAvailable; + m_fifo.prepareToRead(numToRead, pos1, size1, pos2, size2); + vec.resize(numToRead); + for (int i = 0; i < size1; ++i) + { + vec[i] = m_data[pos1 + i]; + } + if (size2 > 0) + { + for (int i = 0; i < size2; ++i) + { + vec[size1 + i] = m_data[pos2 + i]; + } + } + m_fifo.finishedRead(numToRead); + return numToRead; + } + +private: + std::vector m_data; + AbstractFifo m_fifo; + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(EventQueue); +}; +//NOTE: Events are sent as midimessages while spikes as spike objects due to the difference on how they are passed to the record node. +//Once the probe system is implemented, this will be normalized +typedef EventQueue EventMsgQueue; +typedef EventQueue SpikeMsgQueue; +typedef ReferenceCountedObjectPtr> EventMessagePtr; +typedef ReferenceCountedObjectPtr> SpikeMessagePtr; + +#endif // EVENTQUEUE_H_INCLUDED + diff --git a/Source/MatlabInterface.cpp b/Source/MatlabInterface.cpp index e7b0636..fc1a800 100644 --- a/Source/MatlabInterface.cpp +++ b/Source/MatlabInterface.cpp @@ -3,7 +3,9 @@ MatlabInterface::MatlabInterface() : GenericProcessor("Matlab Interface"), dataQueue(std::make_unique(WRITE_BLOCK_LENGTH, DATA_BUFFER_NBLOCKS)), - socketThread(std::make_unique()), + eventQueue(std::make_unique(EVENT_BUFFER_NEVENTS)), + spikeQueue(std::make_unique(SPIKE_BUFFER_NSPIKES)), + socketThread(std::make_unique(this)), connected(false), selectedChannel(0) { @@ -70,16 +72,17 @@ void MatlabInterface::parameterValueChanged(Parameter* param) void MatlabInterface::process(AudioSampleBuffer& buffer) { - if (!connected) return; + checkForEvents(true); + const int nChannels = buffer.getNumChannels(); if (!socketThread->isThreadRunning()) { dataQueue->setChannels(nChannels); - socketThread->setQueuePointers(dataQueue.get()); + socketThread->setQueuePointers(dataQueue.get(), eventQueue.get(), spikeQueue.get()); socketThread->setFirstBlockFlag(true); socketThread->setSelectedChannel(selectedChannel); socketThread->startThread(); @@ -101,7 +104,23 @@ void MatlabInterface::process(AudioSampleBuffer& buffer) void MatlabInterface::updateSettings() { isEnabled = connected; - for (auto stream : getDataStreams()) parameterValueChanged(stream->getParameter("Channel")); } + +void MatlabInterface::writeSpike(const Spike *spike, const SpikeChannel *spikeElectrode) +{ + int electrodeIndex = getIndexOfMatchingChannel(spikeElectrode); + + if (electrodeIndex >= 0) + spikeQueue->addEvent(*spike, spike->getSampleNumber(), electrodeIndex); + +} + +void MatlabInterface::handleSpike(SpikePtr spike) +{ + //since we acquire spike data periodically, there's no need to send timestamp data + //spike->setTimestampInSeconds(synchronizer.convertSampleNumberToTimestamp(spike->getStreamId(),spike->getSampleNumber())); + writeSpike(spike, spike->getChannelInfo()); + +} diff --git a/Source/MatlabInterface.h b/Source/MatlabInterface.h index a5d311a..83dc2cc 100644 --- a/Source/MatlabInterface.h +++ b/Source/MatlabInterface.h @@ -55,6 +55,9 @@ class MatlabInterface : public GenericProcessor /** Update selected channel for each stream */ void updateSettings() override; + + void writeSpike(const Spike * spike, const SpikeChannel * spikeElectrode); + /** Called whenever a parameter's value is changed (called by GenericProcessor::setParameter())*/ void parameterValueChanged(Parameter* param) override; @@ -68,9 +71,13 @@ class MatlabInterface : public GenericProcessor int selectedChannel; std::unique_ptr dataQueue; + std::unique_ptr eventQueue; + std::unique_ptr spikeQueue; std::vector matlab_data; + void handleSpike(SpikePtr spike) override; + }; #endif \ No newline at end of file diff --git a/Source/MatlabSocket.cpp b/Source/MatlabSocket.cpp index c04cfc8..b37d658 100644 --- a/Source/MatlabSocket.cpp +++ b/Source/MatlabSocket.cpp @@ -1,5 +1,6 @@ #include "MatlabSocket.h" #include "../../Source/CoreServices.h" +//#include "../../Source/Processors/Settings/InfoObject.h" MatlabSocket::MatlabSocket() : port(1234) { @@ -86,6 +87,7 @@ int MatlabSocket::writeData(int channel, const float* buffer, int size, int idx) for (int i = 0; i < size; i++) { snprintf(writeBuffer, sizeof(writeBuffer), "%f", *(buffer+i)); + LOGD("writeBuffer= ",writeBuffer); socket->write(writeBuffer, strlen(writeBuffer)); socket->write(" ",strlen(" ")); } @@ -140,4 +142,43 @@ int MatlabSocket::readData() std::cout << std::endl; fflush(stdout); return 1; -} \ No newline at end of file +} + + +int MatlabSocket::writeSpike(int channels[], uint16 ids[], int64 sampleIdxs[], int nSpikes) //write spike data via socket +{ + int totalSamples =sizeof(channels)+sizeof(ids); + if (totalSamples > bufferSize) //Shouldn't happen, and if it happens it'll be slow, but better this than crashing. Will be reset on file close and reset. + { + LOGD("(spike) Write buffer overrun, resizing to", totalSamples); + bufferSize = totalSamples; + } + + + for (int i = 0; i < nSpikes; i++) { + snprintf(t_writeBuffer, sizeof(t_writeBuffer), "%02d+%02d ", channels[i],ids[i]); + //example: "01+04 ;" represents a spike (id=4,electrode=1) + //example: "01+02 02+03 01+02 ;" represents 2 spikes (id=2,elec=1) and 1 spike (id=3,elec=2) + + for (int j = 0; j < strlen(t_writeBuffer); j++) { + writeBuffer[j + writeBufferPointer] = t_writeBuffer[j]; + } + writeBufferPointer += strlen(t_writeBuffer); //the buffer to send to socket + + } + + memset(readBuffer, 0, sizeof(readBuffer)); + bool blockUntilSpecifiedAmountHasArrived = false; + socket->read(readBuffer, READ_BUFFER_SIZE, blockUntilSpecifiedAmountHasArrived); + + if (readBuffer[0]=='F') { //only send spike writebuffer when receiving specific command + socket->write(writeBuffer, strlen(writeBuffer)); + socket->write("*\n", strlen("*\n")); //a marker representing the end of spike sequence, not necessary + + writeBufferPointer = 0; + memset(writeBuffer, 0, sizeof(writeBuffer)); + } + + return 1; + +} diff --git a/Source/MatlabSocket.h b/Source/MatlabSocket.h index 02ff68e..4982a1d 100644 --- a/Source/MatlabSocket.h +++ b/Source/MatlabSocket.h @@ -1,4 +1,5 @@ #include +#include "../../Source/Processors/Events/Spike.h" #define WRITE_BUFFER_SIZE 40960 #define READ_BUFFER_SIZE 1024 @@ -32,10 +33,22 @@ class MatlabSocket /** Read incoming data */ int readData(); + /** MY CODE*/ + int writeSpike(int channels[], uint16 ids[], int64 sampleIdxs[], int nSpikes); + int isReady; + //int writeSpike(int * channels, uint16 * ids); + //int writeSpike(const SpikeChannel* channel, const Spike* spike); + + //int writeSpike(int electrodeIndex, const Spike * spike); + int selectedChannel; ScopedPointer connection; + HeapBlock m_scaledBuffer; + HeapBlock m_intBuffer; + + private: bool sentHeader; @@ -45,4 +58,6 @@ class MatlabSocket bool connected; //true if client (Matlab) has connected char writeBuffer[WRITE_BUFFER_SIZE]; char readBuffer[READ_BUFFER_SIZE]; + int writeBufferPointer=0; + char t_writeBuffer[WRITE_BUFFER_SIZE] = {0}; }; \ No newline at end of file diff --git a/Source/SocketThread.cpp b/Source/SocketThread.cpp index 7149a62..4164e08 100644 --- a/Source/SocketThread.cpp +++ b/Source/SocketThread.cpp @@ -25,10 +25,11 @@ along with this program. If not, see . #include "SocketThread.h" -SocketThread::SocketThread() : +SocketThread::SocketThread(MatlabInterface* parentNode) : Thread("Socket Thread"), m_receivedFirstBlock(false), -m_cleanExit(true) +m_cleanExit(true), +matlabInterface(parentNode) { socket = std::make_unique(); } @@ -37,9 +38,11 @@ SocketThread::~SocketThread() { } -void SocketThread::setQueuePointers(DataQueue* data) +void SocketThread::setQueuePointers(DataQueue* data, EventMsgQueue* events, SpikeMsgQueue* spikes) { m_dataQueue = data; + m_eventQueue = events; + m_spikeQueue = spikes; } void SocketThread::setSelectedChannel(int channel) @@ -72,9 +75,12 @@ void SocketThread::setFirstBlockFlag(bool didReceiveFirstBlock) void SocketThread::run() { + //LOGD("socketthread::run"); const AudioSampleBuffer& dataBuffer = m_dataQueue->getAudioBufferReference(); bool closeEarly = true; + + //1-Wait until the first block has arrived, so we can align the timestamps while (!m_receivedFirstBlock && !threadShouldExit()) { @@ -100,7 +106,7 @@ void SocketThread::run() void SocketThread::writeData(const AudioSampleBuffer& dataBuffer, int maxSamples, int maxEvents, int maxSpikes, bool lastBlock) { - + //stream continuous data, disabled Array timestamps; Array idx; m_dataQueue->startRead(idx, timestamps, maxSamples); @@ -110,14 +116,49 @@ void SocketThread::writeData(const AudioSampleBuffer& dataBuffer, int maxSamples { if (idx[chan].size1 > 0) { - socket->writeData(chan, dataBuffer.getReadPointer(chan, idx[chan].index1), idx[chan].size1, 1); + //socket->writeData(chan, dataBuffer.getReadPointer(chan, idx[chan].index1), idx[chan].size1, 1); if (idx[chan].size2 > 0) { timestamps.set(chan, timestamps[chan] + idx[chan].size1); - socket->writeData(chan, dataBuffer.getReadPointer(chan, idx[chan].index2), idx[chan].size2, 2); + //socket->writeData(chan, dataBuffer.getReadPointer(chan, idx[chan].index2), idx[chan].size2, 2); } } } - m_dataQueue->stopRead(); + m_dataQueue->stopRead(); //to prevent memory overflow + + + //stream spike data, enabled + std::vector spikes; + int nSpikes = m_spikeQueue->getEvents(spikes, BLOCK_MAX_WRITE_SPIKES); + + memset(channels, 0, sizeof(channels)); + memset(ids, 0, sizeof(ids)); + memset(sampleIdxs, 0, sizeof(sampleIdxs)); + + //if (nSpikes > 0) { LOGD("Nspikes = ", nSpikes); } + for (int sp = 0; sp < nSpikes; ++sp) + { + + if (spikes[sp] != nullptr) + { + + const Spike& spike = spikes[sp]->getData(); + const SpikeChannel* chan = spike.getChannelInfo(); + int spikeIndex = matlabInterface->getIndexOfMatchingChannel(chan); + + const Spike* spikedata = &spikes[sp]->getData(); + int64 sampleIdx = spikedata->getSampleNumber(); + uint16 sortedId = spikedata->getSortedId(); + + //LOGD("spike index = ", spikeIndex+1); + //LOGD("sorted id = ", sortedId); + + channels[sp] = spikeIndex+1; + ids[sp] = sortedId; + sampleIdxs[sp] = sampleIdx; + + } + } + socket->writeSpike(channels, ids, sampleIdxs, nSpikes); } diff --git a/Source/SocketThread.h b/Source/SocketThread.h index 283e99a..402944d 100644 --- a/Source/SocketThread.h +++ b/Source/SocketThread.h @@ -27,6 +27,7 @@ along with this program. If not, see . //#include "EventQueue.h" #include "MatlabSocket.h" #include "DataQueue.h" +#include "EventQueue.h" #include #define BLOCK_MAX_WRITE_SAMPLES 4096 @@ -40,12 +41,14 @@ class SocketThread : public Thread public: /** Constructor */ - SocketThread(); + //SocketThread(); + + SocketThread(MatlabInterface * parentNode); /** Destructor */ ~SocketThread(); - void setQueuePointers(DataQueue* data); + void setQueuePointers(DataQueue * data, EventMsgQueue * events, SpikeMsgQueue * spikes); void setSelectedChannel(int channel); int openSocket(int port, String host); @@ -57,6 +60,8 @@ class SocketThread : public Thread std::unique_ptr socket; + MatlabInterface *matlabInterface; + private: void writeHeader(); void writeData(const AudioSampleBuffer& buffer, int maxSamples, int maxEvents, int maxSpikes, bool lastBlock = false); @@ -64,6 +69,8 @@ class SocketThread : public Thread Array m_channelArray; DataQueue* m_dataQueue; + EventMsgQueue* m_eventQueue; + SpikeMsgQueue *m_spikeQueue; std::atomic m_receivedFirstBlock; std::atomic m_cleanExit; @@ -73,6 +80,12 @@ class SocketThread : public Thread int m_recordingNumber; int m_numChannels; + int channels[128] = {0}; + uint16 ids[128] = {0}; + int64 sampleIdxs[128] = {0}; + + //RecordNode *recordNode; + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(SocketThread); }; From ce39c8505d5a53072914225767ff2e09ceebc12d Mon Sep 17 00:00:00 2001 From: bo <1700012121@pku.edu.cn> Date: Fri, 2 Sep 2022 17:37:24 +0800 Subject: [PATCH 2/5] matlab API updated --- Resources/API/GenericProcessor.m | 14 ++-- Resources/API/OEClient.m | 9 +-- Resources/chain.png | Bin 0 -> 72990 bytes Resources/examples/ArduinoDriver.m | 60 ----------------- Resources/examples/PeakDetector.m | 40 ----------- Resources/examples/Plotter.m | 88 ------------------------- Resources/examples/ThresholdDetector.m | 39 ----------- Resources/examples/display.m | 31 +++++++++ Resources/matlab-interface.png | Bin 57125 -> 71330 bytes 9 files changed, 39 insertions(+), 242 deletions(-) create mode 100644 Resources/chain.png delete mode 100644 Resources/examples/ArduinoDriver.m delete mode 100644 Resources/examples/PeakDetector.m delete mode 100644 Resources/examples/Plotter.m delete mode 100644 Resources/examples/ThresholdDetector.m create mode 100644 Resources/examples/display.m diff --git a/Resources/API/GenericProcessor.m b/Resources/API/GenericProcessor.m index 5dfd027..0d01184 100644 --- a/Resources/API/GenericProcessor.m +++ b/Resources/API/GenericProcessor.m @@ -15,7 +15,7 @@ self.client = OEClient(host, port); self.dataIn = DataBuffer(self.client); - self.dataOut = ['Test!' blanks(self.client.WRITE_MSG_SIZE_IN_BYTES/2-5)]; + self.dataOut = ['Fetch' blanks(self.client.WRITE_MSG_SIZE_IN_BYTES/2-5)]; self.timer = tic; self.dataRate = 0; self.packetsFetched = 0; @@ -24,16 +24,12 @@ end - methods (Access = protected) + methods (Access = public) - function process(self) + function data=process(self) self.client.write(self.dataOut); - self.dataIn.continuous = str2num(self.client.read()); %#ok<*ST2NM> - self.packetsFetched = self.packetsFetched + 1; - self.dataIn.numSamplesFetched = length(self.dataIn.continuous); - lastFetch = self.dataIn.numSamplesFetched/toc(self.timer); - self.dataRate = (lastFetch + self.packetsFetched * self.dataRate ) / (self.packetsFetched + 1); - fprintf("Data rate: %1.2f\n", self.dataRate); + data=self.client.read(); + data=char(data); self.timer = tic; end diff --git a/Resources/API/OEClient.m b/Resources/API/OEClient.m index b6ec5c5..9a1e09e 100644 --- a/Resources/API/OEClient.m +++ b/Resources/API/OEClient.m @@ -22,7 +22,7 @@ properties (Constant) END_OF_MESSAGE = '~'; - MAX_CONNECT_ATTEMPTS = 5; + MAX_CONNECT_ATTEMPTS = 50; WRITE_MSG_SIZE_IN_BYTES = 1024; end @@ -48,16 +48,13 @@ end function line = read(self) - +% fprintf('before readline\n'); line = self.buffered_reader.readLine; - +% fprintf('after readline\n'); end function self = write(self, message) - fprintf("Size of msg: %d\n", length(message)); - fprintf("Message: %s\n", message); - if (length(message)/2 == self.WRITE_MSG_SIZE_IN_BYTES) self.stream_writer.writeBytes(message); self.stream_writer.flush; diff --git a/Resources/chain.png b/Resources/chain.png new file mode 100644 index 0000000000000000000000000000000000000000..e7deb1c84a7ab80570550c90916b90ef96e2ae3d GIT binary patch literal 72990 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Ἦ>cXY=&ayohRghqG$aG7yv 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 YlXaZY?#YHH#3mqn_VSq&X-(Jv2RKYZ`Tzg` literal 0 HcmV?d00001 diff --git a/Resources/examples/ArduinoDriver.m b/Resources/examples/ArduinoDriver.m deleted file mode 100644 index 14c9f92..0000000 --- a/Resources/examples/ArduinoDriver.m +++ /dev/null @@ -1,60 +0,0 @@ -classdef ArduinoDriver < GenericProcessor - - properties - arduino; - timer; - ttl_pin; - ratio_threshold; - end - - methods - - function self = ArduinoDriver(host, port) - - self = self@GenericProcessor(host, port); - - self.arduino = arduino('COM4', 'Uno'); - self.ttl_pin = '10'; - self.ttl_on_time = 0.5; - self.ratio_threshold = 1; - - self.timer = tic; - - self.process(); - - end - - end - - methods (Access = protected) - - function process(self) - - while (true) - - process@GenericProcessor(self); - data = self.dataIn.continuous; - - %Compute delta and theta power here... - delta_pwr = (sum(data.^2))/length(data); - theta_pwr = (sum(data.^3))/length(data); - - %Check the ratio and send a TTL if above threshold - if (delta_pwr / theta_pwr) > self.ratio_threshold - writeDigitalPin(self.arduino, self.ttl_pin, 1); - self.timer = tic; - elseif toc(self.timer) > self.ttl_on_time - %Set TTL low if no threshold and TTL has been high long - %enough - if toc(self.timer) > self.ttl_on_time - writeDigitalPin(self.arduino, self.ttl_pin, 0); - end - end - - end - - end - - end - -end \ No newline at end of file diff --git a/Resources/examples/PeakDetector.m b/Resources/examples/PeakDetector.m deleted file mode 100644 index b96127c..0000000 --- a/Resources/examples/PeakDetector.m +++ /dev/null @@ -1,40 +0,0 @@ -classdef PeakDetector < GenericProcessor - % PeakDetector An example of a filter processor that detects peaks in incoming data. - % This processor will examine the incoming data for peaks and send back indexes to peaks in the incoming data. - % - % PeakFinder Properties - % TODO: - - properties - peaks; - end - - methods - - function self = PeakDetector(host, port) - - self = self@GenericProcessor(host, port); - self.process(); - - end - - end - - methods (Access = protected) - - function process(self) - - while (1) - process@GenericProcessor(self); - - yd = diff(self.dataIn.continuous)./diff(1:self.dataIn.numSamplesFetched); - k = find(~yd); - self.dataOut = sprintf('%d ', k); - - end - - end - - end - -end \ No newline at end of file diff --git a/Resources/examples/Plotter.m b/Resources/examples/Plotter.m deleted file mode 100644 index 52acf14..0000000 --- a/Resources/examples/Plotter.m +++ /dev/null @@ -1,88 +0,0 @@ -classdef Plotter < GenericProcessor - % Plotter An example of a sink processor that displays the incoming data in a plot. - % This processor will continuously plot the incoming data until the figure is closed. - % - % Plotter Properties - % hPlot - The handle to the plot - - properties - hPlot; - fig; - end - - properties - xAxisRange; - yAxisRange; - end - - methods - - function self = Plotter(host, port) - - self = self@GenericProcessor(host, port); - - self.xAxisRange = [0,80000]; - self.yAxisRange = [-1000 1000]; - - plotTitle = 'Open Ephys Data Stream'; - xLabel = 'Sample Count'; - yLabel = 'Voltage [uV]'; - - self.fig = gcf; - - clf; cla; - self.hPlot = plot(0,0); drawnow; hold on; - - title(plotTitle); - xlabel(xLabel); ylabel(yLabel); - xlim(self.xAxisRange); ylim(self.yAxisRange); - - - self.process(); - - end - - end - - methods (Access = protected) - - function process(self) - - lastSample = 0; - xAxisSize = self.xAxisRange(2); - - while 1 - - process@GenericProcessor(self); - - numSamples = self.dataIn.numSamplesFetched; - - if lastSample + numSamples > xAxisSize - xData = (lastSample+1):xAxisSize; - yData = self.dataIn.continuous(1:(xAxisSize-lastSample)); - else - xData = (lastSample+1):(lastSample+numSamples); - yData = self.dataIn.continuous; - end - - self.hPlot = plot(xData,yData); drawnow; - set(self.hPlot, 'XData', xData, 'YData', yData); - - %TODO: Currently ignores (doesn't plot) samples that overshoot x-axis range - lastSample = lastSample + numSamples; - if lastSample > xAxisSize - lastSample = 0; - cla; self.hPlot = plot(0,0); drawnow; - end - - if get(self.fig, 'CurrentCharacter') == 'q' - break; - end - - end - - end - - end - -end \ No newline at end of file diff --git a/Resources/examples/ThresholdDetector.m b/Resources/examples/ThresholdDetector.m deleted file mode 100644 index a6a6f3d..0000000 --- a/Resources/examples/ThresholdDetector.m +++ /dev/null @@ -1,39 +0,0 @@ -classdef ThresholdDetector < GenericProcessor - % ThresholdDetector An example of a filter processor that detects if the incoming data is above a certain threshold value. - - - properties - thresholdValue; - end - - methods - - function self = ThresholdDetector(host, port) - - self = self@GenericProcessor(host, port); - - self.thresholdValue = 3.2; %V - - self.process(); - - end - - end - - methods (Access = protected) - - function process(self) - - while (1) - - process@GenericProcessor(self); - k = find(self.dataIn.continuous > self.thresholdValue); - self.dataOut = sprintf('%d ', k); - - end - - end - - end - -end \ No newline at end of file diff --git a/Resources/examples/display.m b/Resources/examples/display.m new file mode 100644 index 0000000..5bcf216 --- /dev/null +++ b/Resources/examples/display.m @@ -0,0 +1,31 @@ +host='127.0.0.1' +port=1234 +processor=GenericProcessor(host, port); + +cycle_duration=0.05 %50ms cycle + +timeall=tic(); +while 1 + timet=tic(); + data=[]; + t=processor.process(); + if ~isempty(t) + t=split(t,' '); + for i=1:length(t)-1 + % For some unknown reason, there are some garbled codes in the data received for the first time + % If your system language is CHINESE, such codes are presented in the form of '屯' + % For users of other languages, you may experiment yourself + % For formal use, simply discard the data obtained the first time + if ~isempty(t{i}) && t{i}(1)~='屯' + tt=split(t{i},'+'); + data=[data;str2double(tt(1)),str2double(tt(2))]; + end + end + end + if ~isempty(data) + data + end + while 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�!Omg&~Sr4fix+(zaF}o-HWU*Hh^dR8jI* zKXNJFHq~KLu1hv-id|FX;ZuT0A)(!1%{08j4`cKw(QzuJ$ko0x57NCg*m$x^oaVZtL>j`@bkNg0mLmMg&X8jOYkrH<(e~hu^J$`$bSWTU zJDIF}&-t(~5nF(fIx!{VWfU#~$%J<#l2<-6$y-$sYr8kSTc*3f>V1oZDQ zfCvl32UTnjmF}dL)bwEJD4f^rjLAow+b^Cx8TKO<+p_k01G4le1dX{gN*-DFf^U6y zgmB7u-N2I9Nt`Rwxg@~vgTaSR>>;=M40L9;0APMwQd++t0|B}>y)`#jQ57Xjs;@v; zfgu59S>;CVH?h_#iu)Md+Z0A`GBlEJkO$HUjQsla7T{GA{vvF+9s@@IGRXT7csGa7 zXCtOyfHy%p*1AaMd9+a8_OZWDyzTy3%sd~OgGJ-YqT(v9Dh*uW$x~A3JkJa<} z_&1yf-}fQXzEo$NX!jXrji5C*>bKDfexsE=6?5U z{6s8l9TKm`yAhwS@L~)8Z*7aJQ-lU&&$qz^Ux zgz0u$Gvjf;is}TP>sv*Sn{&_czer@VYNz&obF0rg2Kp>H*9>M2o~F(XKo87GFSARk zQ2W9Ymidotm__SG??5dH@l3P%7J0pwOUuZL`36B;jG7%;x3_;vmEWM!~(H`hPune!LvnC&h;P-rey3mb`c?(>oeZ< zJ*4$jpQtMj_Px(!b618e6#jj>`;)z}W$g=M0jl=)06Rsul7t}bkX=gHS_SoUW#w-L zg(W@F&FjKF?3DcLFdbVfL;*Pp2z}Ya%dU5TDq>epnOMFgir(p(-U10%YO84!n=}^} zSG^CZ3*rr8;dyrw;C8wos_ah?STL94@+BcL>NB46lchPK-1 zS?kr%YPTAG8|L;~B5z>v%|<(%VK7Ow$&A;DgV$!x8jVQwJT$?D*f5VvX*+%Cfr(y8NG1+x|D{G+^15r?N78#&nG7ADcs1EJ)?>Y zZzI4JQuib%ssBH>0t$#~eJzvq-A|sKx|K*3uNG-`gWu=A;!69IF3HNN+F4$=H&vKA4JmI7By2neBuk7QVFRo z()oAq>9OB2`Tzy+yJ8SzeY$*NGQUouoiYjDo6ySu%*tUjX~SOwqR0i8*{=1WVnoZ{ z@UhE)+gnL3(aWX`p)WU()&<%9-b4rSF5QkdV+ga^a{UVpW{0uR9K0Ko`GA;KnX83B zM^BKlGT@G8v^{#2ee>ly%1@LYj+4m(L@E%xkL!22(#7tS>~5eHtsHUtI5AA&`%4WXF99T}TEpJkcOGtFezu|LGJ#AZxW@%|8f3w} zGf$>qIUf$<-F!-9*gk0_#e#gg$diqyiZyWxmge>qL;dPguUv7H)PZ}@5cz87q=d6a z?$u^UeF%860dY4AC6iBg4zW00?`DDcW(zRRaLldP{^^^WG)*jNVygu|fh%Uc;tBgeOi+ z3m8`jihl#CxJ*v|HQSh(20F@|LVXgbzhezZaRMioktCf4(bifwjcNh@rQB(CALI+s zUY34%3ly(~0omj=hUq${P#dRO8)KQIPqBJYFB>+^Rs-I$BZ@WvgR2c?Q#LII)WCI8u({(B z2$_hHI?uckOuBSjeWqrTkgGWwxFyZViTRq*fmI5fK3mle-~_a|r5sS!j*w(pKw1kn z%z*+V6auAd&W8!=&q>u%c)ub=x^d5Pw2Hiw+>upit`wQ@?3?GSNTY_l~UsX^K zlAJT2CKF}0%6?WMN(>5#i~Belflvr9%1T-y3XCTGnGMD_?|D#B^#LLusUNa^U>MoA~eln zokyb!r1o=HkR9Bf^)UCr7X1nU?wtXA_|Y?^EO3sSXw^8kGkBSFF#$>ACXud z8TGzxX6*C=Fvsj`H|jT0{Z6iR+JY+fe_WIBF5x@RADmrn5mx-g{sO=5m{ixt$=RaN z#||La+u^DKn&_Lt&98m(Io&ZE%X203Y&TGkTM{n)qrY2ygHH$=pk<;s6*EmiHBkdQ zx;-iBS>xFuSOYS+#`Tf3dY9CFiZpO{bBe#1K;Yb~EurUBu!ISyxb|Q6 z-y@^;EPMxbg0^}QLcR9ft^rGKS5=}OWvfMpx86lx>oFaVZYHL=Bc;nIbTCl09Z(Yx+K(*JM->DgbP-n-+nwUYuhd#+q_Rj?=JYDlJw}M zfA#`cII=J8$h5P4(e8j=@WJzED*Lo5y z<03}yMF)P*MksiUe*~Vp6#L=I6i#djUKBvI80}dFX{(+SeyJK zdUEro>?Ihfv7PN$lZdG0ZD!SZvL)24je6~qrtUf7uz1^Zh}Gwgm4;7lChF}%S$4oB zXji-5v7!$c#n4FhUkZO!=E6_h(Xyqy%lG#d+|2-9d+c)?aHG;DmcKAfOgQs^OlVG$lQ zxwcbj_lF4p0P|<#Px%eefpmAy?xac#C_sK7@}GFjdqN=v;G71AChkWMpAlJz=~3Wk@3^uREOIl&cEgWeYV(2@OD~qN#t(_K(??B-cjD7uT2b*tnET}Q zwlz9h;FB{bJqB1l=7uc%Y=g2HAwJ1E`v?c@U95}tWOCa|w8iRl|ij8ZT>P%{rUHJJ?U z1rJ#bu*Qq}j4C}Y5`cQ2Aqa$X0bmG98vXtKpRh?bX2uR-7oc5HKI3{*39m9z!a-R9 zP>BnEMn0k)<=j4KuA{@q7ZN$pt>$!0)e8zmIj71P z`VuIplH}#ml9JPO2B&7)DO|zr#EY9&9|9zvUoQnh)?bjfsd?#;n(Y zY3aW&20@)A3c%ISCYv#+y$7V`bL0+}^R;UAk#|<>3a5^nnVQ~!mwXDOZPEoS>PsP| z0?`!5)cs}%-DxO{Bz)v|M=_RsOySq(_GZLt&d`?&LU9*Ka@?` zOnGnT{bA1d!<+#k9)pqCoCqdihus~#&nRSl{TP!Fh#^?yT2(vY4~N0RQY0T27l6yA z#l%KRrHT>&-VQ(yP>F=^Lk4=q?R&+<$*sdwD}?Vez2(l>tq@2qa|0(HPEzKsvFLB{_@+mm z0$eRcGeN?SaRhV4TH)KjT&6P zr=N|@HOy+mXT2EPyYZez{htj^oKh~jZqAc&rTtSR*DQ79r`g(z?>*Q6kO{#+RhUC# z{Itci42+G9ozjvtj1Ry2)k*1cQYryj`B$}$gT8?-x=sg!)2C0{f%_b`HN1N++7%a4 zFO_io;DbO#82eMkj&hCBgRW-AV`=FCz<|6H6zgP6bADG=xAlV5^nK~@Ix@s8q)xOv ze(+j8Lw^JBl_{F0=f;KN54u0myfJhJiD>+cQS9Ut58HLtIZAZkkb`a%w8m(SXyENG{&H6PL$Q~4@6kBui z`kkISruMki9P`=9{{Sc+y0EH)XZ;#SZv4i2%96!iAd2wBF}1w1($L~FTI5-eWP72A zQVp)yo-Nl=TkNyMrCi5wS6s@2SlF>kuP@VNuPvs4Rt^M$4=|aQ*y4sLaC;}k!Y*Fm zPEn(!4X#xs+Ia?-ia?QL74S&x2{cV_a_aSZ{F0KAnxS|lTfK~Ii3QJ&a;G$sliM2% zkNeF60=|X8cxbl(!Fk8V5)_$$hYP1isPet&C9ZNG`5h$hz_9|Z3#se*u3P}r%f783 z9aFcMk2UFnDhhA-_iB{^PS$GI=z#Q_zXA@Y{e`+?mPlc>QKOui*bIcM9LV>;`U0sm zgThg%k)$;CGDsiQ=)9g-(iurb88})3vAE*E32L)zuavkf1Z!X0g(T55eYuj61b`AP zSJeGp_kv8K}zP0Spq@IZ?xsW z39dMLwKrwHnLL#0tJ50>jRA6%YyH~WOqrUC^PIh6&|neQ(fFCrs#7iE>U`;9>a(@D z*2YfiVJIU7xneAm0RD zoJq)%;do3beBL<$eeBZ}C{4P&fAzp>i~Gn(y^nh_@etK5#wAja5_I%_LUBsnJG(+skDe&@Brr=vU7mrv1e8)5ao5*D->Ka$ z+{VVHSEfUb@(MiYJmLvVV5T}7GuwJTmZSBlk90nNyg`m^=xpniV-7h@VXinC5pjO9 zgL%NH4y{m1uKK-yw+B*DF`uXK9hPx4-)@#`o~RB3MZ_)3emWa4cryL=AsZK?*&5fR zP1*@idZ_TtJ6aM%B?432+r&WO6r$W3Hj$9h@l77(ab|x)R4x$NWhNlEWSz{ZrzG-I z%$d+@pm*rs8?z|5Db+1a>W5cBBi8InhIW{?^}kP{dY62h@{=Z>g5j^Uf=B@Ox=2XM z=Y59$I#%*CNH66bkaxUb<(frk0R0Qh8_+P;z}%-1|L$X=qPj^1a#JdinhzrJyy4t{ z25)-%+1b4KGz5_E|Js6&4(|7tP#I2;1M??*WUK~6 zXaEI#x=Ex(itE?&JSgn`yJ0>SD*)X<{j<5e=yLR*4C!CzUS<0^xlaMeey29jG%|MY z1{zHGU)wEeZ!Ldt#O^YUEu@C+cit!dfWrl@4Ya}d*j&*v*w^MfIhlW51-?+`AUXw_ zn0h&WpL{}HbKLmf)F|kt!R#k>zg|f7Zb11zRuP=^&U7wy?az~gJ$_Vb_rHEAUk+Rl zTK1Gytp8!JF7#gi{)L(!SBada%;`V2XMa!x@gJM*f2tBV=O2@Jmm0MF26N~ZXgGLk!)(BI{Ks`a|ISddRv=RvN~$^UZIH!D7j_%Bc2Mo#hII9ZK3AVs zi8*-f`BsBt>h09YUr(Z(cfyA%p@Hx0F!7E_Zo1vr=SFEx5eJLGlZ z7X98LJroWaa_e~-y&euIwk_dM2r$K>0H0M#v_(f5nOhHomZzYZt#55{ zA=c~Yplvh)3DOtPOT3QSgG2T@P}?1?L`~1;Qzp|}rMt7G67qXrY@=uVq}ZZd|9U~= zmK=o}rlQ&gIqNSP3v?$@Y2Vg1asYcRfAH4Hj`H07A5!|c0N|4k_vcE1{bWTGYj{-& zrC<={iqG2W%k$bP-PNc?#_=o;pu`0yImxp@VPH#=2%cV4l>8ivhl|bi*JD!FM3u%i-#dm zYN3`8_0eN{bZ^JH7zYE=bb?TRlV*QQ7TmYdU~B4!w}!4$Ih{QC03ag3S(Mzab|vm< z7i7ng$R`dy0Qu%Mh9{JUsx2Xwu!e!OxJ0ny1lj|r`4IYe=u6NWyd)>QRJ$yvgXI(JoAJ^hWuH9)+Hx)` zNV3sM%1@G!fDO_jtIj8#Jpvm4>-w1go*HFukYfJ9f@*)90POJ%NiBmtz2E5UIj*xo z4+*KhL?phs++3f;Jx^5cAQn-|o8?Pil~}M)>>rBbp#It8Y52KTPQ{LWMuEM0j2DVK@3+0KiL+`Xw~za|R8Qu$!QKuoD=B4;X4) zkpmg)ZCo`dXOw05^m)fBX{tXw`y8+=nNw{b#S%n21FmG=8)N|brJ!&ohl$h9I}f_A z`kYsyGyz5A5U9;{rEG;KxDD_Llrhl zFDuX-OE3RjcWkw}G$v^AaL@~4VF`k7y~@3DHL;|3?fMx?v#zr8YrxK+GkwRO#$aV> zmoS%vI4)A&4AS+5gTxXMxJMo>bzYU0C(l*bhe_!nV3l3{r~#APdIvpqY=5=i%2R05TXfCWK`fYM?RUiiZYQnONS?NLdOH^D%H8F` z26!<8+JPtW^p-%`z(Uoeg@e3r#w)i+%ii|M3y=m9q|SGuJ)p+w7I#uN$`W5M*b4E- zA3yjW@jQeY!#K~D^N7|1d~HaY(*=*I&cIegLA0dVI`Qdy_}1r@yEq#T&M%BTWb zB{q<#g&JFTMik5%nw&obQL*!uMY#ZS1898D`$$mNNDS7|Gkb7sbbVE8-M&8mv5i!s z8=t)rXE>$R!s;cRgc*)Q?arx=@+-1OIwj^0${*geykbUkR$>tao1r=ucIZ{%z10$1`PozfA$ zwY|B5*d4?K8au*43y9@70hH`ZDv^30>u>V%=wzmENXe2+gShaROy7(zM+&iWEQ&wk$Poaa5) z@4C((Xa3ltdzks&_r3D7K5N}K0v8N*QSY%cc=L0`UK(%BJAR9m4rFwU-?d|s{qVOk zVyY4maQPH#4V)6dY&0{&U`MR1vTdIj4=Vw$S`05n>~1+_U;2IRF^@K>@bX8{Td+W_ zMm`+}#iC)T>osMdrGwU=|{1h0j2Pl)SgSRg= z8`zBSrtKHKf7jYk08QbHW9utejQyw{BOg}z5mE*ahyGEObbwd|0r}vdJOvFU>3F>m z$lCo}2-nUM$Kn62wGy7&r!E62lAzKsGs~hC+Wbf>M*EGLf+>}*^M5_N@KUz;n*YZy zk3ms7@X#kR^(;-9!^DVD+Vf{(bh4ETx>Getu5d9cF@sreR?K&d_TbRUY9-)LGzk-mrs|rVraw=+uT+06 zNr7GqdLg&jp_&JHXSDNR93CLxBFPQhFj&O=Hv7H9t(v?7Aw`uBlWE=DI@XYQnE(C_bN`PSggrx&=AYBnNtEo$*BV9mwUS5`GD>_DbE?OIHPO3MfY) zPDa$F8PEkocZj*+LPG9?OpGdb%cUb6m{A^Si==Sl9CPRP3)So-=y~hq0Gwm~D3gY-uv?X{RS+rfD?d_-|V+@;3&=0-9k;z{cTM*5+p;IBg?;A` zu)?0>fni9QR;`GgJ!>jdQ-HBcjC=Wx8zB3at@4HMbJq0+fw&7$Mx>BvHM{L^Q&7|= zRo7XV^)9>=LK{S9%CBVk`U=1J{Qk*>EDRpvjEI@``Lh01|IXQ_oU|{`cp7u!+sA3A zubpG2;CceTb>dYui*VgPbW)2HiKevpg^rB6NA8u=}!@|5K*pGa;? zBk%}d4_$?TqP{9$5EKSaG<+1^qU!_>Mgnb#3U|P$J48d*Ps_}P^w7NU=BytBhcEw3 znN7PcVuZgH>_hco2+P<^{5IhiI`;}Ppb3R*&fcP8)j%B!jjNF{*iwhg3_qwf7x}g) z$($b?L>LO^M{t0SeAVCFoY~UA07k@IX0ay*?Cv|pSBvwU2vM;MCt-)?(G=Nl-q%vj zt7&JP5_HT5_E?HLJhg?*ao@SlRXQ1kq|^E3Wv=gc0OjIFsdg=PK$I1K5lEC<;ItM; z4mP*(-7?oxR+z?3J8BqY#ho}e(!=_h4jNGH?DC&nqOq(bIXT-&g<|9=6n#uv6i*T% ztY1Po%A$zbU`zd0G{?u8kZoSNAaMNzO@40ACk*qs#DAtll83kLZt$`6w2TY``+*)Y zPtTkYyH3Wt2Sw&A{#K0E%o!PYfAO!|({DFHoa8U)5P$YcNwI%a9|(NDzPkGbL`fx9 z`t`@-&*cyBr9w$eZk{`{RHpT}+(2Cutxztx(r^D9Am#VIqyS$u^%cKY56qWX*uTn z^ERiSzn9~VPkEM?<{Dx**Z}ra()|#s))D}?-n+NF`KOESVq(|(fv>mI3q}n+WF?zj zg%w-{Rxmt42{YrqwQlD+)ywpLE73orNEcw!D~IS-R_ zsSd@8_8P`rL^}(a?%{CT=}Y%>$@ZqQ)rySBIfj8%I<_+T{JuJck0r_SCux0jsZ~Qm zcoP8zJMuhW|7lx=eGRGP6ZQNuz&9&Vl{@oS2wGM72xW zh3)S!Z!$&hbLYG%>cU;HnUoqIbB{f2F7k~`o3`AO{OvzIrd}agyN$FRbU!@Y;?B&K z(-1R)M&H{WqhYmR#Z8`w-(xx)ELszF7$w=8xzUjMYb`gHkd|?t zloWDaz*I1P1bpQt{$8yuaA@d-HlfYl;Y#0Olo=b6;j&!00^=v34*=O=&CR(mI|5LP zyGo`&Rq<;S*p=Eu98};^@hj*Y*y!90;fGzsS6h4Uht-DnXhr*GjR&V*Vi&_6hh0cLu>@O$lMzKmj8j_taEom z+9w8~==^W5a2X`I3_k$L9nywuVWCK;MS7P<^>Wp1tpiG&Z-*U&f7AZk`vEL1+4dgQ z@&6$j$GPTwPZU}zC5uO<2)^{ zHr6UieJ)_bBGnGkq3?@GT2IevGdEK2<#P~~#Rc_9QH=X)n0qoFoHcMk!4k$%ueXI& z#N(lsX=pBZtILTl8z-Nnq}>!BoMD@b|Dju1WLV#sk|JpoqCIXgS! zI^$d-1bvqAFFCnpPsxAsB^OXu7k0{I&hH8wEf!3VM?D+ogfyG{N?!a;i5dP`Vlg%!s;_@BOd0p) z(vc&<|1_yL_>c(YE<(DA;qj$`Am%yEI~L_=As~Zkrgpyj@!Fuhs3dtC@{m8)>=>iy zDB0aRcZc=%nUO>IhZ>bww2RP;nn|Di7#~D%;K?579zZoEt3+I?fT{si-9b%%kFm6iG+1_nOg7l%(ztRW;~82S*Eq3O0d8c=BS^NZ)#x=iS! zRp0vkN|?Ez|G$mz0NY+6m&;u`jzX`r6C0YH(T;)b*n5}?_%t3(R5I)w8;yKl~y4CdqKw%icx+?L?rzU-h&R!8N~{{at^Gw7{c z5QypLVu)a2G}4KKl%bAWGDvNd{=Mcqiy&fkD~@|@;2x`Y5pdN&Orffp{RE`WXDOQ} z>yH$8~ zqT#t@Brj^AoxDb+zzFEN!>X+PYCBAd}rxxd&WgA? z1AytmK9&x_^k0+?l%i^w=E;K2DSNsj`w^1Pv#WL$4{-o{N~0cr{qp5Y-Ya%{_XSb+ zc!Y*m{2LF|A3MU27pKQqw?^6Al`&}Ht+LmzT_8E`@Ed?`F|W+N?BTf?>9ut1TKd-# zpH~;1#4s|#1lyk&*I#$3+ZMr&oyE+8lTaXk^q6|}n<&sY=?*}{m8@rH^qKfpOiyAp<~~z~(BBbc&iJn8&}JFX*#qw+qnyIANc%HfboFibtAQ zOWdG@Xp7L1{mP=3%W#4vn;SS`O=BweIR^K@)s06of(iIcx5dj7U(VZ7RgTqA0o4QZ7|n(-r56<|=0c>L|%Z z0rj|o$p1imzQbHu4_?`^F%QUsEa_tvUuusWQU@Y&M>frNuMTHBg9}SKM+XxTn zk!a8r?&vqr@-kp_qrlAnN~VqfYrrBx!EJm!#Rtp}*BgzW>0sDMBam546ai`0H#Saw zcp=`1J47Khgkq?^x9*DRz9h&s`A@&GfATK4Y&pHejs<9Yz;xNid9JLR)!VjlVuu)W z{P^)TbX%L8!7JVlh9mo_&M-M;!%KAX9!j%#DdB3GEY8GSP+N+ns0-z631NQPZZB$1}Z?y$?i|f6|xszaxTZz zeg?d^Wa!f^od64s?xupNFLi395bYzp57SOV9$#M-;8Os_Y6^c4)d9Hw>T0XLq{Z5#BKErip9 ziISf_74M5q2VldB(r~0IV50Z#ljIVGR61x%%{{Af5thzFIiaO@?qBQ^oNzU}b?JwH zI!*(u*~SAN2(h92#~n8ykio~y6)6P}QQybDHW4PJM`4gx^_3XBJw_+5-Dhu-lqn0- zYC;#g0I+HJoRac0!10C&j=9cCPhbE3iRufCH*yCe5*b7F>l+%pA*pH0oU!Fwv$+5* zh`?##v-Uu5djsU>+{>bSF~Rnqx2%vdlGe-Zu3^!Vf$48}Yf4cE{a$bRtVB3G4VZxf z*eBr4ojGWH7k&{SCdFwTIf!w#(1Yc*Jocfl4!9dEiP+yIX3)NT^sgaLjeA$mTSm&K z2m3#LFV}Y~xvZfr<)Ey9Tmor@W5v?l))m#pS1G!3D!rRMwr^De@;-L*?fd)VO_TmB zM}h-0p56M!p+pO*0Jl9bH^pT5K$4cw=0tD?RUA2EtV> z$2&NwIY|;4U@VE24h$~6zQs?KZ7gS9+^-~BGw#!pAFXfSTRc6l#eM%_`*({%&PPu= z$s#`42msh9pW68Wr(?K~Yc;bjU8<5S|4||Jez^v9@h6yUey>=~S1vg?f^eMuxX@gH zpQQP~z;a}o@L_$c_&TuKp9}>ogx6aA0$0#m8|X)>Xr8q6bh=q;LMwGbMaAKZPv09x z-QSwoB2;>%;Y>BxRfuJVE>uZN&8xWr$t1C0TGnNynmWe*Sm_ejZAP!$BEM}Z@tAr9 zaXlG~SpV2+G+8vSY53LKx|kABPUnKBj6#y$2+E`jeKv&24E?QBE@4H#QS-DX2MzV+N5Gm*H~*U1{32{5BZ=43itvw|@5C#KLirA|@pE0HskDtu zxDpgS(j)k;A#ZAF<6j}P)(j#+obO?ZIR8O8|D~({S_F#Se7;@!&zg`Qx+6&-+Wxm! zG7rzxHtcfgq>YVDyYxPk!OL}el=A4s5SD?uIBfQ~B=yqfd&lixR`r3e`nOm79eDD8 zd-)%$`A6aW7Sn%z+r$6z0p2f=2ll{?S{K8WGGS%^iVZ!K6CoMX@&<`ajQ-d1QSk0}dxeZ~w1&Z3_#FA^gU8 z?B=*v=2=wE7uPeWr7&%5spzVP(A$}5dDTUvzE*8>NDQZ`zGk< z3M~{;Y`aJd3Pmrnb2iD&n9{*>L_`!66zx)br|04IF4q1Zdr&nP{~w!B^VyhTd(p<> zk&%)1NPdu&Wb2NZhN;?|uHEY|wuiiHSzh0n47>eS_|N~j4E!Gp(f{!W>_{Ojrj4DO zn|q1`e$qmdFO@q7&x}@VbBiWVi~PTpq5pQK|5XV8KmUOLA4$L|Y5pCv*PR;UI2J*> z+2T+U^wreVR9rxKYh%WTO33A@wb#C^8iembJJ{VVHUxP*{VcSWmg;X`<$_`l|8Hu& zr5SDlK8Me~R5E9U_f?UjO%|3e{8sodoo=+?A`%v@N67 z;x2$Q(9V8-p}HkdnVlUVXOHsHv9MtE(p+l`qqoXdk{m)>5U#MA<6%U>9IeokAGh8y zZrg||Nsj-f@9UlnhMJs|L6zw^LVa}C3_tmVVa2n(=kQ0IU9p{T4dGcz;V*|oJb63%^>SO&}m zw-5M#FL9_Ujr{EF>)VzJ`PIaRZ~w&+@40=HR;G%kW~}`&vuc>l60`!8l?h%M)-Z{o zRmV!AT>!ayMUiX!iFW_V=JFwM0D%?Cq43^Iv<49<0mm1~`^Uq6M;#vtR$l{b|<31(t%3?G69bd9}jqc`D3 zPJ8Jv&40u%?7N~FuLtv4+tq3CLGS|=ER8?1(8bVeH;$2v= zm|mX;aN%XIb*j>^%8gOMq~&*8$h28vZt}OZ$cSBMx9M66OUWSw0lspD74$6z@4VDw z7_L)p*ST=M{T#cEO=Hr$S9-;Z^5F=fs&cua%Q?Fka0iiw6IMcD&G;jsxn}`oh zPnqYdh;IO(Oz#Er`XXT4X8qiwB-ar_UJP&f=3=JI5O>+nlQd=rgSuRI?{axT_Ro9# z{vT}6unS9vVb&ii#>9S7wfvwQahR!4#au`~8CU};fp`z{t#74!ezD0ZiI zVK7P2`_*G$k}$0h3`C{d^1FbZT^r-BjM#Zt7|eWa+Y~QtOtNjwu`$fnL4_C&WDQdp zBk2spEukA2nEXiR1p`yFM+uP@C5&D$^@dn@zKK(OI1e(P%2AdPkWPh4TjnOaE*Qo zrZy1D%c(1j|rYB+7`;^g$ zPR7i;4O3vnhNcPZO#pm`e1&qnI8@G0+kt zn7S8OeZ8W$XnUV}}#u;?TRJ@f!4EJn|qw0wGZ<1_WfXQi%UMPxvixC?Mt zKnj5F=P&6z`$n@2Z zs|DLztd@aWD+%LfP7=2&Z(*%FwS6QaNxKilVZ?u50-nEg7{0suuiV{LTzI>i0)0Dk zf7g>#X?)!M9l4x}3Zc0&qY2kZM0=8#06cgN;>ut5*~s~1>K-eqhkPBVE5TY}ySp#& z$W)>iRhP0BeR9gQ@#BNF76Wy7u$Ys)X!Zd-3`5VpM$eb%szn|{)p0d!<(sGwF?Ox1aIIw?s*X3@mL1%=2jTC& zd6H}VP76lF2$#+0^=s(Sq>ZqLnV_^SxOu^_S!58sSE=YEBk3C=BC7#A3|)H$m{wZ1 zm7lMIR$w5q}(<;^m!J-qUP4(_m2tK)o84^cPL*h9TlK*SFZR%Jyy~g zmhN0TP=bTeSX-;Gl+4xDRXr7leZ5ISi^;T`U}pMa8im|8o)T|0WNtjTcdx0r*<879 zYz3yI2!?S_Qj(9_RCjSUIF>|j49@ASVB)M6>kz4zy#a^ z;Bi;IgrWFw?`uNc!nPwt3ZaG<3AS_2+tv-{#%Q7)*-9sKXx-NPurXg1)vRj1@7(T+ z(%X}5v3jT!lejM#y5Gz)8iyfUv*0V&MfPN7iFQw24FHvaK}zS-6;fveV3^Ar>_#)z z$DwSP%4&5qOop9*XIDMyBl^0#yTk3bL6OPRaT|;#^8#SI4rpqYJ)I52AmmGMCU9j3 zzc`VWDAaAw5D_6f0c0k`3T!U&k+T$)vlQN;9Fs`IfF2K1x9`aaBOq*gaRF}bu&>a( z(X*JdoYF!NyfV~d7%Me2Jq$MpRN@zHgybFJG33jJe|(m3k6VWGQ61w4 zFG`omEv#$q7Sp$}2A#PFG?(AqG>eF|>5kIPoa!!1kBq&0Q+VCXZGaHf)0nl4#A>zm zyFqA{#P%Agp`taMU3U@B@Aq*RpwSYR+f`Wpg2cLF3;i!%4NB16v~AJK>Me^Io((=sXNT$w<{Ippk$xKAn%m3VdkV zRhb;|UBiCjx=CvrL=NPjgsLOf#YgpbQ7V7)T_f|}Z;FJ403+X2)NGo$W(hOy!Vwja zbJ=_EepUp6Wg)MdWcfzpKyk1^rfy_|S^e{M25)vXbVV543{nED!x9FtC!=P-{+L58 zZ^jFW0U&x*D`NLr*!^Gw-`(F@Dwl3;12P#k)Dk7Js~YRQm|Ey5rvlo^yjUaGmE9_G z7M5`b$I!w)NZs3V58R)Bl+D|PjM&L`*VfHVFPoPKi}?zI&EIg=!whe+a~X}t=iQUa zViQ>T@xltIAhn2PtC%kvp=0xch6$iA4f`H7*xjxyhn=s{l6kicFx?W_{x!Jx;=_H3 zB$?PjtJXHS%8VFv=epP1rhQr5c7=-r%P92wDh{mGXAlA+h{AYTh3pqPYY85p$RST9SRio;ID{!5+mh)NhJCAwTnhc4)*q{ z+*9lAa=`95MvwH}HL|x~bX{oWu^E$e`FULP7e5+CW)DM`hc{SBO+To9N&T@31gTxY z;S_J(g-dTO?d@=)UbfLV_(RE|1BXx1&TgA=a5Df)2*)}}1C@7e&578dcX7I)VtprB zMVTe+2#-gEf6bmEp$;J^FuZOhB3c6QWb7$s74O$Yz)v{GvXdvH^n7-OgTvU)jtg2$ z2cJS?>ERX!KnA`d!cpf(9sAHgl?vKHy%3dUn1!J-F<+4eqoA*B&OMERMUTw5zz7+5 zqfTTaGJqf`F2I$bb%X4M=E@Laj1wUrMji$AXS4hnbLIC0sY(kGq(q?Ki{|$DKqXyv3B1$rFZ#^F6qOfUIe*?8zNkzpQfeheQURfxU$R$f&=lm8b5=R6DR9CE~ zhDJ=WsR5hCS?93zbIzap`}^}Ap+xdZO2`dcqR5hs#-V*Ff=#7lZ6Y;j1$y1YH=uGz zk1VWW)CO)|8>c^1bqhpUFbOUqVfI3*i!AM^rPLivce)g@?NyuaVav6iLv@vznfV@6 zo;X~MjTw=@va!i9@}r){te-;#-#O1j1Pk&0Eqg9PGYHH+uU`>GQ9Gf`rFAce?W zM=R*as)2H8yF&#s21q(qXj`BEL~UA8By68gb>J6`ZjiSc-T2sPax#iL7A*?(8z?Hl zM&BXZ@BcXZ4n}((%-d1DTz4+=w;$?0Dlz*K2GvtL50M_YcQ5z>T@AXbqgZpFe<(pI z&lZ}QXn`W2DOe-9eX4MHP_Qt&o38N2B%d!&D_J$Q(;J#u^Ho^3t0d>BHc(m((5(P$ z+mlgAYOHn8!_eK;V^OGUWo7lt#q-W>L?4`6+?e@Nr&;B`^F8 z_b)@q1vW^x;Y^M>6xwl_%W(BO6t-gSi1ajhO^Oc-kR?nxxPN;I-wuRhUH*%UPOi+2 z^-NPtlPn-kK5zEK2?hId1{yqM(-rDUnoRPc97uzdXC7YlvFq`_4?RNAMv&KDbdS{L zigO!}OvC70)s;}4>|cZammxlfzbb`3PVKDCiArnB_%b-;cCd;EapP8CGEOk7@Ihd+ zZIOXpZudN5SKZjfk?KnhTpmyd<2P$HiaOxjb+xrW;Eo*3!syKkpmn76WXN&ia6BO) zAu(}};ZS&>g{B)*-}2TpFCK{TxW4G}3fC-bk>GT?Q*J?-}Uh3oM!$WbpM z9e5Y0*S^0Z+2c%3T8U^p7owL{>aZw`Yc*P_v0f@eMq-f^d_%rZ1t$)*PMz$h;@Xlz zv3^kWY*_0q26ciMXKr;PBa}1a$|vS_SmiLR(jK{AY}=AgOqgIDk#7V!bm(`)MW1cj z!R}BV#^A&SVaAWIT2XN0C`gkCR3lx4sG;7tY6cb7q9~BQkO%tAymuA!vpJo&H(5w# zZnez0%I6aXUn->FT>ezN^cbSTsJMrJOvNP-iy$~HsKNbmflq_FUYtDBeb%tjk#e1E zNNz$N(7{9+wEj-P^P=XEzpSyJR>4_i5D%-E@3N_#_MKLhJ!aFZ^TwH$&}LW8xF>U3 zB;H}~C6c}yh07(AT)TEn)jQM)YI)f?Im8KajMCA3=YUIYU91+x?_d#+K7eY6QMDhT z-U#K*R^0O1C&-E>h5dxqjG}mL=n-E~F%JV#ZXh&7WK!V}gp+5Rc9JcWM;hcM>LA>4 z0~V+ERH7hEotbnvK=h&)lz88&t^DPDn^bfdIU~RMzbzJ>)MwjJ8Rt~9A-vX+;%9$z4s*U$ z928^)-@G-+R{=w3>Fiiu;QHOEmgNn`R6*ZWbFtLjwznwlTrQG0qpL=}SPE3)ACHGB-G26T1&S3np;)YJ(&&x+z9~3-IHQ-oPyIn|;AE5Kdmq=8 z803)$sjqQwR6x_|+Trt~`0P?<453<{F)a(WBBj#=y9_fEO4EnK6K-0R!aHD# zSuiFzKGu*2eJUE2xHoXwqspvYFUFL#x6`T~8VQvdDz(um(FMBimVKwx)`#WH81ikF0N8IwM+MR^n<exDqe2b{L`**izjm%S^g%-$aqvYP2xr;j%Q@ zBf)3K4gOS3jk1?4Ta`8J4GjA+=Pyhf>y*e>fkQ5t(hY-ikW0RoAlGAeiipj&pYrBV zx4ktGc)MHY4)si#oAmNZ;Z>+!P1*ZQ(}gwGfN3u{E_5hj(Z=DS^SN1s96m#oqaN!fGW%5@^3b;(P6ncxaVL#C=c;FWR(gTLW!qJj}hF!yTu~T&k zwEGQE1(pO)L&jA&)v_8?reXNgiA=B899nN-0+c6PaH zcE%`QW!H{-zvh9vR1l}peYj*xx<@d_(V^coMtjE6_tomq`N|82Piw4El*3(wy&PB= zZqDZDI`S<*LPOKONB@8(HH;elf!An%$zo%3D$-^$pDMC&5eR!>Wl#g5UU5>=4*zl; zT&Pyy*empYXKYr$X}-#qn1f(vfZT#COEj8rC1$JoH*DZx-<<5T15_TVofB2QO9a~j z%hK3L&oV?b1stvGsJQwd_+VjKoP1cR4$5K$ylN^3p_viu?H@J<@i{K(r`o{-sHE2d zT~)`}*jTZyh*Rf#7SUai{8;qB?fb;ht=H^Lz8i|Nw0x7JD5QV}x|y2}empn4VYH6T zrWNVD{;E^+JLMilI7*ZJUf;eFr*fes!(?r+WDYJiUhwg@xSN=3Fvgekb(e-^@eg`(Y*qUxb{*d-mKy6FX?`}t$7>CkAo52Ns`cZ2~ z=5?l2(A4I(iV3v?rS-X-Dos3v`LRH$$v$UgHys-{A~>}zN$IYFthv8kf<0$WqT1US zRo2R(^BxJC*IO`*Do#+}qeh};t(Uv8Q4>dv#F<>#GDJ|JX=9Sc(yc! zVsj&Fv(BlQ=8?DG;p>M-6CHMdrzrO-4x8Zl z4oVuQVDP%st|q|L0g6?;5Z3)b6C6r_Xno&Z+dhSF2Fy~Q+GHw>JLJd?V0 zMkjvpS+QbjCwPv#$B*+N5nVo83IFtRiS*p63-s6dl$8;5NHaQbLy`^Q!iQ*c?!vdw z1NqAyiWEQw>TAIkuRqtx?k;?q*lBVMHgdpxf%+SqJ4Z)vfpsbRh~uMz~e4FuO^A�#DT`#*rL_$Kmk;ih(k8u!=$6X0 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 From 0f4f1c26acca398c00f6aa0f4b1bbf6f47bba070 Mon Sep 17 00:00:00 2001 From: bo <1700012121@pku.edu.cn> Date: Fri, 2 Sep 2022 17:40:41 +0800 Subject: [PATCH 3/5] readme update --- README.md | 169 ++++++++++++++---------------------------------------- 1 file changed, 43 insertions(+), 126 deletions(-) diff --git a/README.md b/README.md index 678e073..bbdccad 100644 --- a/README.md +++ b/README.md @@ -2,16 +2,19 @@ ![matlab-interface-screenshot](Resources/matlab-interface.png) -Streams one channel of continuous data from the Open Ephys GUI to a live Matlab session. A Matlab API allows seamless processing of the incoming data in real time. +Streams channel and spike_id information of all sorted spikes from open-ephys to matlab. The major application of the present plugin is my custom-made matlab-based close-loop BCI algorithm. It may also help with spike-oriented live processing. ## Installation -This plugin can be added via the Open Ephys GUI Plugin Installer. To access the Plugin Installer, press **ctrl-P** or **⌘P** from inside the GUI. Once the installer is loaded, browse to the "Matlab Interface" plugin and click "Install." +(Coming soon) + ## Usage -Once installed, the plugin will appear as 'Matlab Interface' in the 'Filters' section of the 'Processor List' of the Open Ephys GUI. The plugin can be placed after any source, filter, or sink in the signal chain and will stream the data output by the preceding processor into your Matlab session. +Once installed, the plugin will appear as 'Matlab Interface' in the 'Filters' section of the 'Processor List' of the Open Ephys GUI. The plugin can be placed after any source, filter, or sink in the signal chain and will stream the data output by the preceding processor into your Matlab session. A 'Spike Sorter' must be upstream of 'Matlab Interface', otherwise fatal errors shall arise. Signal chain like below shall work properly: + +![matlab-interface-screenshot](Resources/chain.png) Before starting data acquisition, you will need to press the 'Connect' button in the editor to initiate a connection between the plugin and your Matlab session. The plugin will open a socket using the IP and Port address listed in the Matlab Interface editor. @@ -51,149 +54,62 @@ classdef MyClass < GenericProcessor end ``` -Here's an example of a simple peak detection algorithm: +Once you have designed your class, you can call it from the Matlab command window using `MyClass(host,port)`, where host and port need to match the entries specified in the MatlabEngine editor in the OpenEphys GUI. -```matlab -classdef PeakDetector < GenericProcessor +However, for those who are not familiar with object-oriented programming of matlab, simple scripts are available using the API provided. Here is an example that prints information of every spike every 50ms: - properties - peaks; - end - - methods - function self = PeakDetector(host, port) - self = self@GenericProcessor(host, port); - self.process(); - end - end - - methods (Access = protected) - function process(self) - while (true) - process@GenericProcessor(self); - yd = diff(self.dataIn.continuous)./diff(1:self.dataIn.numSamplesFetched); - self.peaks = find(~yd); - end - end - end -end ``` - -And a simple threshold detector... - -```matlab -classdef ThresholdDetector < GenericProcessor - - properties - thresholdValue; - end - - methods - function self = ThresholdDetector(host, port) - self = self@GenericProcessor(host, port); - self.thresholdValue = 3.2; %V - self.process(); - end - end - - methods (Access = protected) - function process(self) - while (true) - process@GenericProcessor(self); - k = find(self.dataIn.continuous > self.thresholdValue); +host='127.0.0.1' +port=1234 +processor=GenericProcessor(host, port); + +cycle_duration=0.05 %50ms cycle + +timeall=tic(); +while 1 + timet=tic(); + + data=[]; + t=processor.process(); + if ~isempty(t) + t=split(t,' '); + for i=1:length(t)-1 + % For some unknown reason, there are some garbled codes in the data received for the first time + % If your system language is CHINESE, such codes are presented in the form of '屯' + % For users of other languages, you may experiment yourself + % For formal use, simply discard the data obtained the first time + if ~isempty(t{i}) && t{i}(1)~='屯' + tt=split(t{i},'+'); + data=[data;str2double(tt(1)),str2double(tt(2))]; end end end + + if ~isempty(data) + data + end + + while toc(timet) xAxisSize - xData = (lastSample+1):xAxisSize; - yData = self.dataIn.continuous(1:(xAxisSize-lastSample)); - else - xData = (lastSample+1):(lastSample+numSamples); - yData = self.dataIn.continuous; - end - - self.hPlot = plot(xData,yData); drawnow; - set(self.hPlot, 'XData', xData, 'YData', yData); - - %TODO: Currently ignores (doesn't plot) samples that overshoot x-axis range - lastSample = lastSample + numSamples; - if lastSample > xAxisSize - lastSample = 0; - cla; self.hPlot = plot(0,0); drawnow; - end - end - end - end -end -``` -Once you have designed your class, you can call it from the Matlab command window using `MyClass(host,port)`, where host and port need to match the entries specified in the MatlabEngine editor in the OpenEphys GUI. ## Building from source First, follow the instructions on [this page](https://open-ephys.github.io/gui-docs/Developer-Guide/Compiling-the-GUI.html) to build the Open Ephys GUI. -**Important:** This plugin is intended for use with the latest version of the GUI (0.6.0 and higher). The GUI should be compiled from the [`main`](https://github.com/open-ephys/plugin-gui/tree/main) branch, rather than the former `master` branch. +**Important:** This plugin is intended for the latest version of open-ephys GUI (**0.6.0**). Then, clone this repository into a directory at the same level as the `plugin-GUI`, e.g.: ``` Code -├── plugin-GUI +├── plugin-GUI-master │ ├── Build │ ├── Source │ └── ... @@ -218,6 +134,7 @@ Next, launch Visual Studio and open the `OE_PLUGIN_matlab-interface.sln` file th Selecting the `INSTALL` project and manually building it will copy the `.dll` and any other required files into the GUI's `plugins` directory. The next time you launch the GUI from Visual Studio, the Matlab Interface plugin should be available. +**Warning:** Linux and macOS are not tested yet ### Linux @@ -232,7 +149,7 @@ make -j make install ``` -This will build the plugin and copy the `.so` file into the GUI's `plugins` directory. The next time you launch the compiled version of the GUI, the Matlab Interface plugin should be available. +This will build the plugin and copy the `.so` file into the GUI's `plugins` directory. The next time you launch the GUI compiled version of the GUI, the Matlab Interface plugin should be available. ### macOS @@ -251,4 +168,4 @@ Running the `ALL_BUILD` scheme will compile the plugin; running the `INSTALL` sc ### Questions and Troubleshooting -If you have any questions and/or issues regarding this plugin, please open an Issue in this repository or reach out to pavel@open-ephys.org. +If you have any questions and/or issues regarding this plugin, please open an Issue in this repository. From 4335061f0eeddcf76a4ddb32cf99d71de7b10a92 Mon Sep 17 00:00:00 2001 From: bo <1700012121@pku.edu.cn> Date: Fri, 2 Sep 2022 17:41:48 +0800 Subject: [PATCH 4/5] readme update --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bbdccad..b2469e3 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ Once you have designed your class, you can call it from the Matlab command windo However, for those who are not familiar with object-oriented programming of matlab, simple scripts are available using the API provided. Here is an example that prints information of every spike every 50ms: -``` +```matlab host='127.0.0.1' port=1234 processor=GenericProcessor(host, port); From cafac5033ef7ef92bfa675761df462cb5f02e222 Mon Sep 17 00:00:00 2001 From: bo <1700012121@pku.edu.cn> Date: Thu, 29 Sep 2022 15:33:20 +0800 Subject: [PATCH 5/5] replace old methods with non-blocking methods --- Resources/API/GenericProcessor.m | 11 ++++++++ Resources/API/OEClient.m | 44 ++++++++++++++++++++------------ 2 files changed, 39 insertions(+), 16 deletions(-) diff --git a/Resources/API/GenericProcessor.m b/Resources/API/GenericProcessor.m index 0d01184..fbc6bd1 100644 --- a/Resources/API/GenericProcessor.m +++ b/Resources/API/GenericProcessor.m @@ -28,8 +28,19 @@ function data=process(self) self.client.write(self.dataOut); + t=tic(); + while toc(t)<0.002 + end data=self.client.read(); data=char(data); +% fprintf("%s;\n",t); + +% self.dataIn.continuous = t; %#ok<*ST2NM> +% self.packetsFetched = self.packetsFetched + 1; +% self.dataIn.numSamplesFetched = length(self.dataIn.continuous); +% lastFetch = self.dataIn.numSamplesFetched/toc(self.timer); +% self.dataRate = (lastFetch + self.packetsFetched * self.dataRate ) / (self.packetsFetched + 1); +% fprintf("Data rate: %1.2f\n", self.dataRate); self.timer = tic; end diff --git a/Resources/API/OEClient.m b/Resources/API/OEClient.m index 9a1e09e..119adbd 100644 --- a/Resources/API/OEClient.m +++ b/Resources/API/OEClient.m @@ -1,9 +1,9 @@ classdef OEClient < handle - %OECLIENT A client socket for receiving data streams from the Open-Ephys GUI. + %OECLIENT A client socket for receiving data streams from the Open-Ephys GUI. % This class encapsulates a socket on a dedicated, local port in order to - % receive continous data stream from Open Ephys. - + % receive continous data stream from Open Ephys. + properties (Access = public) header; end @@ -19,13 +19,13 @@ stream_reader; buffered_reader; end - + properties (Constant) END_OF_MESSAGE = '~'; MAX_CONNECT_ATTEMPTS = 50; WRITE_MSG_SIZE_IN_BYTES = 1024; end - + methods function self = OEClient(host, port) @@ -41,20 +41,32 @@ attempts = attempts + 1; end - if ~self.connected + if ~self.connected fprintf("Failed to connect to Open Ephys!\n"); end end - + function line = read(self) -% fprintf('before readline\n'); - line = self.buffered_reader.readLine; -% fprintf('after readline\n'); +% line=[]; +% t=self.buffered_reader.read() +% while t~=-1 +% line=[line t]; +% t=self.buffered_reader.read() +% end +% line=[line t]; +if self.buffered_reader.ready() + line = self.buffered_reader.readLine(); +else + line=[]; +end end - + function self = write(self, message) + % fprintf("Size of msg: %d\n", length(message)); + % fprintf("Message: %s\n", message); + if (length(message)/2 == self.WRITE_MSG_SIZE_IN_BYTES) self.stream_writer.writeBytes(message); self.stream_writer.flush; @@ -63,7 +75,7 @@ self.stream_writer.writeBytes([message msg_pad]); self.stream_writer.flush; end - + end function self = connect(self, host, port) @@ -84,12 +96,12 @@ fprintf("Created output stream writer...\n"); self.stream_reader = InputStreamReader(self.in_stream); fprintf("Created input stream reader...\n"); - self.buffered_reader = BufferedReader(self.stream_reader); + self.buffered_reader = BufferedReader(self.stream_reader,65536); fprintf("Created buffered reader...\n"); - catch - fprintf("Connecting...\n"); + catch + fprintf("Connecting openEphys...\n"); end - + end end