| @@ -6,27 +6,57 @@ classdef Equipment < handle | |||||
| name | name | ||||
| tcp | tcp | ||||
| channel | channel | ||||
| %lock | |||||
| locked | |||||
| end | |||||
| properties (Dependent, SetAccess=private) | |||||
| error | |||||
| end | end | ||||
| methods | methods | ||||
| function ecq = Equipment(name,ipAddress,port,channel) | |||||
| ecq.name = name; | |||||
| function ecq = Equipment(ipAddress,port,channel) | |||||
| ecq.tcp = Equipment.getTCP(ipAddress,port); | ecq.tcp = Equipment.getTCP(ipAddress,port); | ||||
| ecq.locked = false; | |||||
| ecq.channel = channel; | ecq.channel = channel; | ||||
| ecq.name = ecq.idn(); | |||||
| end | |||||
| function id = idn(ecq) | |||||
| id = ecq.query('*idn?'); | |||||
| end | end | ||||
| function idn(ecq) | |||||
| fprintf(ecq.tcp,['++addr ',num2str(ecq.channel)]); | |||||
| fprintf(ecq.tcp,'*idn?'); | |||||
| fprintf(ecq.tcp,'++read'); | |||||
| fprintf(fscanf(ecq.tcp)); | |||||
| function unlock(ecq) | |||||
| end | |||||
| function lock(ecq) | |||||
| end | end | ||||
| function delete(ecq) | function delete(ecq) | ||||
| %zorgen dat het device geunlocked is! | %zorgen dat het device geunlocked is! | ||||
| %ecq.unlock; | |||||
| Equipment.getTCP(ecq.tcp.RemoteHost,-1); | Equipment.getTCP(ecq.tcp.RemoteHost,-1); | ||||
| end | end | ||||
| function write(ecq,message) | |||||
| if ecq.channel >= 0 | |||||
| fprintf(ecq.tcp,['++addr ', num2str(ecq.channel)]); | |||||
| end | |||||
| fprintf(ecq.tcp, message); | |||||
| end | |||||
| function output = read(ecq) | |||||
| if ecq.channel >= 0 | |||||
| fprintf(ecq.tcp,'++read'); | |||||
| end | |||||
| output = fscanf(ecq.tcp); | |||||
| end | |||||
| function output = query(ecq,message) | |||||
| write(ecq,message); | |||||
| output = read(ecq); | |||||
| end | |||||
| function e = get.error(ecq) | |||||
| e = ecq.query('SYSTem:ERRor?'); | |||||
| end | |||||
| end | end | ||||
| methods (Static) | methods (Static) | ||||
| function tcpobject = getTCP(ipAddress,port) | function tcpobject = getTCP(ipAddress,port) | ||||
| @@ -69,63 +99,4 @@ classdef Equipment < handle | |||||
| structname = ['ip',ipmatch]; | structname = ['ip',ipmatch]; | ||||
| end | end | ||||
| end | end | ||||
| end | |||||
| % classdef BankAccount < handle | |||||
| % properties (Access = ?AccountManager) | |||||
| % AccountStatus = 'open' | |||||
| % end | |||||
| % properties (SetAccess = private) | |||||
| % AccountNumber | |||||
| % AccountBalance | |||||
| % end | |||||
| % properties (Transient) | |||||
| % AccountListener | |||||
| % end | |||||
| % events | |||||
| % InsufficientFunds | |||||
| % end | |||||
| % methods | |||||
| % function BA = BankAccount(accNum,initBal) | |||||
| % BA.AccountNumber = accNum; | |||||
| % BA.AccountBalance = initBal; | |||||
| % BA.AccountListener = AccountManager.addAccount(BA); | |||||
| % end | |||||
| % function deposit(BA,amt) | |||||
| % BA.AccountBalance = BA.AccountBalance + amt; | |||||
| % if BA.AccountBalance > 0 | |||||
| % BA.AccountStatus = 'open'; | |||||
| % end | |||||
| % end | |||||
| % function withdraw(BA,amt) | |||||
| % if (strcmp(BA.AccountStatus,'closed')&& BA.AccountBalance <= 0) | |||||
| % disp(['Account ',num2str(BA.AccountNumber),' has been closed.']) | |||||
| % return | |||||
| % end | |||||
| % newbal = BA.AccountBalance - amt; | |||||
| % BA.AccountBalance = newbal; | |||||
| % if newbal < 0 | |||||
| % notify(BA,'InsufficientFunds') | |||||
| % end | |||||
| % end | |||||
| % function getStatement(BA) | |||||
| % disp('-------------------------') | |||||
| % disp(['Account: ',num2str(BA.AccountNumber)]) | |||||
| % ab = sprintf('%0.2f',BA.AccountBalance); | |||||
| % disp(['CurrentBalance: ',ab]) | |||||
| % disp(['Account Status: ',BA.AccountStatus]) | |||||
| % disp('-------------------------') | |||||
| % end | |||||
| % end | |||||
| % methods (Static) | |||||
| % function obj = loadobj(s) | |||||
| % if isstruct(s) | |||||
| % accNum = s.AccountNumber; | |||||
| % initBal = s.AccountBalance; | |||||
| % obj = BankAccount(accNum,initBal); | |||||
| % else | |||||
| % obj.AccountListener = AccountManager.addAccount(s); | |||||
| % end | |||||
| % end | |||||
| % end | |||||
| % end | |||||
| end | |||||