From 4d23ed2438b1071d18019bbd29dd4733bc078393 Mon Sep 17 00:00:00 2001 From: Wouter Horlings Date: Sat, 9 Dec 2017 15:17:59 +0100 Subject: [PATCH] working livescript for RC measurements --- OOequipment/Equipment.m | 54 ++++++++++++++--------- OOequipment/RC_TransferFunction.mlx | Bin 3418 -> 34993 bytes OOequipment/RC_TransferFunction_script.m | 20 +++++++++ OOequipment/asymptote.m | 8 ++++ OOequipment/bodePlot.m | 7 ++- OOequipment/equiment_init.m | 2 - OOequipment/equipment_init.m | 7 +++ OOequipment/phamag.m | 4 +- OOequipment/transferFunction.m | 8 ++-- 9 files changed, 76 insertions(+), 34 deletions(-) create mode 100644 OOequipment/RC_TransferFunction_script.m create mode 100644 OOequipment/asymptote.m delete mode 100644 OOequipment/equiment_init.m create mode 100644 OOequipment/equipment_init.m diff --git a/OOequipment/Equipment.m b/OOequipment/Equipment.m index 0702bbd..d5002df 100644 --- a/OOequipment/Equipment.m +++ b/OOequipment/Equipment.m @@ -103,28 +103,35 @@ classdef Equipment < handle end function data = bin_read(ecq,datalength,type,typesize) - if nargin < 4 - typesize = 8; - end - data = zeros(1,datalength); - totalread = 0; - maxlength = floor(ecq.tcp.InputBufferSize/typesize); - while datalength > 0 - readlength = min(datalength,maxlength); - [lastdata,lastcount] = fread(ecq.tcp,[1,readlength],type); - if lastcount == 0 - error('Data stream from device shorter than expected'); + try + if nargin < 4 + typesize = 8; + end + data = zeros(1,datalength); + totalread = 0; + maxlength = floor(ecq.tcp.InputBufferSize/typesize)-16; + while datalength > 0 + readlength = min(datalength,maxlength); + lastcount = 0; + [lastdata,lastcount] = fread(ecq.tcp,[1,readlength],type); + if lastcount == 0 + error('Data stream from device shorter than expected'); + end + data(totalread+1:totalread+lastcount) = lastdata; + totalread = totalread+lastcount; + datalength = datalength - lastcount; end - data(totalread+1:totalread+lastcount) = lastdata; - totalread = totalread+lastcount; - datalength = datalength - lastcount; + flushinput(ecq.tcp) + ecq.clear + catch ME + flushinput(ecq.tcp); + rethrow(ME); end - flushinput(ecq.tcp) - ecq.clear end function data = bin_read_float(ecq,datalength) - data = bin_read(ecq,datalength,'float',4); + data = bin_read(ecq,datalength,'float',4); + end function output = read(ecq) @@ -243,13 +250,14 @@ classdef Equipment < handle %The connection will be removed if the port is negative number. persistent tcpconnection; %make variable persistent to share tcp-handles across multiple function calls. - [ipname,ipAddress] = Equipment.ip2structname(ipAddress,abs(port)); %Get a structname and a cleaned ipaddress. - if port > 0 %if port number is positive a connection is made. - if isempty(tcpconnection) + if isempty(tcpconnection) %if the tcpconnection is empty (first time function %call) make a struct in the variable. tcpconnection = struct; end + [ipname,ipAddress] = Equipment.ip2structname(ipAddress,abs(port)); %Get a structname and a cleaned ipaddress. + if port > 0 %if port number is positive a connection is made. + if ~isfield(tcpconnection, ipname) %check if the handle is already made before. tcpconnection.(ipname).tcp = tcpip(ipAddress,port); %Make TCP-connection @@ -262,7 +270,9 @@ classdef Equipment < handle end tcpobject = tcpconnection.(ipname).tcp; %return the TCP-connection handle. elseif port < 0 %If the portnumber is negative the connection is removed. - if tcpconnection.(ipname).nopen > 1 + if ~isfield(tcpconnection, ipname) + return; + elseif tcpconnection.(ipname).nopen > 1 %If more than one object uses this tcp-handle. Decrease %the number of connections in use by 1. tcpconnection.(ipname).nopen = tcpconnection.(ipname).nopen - 1; %Decrease the number by 1. @@ -270,7 +280,7 @@ classdef Equipment < handle %If only one handle uses this connection. The %connection is closed and the field is removed from the %tcpconnection struct. - flushinput(sc.tcp); + flushinput(tcpconnection.(ipname).tcp); fclose(tcpconnection.(ipname).tcp); tcpconnection = rmfield(tcpconnection,ipname); end diff --git a/OOequipment/RC_TransferFunction.mlx b/OOequipment/RC_TransferFunction.mlx index d85f1f20c3bdd120657fb69586ab131110fe1910..7cbe783b4337a92c9287d0003968b666a959dcc6 100644 GIT binary patch delta 33700 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 Y-G!6U3>%ZZ3JsG)4G;#oh5!Hn0D+tp(EtDd delta 1893 zcmZvdc{Ce{7RF;sZLKAtmLZ0UEhR|pm70nfGM3t=lxm_?S{j z&Os2;A^?CIi!H25_6~EMfXn{gTlEZurQ9_OQwD*3sSKriW}=}5)bsPu+|I(ltJ{w_ z`(M~YIZ+ka4g>n9TzYM%Pp7SQ9HE=%Q;dCeQdfao2UEasM)D(dVgfE#XY03_>L|BJ zEJ#85n()Oc|FUJE-nl7>v&SFhNsPiRuN9+HdPLXD)M$^$H4!(QslDrw`H~Yo3uSPS z`w>zXCs~KoUHLknnuc%G1CXdJJ!;N)6G>V=)LA#r@ z9_M)GWlYPHjIrG5i!^UqjNQ8`zo738$g@N<PW*I@iP$+i|#btNiP!-(zN*3t6V(fltcb>!Jy~HVvJ|ho=cX|qyLc+YR?AdIbS9u-KZ zgP_f!F{jJd-MVVaTopOd#cpr$e5(A?M&X9oOs|cF-4Dq2E$_VhlqIO+YUQ9{&N}%v zgXTfN#jhk)F88~=p%F9Z+fxgr!pMxtQi#t<>vOF>>~Av{yvFUki2FC-GRrdqj0z#U z%Q0L<<;aBd4Svav^H}W!JgbXWQ2c>;9AUR z0J6XkXgH^;WZq>Mu5)Yq!adgwe`lo3T0JvfKGL&dbYh6{8NO1C6Bn4$$hqcz5wMo( zD2tZ6^qpV6O$E52MMS{>06-k@XIb`~&mf(I0e~oJ06^|g4Z{#ZF<2uUkq}NK7)FPM z_T>8G_;B!<11GSA1dkHvp(M_FEbt@_B1(D9iZTB>iozFl*HrQXkaTKJn(kXO&sLAy zEA2Z)7Ndz5PwS8;V}$do+>MD5eNk$%7!_{&%_Y)7MuUxaAykJ!uEn{rLKpW~n< zV?UPWEyiN~Ot0LyXHcr~Q(k|H2SKT%0p zW7*G^pXFq7)#`gME%9dgD530X#D;oQeyAmQ130WvAVJ29Go_Jv&q+Y1YbC)(_ICEQ z(H9dbdFzuYV@xl6Pd1{Ha_j2S=B>-O9ZQfAzO}EZ_nU=AJ{j@Fv*TMoT@ear3G>SFh#2}-Tv_2U>rSN~=JnI5v zIebJLAhxepFh5OTbGND%i8$}*wfHLg;u=}LjX$=<|Kve$$92;ltK->PGGEz2D3L}@ z_o}2K?*R$3xa$wfnRoiigXf~cX0I3+ZLc;Ll3mu~&)Z0^s4t;4ZQBZV>t!+9AvJ=M z{DWq8%L|iPQ&{R#%z8~p=2WjOkH`9AVmHePJ7slmZIuV2YHdcw&DDI?dZ4>p#N`Piy2AEo}mN_ZmcEY3K? zZ)rNEYb#ICP)XKBY~-0Gg7F?mWboAK7TEqOn%J>M9kU$-#@PhpS6&l*Zl zkG+emW_)$yA0w+8+D0F-(0;FI@TqCOc&6kya)jxAgg8&@17ceh0gk zBw!(Hbb0l~c!`xZA}vIP)x=TO5^L0(Lhn}|z&ziXgD&jh<``U)ocZIOK5n_YeINm@ z_BSf_@2~A=Is)?l`g>Smz#-7XX=B}^pZM;tg#T^)$F~tb