barzi
25-05-2008, 16:23
Ciao a tutti. Ho un problema con Matlab e Simulink.
Ho un modello simulink e a un blocco ho assegnato la seguente funzione:
function [exectime, msg] = msgRcvReceiver(seg, msg)
switch seg
case 1
msg.count = msg.count+1;
msg.time(msg.count) = ttCurrentTime - ttGetMsg %********
ttAnalogOut(1,msg.count); % Inserire anche il msg.time
ttAnalogOut(2,msg.time(msg.count));
exectime = -1;
end
Questa funzione viene fatta quando si verifica un certo evento.
Quello che accade è che la variabile msg non mi viene salvata nel workspace di Matlab. Togliendo i ";" nella riga che ho segnato con %***** man mano che va avanti la simulazione visualizzo i valori nella command window, ma nel workspace non mi salva proprio nulla. Come posso fare?
La variabile msg la definisco in questo file .m di inizializzazione:
function receiver_init
% Prova1: receviver node #2
%
% Riceve i Messaggi casuali inviati dal nodo sender #1
%
%
% Initialize TrueTime kernel
ttInitKernel(0, 2, 'prioFP'); % nbrOfInputs, nbrOfOutputs, fixed priority
prio = 1;
msg.time = 0.0;
msg.count = 0.0;
% Initialize network
ttCreateInterruptHandler('nw_handler', prio, 'msgRcvReceiver', msg);
ttInitNetwork(2, 'nw_handler'); % node #2 in the network
Grazie :)
Ho un modello simulink e a un blocco ho assegnato la seguente funzione:
function [exectime, msg] = msgRcvReceiver(seg, msg)
switch seg
case 1
msg.count = msg.count+1;
msg.time(msg.count) = ttCurrentTime - ttGetMsg %********
ttAnalogOut(1,msg.count); % Inserire anche il msg.time
ttAnalogOut(2,msg.time(msg.count));
exectime = -1;
end
Questa funzione viene fatta quando si verifica un certo evento.
Quello che accade è che la variabile msg non mi viene salvata nel workspace di Matlab. Togliendo i ";" nella riga che ho segnato con %***** man mano che va avanti la simulazione visualizzo i valori nella command window, ma nel workspace non mi salva proprio nulla. Come posso fare?
La variabile msg la definisco in questo file .m di inizializzazione:
function receiver_init
% Prova1: receviver node #2
%
% Riceve i Messaggi casuali inviati dal nodo sender #1
%
%
% Initialize TrueTime kernel
ttInitKernel(0, 2, 'prioFP'); % nbrOfInputs, nbrOfOutputs, fixed priority
prio = 1;
msg.time = 0.0;
msg.count = 0.0;
% Initialize network
ttCreateInterruptHandler('nw_handler', prio, 'msgRcvReceiver', msg);
ttInitNetwork(2, 'nw_handler'); % node #2 in the network
Grazie :)