|
RomanF |
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 06.11.07
|
|
|
|
Wohnort: Wiesbaden
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.01.2008, 14:27
Titel: Funktion in GUI einbaun
|
|
|
|
|
Hallo, ich versuche schon seit längeren eine GUI zu erstellen.
Und bin schon bald am verzweifeln.
Ihr seid meine letzte Hilfe!
Anfäglich sollte sie komplizierter sein mit PullDowns und so weiter aber jetzt versuche ich einfach nur eine ganz einfache zu erstellen.
Denn es funktionierte leider nicht wirklich.
Aber auch die einfache klappt nicht:
Einfach nur ein PushButton der die Funktion aufrufen soll und eine Axis zum darstellen.
Nach längeren versuchen und lesen und Email austausch habe ich einen Code zusammenbekommen der vielleicht auch gehen könnte:
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)
global s; % Der geöffnete COM-Kanal
s = fopen(...);
for n=1:1e2
fwrite(s,[84 88 32 56 49 32 65 70 13 10]);
out=fscanf(s);
tmp=[tmp constellation(out)];
plot (handles.axes1, tmp, '.g' )
whitebg('black')
axis([-500 500 -400 400])
grid
xlabel('In-Phase Amplitude')
ylabel('Quadrature Amplitude')
title('16 QAM-Constellation Diagram RF-Input1')
drawnow
end
function out=constellation(in)
N=length(in);
M=(N-14)/4;
zahlen_double=zeros(1,M);
for n=1:M
tmp=hex2dec(in(14+(n-1)*4+[0:3]));
binaer=dec2bin(tmp,16);
if strcmp(binaer(1),'1')
tmp=-1*bitcmp(tmp-1,16);
end
zahlen_double(n)=tmp;
end
out=zahlen_double(1:2:M-1)+j*zahlen_double(2:2:M);
Also hier ist mein Cod alles hinter dem pushbutton1_Callback geschrieben.
Eigentlich habe ich diesen Code in einer funktion stehen die ich mit constellation_verkettet aufgerufen wird und diese dann auf die constellation zugereift in dieser die wetre gewandet werden.
Unser Receiver wirft uns in diesem Fall die Konstellationspunke in Hex form raus diese wandeln wir und wollen dieses Plotten.
Wenn ich die Funktion von Matlab Command Window aufrufe geht das einbahnfrei nur mit der GUI gehts nicht.
s ist der serielle COM1 Port.
Und laut Malab Hilfe soll dort s = fopen(...) stehen aber was jetzt in die Klammer reinsoll das weiß ich nicht.
Soll wohl irgend eine irgendeine Spezifikation von COM1 sein.
Wäre schön wenn mir da jemand helfen könnte.
Vielen Dank im voraus.
Auch hätte ich noch eine andere Frage: Wir lesen auch noch mehere Übertragungskanalgüte Werte in dB aus.
Also Zahlenwerte die sich z.B. bei der SN Anzeige wenig ändern nur so zwichen 16 und 19 beispielsweise.
Wir haben dazu wieder so eine kleine Funktion geschrieben also wieder einen hex Code an das Gerät geschickt, die Antwort gewandelt und ausgegeben.
Jetzt würde wir die Anzeige gerne so machen das wir eine Anzeige erhalten und diese sich dan dynamisch ändert als GUI oder sonst etwas.
Wenn wir einfach nur eine Schleife um die Funktion bauen kommt als Anzeige im Workspace jedoch immer nur der letzte Wert.
Wie könnten wir denn das am besten realisieren?
Gibts dazu irgendwelche Tools?
Vielen Dank
|
|
|
|
|
Nyquist |
Forum-Fortgeschrittener
|
|
Beiträge: 60
|
|
|
|
Anmeldedatum: 19.11.07
|
|
|
|
Wohnort: Laupheim
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.01.2008, 15:52
Titel:
|
|
|
|
Nyquist |
Forum-Fortgeschrittener
|
|
Beiträge: 60
|
|
|
|
Anmeldedatum: 19.11.07
|
|
|
|
Wohnort: Laupheim
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 30.01.2008, 13:59
Titel:
|
|
Sers Roman F,
ich habe meine Daten bisher über eine SchnittstellenDLL und über Codesys eingelesen.
Eine COM schnittstelle habe ich zur kommunikation mit Excel benützt
actxserver
global s; % Der geöffnete COM-Kanal
s = fopen(...);
in dieses fopen sollte nun so ein Object eines COM Servers übergeben werden. Lies mal in der Matlab Hilfe unter Stichwort COM actxserver actxcontrol nach.
Mehr kann ich dir leider nicht sagen hab dies selbst noch nie gemacht. wenn du es hinbekommen hast würde mich das auch interessieren.
_________________
Mit freundlcihem Gruß
Nyquist
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|