Skip to content

Commit

Permalink
Rename socket lib
Browse files Browse the repository at this point in the history
  • Loading branch information
captainjtx committed Jun 11, 2017
1 parent de5ea12 commit 05b346e
Show file tree
Hide file tree
Showing 5 changed files with 180 additions and 31 deletions.
63 changes: 63 additions & 0 deletions lib/socket_communication/cnelab_client.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
% CLIENT connect to a server and read a message
%
% Usage - message = client(host, port, number_of_retries)
function message = cnelab_client(host, port, number_of_retries)

import java.net.Socket
import java.io.*

if (nargin < 3)
number_of_retries = 20; % set to -1 for infinite
end

retry = 0;
input_socket = [];
message = [];

while true

retry = retry + 1;
if ((number_of_retries > 0) && (retry > number_of_retries))
fprintf(1, 'Too many retries\n');
break;
end

try
fprintf(1, 'Retry %d connecting to %s:%d\n', ...
retry, host, port);

% throws if unable to connect
input_socket = Socket(host, port);

% get a buffered data input stream from the socket
input_stream = input_socket.getInputStream;
d_input_stream = DataInputStream(input_stream);

fprintf(1, 'Connected to server\n');

% read data from the socket - wait a short time first
pause(0.5);
bytes_available = input_stream.available;
fprintf(1, 'Reading %d bytes\n', bytes_available);

message = zeros(1, bytes_available, 'uint8');
for i = 1:bytes_available
message(i) = d_input_stream.readByte;
end

message = char(message);

% cleanup
input_socket.close;
break;

catch
if ~isempty(input_socket)
input_socket.close;
end

% pause before retrying
pause(1);
end
end
end
65 changes: 65 additions & 0 deletions lib/socket_communication/cnelab_server.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
% SERVER Write a message over the specified port
%
% Usage - server(message, output_port, number_of_retries)
function cnelab_server(message, output_port, number_of_retries)

import java.net.ServerSocket
import java.io.*

if (nargin < 3)
number_of_retries = 20; % set to -1 for infinite
end
retry = 0;

server_socket = [];
output_socket = [];

while true

retry = retry + 1;

try
if ((number_of_retries > 0) && (retry > number_of_retries))
fprintf(1, 'Too many retries\n');
break;
end

fprintf(1, ['Try %d waiting for client to connect to this ' ...
'host on port : %d\n'], retry, output_port);

% wait for 1 second for client to connect server socket
server_socket = ServerSocket(output_port);
server_socket.setSoTimeout(1000);

output_socket = server_socket.accept;

fprintf(1, 'Client connected\n');

output_stream = output_socket.getOutputStream;
d_output_stream = DataOutputStream(output_stream);

% output the data over the DataOutputStream
% Convert to stream of bytes
fprintf(1, 'Writing %d bytes\n', length(message))
d_output_stream.writeBytes(char(message));
d_output_stream.flush;

% clean up
server_socket.close;
output_socket.close;
break;

catch
if ~isempty(server_socket)
server_socket.close
end

if ~isempty(output_socket)
output_socket.close
end

% pause before retrying
pause(1);
end
end
end
48 changes: 39 additions & 9 deletions script/classify_smc.m
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
len=round(len/1000*fs);
step=round(step/1000*fs);

K=5;
%%
%S1
% motor=[1:6,13:18,25:30,37:42,49:52,61:64,73:76,85:88,97:100,109:111];
Expand All @@ -51,6 +52,13 @@
fig(fi)=figure('name',[num2str(f1(fi)),'-',num2str(f2(fi))],'position',[100,100,600,450]);
end

for s=1:25
for k=1:K
CVc(s) = cvpartition(size(close.data,3),'Kfold',K);
CVo(s) = cvpartition(size(open.data,3),'Kfold',K);
end
end

for ave=0:1
for fi=1:length(f1)
[b,a]=butter(2,[f1(fi) f2(fi)]/(fs/2));
Expand Down Expand Up @@ -192,17 +200,15 @@


Nf=2; % Nmber of CSP vectors
K=5;

eR=zeros(K,1);
CVc = cvpartition(size(dc,3),'Kfold',K);
CVo = cvpartition(size(do,3),'Kfold',K);

for n=1:K
TrCI=CVc.training(n);
TrOI=CVo.training(n);
TrCI=CVc(s).training(n);
TrOI=CVo(s).training(n);

TsCI=CVc.test(n);
TsOI=CVo.test(n);
TsCI=CVc(s).test(n);
TsOI=CVo(s).test(n);

if env
data_o=doh;
Expand Down Expand Up @@ -238,7 +244,7 @@
% title(mean(eR));
end
end

assignin('base',['ave',num2str(ave),'f',num2str(fi)],erM);
figure(fig(fi));
hold on
transparent=1;
Expand All @@ -256,6 +262,7 @@
end
end
end
%%
for i=1:length(fig)
figure(fig(i));
set(gca,'fontsize',20)
Expand All @@ -274,7 +281,7 @@
ylabel('Error Rate(%)');
xlim([-500,1500])
text(20,95,'Onset','FontSize',18)
legend([H{i}(1).mainLine,H{i}(2).mainLine],'High-density ECoG','Averaged ECoG');


end
set([H{1}.mainLine,H{2}.mainLine],'linewidth',2)
Expand All @@ -283,4 +290,27 @@
%
%title('S2')
%legend('boxoff')
h_lfb=[];
h_hfb=[];
%delete(findobj(fig,'type','patch'));
deltaT=time(1)-time(2);
col=[150, 150, 150]/255;
for i=1:size(ave0f1,2)
h_lfb(i)=ttest(ave0f1(:,i),ave1f1(:,i),'Tail','left');
if h_lfb(i)
figure(fig(1))
a=patch('Faces',[1,2,3,4],'Vertices',[time(i)-deltaT/2,0;time(i)+deltaT/2,0;time(i)+deltaT/2,100;time(i)-deltaT/2,100],'facecolor',col,'facealpha',1,'edgecolor','none');
uistack(a,'bottom')
end
h_hfb(i)=ttest(ave0f2(:,i),ave1f2(:,i),'Tail','left');
if h_hfb(i)
figure(fig(2))
a=patch('Faces',[1,2,3,4],'Vertices',[time(i)-deltaT/2,0;time(i)+deltaT/2,0;time(i)+deltaT/2,100;time(i)-deltaT/2,100],'facecolor',col,'facealpha',1,'edgecolor','none');
uistack(a,'bottom')
end
end

for i=1:length(fig)
legend([H{i}(1).mainLine,H{i}(2).mainLine],'High-density ECoG','Averaged ECoG');
end

6 changes: 1 addition & 5 deletions script/ers_category.m
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@
ers_chan=cat(2,ers_chan,bsp.SpatialMapWin.ers_chan{1});
end


t=-500:25:1000;

%%
first_ers=ones(size(ers_chan,1),1)*nan;
end_ers=ones(size(ers_chan,1),1)*nan;
Expand All @@ -27,6 +25,4 @@

onset=names(abs(first_ers)<=100);
early=names(first_ers<=-250);
long=names((end_ers-first_ers)>=1000);


long=names((end_ers-first_ers)>=1000);
29 changes: 12 additions & 17 deletions src/class/SpatialMapWindow.m
Original file line number Diff line number Diff line change
Expand Up @@ -406,6 +406,16 @@
val=find(strcmpi(obj.event_group,obj.event));
end
function val=get.map_val(obj)
%use baseline from all events**********************
if ~isempty(rtfm)
tfm=tfm./repmat(mean(rtfm{j},2),1,size(tfm,2));

for tmp=1:length(event_tfm)
event_tfm{tmp}=event_tfm{tmp}./repmat(mean(rtfm{j},2),1,size(tfm,2));
end
end
%**************************************************

for k=1:length(obj.tfmat)
tf=obj.tfmat(k);

Expand Down Expand Up @@ -1605,8 +1615,6 @@ function NormalizationCallback(obj,src)
end
end



function FreqCallback(obj,src)
switch src
case obj.max_freq_edit
Expand Down Expand Up @@ -1975,19 +1983,7 @@ function ComputeCallback(obj)
tfm=tfm+event_tfm{k};
end
tfm=tfm/length(event_tfm);

obj.tfmat(e).raw_trial_mat{j}=event_tfm;

%use baseline from all events**********************
if ~isempty(rtfm)
tfm=tfm./repmat(mean(rtfm{j},2),1,size(tfm,2));

for tmp=1:length(event_tfm)
event_tfm{tmp}=event_tfm{tmp}./repmat(mean(rtfm{j},2),1,size(tfm,2));
end
end
%**************************************************


obj.tfmat(e).mat{j}=tfm;
obj.tfmat(e).t=t;
obj.tfmat(e).f=f;
Expand Down Expand Up @@ -2016,7 +2012,6 @@ function ComputeCallback(obj)
obj.tfmat.dataset=dataset;
obj.tfmat.channame=channames;
obj.tfmat.trial_mat{j}=[];
obj.tfmat.raw_trial_mat{j}=[];
obj.tfmat.data(:,j)=data(:,j);
obj.tfmat.event=evt{1};
end
Expand Down Expand Up @@ -2838,7 +2833,7 @@ function ExportTrialInfoCallback(obj)

end

raw_event_mat=tf.raw_trial_mat{i};
raw_event_mat=tf.trial_mat{i};
if ~isempty(raw_event_mat)
raw_pow_val=[];

Expand Down

0 comments on commit 05b346e

Please sign in to comment.