WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Gui Variable wird nicht aktualisiert

 

derTyp
Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 24.02.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.04.2012, 08:37     Titel: Gui Variable wird nicht aktualisiert
  Antworten mit Zitat      
Morgen,

ich habe hier eine einfache Testfunktion in der mit der Auswahl des +-Zeichen das handles.ergebnis auf 10 gesetzt wird und beim Drücken des pushbuttons sollte da auch 10 stehen, aber man muss mehrmals zwischen + und - wechseln bis der richtige Wert über den pushbutton angezeigt wird.

Wie kriege ich diese Variable so global das die Änderung sofort übernommen wird und ich in anderen Funktionen drauf zugreifen kann?

Gui-Programmierung hab ich erst vor kurzem angefangen.

Code:
function varargout = gui_test2(varargin)
% GUI_TEST2 M-file for gui_test2.fig
%      GUI_TEST2, by itself, creates a new GUI_TEST2 or raises the existing
%      singleton*.
%
%      H = GUI_TEST2 returns the handle to a new GUI_TEST2 or the handle to
%      the existing singleton*.
%
%      GUI_TEST2('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in GUI_TEST2.M with the given input arguments.
%
%      GUI_TEST2('Property','Value',...) creates a new GUI_TEST2 or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before gui_test2_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to gui_test2_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help gui_test2

% Last Modified by GUIDE v2.5 20-Apr-2012 18:34:03

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @gui_test2_OpeningFcn, ...
                   'gui_OutputFcn',  @gui_test2_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT


% --- Executes just before gui_test2 is made visible.
function gui_test2_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to gui_test2 (see VARARGIN)

% Choose default command line output for gui_test2
handles.output = hObject;
handles.ergebnis=hObject;
handles.ergebnis=0;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes gui_test2 wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = gui_test2_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;


% --- Executes when selected object is changed in uipanel1.
function uipanel1_SelectionChangeFcn(hObject, eventdata, handles)
% hObject    handle to the selected object in uipanel1
% eventdata  structure with the following fields (see UIBUTTONGROUP)
%   EventName: string 'SelectionChanged' (read only)
%   OldValue: handle of the previously selected object or empty if none was selected
%   NewValue: handle of the currently selected object
% handles    structure with handles and user data (see GUIDATA)

switch get(get(handles.uipanel1,'SelectedObject'),'String')
    case '+'
        fprintf('+\n');
        handles.ergebnis=10;
        guidata(hObject,handles);
       
    case '-'
        fprintf('-\n');
       
end
   


% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
set(handles.text1,'String',num2str(handles.ergebnis));
 
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.04.2012, 11:35     Titel:
  Antworten mit Zitat      
Hallo,

was heißt "mehrmals wechseln"?

Was ist die Default-Auswahl im Popup? Wenn es + ist, dann solltest du in deiner OpeningFcn auch 10 als Default wählen. Ansonsten musst du in der Tat auf - und dann wieder auf + gehen, damit das übernommen wird.

Falls weitere Probleme bestehen, bitte die .fig zur Verfügung stellen, da man den Code ohne nicht laufen lassen kann.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
derTyp
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 24.02.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2012, 10:27     Titel:
  Antworten mit Zitat      
Hi danke für die Antwort.

Du hast Recht, hatte oben bei default auf 0 gesetzt.

Wie löst man das mit Variablen die man dan auch in allen anderen Funktionen nutzen will?

Macht man das genau so?

In der openingFcn die Variable als Struktur anlegen und mit guidata updaten?

Code:

handles.variable1;
guidata(hObject, handles);
 


das heisst wenn ich die Variable wieder in einer anderen Funktion mit einem beliebigen Wert überschreibe, dann muss immer ein guidata folgen richtig?

Oder gibt es da eine einfachere Möglichkeit, oder lieber als Global deklarieren?

Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.04.2012, 10:49     Titel:
  Antworten mit Zitat      
Hallo,

entweder das, oder mit setappdata/getappdata. Globale Variablen halte ich persönlich immer für unschön.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
derTyp
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 24.02.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.04.2012, 10:31     Titel:
  Antworten mit Zitat      
Hi, ich hab nun folgendes Problem wenn ich eine Event-Funktion für die RS232 schnittstelle hinzufüge, dieses Event tritt ein wenn ein 'CR/LF' folgt, ist als Terminator definiert.

Wenn pushbutton gedrückt wird, werden Kommandos über die serielle Schnittstelle rausgehauen, danach bekomme ich eine Antwort. Er springt bei Empfang des Terminators in die "myCallback" Funktion, darin kann ich über das handle nicht den "text" m.H. von set(handles.getVal,'String',num2str(test)); ändern.

Woran könnte es liegen? Habe ja shcon der "myCallback" Funktion handles übergeben

Der Code dazu:
Code:

function varargout = test4(varargin)
% TEST4 M-file for test4.fig
%      TEST4, by itself, creates a new TEST4 or raises the existing
%      singleton*.
%
%      H = TEST4 returns the handle to a new TEST4 or the handle to
%      the existing singleton*.
%
%      TEST4('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in TEST4.M with the given input arguments.
%
%      TEST4('Property','Value',...) creates a new TEST4 or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before test4_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to test4_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help test4

% Last Modified by GUIDE v2.5 23-Apr-2012 11:16:45

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @test4_OpeningFcn, ...
                   'gui_OutputFcn',  @test4_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT


% --- Executes just before test4 is made visible.
function test4_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to test4 (see VARARGIN)

% Choose default command line output for test4
handles.output = hObject;

global pHandle;


handles.test=hObject;
handles.test=0;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes test4 wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = test4_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;


% --- Executes on button press in readVal.
function readVal_Callback(hObject, eventdata, handles)
% hObject    handle to readVal (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of readVal

global pHandle;

%Com-Port init:
%--------------------------------------------------------------------------
strPortDes = 'COM4';
pHandle = serial(strPortDes);
pHandle.BaudRate = 38400;
pHandle.InputBufferSize=4096;

%define Terminator to recognize an incoming stream
%--------------------------------------
%pHandle.Terminator='S';
pHandle.Terminator='CR/LF';
pHandle.BytesAvailableFcnMode = 'terminator';  %terminator or byte
pHandle.BytesAvailableFcn = @myCallback;
%--------------------------------------
   
    %--- Open COM
    fopen(pHandle);
    pHandle.status;
   
    if pHandle.status == 'open'
    fprintf('COM-Port offen\n');
    end
%--------------------------------------------------------------------------
       
        fwrite(pHandle,char(13)) %CR
        pause(0.1);
        fwrite(pHandle,char(10)); %LF
        pause(0.1);
        fwrite(pHandle,'2');
        pause(0.1);
        fwrite(pHandle,'1');
        pause(0.1);
        fwrite(pHandle,'1');
        pause(0.1);
        fwrite(pHandle,'E'); %command



%**************************************************************************
function myCallback(hObject, eventdata, handles) %Event wenn 'CR/LF' empfangen
%**************************************************************************

global pHandle;
       
        foo=fread(pHandle,4,'char');
       
       
        test=foo(3,1);
               
        set(handles.getVal,'String',num2str(test));
   

 



In der Event Funktion "myCallback" möchte ich den text mit dem Wert der vom COm-Port empfangen wurde aktualisiert wird, das klappt nicht..

Folgende Fehlermeldung bekomme ich:

Code:

??? Input argument "handles" is undefined.

Error in ==> test4>myCallback at 141
        set(handles.getVal,'String',num2str(test));

Error in ==> instrcb at 36
        feval(val{1}, obj, eventStruct, val{2:end});
 


test4.fig
 Beschreibung:

Download
 Dateiname:  test4.fig
 Dateigröße:  1.79 KB
 Heruntergeladen:  385 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
derTyp
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 24.02.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.04.2012, 10:49     Titel:
  Antworten mit Zitat      
Es muss bei der BytesAvailableFcn die Struktur handles hinzugefügt werden:

Code:

handles.pHandle.BytesAvailableFcn = {@myCallback,handles};
 
Private Nachricht senden Benutzer-Profile anzeigen
 
derTyp
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 24.02.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.04.2012, 12:54     Titel:
  Antworten mit Zitat      
Hi Leute, ich dachte das wäre die Lösung.

Wenn ich in der "MyCallback" ein guidata(hObject,handles) einfüge kriege ich folgende Fehlermeldung:
Code:

??? Error using ==> guidata at 89
H must be the handle to a figure or figure descendent.
 


Ich hatte irgendwo mal gelesen (finde den Link nicht mehr) das man statt

Code:
handles.pHandle.BytesAvailableFcn = {@myCallback,handles};


Code:
handles.pHandle.BytesAvailableFcn = {@myCallback,hObject};


übergeben muss.

Mit letzterer Variante kriege ich nun eine andere Fehlermeldung:

Code:
??? Attempt to reference field of non-structure array.


An der stelle in meiner "MyCallback-Funktion" bei fread()

Wie übergebe ich den nun der "MyCallback" die ganzen handles?

Hat wer eine Idee.

Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 25.04.2012, 14:20     Titel:
  Antworten mit Zitat      
Hallo derTyp,

Zunächst mal zum Fehler:
Zitat:
??? Error using ==> guidata at 89
H must be the handle to a figure or figure descendent.

Der Aufruf von GUIDATA enthält also keinen Figure-Handle. Dann wäre es hilfreich, sich diesen Aufruf anzuschauen und ihn zu verbessern. Das Ändern des Callbacks ist dabei zunächstmal nicht hilfreich.

Die Callback sehen oft so aus:
Code:
handles.pHandle.BytesAvailableFcn = {@myCallback,handles};
...
function myCallback(objH, EventData, handles)
handles = guidata(handles.Figure);  % handles.Figure ist Handle der Figure

Das Update des handles-Struct per GUIDATA ist hilfreich, wenn dieser Struct nach der Erstellung des callbacks noch geändert wird.

Alternative:
Code:
handles.pHandle.BytesAvailableFcn = @myCallback;
...
function myCallback(objH, EventData)
handles = guidata(objH);


Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
derTyp
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 24.02.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.04.2012, 16:45     Titel:
  Antworten mit Zitat      
Hi Jan, vielen Dank für deine Hilfe.

Ich poste besser den gesamten Code:

Bitte nicht erschrecken, es ist sehr viel Code.
Das Problem ist die "MyCallback-Funktion". Diese wird immer dann aufgerufen wenn ein Byte über die Serielle geschickt wird, das ein "CR/LF" enthält.

Wenn ich den Button "Slave Adresse 1 auslesen" betätige werden paar Kommandos über die serielle schnittstelle geschickt, das funzt soweit.

Hab deinen Vorschlag reingepackt.

Sobald aber etwas über die Serielle Schnittstelle zurückkommt , wird die MyCallback aufgerufen und es kommt die folgende Fehlermeldung:

Code:

??? Error using ==> guidata at 89
H must be the handle to a figure or figure descendent.
 


Das Problem liegt irgendwie in der "MyCallback-Funktion" die z.B. beim Auslesen der Slave Adresse die handles nicht kennt.

Code:
function varargout = thermopile_gui(varargin)
% THERMOPILE_GUI M-file for thermopile_gui.fig
%      THERMOPILE_GUI, by itself, creates a new THERMOPILE_GUI or raises the existing
%      singleton*.
%
%      H = THERMOPILE_GUI returns the handle to a new THERMOPILE_GUI or the handle to
%      the existing singleton*.
%
%      THERMOPILE_GUI('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in THERMOPILE_GUI.M with the given input arguments.
%
%      THERMOPILE_GUI('Property','Value',...) creates a new THERMOPILE_GUI or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before thermopile_gui_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to thermopile_gui_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help thermopile_gui

% Last Modified by GUIDE v2.5 23-Apr-2012 17:24:44

% Begin initialization code - DO NOT EDIT
%global pHandle;


%--------------------------------------------------------------------------
%   legend
%%-------------------------------------------------------------------------
%   Sensor Manufacturer:
%   handle.sensor
%   '1'=melexis
%   '2'=excelitas
%   '3'=heimann
%    
%   Number of Sensors:
%   handle.anz:
%   '1'=1
%   '2'=2
%   ...
%
%   Sensor Type:
%   handle.typ
%   '1'=1x1
%   '2'=8x1
%   '3'=16x4
%   '4'=16x16
%
%   Sensor Data:
%   handle.choice
%   'E'=read slave address
%   'B'=read emissivity
%%-------------------------------------------------------------------------
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @thermopile_gui_OpeningFcn, ...
                   'gui_OutputFcn',  @thermopile_gui_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT


% --- Executes just before thermopile_gui is made visible.
function thermopile_gui_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to thermopile_gui (see VARARGIN)

% Choose default command line output for thermopile_gui
handles.output = hObject;

delete(instrfindall); %disconnect all COM-Ports!


%Connect Button
set(handles.disconnect_com_port,'Enable','off');

set(handles.slaveAdr2Title,'Enable','off');
set(handles.get_slaveAdr2,'Enable','off');
set(handles.read_slaveAdr2,'Enable','off');

set(handles.emission_2,'Enable','off');
set(handles.get_Emission2,'Enable','off');
set(handles.read_emission2,'Enable','off');

%!!!!
%%set(handles.stopSampling,'Enable','off');
%!!!!

%define default values here:
%%-------------------------------------------------------------------------
handles.slaveAdr=hObject;
handles.slaveAdr=255; %Slave Address 1
handles.slaveAdr2=hObject;
handles.slaveAdr2=255; %Slave Address 2
handles.emission1=hObject;
handles.emission1=255; %Emissivity 1
handles.emission2=hObject;
handles.emission2=255; %Emissivity 2

handles.sensor=hObject;
handles.sensor='1'; %melexis
handles.anz=hObject;
handles.anz='1'; %one sensor
handles.typ=hObject;
handles.typ='1'; %1x1

handles.slaveAdr1=hObject;
handles.slaveAdr1=255;

handles.pHandle=hObject;
handles.pHandle=0;

handles.flagSerialOpen=hObject;
handles.flagSerialOpen=0;

handles.captBuf=hObject;
handles.captBuf=0;%zeros(18,1);

handles.choice=hObject;
handles.choice=0;

handles.Flag=hObject;
handles.Flag=0;

handles.SendFlag=hObject;
handles.SendFlag=0;

handles.RecFlag=hObject;
handles.RecFlag=0;

guidata(hObject,handles); %update structure
%%-------------------------------------------------------------------------



set(handles.get_slaveAdr1,'String',num2str(handles.slaveAdr));
set(handles.get_slaveAdr2,'String',num2str(handles.slaveAdr2));
set(handles.get_Emission1,'String',num2str(handles.emission1));
set(handles.get_Emission2,'String',num2str(handles.emission2));


%%figure configuration
%%-------------------------------------------------------------------------
fig_choice=2;

if (fig_choice==1)
   
    %to do
   
elseif (fig_choice==2)
   
    nmbrArrayRow=4;
    nmbrArrayCol=4;

    handles.arrayFigHandle=hObject;
    handles.arrayFigHandle=figure('NumberTitle','off','Name','Sensor-Array','Visible','off','Color',[0.3137 0.3137 0.3137],'KeyPressFcn',@bediener);
    guidata(hObject,handles);

    set(gca,'CLim',[0 256]);
    colorbar('location','EastOutside','YTickMode','manual','YTick',[0:32:256],...
    'YTickLabel',{'-40°C','-30','-20','-10','0','21.25','42.5','63.75','+85 °C'},'FontSize',9);
    title(sprintf('Array [%i x %i]',nmbrArrayRow,nmbrArrayCol),'Color',[1 1 1]);

    hold on; hold all;

    temp=zeros(nmbrArrayRow,nmbrArrayCol);
    data=zeros(nmbrArrayRow,nmbrArrayCol);
   
end

%%-------------------------------------------------------------------------
global flag;
flag=0;


% Update handles structure
guidata(hObject, handles);


% UIWAIT makes thermopile_gui wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = thermopile_gui_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;


% --- Executes on selection change in sel_com_port.
function sel_com_port_Callback(hObject, eventdata, handles)
% hObject    handle to sel_com_port (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns sel_com_port contents as cell array
%        contents{get(hObject,'Value')} returns selected item from sel_com_port


% --- Executes during object creation, after setting all properties.
function sel_com_port_CreateFcn(hObject, eventdata, handles)
% hObject    handle to sel_com_port (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

% COM-Port Auswahl
set(hObject, 'String', {'COM1', 'COM2', 'COM3', 'COM4' ,'COM5'});


% --- Executes on selection change in sel_baudrate.
function sel_baudrate_Callback(hObject, eventdata, handles)
% hObject    handle to sel_baudrate (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns sel_baudrate contents as cell array
%        contents{get(hObject,'Value')} returns selected item from sel_baudrate


% --- Executes during object creation, after setting all properties.
function sel_baudrate_CreateFcn(hObject, eventdata, handles)
% hObject    handle to sel_baudrate (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

% Baudrate Auswahl
set(hObject, 'String', {'9600', '19200', '38400'});


% --- Executes on button press in connect_com_port.
function connect_com_port_Callback(hObject, eventdata, handles)
% hObject    handle to connect_com_port (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
popup_sel_com_port=get(handles.sel_com_port,'Value'); %Welcher Com-Port wurde ausgewaehlt
popup_sel_baud=get(handles.sel_baudrate,'Value'); %Welche Baudrate wurde ausgewaehlt

%global pHandle;

delete(instrfindall);

switch popup_sel_com_port %Waehle COM-Port
    case 1
        strPortDes = 'COM1';
        handles.pHandle = serial(strPortDes);
    case 2
        strPortDes = 'COM2';
        handles.pHandle = serial(strPortDes);
    case 3
        strPortDes = 'COM3';
        handles.pHandle = serial(strPortDes);
    case 4
        strPortDes = 'COM4';
        handles.pHandle = serial(strPortDes);
    case 5
        strPortDes = 'COM5';
        handles.pHandle = serial(strPortDes);
end

switch popup_sel_baud %Waehle Baudrate
    case 1
        handles.pHandle.BaudRate = 9600;       %% Baudrate festlegen
    case 2
        handles.pHandle.BaudRate = 19200;
    case 3
        handles.pHandle.BaudRate = 38400;
    case 4
        handles.pHandle.BaudRate = 115200;
end

    handles.pHandle.InputBufferSize=4096;   %% Eingangsbuffer vorhalten 4096
   
    %define Terminator to recognize an incoming stream
    %--------------------------------------
    %pHandle.Terminator='S';
    handles.pHandle.Terminator='CR/LF';
    handles.pHandle.BytesAvailableFcnMode = 'terminator';  %terminator or byte
   % handles.pHandle.BytesAvailableFcn = {@myCallback,handles};
    handles.pHandle.BytesAvailableFcn = @myCallback;
   %handles.pHandle.BytesAvailableFcn = {@myCallback,hObject};
    %handles.pHandle.BytesAvailableFcn = {@myCallback,guidata(hObject)};
    %handles.pHandle.BytesAvailableFcn = @(src,event)myCallback(src,event,hObject);
   %--------------------------------------
   
    %--- Open COM
    fopen(handles.pHandle);
    handles.pHandle.status;
   
    if handles.pHandle.status ~= 'open'
    warning('COM-Port isn´t open');
    end
       
    if handles.pHandle.status == 'open'
        fprintf('COM-Port offen\n');
        handles.flagSerialOpen=1;
        guidata(hObject,handles);
        %set(handles.com_status,'Visible','on');
        set(handles.disconnect_com_port,'Enable','on');
        set(handles.connect_com_port,'Enable','off');
    end
       

% --- Executes on button press in read_slaveAdr1.
function read_slaveAdr1_Callback(hObject, eventdata, handles)
% hObject    handle to read_slaveAdr1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

global choice;

%if handles.pHandle.status == 'open'
if handles.flagSerialOpen == 1
       
        choice=1; %set flag for reading slave address
 
        fwrite(handles.pHandle,char(13)) %CR
        pause(0.1);
        fwrite(handles.pHandle,char(10)); %LF
        pause(0.1);
        fwrite(handles.pHandle,handles.sensor); %Sensor-Hersteller
        pause(0.1);
        fwrite(handles.pHandle,handles.anz); %Anzahl Sensoren
        pause(0.1);
        fwrite(handles.pHandle,handles.typ); %Sensortyp (Array,Punkt..)
        pause(0.1);
        fwrite(handles.pHandle,'E'); %send commando 'read slave address'
       
end


% --- Executes during object creation, after setting all properties.
function get_slaveAdr1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to get_slaveAdr1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called
guidata(hObject, handles); % Update handles structure



%function myCallback(event,hObject,handles)%(hfig)%hObject%handles
function myCallback(objH,EventData)
%
%**************************************************************************
%global pHandle;
%global slaveAdr;
handles=guidata(objH);
global choice;

fprintf('EVENT\n');

    if choice==1 %read in slave address
       
        foo=fread(handles.pHandle,4,'char');
       
        slaveAdr1=foo(3,1);
        slaveAdr2=foo(4,1);
 
        set(handles.get_slaveAdr1,'String',num2str(slaveAdr1)); %set new slave address 1
        set(handles.get_slaveAdr2,'String',num2str(slaveAdr2)); %set new slave address 2
       
    elseif choice==2 %read in emissivity
        %if(handles.userSlaveAdr>=0 && handles.userSlaveAdr<=127) %check if slave address is valid
       
        foo=fread(handles.pHandle,6,'char');
        emissionVal=(foo(3,1)+(foo(4,1)*256))/10;
       
        set(handles.get_Emission1,'String',num2str(emissionVal));
       
    elseif choice==3 %data sampling - array
       
        handles.captBuf=fread(handles.pHandle,18,'char');
        guidata(hObject,handles);
        handles.RecFlag=1;
        guidata(hObject,handles);
        fprintf('Data arrived\n');
       
       
    end


% --- Executes during object deletion, before destroying properties.
function get_slaveAdr1_DeleteFcn(hObject, eventdata, handles)
% hObject    handle to get_slaveAdr1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)


% --- Executes during object creation, after setting all properties.
function get_Emission1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to get_Emission1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called


% --- Executes on button press in read_emission1.
function read_emission1_Callback(hObject, eventdata, handles)
% hObject    handle to read_emission1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

global choice;

%if (pHandle.status == 'open')
if(handles.flagSerialOpen == 1)
       
        choice=2; %set flag for reading emissivity
                 
        fwrite(handles.pHandle,char(13)) %CR
        pause(0.1);
        fwrite(handles.pHandle,char(10)); %LF
        pause(0.1);
        fwrite(handles.pHandle,handles.sensor); %Sensor-Hersteller
        pause(0.1);
        fwrite(handles.pHandle,handles.anz); %Anzahl Sensoren
        pause(0.1);
        fwrite(handles.pHandle,handles.typ); %Sensortyp (Array,Punkt..)
        pause(0.1);
        fwrite(handles.pHandle,'B'); %send commando 'read slave address'
               
        %set(handles.get_Emission1,'String',num2str(emissionVal));

end


% --- Executes when selected object is changed in panel_sel_Sensor.
function panel_sel_Sensor_SelectionChangeFcn(hObject, eventdata, handles)
% hObject    handle to the selected object in panel_sel_Sensor
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
switch get(get(handles.panel_sel_Sensor,'SelectedObject'),'String')
    case 'Melexis'
        handles.sensor='1';
        guidata(hObject,handles);
    case 'Excelitas'
        handles.sensor='2';
        guidata(hObject,handles);
    case 'Heimann'
        handles.sensor='3';
        guidata(hObject,handles);
end


% --- Executes when selected object is changed in panel_sel_Anz.
function panel_sel_Anz_SelectionChangeFcn(hObject, eventdata, handles)
% hObject    handle to the selected object in panel_sel_Anz
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

switch get(get(handles.panel_sel_Anz,'SelectedObject'),'String')
    case '1'
       
        handles.anz='1';
        %set(handles.slaveAdr2Title,'Visible','off');
        set(handles.slaveAdr2Title,'Enable','off');
        %set(handles.get_slaveAdr2,'Visible','off');
        set(handles.get_slaveAdr2,'Enable','off');
        %set(handles.read_slaveAdr2,'Visible','off');
        set(handles.read_slaveAdr2,'Enable','off');
       
        %set(handles.emission_2,'Visible','off');
        set(handles.emission_2,'Enable','off');
        %set(handles.get_Emission2,'Visible','off');
        set(handles.get_Emission2,'Enable','off');
        %set(handles.read_emission2,'Visible','off');
        set(handles.read_emission2,'Enable','off');
       
    case '2'
        handles.anz='2';
        fprintf('Zwei Sensoren\n');
       
        %make 2. sensor option visible
        %set(handles.slaveAdr2Title,'Visible','on');
        set(handles.slaveAdr2Title,'Enable','on');
       
        %set(handles.get_slaveAdr2,'Visible','on');
        set(handles.get_slaveAdr2,'Enable','on');
       
        %set(handles.read_slaveAdr2,'Visible','on');
        set(handles.read_slaveAdr2,'Enable','on');
       
        %set(handles.emission_2,'Visible','on');
        set(handles.emission_2,'Enable','on');
        %set(handles.get_Emission2,'Visible','on');
        set(handles.get_Emission2,'Enable','on');
        %set(handles.read_emission2,'Visible','on');
        set(handles.read_emission2,'Enable','on');

end


% --- Executes when selected object is changed in panel_sel_Typ.
function panel_sel_Typ_SelectionChangeFcn(hObject, eventdata, handles)
% hObject    handle to the selected object in panel_sel_Typ
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

switch get(get(handles.panel_sel_Typ,'SelectedObject'),'String')
    case '1x1'
        handles.typ='1';
    case '8x1'
        handles.typ='2';
    case '16x4'
        handles.typ='3';
    case '16x16'
        handles.typ='4';
end


% --- Executes on button press in read_slaveAdr2.
function read_slaveAdr2_Callback(hObject, eventdata, handles)
% hObject    handle to read_slaveAdr2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

global choice;

%if handles.pHandle.status == 'open'
if handles.flagSerialOpen == 1
       
        choice=1; %set flag for reading slave address
 
        fwrite(handles.pHandle,char(13)) %CR
        pause(0.1);
        fwrite(handles.pHandle,char(10)); %LF
        pause(0.1);
        fwrite(handles.pHandle,handles.sensor); %Sensor-Hersteller
        pause(0.1);
        fwrite(handles.pHandle,handles.anz); %Anzahl Sensoren
        pause(0.1);
        fwrite(handles.pHandle,handles.typ); %Sensortyp (Array,Punkt..)
        pause(0.1);
        fwrite(handles.pHandle,'E'); %send commando 'read slave address'
       
end


% --- Executes on button press in read_emission2.
function read_emission2_Callback(hObject, eventdata, handles)
% hObject    handle to read_emission2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

global choice;

%if (pHandle.status == 'open')
if(handles.flagSerialOpen == 1)
       
        choice=2; %set flag for reading emissivity
                 
        fwrite(handles.pHandle,char(13)) %CR
        pause(0.1);
        fwrite(handles.pHandle,char(10)); %LF
        pause(0.1);
        fwrite(handles.pHandle,handles.sensor); %Sensor-Hersteller
        pause(0.1);
        fwrite(handles.pHandle,handles.anz); %Anzahl Sensoren
        pause(0.1);
        fwrite(handles.pHandle,handles.typ); %Sensortyp (Array,Punkt..)
        pause(0.1);
        fwrite(handles.pHandle,'B'); %send commando 'read slave address'
               
        %set(handles.get_Emission1,'String',num2str(emissionVal));
end

% --- Executes on button press in disconnect_com_port.
function disconnect_com_port_Callback(hObject, eventdata, handles)
% hObject    handle to disconnect_com_port (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

handles.flagSerialOpen
if handles.flagSerialOpen==1
   
    fprintf('Com-Port schließen\n');
    fclose(handles.pHandle); %Close Com-Port
    delete(INSTRFINDALL);
    handles.flagSerialOpen = 0;
    guidata(hObject,handles);
   
    set(handles.disconnect_com_port,'Enable','off');
    set(handles.connect_com_port,'Enable','on');
end


% --- Executes when selected object is changed in panel_sel_darstellung.
function panel_sel_darstellung_SelectionChangeFcn(hObject, eventdata, handles)
% hObject    handle to the selected object in panel_sel_darstellung
% eventdata  structure with the following fields (see UIBUTTONGROUP)
%   EventName: string 'SelectionChanged' (read only)
%   OldValue: handle of the previously selected object or empty if none was selected
%   NewValue: handle of the currently selected object
% handles    structure with handles and user data (see GUIDATA)

switch get(get(handles.panel_sel_darstellung,'SelectedObject'),'String')
    case 'Real Time Plot'
        fprintf('RealTime\n');
        %set(handles.arrayFigHandle,'Visible','off');
   
       
    case '2D'
     
        nmbrArrayRow=4;
        nmbrArrayCol=4;

        handles.arrayFigHandle=hObject;
        handles.arrayFigHandle=figure('NumberTitle','off','Name','Sensor-Array','Visible','off','Color',[0.3137 0.3137 0.3137],'KeyPressFcn',@bediener);
        guidata(hObject,handles);

        set(gca,'CLim',[0 256]);
        colorbar('location','EastOutside','YTickMode','manual','YTick',[0:32:256],...
        'YTickLabel',{'-40°C','-30','-20','-10','0','21.25','42.5','63.75','+85 °C'},'FontSize',9);
        title(sprintf('Array [%i x %i]',nmbrArrayRow,nmbrArrayCol),'Color',[1 1 1]);

        hold on; hold all;

        %temp=zeros(nmbrArrayRow,nmbrArrayCol); %define data array size
        %data=zeros(nmbrArrayRow,nmbrArrayCol);
       
        set(handles.arrayFigHandle,'Visible','on');
     
end
       


% --- Executes on button press in startSampling.
function startSampling_Callback(hObject, eventdata, handles)
% hObject    handle to startSampling (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

global choice;
global StartSamplFlag;

set(handles.stopSampling,'Enable','on');
set(handles.startSampling,'Enable','off');

set(handles.radiorealtime,'Enable','off');
set(handles.radiob2D,'Enable','off');

fprintf('Messung gestartet!\n');

StartSamplFlag=1;

choice=3; %set flag for sampling data

handles.SendFlag=1;
handles.RecFlag=0;
guidata(hObject, handles);

while(StartSamplFlag) %sampling data, until "Messung stoppen" pressed
   
    %fprintf('sampling\n');
    pause(.00001)
         
        if (handles.SendFlag==1)
                       
            fwrite(handles.pHandle,char(13)) %CR
            pause(0.1);
            fwrite(handles.pHandle,char(10)); %LF
            pause(0.1);
            fwrite(handles.pHandle,handles.sensor); %Sensor-Hersteller
            pause(0.1);
            fwrite(handles.pHandle,handles.anz); %Anzahl Sensoren
            pause(0.1);
            fwrite(handles.pHandle,handles.typ); %Sensortyp (Array,Punkt..)
            pause(0.1);
            fwrite(handles.pHandle,'I'); %send commando 'read slave address'
           
            handles.SendFlag=0;
            guidata(hObject,handles);
           
        end    
        if handles.RecFlag==1    
            fprintf('aussen\n');
            for z=1:1%nmbrArrayRow
                fprintf('Innen\n');
             x=3;
              for j=1:16%nmbrArrayCol
               px_n=handles.captBuf(x,1)+(handles.captBuf(x+1,1)*256)
               x=x+2;
               %LByte=fread(pHandle,1,'char');
               %HByte=fread(pHandle,1,'char');
               %temp(i,j)=(LByte+HByte*256)*0.02-273.15
               %data(i,j)=(temp(i,j)+40)*256/125;
              end
            end  
            handles.SendFlag=1; %next sample
            handles.RecFlag=0; %data processed
            guidata(hObject,handles);
        end
end



% --- Executes on button press in stopSampling.
function stopSampling_Callback(hObject, eventdata, handles)
% hObject    handle to stopSampling (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global StartSamplFlag;

StartSamplFlag=0; %stop sampling

set(handles.startSampling,'Enable','on');
set(handles.stopSampling,'Enable','off');

set(handles.radiorealtime,'Enable','on');
set(handles.radiob2D,'Enable','on');


Bin für jede Hilfe dankbar

thermopile_gui.fig
 Beschreibung:

Download
 Dateiname:  thermopile_gui.fig
 Dateigröße:  10.8 KB
 Heruntergeladen:  362 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
derTyp
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 24.02.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.04.2012, 20:25     Titel:
  Antworten mit Zitat      
Nabend,
mir lässt mein Programm einfach keine Ruhe...

Habe noch dazu ein ähnliches Minimalbeispiel im Internet gefunden, habs etwas angepasst und da funktioniert es. Hilft das vielleicht bei der Lösung meines Problems weiter?

Kurze Beschreibung:
Button wird gedrückt >> Serielle Shcnittstelle wird eingerichtet.

Wird ein 'S' über das Terminal geschickt wird die Mycallback aufgerufen und der Text in 200 geändert.

Code:

function varargout = test5(varargin)
% TEST5 M-file for test5.fig
%      TEST5, by itself, creates a new TEST5 or raises the existing
%      singleton*.
%
%      H = TEST5 returns the handle to a new TEST5 or the handle to
%      the existing singleton*.
%
%      TEST5('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in TEST5.M with the given input arguments.
%
%      TEST5('Property','Value',...) creates a new TEST5 or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before test5_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to test5_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help test5

% Last Modified by GUIDE v2.5 25-Apr-2012 20:09:59

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @test5_OpeningFcn, ...
                   'gui_OutputFcn',  @test5_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT


% --- Executes just before test5 is made visible.
function test5_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to test5 (see VARARGIN)

% Choose default command line output for test5
handles.output = hObject;

handles.text=hObject;
handles.text=100;

handles.pHandle=hObject;
handles.pHandle=0;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes test5 wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = test5_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;


% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
strPortDes = 'COM11';
handles.pHandle = serial(strPortDes);
handles.pHandle.BaudRate = 9600;

handles.pHandle.InputBufferSize=4096;   %% Eingangsbuffer vorhalten 4096
handles.pHandle.Terminator='S';
handles.pHandle.BytesAvailableFcnMode = 'terminator';  %terminator or byte
%handles.pHandle.BytesAvailableFcn = @myCallback;
handles.pHandle.BytesAvailableFcn = @(src, event) myCallback(src, event, hObject);

guidata(hObject,handles);

 fopen(handles.pHandle);

function myCallback(src, event, FigureObject)
handles = guidata(FigureObject);
handles.text=200;
guidata(FigureObject,handles);
set(handles.text1,'string',num2str(handles.text));
   
 


test5.fig
 Beschreibung:

Download
 Dateiname:  test5.fig
 Dateigröße:  1.75 KB
 Heruntergeladen:  379 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
derTyp
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 24.02.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.04.2012, 08:29     Titel:
  Antworten mit Zitat      
Hi,

ich konnte erst heute testen.

Habe nun folgende Zeilen geändert:

Code:

handles.pHandle.BytesAvailableFcn = @(src, event) myCallback(src, event, hObject);
 


Code:
function myCallback(src, event, FigureObject)
%
%**************************************************************************
%global pHandle;
%global slaveAdr;
handles=guidata(FigureObject);
.
.
.


Das Problem ist nur das die Variable handles.RecFlag in der myCallback mit guidata(FigureObject,handles); nicht aktualisiert wird.

In der Funktion "startSampling_Callback" bleibt diese Variable immer 0, hat jmd ne Idee was ich da falsch mache?

Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.