Вы находитесь на странице: 1из 2

Detalii Instrumentatie Virtuala

1. Aspecte generale
Pentru buna finalizare a proiectului final, trebuie sa participate la orele de aplicatii sau sa rezolvati
temele de casa detaliate in continuare.
Temele de casa se refera la aplicatiile de laborator transmise si/sau descarcabile de pe Moodle, din
pagina web a facultatii.
Proiectul final, temele de casa si aplicatiile de laborator sunt dezvoltate in limbajul C, in mediul de
dezvoltare LabWindows CVI, de la firma National Instruments. De pe site-ul firmei se poate descarca o
versiune completa, cu limita de timp a mediului de dezvoltare:
http://www.ni.com/lwcvi/
Cititi fiecare curs, apoi descideti aplicatiile de la laboratorul corespunzator, verificati setarile din
interfata utilizator (fisierul .uir), parcurgeti codul C, rulati aplicatia si, apoi, faceti modificarile cerute in
tema. Trimiteti-mi fiecare tema (numai fisierele .prj, .uir, .c si .h, nu si .exe, .cws, .dbg etc.).
2. Teme de casa
Tema 1
In exemplul 1_Led, pe panoul din .uir, inlocuiti butonul de comanda cu un comutator Bynary switch,
modificati codul C pentru a reflecta modificarea din interfata utilizator (click dreapta pe switch, generate
control callback, in functia generata cititi starea comutatorului si setati starea LED-ului in functie de
aceasta).
In exemplul 3_GenAfis, adaugati pe panoul aplicatii un control numeric pentru frecventa semnalului
sinusoidal, generati scheletul functiei callback pentru noul control, cititi valoarea frecventei si tineti cont
de ea in formula semnalului generat.
Tema 2
In aplicatia 1_Generator, adaugati un buton de comanda pentru filtrare, generati scheletul functiei
callback pentru noul control, filtrati semnalul, folosind codul:
Iesire[0] = 0.0;
for (i=1;i< NrSamp;i++)
Iesire[i] = Semnal[i] + 0.9* Iesire[i-1];
includeti declaratiile pentru semnalul Iesire[], cu aceeasi dimensune ca Semnal[], si afisati iesirea filrului
in al doilea grafic.
Parcurgeti si testati in detaliu aplicatia 2_Generare (nu trebuie sa trimitei nimic pentru acest punct).
Tema 3
In aplicatia 1_AchizRed, verificati ce se intampla, la achizitii succesive (buton Start), daca eliminati
(comentati) instructiunea de pe linia 56:
woClose ();
Mutati partea comuna a codului din controalele de introducere a datelor:
NrSamp = (int)FreqSamp*TmpAcq;
SetCtrlVal (panelHandle, PANEL_NUMERIC_2, NrSamp);

in functia callback a butonului de comanda si urmariti diferenta de functionare (momentul cand se


update-aza controlul de afisare numar esantioane).
In aplicatia 2_FirstSpec, adaugati la tipurile de transformata, variantele Transformata Hartley si
Transformata Hilbert (Library -> Advanced Analysis Library -> Frequency Domain Analysis -> FHT
respectiv Fast Hilbert Transform) prin adugarea celor 2 optiuni in controlul RingSlide din .uir si a
codului de apel a functiilor in structura Switch Case corespunzatoare.
Tema 4
In aplicatia 2_MultiPanel, in panel-ul 3, adaugati un control pentru gama de afisare pe
NUMERIC_METER, cu un RingSlide, cu cateva valori uzuale (0.1, 1, 10 ...) si, dupa citirea valorii,
modificati gama de masura a aparatului cu functia SetCtrlAttribute (Library -> User Interface ->
Controls/Graphs/StripCharts -> General Functions) folosind:
ATTR_MAX_VALUE
ATTR_MIN_VALUE
Tema 5
In 1_AlocareMemorie, aplicatia 2_Dinamic, comentati linia 44:
free(Sig);
care de-aloca memoria ocupata de semnal. Deschideti Control Panel din Windows si urmariti spatiul
ocupat in memorie cand generati un semnal lung (ex.: 8 000 000 esant.) si apoi unul mai scurt (ex.: 100
000 esant.). Decomentati linia si faceti aceeasi masuratoare. Care sunt diferentele? (Trimiteti-mi pozele
cu fereastra Control Panel in cele 2 cazuri, incluse intr-un word, cu o fraza de explicatie).
In 2_ValTrans, adaugati la client un buton de deconectare a clientului de la server si, in functia callback a
butonului faceti apel la functia Disconect from TCP server, din Library -> TCP -> Client Function,
inspirandu-va si din fdeconectare din aplicatia server.
Comparati functionarea 3_SigTransErr cu 4_SigTrans si identificati diferenta in cod.

Вам также может понравиться