Pārlūkot izejas kodu

equipment met tcpconnection werkend

keep-around/c5216e76cad262723738e350daf9fd25abbc8ea7
Wouter Horlings pirms 8 gadiem
vecāks
revīzija
c3327078fa
1 mainītis faili ar 27 papildinājumiem un 12 dzēšanām
  1. +27
    -12
      OOequipment/Equipment.m

+ 27
- 12
OOequipment/Equipment.m Parādīt failu

@@ -6,12 +6,14 @@ classdef Equipment < handle
name
tcp
channel
%lock
end
methods
function ecq = Equipment(name,ipAddress,port,channel)
ecq.name = name;
ecq.tcp = Equipment.getTCP(ipAddress,port);
ecq.channel = channel;
end
function idn(ecq)
@@ -20,26 +22,39 @@ classdef Equipment < handle
fprintf(ecq.tcp,'++read');
fprintf(fscanf(ecq.tcp));
end
function starttcp(DMM)
fopen(DMM.tcp);
function delete(ecq)
%zorgen dat het device geunlocked is!
Equipment.getTCP(ecq.tcp.RemoteHost,-1);
end
end
methods (Static)
function tcpobject = getTCP(ipAddress,port)
persistent tcpconnection;
ipname = Equipment.ip2structname(ipAddress);
if isempty(tcpconnection)
tcpconnection = struct;
end
if ~isfield(tcpconnection, ipname)
tcpconnection.(ipname).tcp = tcpip(ipAddress,port);
tcpconnection.(ipname).nopen = 1;
fopen(tcpconnection.(ipname).tcp);
if port > 0
if isempty(tcpconnection)
tcpconnection = struct;
end

if ~isfield(tcpconnection, ipname)
tcpconnection.(ipname).tcp = tcpip(ipAddress,port);
tcpconnection.(ipname).nopen = 1;
fopen(tcpconnection.(ipname).tcp);
else
tcpconnection.(ipname).nopen = tcpconnection.(ipname).nopen + 1;
end
tcpobject = tcpconnection.(ipname).tcp;
elseif port == -1
if tcpconnection.(ipname).nopen > 1
tcpconnection.(ipname).nopen = tcpconnection.(ipname).nopen - 1;
else
fclose(tcpconnection.(ipname).tcp);
tcpconnection = rmfield(tcpconnection,ipname);
end
else
tcpconnection.(ipname).nopen = tcpconnection.(ipname).nopen + 1;
error([num2str(port),' is not a valid port number try a value between 1 and 65535.']);
end
tcpobject = tcpconnection.(ipname).tcp;
end
function iptest(ipAddress)


Notiek ielāde…
Atcelt
Saglabāt