Ett litet bekymmer som ni säkert har en enkel lösning på.
Använder matlab för att styra o läsa från diverse mätinstrument via GPIB-interface. Problem är när programmet av någon anledning avslutas innan programmet gjort 'fclose' så hänger sig Matlab.
Har försökt använda mig av 'CloseRequestFcn' men problemet är att GPIB-variablerna ('instr') inte är tillgängliga där och därmed inte kan göra fclose() på dessa objekt.
koden ser ut typ så här och det är inte ett GUI-program utan helt 'vanlig' kod.
function aa
instr=gpib('agilent', 7, 1);
fopen(instr);
set(gcf,'CloseRequestFcn',@my_closefcn)
f=figure(1);
bla bla bla
function my_closefcn(src,evnt)
delete(gcf)
fclose(instr); %instr är ej åtkommlig här
delete(instr); %instr är ej åtkommlig här
Frågan lyder alltså kan man komma åt 'instr'-variabeln inuti funktionen 'my_closefcn'?
Matlab-support
Re: Matlab-support
Det kanske fungerar om du deklarerar variabeln som global.
function aa
global instr
instr=gpib('agilent', 7, 1);
fopen(instr);
set(gcf,'CloseRequestFcn',@my_closefcn)
f=figure(1);
bla bla bla
function my_closefcn(src,evnt)
global instr
delete(gcf)
fclose(instr);
function aa
global instr
instr=gpib('agilent', 7, 1);
fopen(instr);
set(gcf,'CloseRequestFcn',@my_closefcn)
f=figure(1);
bla bla bla
function my_closefcn(src,evnt)
global instr
delete(gcf)
fclose(instr);
Re: Matlab-support
Man kan även sätta user data för GUI fönstret som man senare kan plocka fram i callback funktionen.
User data kan vara en strukt så man kan skicka både filé id med mera.
User data kan vara en strukt så man kan skicka både filé id med mera.