R aducu-R azvan Gheorghe [616664]
UNIVERSITATEA "LUCIAN BLAGA" DIN SIBIU
FACULTATEA DE S TIINT E
DEPARTAMENTUL DE MATEMATIC A S I INFORMATIC A
MATEMATIC A INFORMATIC A APLICAT A
LUCRARE DE DISERTAT IE
Masterand:
R aducu-R azvan Gheorghe
SIBIU
2019
UNIVERSITATEA "LUCIAN BLAGA" DIN SIBIU
FACULTATEA DE S TIINT E
DEPARTAMENTUL DE MATEMATIC A S I INFORMATIC A
MATEMATIC A INFORMATIC A APLICAT A
Aplicat ia sistemului RFID.
Programare tip Client-Server
Coordonator stiint ic:
Conf. Univ. Dr. Florin Sofonea
Masterand:
R aducu-R azvan Gheorghe
SIBIU
2019
Cuprins
Introducere 3
1 Elemente teoretice 5
1.1 RFID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.1 Denit ie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.2 Elemente hardware utilizate pentru citirea unui RFID . . . . . . . . 7
1.1.3 Pa sii ^ n determinarea IP-ului cititorului RFID . . . . . . . . . . . . 9
1.2 Crearea bazei de date in SQL Server Management Studio . . . . . . . . . . 12
1.2.1 Denit ia unei baze de date . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.2 Evolut ia bazelor de date . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.3 Baza de date relat ional a . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.4 Pa sii ^ n crearea unei noi baze de date . . . . . . . . . . . . . . . . . 13
1.3 Aplicat ii de tip Windows Form ^ n C# . . . . . . . . . . . . . . . . . . . . . 15
1.3.1 Introducere ^ n aplicat iile C# Windows Forms . . . . . . . . . . . . 15
1.3.2 Crearea si congurarea unui dataset ^ n Visual Studio . . . . . . . . 18
1.4 Ret elele de calculatoare si conexiunea de tip Client-Server . . . . . . . . . 20
1.4.1 Introducere ^ n ret ele . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.4.2 Tipuri de ret ele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.4.3 TCP/IP (Transmission Control Protocol/Internet Protocol) . . . . 26
1.4.4 Socket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2 Aplicat ia BloodLife 29
2.1 DataGridView Donat ie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2 Panoul "Indormat ii donator" . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.3 Panoul "informat ii locat ie" . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.4 Filtrarea ^ nregistr arilor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.4.1 Filtrarea dup a CNP . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.4.2 Filtrarea ^ n funct ie de grupa sanguin a . . . . . . . . . . . . . . . . . 38
2.4.3 Filtrarea ^ n funct ie de tipul rh-ului . . . . . . . . . . . . . . . . . . 38
2.5 Statistici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.6 Modicarea informat iilor din baza de date . . . . . . . . . . . . . . . . . . 42
1
2.7 Conectarea la cititorul RFID . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Bibliograe 44
2
Introducere
Se spune c a tehnologia este arta de a transforma stiint a^ n ceva practic. Astfel, am decis s a
^ mi demonstrez talentul artistic utiliz^ and cuno stiint ele dob^ andite p^ an a acum prin crearea
unei aplicat ii care ar putea folosit a ^ n domeniul medical si probabil ar m ari procentul
donatorilor de s^ ange din Rom^ ania sau din alte t ari.
Conform veric arilor,^ n Rom^ ania aproximativ 1,7% din populat ie doneaz a s^ ange, acest
procent asigur^ and doar aproximativ 65% din totalul necesar. Din acest motiv au aparut
mai multe campanii care informeaz a populat ia despre beneciile existente si recomand a
donarea cel put in o dat a pe an.
Pornind de la aceea si idee, aplicat ia prezentat a ^ n lucrarea de fat a ^ si propune s a
stocheze ^ ntr-o baz a de date ^ nregistr arile donat iilor, ^ mpreun a cu informat ii despre do-
nator, data donat iei si locat ia de stocare a pungii de s^ ange.
Astfel, aplicat ia scris a ^ n limbajul de programare C#, folosind setul complet de in-
strumente de dezvoltare Visual Studio 2017, utilizeaz a o legatur a la o baz a de date SQL
si o conexiune de tip TCP/IP la cititorul de etichete RFID.
Lucrarea de fat a ^ si propune s a prezinte c^ ateva elemente teoretice utilizate ^ n aplicat ie,
si anume informat ii despre RFID si modul ^ n care ne putem conecta la un cititor RFID,
limbajul C#, crearea conexiunii dintre aplicat ie si baza de date SQL.
Dup a acestea urmeaz a prezentarea propriu-zis a a aplicat iei si a modului^ n care aceasta
lucreaz a. ^In acest capitol vom prezenta diagrama bazei de date si leg aturile de tip "cheie
primar a ! cheie str ain a", modulul de adaugare a unei noi donat ii, ltarea^ nregistr arilor
^ n funct ie de CNP ul donatorului, de grupa sanguin a a donatorului sau de Rh-ul acestuia.
Este important de ment ionat c a ltrarea se poate face ^ n funct ie de una din propriet at iile
descrise mai sus sau ^ n funct ie de orice combinat ie a acestora.
O alt a component a a aplicat iei este reprezentat a ^ n meniul principal al aplicat iei prin
butonul "Statistici". La act ionarea acestuia informat ii din baza de date sunt prelucrate
si se creeaz a un sier Excel cu trei le, cont in^ and ecare c^ ate o digram a reprezentativ a
pentru sexul, grupa sanguin a, respectiv grupa sanguin a si rh-ul donatorilor.
Un alt element important al meniului principal este reprezentat de butonul de conectare
"c". Prin act ionarea acestuia se ^ ncepe procedeul de conectare la cititorul de etichete
RFID. ^In cazul ^ n care conexiunea se realizeaz a cu succes, ^ n meniul principal vor mai
vizibile doar acele ^ nregistr ari a c aror etichet a RFID se a
a ^ n raza de act iune a an-
3
tenei/antenelor conectate la cititor.
Am considerat c a "BloodLife" este un nume potrivit aplicat iei prezentate ^ n aceast a
lucrare deoarece lu^ and ^ n considerare mai multe interpret ari ne putem g^ andi la viat a
s^ angelui, la traseul pe care ^ l parcurge o pung a de s^ ange sau sansa la viat a pe care aceasta
o ofer a. S^ angele e viat a si s^ angele d a viat a.
T in s a ^ i mult umesc domnului Conf. Univ. Dr. Florin Sofonea pentru ajutorul acor-
dat, sust inerea ideii lucr arii prezente si pentru accesul la elementele hardware necesare
pentru citirea tagurilor RFID. ^In acela si timp doresc s a ^ i mult umesc si domnului Adrian
Negru sa de la rma Harting Technology Group pentru documentat ia si suportul acordat
^ n domeniul RFID.
4
Capitolul 1
Elemente teoretice
1.1 RFID
^In acest subcapitol am utilizat informat ii din [3].
1.1.1 Denit ie
RFID este un acronim pentru "identicarea prin radiofrecvent a" si se refer a la o tehnologie
prin care datele digitale codicate ^ n etichete RFID sau etichete inteligente (denite mai
jos) sunt capturate de un cititor prin unde radio. Principiul de funct ionare a RFID -ului
este similar cu cel al unui cod de bare, ^ n faptul c a datele din etichet a sunt captate de
un dispozitiv care stocheaz a datele ^ ntr-o baz a de date. Cu toate acestea, RFID are mai
multe avantaje fat a de sistemele care utilizeaz a software de urm arire a activelor de coduri
de bare. Cel mai notabil este faptul c a datele din tag-ul RFID pot citite ^ n afara liniei
de vedere, ^ n timp ce codurile de bare trebuie s a e aliniate cu un scaner optic.
RFID apart ine unui grup de tehnologii denumite Automatic Identication and Data
Capture (AIDC). Metodele AIDC identic a automat obiecte, colecteaz a date despre ele
si introduc aceste date direct ^ n sistemele informatice cu intervent ie uman a minor a sau,
^ n unele cazuri chiar far a aceasta. Metodele RFID utilizeaz a unde radio pentru a realiza
acest lucru. La un nivel simplu, sistemele RFID constau din trei componente: o etichet a
RFID sau o etichet a inteligent a, un cititor RFID si o anten a. Etichetele RFID cont in un
circuit integrat si o anten a, care sunt utilizate pentru transmiterea datelor c atre cititorul
RFID (numit si interogator). Cititorul apoi converte ste undele radio ^ ntr-o form a mai
utilizabil a de date. Informat iile colectate de la etichete sunt apoi transferate printr-o
interfat a de comunicat ie c atre un sistem de computer gazd a, unde datele pot stocate
^ ntr-o baz a de date si analizate ulterior.
A sa cum am ment ionat mai sus, o etichet a RFID const a dintr-un circuit integrat si
o anten a. Eticheta este, de asemenea, compus a dintr-un material de protect ie care t ine
piesele ^ mpreun a si le protejeaz a de diferite condit ii de mediu. Materialul de protect ie
5
depinde de aplicat ie. De exemplu, insignele ID ale angajat ilor care cont in etichete RFID
sunt de obicei fabricate din plastic durabil, iar eticheta este ^ ncorporat a ^ ntre straturile de
plastic. Etichetele RFID vin ^ ntr-o varietate de forme si dimensiuni si sunt e pasive, e
active. Etichetele pasive sunt cele mai utilizate pe scar a larg a, deoarece acestea sunt mai
mici si mai put in costisitoare de implementat. Etichetele pasive trebuie s a e "alimen-
tate" de cititorul RFID ^ nainte de a putea transmite date. Spre deosebire de etichetele
pasive, etichetele RFID active au o surs a de alimentare la bord (de exemplu, o baterie),
permit ^ andu-le astfel s a transmit a date ^ n orice moment.
Denit ia 1.1.1 Etichetele pasive sunt compuse din trei elemente: un circuit integrat sau
cip, o anten a si un substrat. Cipul RFID stocheaz a date si ^ ndepline ste sarcini specice.
^In funct ie de design, cipul poate citit (RO), scris o singur a dat a, citit de mai multe ori
(WORM) sau citit-scris (RW). ^In mod tipic, cipurile RFID au o memorie de 96 bit i, dar
pot varia de la 2 la 1000 de bit i. Ata sat la cip este antena, al c arei scop este absorbt ia
undelor radio-frecvent a (RF) de la semnalul cititorului si trimiterea si primirea datelor.
Ecacitatea pasiv a a etichetei RFID depinde foarte mult de dimensiunea antenei: cu c^ at
este mai mare antena, cu at^ at mai mult a energie poate colectat a si apoi trimis a ^ napoi.
Prin urmare, antenele mai mari au intervale mai mari de citire (de si nu sunt la fel de
mari ca cele ale etichetelor active). Forma antenei este, de asemenea, important a pentru
performant a etichetei. Antenele de joas a si de ^ nalt a frecvent a (LF si HF, respectiv)
sunt, de obicei, bobine, deoarece aceste frecvent e sunt predominant magnetice. Antenele
cu frecvent a ^ nalt a (UHF), pe de alt a parte, arat a asem an ator antenelor de televiziune
vechi ("urechi de iepure"), deoarece frecvent ele ultrahigh sunt numai electrice ^ n natur a.
A treia component a a unei etichete pasive RFID se nume ste substrat, care este de obicei
un lm Mylar sau plastic. At^ at antena, c^ at si cipul sunt ata sate la substrat, care poate
considerat ca ind "cleiul" care cont ine toate piesele etichetei ^ mpreun a. Spre deosebire de
etichetele RFID active, etichetele pasive sunt de obicei mai mici si mai put in costisitoare.
Etichetele inteligente difer a de etichetele RFID prin aceea c a includ at^ at tehnologii
RFID, c^ at si tehnologii de coduri de bare. Acestea sunt fabricate dintr-o etichet a adeziv a
^ ncorporat a cu o insert ie etichet a RFID si pot cont ine, de asemenea, un cod de bare si/sau
alte informat ii tip arite. Etichetele inteligente pot codate si tip arite la cerere utiliz^ and
imprimante de etichete desktop, ^ n timp ce programarea etichetelor RFID necesit a mai
mult timp si necesit a echipamente mai avansate.
Am ata sat mai jos imagini cu c^ ateva tipuri de taguri.
6
1.1.2 Elemente hardware utilizate pentru citirea unui RFID
^In aceast a subsect iune am utilizat informat ii din [1], [2] si [6].
Cititorul RFID Ha-VIS RFID RF-R350 EU/FCC
Procesor 1 GHz ARM
Memorie externa Pana la 32 GB memorie
ash (prin Micro SD Card)
Memorie RAM 1 GB RAM
Memorie embedded 4 GB eMMC
Sistem de operare Linux (Kernel 3.x.x)
Fixare Set montare pe in DIN
Aajul de diagnosticare 3 LED-uri pentru a vizualiza starea aparatului i a antenei
Tensiune de alimentare 24 V
Interfata zica Specicaie complet 802.3 prin conector M12 IP67
Interfata de conectare Ethernet (TCP/IP) 10/100 Mbit/s
Conectori I/O 2 conectori RP-TNC (50 Ohm) (pentru conectarea la antena)
Injectorul PoE TL-POE150S
Respect a standardul IEEE 802.3af, si poate funct iona ^ mpreun a cu echipamente PD
(Powered Devices) sau adaptoare de recept ie PoE compatibile PoE IEEE 802.3af, precum
TP-LINK TL-POE10R, sau alte produse echivalente, pentru a extinde ret eaua acolo unde
nu exist a cabluri electrice sau prize, ^ n locat ii ^ n care dorim s a amplas am dispozitive ca
AP-uri, camere IP sau telefoane IP, etc.
7
Antena Ha-VIS-RF-ANT-LR10
[]Interval de frecven 865..928 MHz
Impedanta electrica 50 Ohm
Conexiune tnc socket
Gradul de protectie IP67
Invelis antena invelis de polimeri, rezistent la conditii precare
Cablu tip RJ45 – M12 x-code
Conector 1Conector circular M12
M12 X-coding
mufa tata
Conector 2RJ45
HARTING RJ Industrial
Gigalink
mufa dreapta
Acest cablu se folose ste la conectarea cititorului RFID la injectorul PoE.
Cablu HA-VIS Coax TNC/TNC-RP, H155 PVC
8
Specicatii Mufat la ambele capete
Conector 1 Conector TNC
Conector 2 Conector TNC-RP
Tipul cablului Cablu de cupru (rotund)
Descrierea cablului Cablu coaxial
Acest cablu se folose ste la conectarea cititorului RFID la anten a.
Router wireless
^In dezvoltarea aplicat iei am folosit un "Router wireless Extender ASUS RT-N12+, 300
Mbps" pentru a avea acces pe aceea si ret ea pe laptop si pe cititor. Laptopul a fost
conectat printr-un cablu UTP, mufat la ambele capete cu RJ45, la router si cititorul s-a
conectat la ret ea prin acela si tip de cablu, prin injectorul PoE.
Cablu UTP
Pentru conectarea cititorului RFID la ret eaua de internet vom avea nevoie si de cabluri
UTP.
1.1.3 Pa sii ^ n determinarea IP-ului cititorului RFID
^Intruc^ at pentru conectarea la cititorul RFID prin itermediul TCP/IP avem nevoie de
IP-ul acestuia vom prezenta pa sii pentru a
area informat iei dorite.
9
Conectarea elementelor hardware
Primul pas este reprezentat de conectarea corect a a elementelor hardware enumerate ^ n
subsect iunea anterioar a. Acest lucru se realizeaz a prin urm arirea instruct iunilor urm atoare:
Crearea ret elei Ethernet locale; aici vom utiliza routerul pentru funct ia de repeater.
^In cazul ret elei pe care s-a testat aplicat ia am folosit funct ia hotspot a unui telefon
mobil pentru a trimite internet c atre router, ind necesar a congurarea acestuia
pentru ca si conexiunea la telefonul mobil s a funct ioneze corect.
Dup a nalizarea celor de mai sus vom utiliza dou a cabluri UTP, unul de la router
la injectorul PoE (cablul UTP trebuie introdus ^ n slotul de pe aceea si parte cu cea
a slotului de alimentare a injectorului) si unul de la router la dispozitivul de pe care
se ruleaz a aplicat ia. Cel de-al doilea cablu nu este obligatoriu ^ ntruc^ at dispozitivul
se poate conecta la ret eaua creat a de router si prin Wireless.
Alimentarea cititorului RFID
^Intruc^ at acesta nu are integrat direct un slot de alimentare, aceasta se va realiza
prin intermediul injectorului. Folosim cablul RJ45 – M12 x-code pentru conectarea
celor dou a dispozitive, cap atul cu mufa RJ45 se va conecta la injector, respectiv cel
M12 x-code ( muf a tat a) la slotul PoE al cititorului RFID.
Conectarea antenei la cititorul RFID
Pentru aceast a etapa vom folosi cablul Coax TNC/TNC-RP, cap atul cu muf a tat a
ind conectat la anten a, respectiv cel cu muf a mam a la unul din sloturile de anten a
din cadrul cititorului ( ANT1 sau ANT2 ).
Conectarea la cititorul RFID prin intermediul unui browser de internet
Pe spatele cititorului se poate observa eticheta cu urm atoarele informat ii, prezentate
^ n imaginea de mai jos:
10
Vom deschide un browser si vom tasta device name-ul din imagine. ^In cazul ^ n care
am realizat corect pa sii precedent i ni se va a sa
Introducem parola prezent a pe spatele readerului si ap as a pe butonul Login. Astfel
vom accesa meniul principal din cadrul cititorului.
Continu am prin meniul settings, apoi network. Vom ajunge astfel la informat ia
dorit a.
11
1.2 Crearea bazei de date in SQL Server Manage-
ment Studio
^In aceast a sect iune am utilizat informat ii din [5].
1.2.1 Denit ia unei baze de date
O baz a de date este o colect ie de informat ii care este organizat a astfel ^ nc^ at s a e u sor
accesibil a, gestionat a si actualizat a.
Datele sunt organizate ^ n r^ anduri, coloane si tabele si sunt indexate pentru a facilita
g asirea informat iilor relevante. Datele sunt actualizate, extinse si sterse pe m asur a ce se
adaug a informat ii noi. Bazele de date proceseaz a datele de lucru pentru a le crea sau
actualiza, interog^ and datele pe care le cont in deja.
Bazele de date pentru computere cont in, de obicei, agreg ari ale ^ nregistr arilor sau
sierelor de date, cum ar tranzact iile de v^ anzare, cataloagele produselor si stocurile si
prolurile client ilor.
De cele mai multe ori managerul bazei de date ofer a utilizatorilor opt iunea de a
citi/scrie ^ n baza de date respectiv a, av^ and posibilitatea s a genereze rapoarte si s a anal-
izeze utilizarea. Unele baze de date ofer a compatibilitatea ACID (atomicitate, consistent a,
izolare si durabilitate) pentru a garanta c a datele sunt coerente si c a tranzact iile s-au -
nalizat ^ n mod corect.
Bazele de date sunt predominante ^ n sistemele mari de mainframe, dar sunt prezente si
pe stat iile de lucru distribuite mai mici si pe sistemele de tip middlerange si calculatoarele
personale.
1.2.2 Evolut ia bazelor de date
Evolut ia bazelor de date a luat av^ ant ^ nc a de la ^ nceputul anilor 0, ^ ncep^ and cu baze de
date ierarhice si de ret ea, cu baze de date orientate pe obiecte prin anii 0 si ast azi cu baze
de date SQL si NoSQL si baze de date cloud.
^Intr-o anumit a perspectiv a, bazele de date pot clasicate ^ n funct ie de tipul de
cont inut: bibliograc, text integral, numeric si imagini. Bazele de date sunt uneori clasi-
cate ^ n funct ie de abordarea lor organizat ional a. Exist a numeroase categorii de baze
de date, de la cea mai r asp^ ndit a abordare, baza de date relat ional a, la o baz a de date
distribuit a, o baz a de date cloud sau o baz a de date NoSQL.
1.2.3 Baza de date relat ional a
O baz a de date relat ional a, inventat a de E.F. Codd la IBM ^ n 1970, este o baz a de date
tabular a ^ n care datele sunt denite astfel ^ nc^ at s a poat a reorganizate si accesate ^ n mai
12
multe feluri diferite.
Bazele de date relat ionale sunt alc atuite dintr-un set de tabele cu date care se^ ncadreaz a
^ ntr-o categorie predenit a. Fiecare tabel are cel put in o categorie de date ^ ntr-o coloan a
si ecare r^ and are un anumit tip de exemplu de date pentru tipurile denite ^ n coloane.
Limbajul de interogare structurat (SQL) este interfat a standard a utilizatorului si a
aplicat iei pentru o baz a de date relat ional a. Bazele de date relat ionale sunt u sor de extins
si o nou a categorie de date poate adugat a dup a crearea original a a bazei de date f ar a a
necesar a modicarea tuturor aplicat iilor existente.
1.2.4 Pa sii ^ n crearea unei noi baze de date
Pentru crearea bazei de date am folosit programul Microsoft SQL Server Management
Studio.
Dupa deschiderea programului respectiv si conectarea la server, ^ n cazul nostru la
serverul localhost, extindem meniul precum ^ n imaginerea urm atoare si d am click dreapta
pe Databases si select am New Database.
Dup a nalizarea acestor pa si o s a apar a o nou a fereastr a ^ n care vom completa numele
dorit, astfel ^ nchei^ and procesul cre arii noii baze de date. Vom observa c a acum aceasta
va vizibilil a ^ n partea st^ ang a, ca si "copil" al meniului Databases.
13
Urm atorul pas ^ n dezvoltarea bazei de date ^ l reprezint a ad augarea tabelelor ^ n acesta.
Acest lucru se realizeaz a ^ ntr-un mod asem an ator cre arii bazei de date, urm^ andu-se
instruct iunile din imagine.
Urmeaz a ad augarea coloanelor ^ n tabel si salvarea acestuia.
Dup a adaugarea tuturor tabelelor necesare putem crea diagrama bazei de date si legarea
tabelelor prin leg aturi de tip cheie primar a – cheie str ain a.
14
Dup a nalizarea acestor etape, ^ n cazul bazei de date pe care se va axa aplicat ia
obt inem urm atoarea diagram a.
Complet am apoi tabelele create cu date, la fel ca ^ n exemplul de mai jos, valabil pentru
tabelul Grupe sanguine
1.3 Aplicat ii de tip Windows Form ^ n C#
1.3.1 Introducere ^ n aplicat iile C# Windows Forms
Windows Forms este o bibliotec a de clas a de interfat a grac a (GUI) care este cuprins a
^ n .Net Framework. Scopul s au principal este de a oferi o interfat a mai u soar a pentru
dezvoltarea aplicat iilor pentru desktop, tablet a, PC-uri. Este, de asemenea, numit Win-
Forms. Aplicat iile care sunt dezvoltate utiliz^ and Windows Forms sau WinForms sunt
cunoscute sub numele de aplicat ii Windows Forms. WinForms poate folosit numai pen-
tru a dezvolta aplicat iile Windows Forms, nu si pentru aplicat ii web. Aplicat iile WinForms
pot cont ine diferite tipuri de controale cum ar etichete, casete de list a, instrumente etc.
15
Pentru crearea unei astfel de aplicat ii se urmeaz a urm atoarele instruct iuni.
Mai ^ nt^ ai, deschidet i Visual Studio apoi Go to File – >New – >Project pentru a crea
un proiect nou si apoi selectat i limbajul ca Visual C# din meniul din st^ anga. Facet i click
pe aplicat ia Windows Forms (.NET Framework) ^ n mijlocul ferestrei curente. Apoi dat i
numele proiectului si facet i click pe OK.
Aici solut ia este precum un container ce cont ine proiectele si sierele care pot solic-
itate de program.
Dup a aceea va a sat a fereastra care va ^ mp art it a ^ n trei p art i dup a cum urmeaz a:
Fereastra de editor sau fereastra principal a: Aici vom lucra cu formulare si editarea
codului. Putem observa aspectul formei care este acum necompletat. Vem face
dublu clic pe formular, dup care va deschide codul pentru aceasta.
Solution Explorer: Este folosit pentru a naviga ^ ntre toate elementele din solut ie.
De exemplu, dac a select am un sier din aceast a fereastr a, atunci anumite informat ii
vor a sate ^ n fereastra de propriet at i.
Properties window: Aceast a fereastr a este utilizat a pentru a schimba diferitele pro-
priet at i ale elementului selectat din Solution Explorer. De asemenea, putem schimba
propriet at ile componentelor sau comenzilor pe care le ad augam la formulare.
16
Pentru a ad auga comenzi ^ n aplicat ia WinForms, acces am la Toolbox prezent a ^ n
partea st^ ang a extrem a a Visual Studio. Aici putem vedea o list a de comenzi. Pentru
a accesa cele mai frecvent utilizate comenzi, acces am Common Controls prezent ^ n la
Toolbox.
Acum tragem si plas am comenzile de care avem nevoie pe formularul creat. De exem-
plu, putem ad auga TextBox, ListBox, Button etc., dup a cum se arat a mai jos. F ac^ and
click pe un control particular, ^ i putem vedea si schimba propriet at ile prezente ^ n colt ul
din dreapta al Visual Studio.
^In imaginea de mai sus, putem vedea c a butonul este selectat si propriet at ile acestuia,
cum ar Text, TextAlign, Visible etc., sunt deschise ^ n colt ul din dreapta. Avem posi-
bilitatea s a modic am valorile propriet at ilor sale conform necesit at ilor aplicat iei. Codul
comenzilor va ad augat automat ^ n fundal.
17
1.3.2 Crearea si congurarea unui dataset ^ n Visual Studio
Un dataset este un set de obiecte care stocheaz a date dintr-o baz a de date ^ n memorie si
suport a urm arirea modic arilor pentru a permite operat iunile de creare, citire, actualizare
si stergere (CRUD) pe aceste date f ar a a nevoie s a e mereu conectate la baza de date.
Dataset-urile au fost proiectate pentru formulare simple pe aplicat iile de date de afaceri.
Crearea unui nou dataset utiliz^ and Data Source Conguration Wizard
Deschidem proiectul ^ n Visual Studio, si select am Project – >Add New Data Source
pentru a porni Data Source Conguration Wizard
Alegem tipul de surs a de date la care ne vom conecta.
Alegem baza de date va sursa de date pentru setul de date.
18
Alegem tabelele (sau coloanele individuale), procedurile stocate, funct iile din database
pe care le dorim ^ n dataset.
Dup a ap asarea butonului Finish dataset ul va ap area ca un nod^ n Solution Explorer.
Facem click pe nodul dataset din Solution Explorer pentru a-l deschide din Design
DataSet. Fiecare tabel din setul de date are un obiect TableAdapter asociat, care
este reprezentat ^ n partea de jos. Tabelul adapter este utilizat pentru a popula setul
de date si, opt ional, pentru a trimite comenzi c atre baza de date.
Liniile de leg atur a care conecteaz a tabelele reprezint a relat iile de tabel, a sa cum
sunt denite ^ n baza de date. Implicit, constr^ angerile cheie str ain a ^ ntr-o baz a de
date sunt reprezentate doar ca o relat ie, cu regulile de actualizare si stergere setate
la none. De obicei, asta se vrea. Cu toate acestea, putem face click pe linii pentru a
a sa dialogul Relat ie, unde putem schimba comportamentul actualiz arilor ierarhice.
19
Ad augarea unui tabel database sau a unui alt obiect la un dataset existent
Aceast a procedur a ne arat a cum s a ad aug amun tabel din aceeasi baz a de date pe care am
folosit-o la crearea dataset ului.
Click pe nodul dataset ^ n Solution Explorer pentru a aduce fereastra DataSet De-
signer ^ n prim plan.
Ap as am click pe tabul Data Sources din marginea st^ ang a a Visual Studio, sau scriem
data sources ^ n fereastra de c autare.
Click dreapta pe nodul dataset si select Congure Data Source with Wizard.
Specic am acum tabelele adit ionale, procedurile stocate sau alte obiecte din database
pe care dorim s a le ad aug am la dataset.
1.4 Ret elele de calculatoare si conexiunea de tip Client-
Server
1.4.1 Introducere ^ n ret ele
^In epoca tehnologiei de mare vitez a vechiul model de lucru al unui singur calculator
(mainframe) care serve ste anumite probleme de calcul a fost uploadat la un model ^ n
care sarcinile de lucru sunt executate de un num ar mai mare de calculatoare, acestea
ind utilizate separat, dar av^ and o conexiune ^ ntre acestea (ind interconectate). Prin
cooperarea ^ ntre respectivele dispozitive se pot realiza diferite sarcini, precum:
transferul sierelor ^ ntre dispozitive;
posibilitatea acces arii unei baze de date a
at a pe un alt dispozitiv;
transmiterea mesajelor ^ ntre dispozitive;
utilizarea resurselor HW si SW ale unui alt dispozitiv.
Dispozitivele legate ^ ntre ele ^ n acest mod alc atuiesc o ret ea.
Ce a stept ari avem de la o ret ea de calculatoare?
Ret eaua de calculatoare aduce o serie de avantaje. Utilizarea acesteia are o leg atur a
direct a cu reducerea costurilor. Acesta este unul din motivele pentru care este necesar a
o atent ie suplimentar a asupra dezvolt arii unei astfel de ret ele. C^ ateva dintre motivele
pro-ret ele sunt:
Comunicarea mult mai ecient a;
20
Ecientizarea transferurilor de date;
Reducerea costurilor;
Simplitatea si ecient a protej arii datelor;
Asigurarea disponibilit at ii;
Optimizarea proceselor ce supra^ nc arcau dispozitivul;
Optimizarea mentenant ei;
Comunicarea
Ret elele sunt utilizate pentru simplicarea schimbului de informat ii. De exemplu, ^ ntr-o
ret ea a unei rme ( ret ea ^ nchis a) se pot publica nout at i care pot ajunge la tot personalul
t int a.
Ecientizarea transferurilor de date
^In perioada precedent a dezvolt arii ret elelor de calculatoare, ^ n cazul proiectelor ^ n cadrul
c arora erau implicate mai multe persoane se folosea transferul informat iilor prin itermediul
altor metode zice ( dischete, etc.). ^In momentul actual respectivele informat ii pot
copiate de pe un dispozitiv pe altul prin intermediul unei ret ele. O alt a posibilitate este
reprezentat a de crearea unui dispozitiv tip server unde datele s a e stocate central, iar
userii s a poat a avea acces la acestea.
^In acest caz se poate vorbi despre o leg atur a de date. Acest lucru se poate exemplica,
ind vorba de scopul principal al ec arei ret ele, si anume acela de a avea access la baza
de date de pe oricare dintre stat iile legate.
O alt a categorie a bazelor de date este cea a celor distribuite, acestea ind stocate pe
diferite calculatoare, dar legate ^ ntre ele astfel ^ nc^ at ecare utilizator poate vedea baza de
date complet a.
Ecient a ret elei depinde de modul ^ n care aceasta a fost construit a si de modul ^ n care
se pot introduce informat ii ^ n aceasta. Modul de c autare si stocarea respectivelor date
trebuie s a e denite printr-un algoritm logic, u sor de ^ nt eles de c atre utilizator.
Ecientizarea reducerii costurilor
Acest lucru se poate realiza prin utilizarea acelorea si resurse acolo unde este posibil. Un
exemplu ar cazul ad aug arii unei imprimante ^ n ret ea. Aceasta va putea folosit a de
c atre oricare dintre utilizatorii din cadrul ret elei. Un alt exemplu, de data aceasta ind
vorba despre o component a software, ar putea instalarea unui program pe un dispozitiv
central, put^ and folosit de tot i userii din ret ea. Compararea costurilor HW economisite
21
cu cele administrative este destul de dicil a. Putem vorbi ^ n acest caz de o interconectare
funct ional a. Acest lucru ^ nseamn a c a toate resursele disponibile ^ n cadrul ret elei pot
utilizate de oricare dintre participant ii conectat i ^ n ret eaua respectiv a. Prin intermediul
resurselor ne referim la orice component a a dispozitivului, de exemplu harddisk-ul, CD-
ROM-ul. Pentru toate aceste resurse exist a posibilitatea ad aug arii ^ n folo sint a general a
^ n interiorul ret elei.
Protejarea datelor
Dac a toate informat iile unei rme sunt ad augate dup a o anumit a schem a ^ n ret ea, un
simplu algoritm poate dezvolta protect ia automat a a acestora (de exemplu protejarea ^ n
funct ie de anumite zone de acces). Fiindc a datele sunt salvate pe un numar destul de mic
de dispozitive, uploadarea tehnologiei de protect ie a informat iilor devine si mai simpl a.
Asigurarea disponibilit at ii
^In cazul defect arii anumitor componente singulare de la un dispozitiv ret eaua trebuie s a
e capabil a s a funct ioneze f ar a s a afecteze utilizatorii. Acest lucru vine ca o provocare
suplimentar a deoarece ^ n cazul defect arii unor componente funct iile acestora trebuie pre-
luate de alte componente din cadrul ret elei. Ca si exemplu, ^ n cazul defect arii unei stat ii
de lucru, aceasta trebuie s a poat a ^ nlocuit a cu un alt dispozitiv cu toate elementele
hardware si software necesare continu arii muncii.
Optimizarea proceselor ce supra^ ncarc a dispozitivul
Se refer a la optimizarea ^ n cadrul c areia un dispozitiv supra^ nc arcat este ajutat de un alt
calculator care este mai put in ^ nc arcat.
Optimizarea mentenant ei
Odat a cu cre sterea complexit at ii ret elei devine din ce^ n ce mai imporatant a det inerea unor
instrumente de lucru propice pentru administrare si intret inere c^ at mai u soar a a ret elei.
^In cazul posibilit at ii diagnostic arii si ^ ntret inerii de la distant a se faciliteaz a service-ul.
Denit ia 1.4.1 O ret ea de calculatoare este format a dint-un ansamblu de echipamente
de calcul r asp^ andite geograc, interconectate prin intermediul unor medii de comunicatie,
asigur^ andu-se ^ n acest mod utilizarea ^ n comun de c atre un num ar mare de utilizatori a
tuturor resurselor zice (HW), logice (SW si aplicat ii de baza) si informationale (baze de
date) de care dispune ansamblul de calculatoare conectate.
Denit ia 1.4.2 O ret ea de calculatoare mai poat a denit a si ca o colect ie de dispozi-
tive autonome interconectate. Spunem c a dou a calculatoare sunt interconectate daca pot
schimba informat ii ^ ntre ele.
22
Denit ia 1.4.3 Lucrul ^ n ret ea este reprezentat de conceptul de conectare a unor calcu-
latoare care partajeaz a resurse. Resursele pot :
date (baze de date);
aplicat ii (orice tip de software);
periferice (imprimante, scannere, etc.).
1.4.2 Tipuri de ret ele
Exist a mai multe criterii de clasicare a ret elelor, si anume:
Dup a tehnologia de transmisie
ret elele cu difuzare (broadcast) sunt ret elele cu un singur canal de comunicat ie,
acesta ind partajat (este accesibil) de toate calculatoarele din ret ea. Mesajul poate
adresat unui singur dispozitiv, tuturor dispozitivelor din ret ea (acest mod de
operare ind difuzarea) sau la un subset de dispozitive (acest mod de operare ind
trimiterea multipl a). Acest mod de transmitere este caracteristic ret elelor LAN.
ret ele punct – la – punct sunt ret elele care dispun de numeroase conexiuni ^ ntre
perechi de calculatoare individuale. Pentru a ajunge de la calculatorul surs a la
dispozitivul destinat ie, un pachet s-ar putea s a e nevoit s a treac a prin unul sau mai
multe calculatoare intermediare. Deseori sunt posibile trasee multiple, de diferite
lungimi, etc.
Dup a distant a pe care opereaz a ret eaua
ret elele locale (LAN) sunt ^ n general ret ele private localizate ^ ntr-o singur a camera,
cl adire sau ^ ntr-un campus de cel mult cat iva kilometri;
ret elele metropolitane (MAN) reprezint a o extensie a ret elelor LAN si utilizeaz a ^ n
mod normal tehnologii similare cu acestea. Aceste ret ele pot at^ at private c^ at si
publice.
ret elele de arie ^ ntins a (WAN) sunt acele ret ele care acoper a o arie geograc a intinsa
– deseori o t ar a sau un^ ntreh continent. ^In acest tip de ret ea calculatoarele se numesc
gazde (host sau sistem nal). Gazdele sunt conectate ^ ntre ele printr-o subret ea de
comunicat ie. Sarcina subret elei este s a transmit a mesajele de la host la host.
Subret eaua este format a din:
{linii de transmisie ( circuite, canale sau trunchiuri) au rolul de a transporta
bit ii ^ ntre dispozitive;
23
{elemente de comutare, calculatoare specializate, folosite pentru a conecta dou a
sau mai multe linii de transmisie.
Internet-ul (GAN= Global Area Network);
Dup a topologia ret elei
ret eaua tip magistral a (bus) este cea mai simpl a si mai uzual a metod a de conectare
a calculatoarelor ^ n ret ea, const^ and dintr-un singur cablu, numit trunchi.
ret eaua tip stea (star) este aceea ^ n care toate calculatoarele sunt conectate la un
nod central care joac a un rol particular ^ n funct ionarea ret elei. Orice comunicat ie
^ ntre dou a calculatoare va trece prin acest nod central, care se comport a ca un
comutator fat a de ansamblul ret elei.
ret eua tip inel (ring) este o congurat ie de ret ea ^ n care conexiunile dispozitivului
creeaz a o cale circular a de date. Fiecare dispozitiv conectat la ret ea este conectat
la alte dou a, ca puncte ^ ntr-un cerc.
^Intr-o ret ea tip inel, pachetele de date c al atoresc de la un dispozitiv la altul p^ an a
c^ and ajung la destinat ie. Cele mai multe topologii de tip inel permit pachetelor s a
c al atoreasc a numai ^ ntr-o singur a direct ie, numit a ret ea de apeluri unidirect ionale.
Altele permit datelor s a se deplaseze ^ n ambele direct ii, numite bidirect ionale.
24
ret ele combinate.
Dup a tipul sistemului de operare utilizat
ret elele peer-to-peer sunt acele ret ele ^ n care partajarea resurselor nu este facut a
de c atre un singur calculator, ci toate aceste resurse sunt puse la comun de c atre
calculatoarele din ret ea. Aceste ret ele au anumite caracteristici:
{pot conectate maxim 10 calculatoare la un workgroup;
{implica costuri mici;
{se utilizeaz a atunci c^ and zona este restr^ ans a;
{toate calculatoarele sunt egale; toate sunt si client si server.
ret elele bazate pe server (client / server) sunt acele ret ele care au ^ n component a un
server specializat: de siere si de tip arire; de aplicat ii; de comunicat ii, etc. Printre
avantajele ret elelor bazate pe server amintim:
{partajarea resurselor;
{securitate;
{salvarea de sigurant a a datelor;
{redundant a;
{num ar de utilizatori.
Dup a tipul mediului de transmisie a semnalelor
ret ele prin medii ghidate ( precum cablu ciaxial sau bra optica);
ret ele prin medii neghidate (precum infrarosu, unde radio,etc.).
Dup a tipul utilizatorilor
private (utilizate industrial, militar, civil);
publice .
Toate ret elele au anumite componente, funct ii si caracteristici comune, precum:
25
servere; sunt acele calculatoare care ofer a resurse partajate pentru utilizatorii ret elei;
client i; sunt acele calculatoare care acceseaz a resursele partajate ^ n ret ea de un
server;
medii de comunicat ie; reprezint a modul^ n care sunt conectate calculatoarele^ n ret ea
(tipul cablului utilizat, a modemului);
date partajate; reprezint a sierele puse la dispozit ie de serverele de ret ea;
resurse: siere, imprimante si alte componente care pot folosite de utilizatorii
ret elei.
1.4.3 TCP/IP (Transmission Control Protocol/Internet Proto-
col)
TCP / IP sau Transmission Control Protocol / Internet Protocol, este o suit a de proto-
coale de comunicat ii utilizate pentru interconectarea dispozitivelor de ret ea pe internet.
TCP / IP poate folosit si ca protocol de comunicat ie ^ ntr-o ret ea privat a (un intranet
sau un extranet).
TCP / IP specic a modul ^ n care datele sunt schimbate pe internet prin furnizarea
de comunicat ii de tip end to end, care identic a modul ^ n care ar trebui s a e sparte ^ n
pachete, adresate, transmise, direct ionate si primite la destinat ie. TCP / IP necesit a un
management redus central si este conceput pentru a face ret elele abile, cu capacitatea
de a se recupera automat ^ n cazul defect arii oric arui dispozitiv din ret ea.
Cele dou a protocoale principale din suita de protocoale de internet servesc funct ii
specice.
TCP dene ste modul ^ n care aplicat iile pot crea canale de comunicare ^ ntr-o ret ea.
De asemenea, gestioneaz a modul ^ n care un mesaj este asamblat ^ n pachete mai
mici ^ nainte ca acestea s a e apoi transmise prin internet si reasamblate ^ n ordinea
corect a la adresa de destinat ie.
IP dene ste modul de adresare si ruta ec arui pachet pentru a ne asigura c a acesta
ajunge la destinat ia potrivit a. Fiecare computer gateway din ret ea veric a aceast a
adres a IP pentru a determina unde s a trimit a mesajul.
Istoric TCP/IP
Agent ia pentru proiectele de cercetare avansat a ^ n domeniul ap ar arii (DARPA), lial a de
cercetare a Departamentului Ap ar arii al SUA, a creat modelul TCP / IP ^ n anii 0 pentru
a utilizat ^ n ARPANET, o ret ea vast a care a precedat internetul. TCP / IP a fost
26
conceput init ial pentru sistemul de operare Unix si a fost construit ^ n toate sistemele de
operare care au urmat.
Cum funct ioneaz a TCP/IP
TCP / IP utilizeaz a modelul de comunicare client / server ^ n care un utilizator sau o
ma sin a (un client) are un serviciu (de ex. trimiterea unei pagini web) de c atre un alt
computer (un server) ^ n ret ea.
^In mod colectiv, suita de protocoale TCP / IP este clasicat a ca apatrid, ceea ce
^ nseamn a c a ecare solicitare a clientului este considerat a nou a deoarece nu are leg atur a
cu cererile anterioare. Fiind apatrid elibereaz a c aile de ret ea, astfel ^ nc^ at acestea s a poat a
utilizate ^ n mod continuu.
Layer-ul de transport^ nsu si este totu si statal. Transmite un singur mesaj si conexiunea
acestuia r am^ ane ^ n vigoare p^ an a c^ and toate pachetele dintr-un mesaj au fost primite si
reasamblate la destinat ie.
Modelul TCP / IP difer a u sor de modelul de ret ea de interconectare deschis a (OSI) cu
seven-layer proiectat dup a acesta, care dene ste modul ^ n care aplicat iile pot comunica
pe o ret ea.
Straturile modelului TCP / IP
Funct ionalitatea TCP / IP este^ mp art it a^ n patru straturi, ecare dintre acestea cuprinz^ and
protocoale specice.
Layerul aplicat iei ofer a aplicat ii cu schimb de date standardizat. Protocoalele sale
includ protocolul de transfer al html (HTTP), protocolul de transfer de siere
(FTP), Post Oce Protocol 3 (POP3), Simple Mail Transfer Protocol (SMTP)
si Simple Network Management Protocol (SNMP).
Layerul de transport este responsabil pentru ment inerea comunicat iilor^ ntre capetele
ret elei. TCP gestioneaz a comunicat iile ^ ntre gazde si ofer a controlul
uxului, mul-
tiplexarea si abilitatea. Protocoalele de transport includ TCP si User Datagram
Protocol (UDP), care sunt uneori folosite ^ n loc de TCP pentru scopuri speciale.
Layerul de ret ea, denumit si stratul de internet, se ocup a cu pachetele si conecteaz a
ret elele independente pentru a transporta pachetele ^ n limitele ret elei. Protocoalele
de nivel de ret ea sunt IP si Internet Control Message Protocol (ICMP), acesta din
urm a ind folosit pentru raportarea erorilor.
Layerul zic const a ^ n protocoale care funct ioneaz a numai pe o leg atur a { compo-
nenta de ret ea care interconecteaz a nodurile sau gazdele din ret ea. Protocoalele
din acest strat includ Ethernet pentru ret elele locale (LAN) si Address Resolution
Protocol (ARP).
27
Avantajele TCP/IP
TCP/IP nu are proprietar si, prin urmare, nu este controlat de nicio companie. Prin
urmare, suita de protocol Internet poate modicat a cu u surint a. Este compatibil cu
toate sistemele de operare, astfel ^ nc^ at poate comunica cu orice alt sistem. Suita de
protocol Internet este, de asemenea, compatibil a cu toate tipurile de hardware si ret ele
de calculatoare.
1.4.4 Socket
^In aceast a subsect iune am utilizat informat ii din [4].
Un socket este o leg atur a de comunicat ie ^ ntre dou a programe (Programul de tip server
si Programul de tip client) care ruleaz a ^ n aceea si ret ea. Avem nevoie de dou a programe
pentru comunicarea unei aplicat ii socket ^ n C# si anume: un server Socket Program
(Server) si un Program Socket Client (Client).
Exemplu de socket
Programul C# Server Socket: programul care ruleaz a pe un computer are un socket care
se leag a la un port pe acela si computer si ^ ndepline ste solicit arile primite de la client.
Programul C# Client Socket: acesta trebuie s a cunoasc adresa IP (Hostname) a com-
puterului pe care se a
a programul server si num arul portului alocat pentru ^ ndeplinirea
solicit arilor clientului.
Odat a ce conexiunea se stabile ste ^ ntre Server si Client, ace stia pot comunica (citi sau
scrie) prin propriile socketuri.
Exist a dou a tipuri de protocoale de comunicat ie folosite pentru Socket Programming
^ n C#, acestea ind comunicarea TCP / IP si comunicarea UDP / IP.
28
Capitolul 2
Aplicat ia BloodLife
Primul pas ^ n conectarea prin cod la baza de date
Primul pas ^ n dezvoltarea aplicat iei curente este reprezentat de conectarea la baza de date
pe care o vom folosi. Acest lucru se realizeaz a utiliz^ and urm atoarea secvent a de cod:
SqlConnection cs=new SqlConnection (" Data Source=Lenovo PC;
I n i t i a l Catalog=RFIDdatabase ; Integrated Security= TRUE" ) ;
^Inc arcarea datelor ^ n BindingSource
Urmeaz a preluarea datelor din tabelele bazei de date. Se creeaz a c^ ate un obiect de tip
BindingSource pentru ecare tabel care va utilizat si se preia informat iile din baza de
date ^ n modul urm ator:
donatietableBindingSource . DataSource =
db . Donatie table . Include (" Donator " ) . ToList ( ) ;
29
grupesanguineBindingSource . DataSource =
db . Grupe sanguine . Include (" Donators " ) . ToList ( ) ;
rhBindingSource . DataSource =
db . Rhs . Include (" Donators " ) . ToList ( ) ;
sexBindingSource . DataSource =
db . Sexes . Include (" Donators " ) . ToList ( ) ;
judeteBindingSource . DataSource =
db . Judetes . Include (" Donators " ) . ToList ( ) ;
locatieBindingSource . DataSource =
db . Locaties . Include (" Donatie table " ) . ToList ( ) ;
^Inc arcarea datelor ^ n comboboxuri
^In continuare am introdus opt iunile pentru comboboxurile din interfat a. Mai jos am
prezentat c^ ateva exemple ^ n care se prezint a acest procedeu. Codul de mai jos se refer a
la ad augarea datelor ^ n comboboxurile folosite pentru c autare ^ n baza de date, acestea
ind prezente ^ n partea dreapta a butonului "Statistici". ^Intr-un mod asem an ator se
procedeaz a si pentru comboboxurile din panoul "Informat ii donator", din partea dreapt a
a interfet ei.
comboBoxGrupa . Items . Add(" S e l e c t a t i grupa " ) ;
comboBoxGrupa . Items . Add("0 I " ) ;
comboBoxGrupa . Items . Add(" AII " ) ;
comboBoxGrupa . Items . Add(" BIII " ) ;
comboBoxGrupa . Items . Add("ABIV" ) ;
comboBoxRh . Items . Add(" S e l e c t a t i Rh" ) ;
comboBoxRh . Items . Add(" negativ " ) ;
comboBoxRh . Items . Add(" p o z i t i v " ) ;
^In nal sunt vericate datele donat iei curente si informat iile relevante sunt a sate ^ n
interfat a. Astfel, la pornirea aplicat iei datele vor ^ nc arcate si a sate.
30
2.1 DataGridView Donat ie
^In acest DataGridView^ nc arc am anumite informat ii din^ nregistr arile tabelei "Donat ie table".
Acest DataGridView este principalul component al interfet ei grace, toate ^ nregistr arile
donat iilor ind a sate ^ n aceast a fereastr a.
Acest element grac, ^ mpreun a cu toate coloanele interioare acestuia, au fost create
direct din interfat a Visual Studio C#. Acest proces se realizeaz a urm and pa sii:
Se selecteaz a DataGridView-ul si se d a click pe iconit a s ageat a cu v^ arful spre partea
dreapta, din partea dreapt a a respectivului GridView. ^In acest mod se va a sa o
nou a fereastr a, numit a "DataGridView Tasks".
Dup a selectarea BindingSource-ului din care dorim preluarea coloanelor si implicit
a informat iilor d am click pe "Edit columns" si se va a sa fereastra urm atoare
31
Folosind aceast a fereastr a am denit ^ n c^ ampul de date DataPropertyName coloana
din care prelu am date si ^ n c^ ampul HeaderText textul care va vizibil ^ n interfat a.
Id donat ie
Reprezint a cheia primar a din tablul "Donatie table". Acesta are o legatur a unu la unu
cu id ul unui tag RFID ^ n modul de conectare la cititor.
CNP donator
Este u sor de observat c a acesta reprezint a identicatorul de legatur a ^ ntre datele donat iei
si datele donatorului, date ce vor vizibile ^ n panoul "Informat ii donator", din partea
dreapt a a interfet ei.
Data donat iei
^In aceast a coloan a sunt vizibile informat iile legate de data la care a avut loc donat ia.
Data utiliz arii donat iei
Datele vizibile ^ n aceast a coloan a au acela si format ca cele din coloana precedent a. Acest a
coloan a accept a si valoarea nul a, acesta ind cazul ^ n care punga de s^ ange ^ nc a nu a fost
folosit a. Folosind datele din coloana aceasta si cea precedent a putem face o statistic a
privind durata de "a steptare" a unei pungi de s^ ange. Pentru a crea o statistic a mai
interesant a putem ad auga condit ii precum tipul grupei de s^ ange sau tipul de rh.
32
Id locat ie donat ie
Este u sor de observat c a acesta reprezint a identicatorul de legatur a ^ ntre datele donat iei
si datele locat iei pungii de s^ ange, date ce vor vizibile ^ n panoul "Informat ii locat ie", din
partea dreapt a sus a interfet ei.
S tergere ^ nregistrare
Aceast a coloan a este creat a manual, neind importat a din baza de date. La ap asarea
butonului corespunz ator unei ^ nregistr ari si coloanei respective se face o trimitere c atre
o funct ie care veric a printr-o ^ ntrebare dacua chiar se dore ste stergerea ^ nregistr arii
respective.
Rularea programului
La rularea programului DataGridView-ul va ar ata ^ n felul urm ator:
2.2 Panoul "Indormat ii donator"
^In acest panou ^ nc arc am informat ii reprezentative pentru ^ nregistrarea selectat a ^ n
view-ul principal. Am realizat acest lucru prin crearea unei leg aturi de tip cheie primar a
– cheie str ain a ^ ntre elementul CNP din tabelul Donat ie si elementul CNP din tabelul
Donatori.
33
CNP:
A sa cum am specicat si mai sus acesta este identicatorul tabelei donator, toate celelalte
informat ii depinz^ and de acesta. Acest c^ amp a fost alegerea ideal a pentru cheia primar a,
ind "cheie primar a" si in viat a real a.
Nume:
Este evident c a este important s a det inem si alte detalii despre persoana ^ n cauza, nu doar
CNP-ul. ^In principiu respectiva ^ nregistrare nu reprezint a doar ni ste numere, ci prezint a
o viat a ce ajut a la salvarea altor viet i.
Prenume:
Pe acela si principiu ca si ^ n cazul numelui prenumele este destul de important.
Telefon:
Num arul de telefon este un mod principal de contact al persoanei respective. De exemplu,
^ n cazul ^ n care este nevoie urgent a de s^ ange din grupa si rh-ul respectivei persoane acesta
ar putea contactat si anunt at c a este nevoie de s^ ange csi dac a poate veni s a doneze. ^In
momentele de genul se folosesc datele de mai sus pentru a i se adresa corect.
Grupa:
Tipul grupei sanguine este un factor important ^ n domeniul aplicat iei curente ^ ntruc^ at
grupa donatorului trebuie sa e compatibil a cu grupa celui care prime ste donat ia. ^In
cazul de fat a am folosit un obiect de tip combobox pentru a cre ste ecient a. Fiind vorba
de un num ar limitat de tipuri de grupe sanguine este mult mai u sor de lucrat cu un astfel
de obiect. Acesta este "^ nc arcat" cu tipurile de grupe si ca un exemplu, ^ n momentul ^ n
care modic am sau ad ag am o nou a ^ nregistrare putem selecta direct valoarea dorit a. Un
alt mod ^ n care putem folosi tipul grupei sanguine este prin crearea unei statistici privind
donatorii.
Rh:
^In aceea si idee ca si ^ n cazul grupei tipul rh-ului este un factor important, o persoan a
cu rh-ul negativ neput^ and primi o donat ie de la o persoan a cu rh-ul pozitiv, chiar dac a
grupele sanguine ale celor dou a persoane sunt compatibile. Am folosit un combobox din
acelea si motive ca mai sus. Un alt mod ^ n care putem folosi tipul rh-ului este prin crearea
unei statistici privind donatorii.
34
Sex:
Aceast a informat ie ne ajut a ^ n cazul apel arii persoanei respective si ^ n cazul realiz arii unei
statistici pentru a vedea procentajul donat iilor de s^ ange ^ n funct ie de sexul donatorilor.
Am folosit un combobox din acelea si motive ca mai sus.
Judet :
Aceast a informat ie ne ajut a ^ n cazul realiz arii unei statistici pentru a vedea procenta-
jul donat iilor de s^ ange ^ n funct ie de judet ul de provenient a al acestora. Am folosit un
combobox din acelea si motive ca mai sus.
Dup a rularea aplicat iei panoul "Informat ii donator" va ar ata ca ^ n exemplele de mai
jos:
2.3 Panoul "informat ii locat ie"
Situat ^ n dreapta sus ^ n fereastra principal a aceasta face legatura ^ ntre id-ul de locat ie
din DataGridView-ul donat iilor si descrierea explicit a a locat iei pungii de s^ ange. Am
pornit de la ideea c a pungile sunt depozitate ^ ntr-o sal a, ^ n condit iile necesare pentru
buna p astrare a s^ angelui.
Raft:
Se presupune c a ^ n sala respectiv a avem mai multe rafturi, numerotate de la 1 la n. Astfel,
primul element din panoul de informat ii ne specic a raftul pe care se situeaz a punga de
s^ ange dorit a.
35
Nivel:
Din cauz a faptului c a o bun a organizare prevede faptul c a pe un raft se pot depozita un
num ar mare de donat ii se specic a si nivelul pe care se situeaz a ecare ^ n parte.
Num ar:
Presupun^ and si c a rafturile sunt destul de lungi am ad augat si informat ia referitoare la
pozit ia de pe nivelul deja cunoscut.
De si ^ n mod normal nu este cazul unei localiz ari at^ at de exacte, ind spitale care au
un singur raft si nu mai mult de 10, 20 de pungi de s^ ange ^ n permanent a, idealul ar ca
organizarea de mai sus s a ajung a s a e necesar a.
Dup a rularea aplicat iei panoul "Informat ii locat ie" va ar ata ca ^ n exemplele de mai
jos:
2.4 Filtrarea ^ nregistr arilor
Deoarece este posibil ca utilizatorul aplicat iei s a doreasc a s a caute o anumit a persoan a,
o anumit a grup a de s^ ange, un anumit tip de rh, etc. am ad augat si opt iuni cu privire la
acest aspect.
Pentru a realiza ltrarea am realizat o funct ie care ia ^ n considerare at^ at c^ ampul
utilizat pentru c autarea dup a CNP c^ at si combobox-urile pentru grup a si rh.
Prima oar a trat am cazul ^ n care nu mai avem niciun ltru aplicat. ^In cazul acesta
vom a sa toate ^ nregistr arile.
^In caz contrar init iliz am c^ ate un query pentru ecare opt iune de ltrare ^ n felul
urm ator:
var queryCNP = from o in db . Donatie table . Include ()" Donator ")
where o . CNP donator . Contains ("")
s e l e c t o ;
Urm atorul pas este reprezentat de vericarea c^ ampului de c autare CNP. ^In cazul ^ n
care acesta este diferit de null aplic am ltrul dorit prin:
36
queryCNP = from o in db . Donatie table . Include
(" Donator ") where o . CNP donator . Contains ( txtSearch . Text )
s e l e c t o ;
^In cazul ^ n care mai avem aplicat si ltrul pe grupa sanguin a query-ul nu se va mai
aplica pe Donatie table ci pe query-ul precedent
i f (comboBoxGrupa . SelectedIndex != 0)
f
queryGrupa = from o in queryCNP
where o . Donator . Grupe sanguine . Grupa . Contains
(comboBoxGrupa . Text ) s e l e c t o ;
g
^In caz contrar
queryGrupa = queryCNP ;
Acela si algoritm se repet a si pentru cazul ltrului pe tipul de rh.
^In nal se aplic a query-ul obt inut
donatietableBindingSource . DataSource = queryRh . ToList ( ) ;
si se veric a dac a exist a ^ nregistr ari care s a ^ ndeplineasc a condit iile ltrelor.
^In caz contrar se va a sun mesaj care specic a acest lucru si din ltru se va elimina
o opt iune. Operat ia se repet a ^ n cazul ^ n care ^ nregistr arile existente nu ^ ndeplinesc
condit iile.
2.4.1 Filtrarea dup a CNP
Aceasta se realizeaz a prin completarea c^ ampului prezentat ^ n imaginea de mai sus si
ap asarea butonului Enter de la tastatur a. Respectivul c^ amp poate folosit pentru
c autarea dup a CNP-ul complet sau dup a o parte din acesta.
De exemplu, dac a dorim s a vedem doar donatorii de sex feminin n ascut i ^ n anii 0 este
sucient s a complet am ^ n c asut a cu "29". Ap as am enter si obt inem:
37
2.4.2 Filtrarea ^ n funct ie de grupa sanguin a
La extinderea combobox-ului se vor a sa toate opt iunile, a sa ca ^ n imaginea de mai jos:
Dup a selectarea grupei ltrul se va aplica si vom obt ine:
Se poate observa ^ n partea dreapt a c a ^ nregistrarea ^ ndepline ste condit iile ltrului ( ^ n
informat ii donator grupa este 0I ).
2.4.3 Filtrarea ^ n funct ie de tipul rh-ului
La extinderea combobox-ului se vor a sa toate opt iunile, a sa ca ^ n imaginea de mai jos:
Dup a selectarea rh-ului ltrul se va aplica si vom obt ine:
Se poate observa ^ n partea dreapt a c a ^ nregistrarea ^ ndepline ste condit iile ltrului ( ^ n
informat ii donator rh-ul este pozitiv ).
38
2.5 Statistici
Pentru a avea o evident a direct a asupra num ar alui de persoane cu o anumit a caracteristic a
am ad augat^ n interfat a un buton care creeaz a un excel cu statistici bazate pe^ nregistr arile
din baza de date. La ap asarea butonului Statistici se va crea sierul Excel nou, ^ n cazul
^ n care acesta deja exist a vom ^ ntrebat i dac a dorim s a ^ nlocuim sierul respectiv cu
unul nou, ^ n care folosim baza de date cu informat ii actualizate. Dac a suntem de acord
cu suprascrierea vom primi un alt mesaj ^ n care se specic a calea c atre locul unde a fost
creat sierul si acesta se va deschide automat.
Primul pas ^ n algoritmul acesta este reprezentat de vericarea existent ei programului
Microsoft Oce Excel pe dispozitivul pe care ruleaz a aplicat ia.
^In cauzul ^ n care programul Excel este prezent se continu a cu crearea primului work-
sheet.
//Adaugarea f i l e i s t a t i s t i c a grupe sanguine
xlWorkSheetGrupe = ( Microsoft . O f f i c e . Interop . Excel .
Worksheet ) xlWorkBook . Worksheets . Add ( ) ;
xlWorkSheetGrupe .Name = "Grupe sanguine " ;
//add data
xlWorkSheetGrupe . C e l l s [ 1 , 1 ] = "";
xlWorkSheetGrupe . C e l l s [ 1 , 2 ] = "0 I " ;
xlWorkSheetGrupe . C e l l s [ 1 , 3 ] = "AII " ;
xlWorkSheetGrupe . C e l l s [ 1 , 4 ] = " BIII " ;
xlWorkSheetGrupe . C e l l s [ 1 , 5 ] = "ABIV" ;
Dup a crearea primei linii se init ializeaz a cu 0 valorile tabelului ce va folosit ^ n crearea
statisticii.
i n t counterDonators = db . Donators . Count ( ) ;
f o r ( i n t i = 0 ; i <counterDonators ; i++)
f
f o r ( i n t j = 2 ; j <6 ; j++)
f
xlWorkSheetGrupe . C e l l s [ i +2, j ] = 0 ;
g
g
Primul for merge de la 0 la num arul donat iilor, iar al doilea merge de la 2 la 6 deoarecere
in Excel avem nevoie sa completam coloanele de la 2 la 5 (a sa cum am stabilit pe prima
linie).
Urm atorul pas este completarea locat iilor cu 1 ^ n cazul ^ n care ceea ce ne intereseaz a
39
se respect a.
foreach ( Donator donator in db . Donators )
f
xlWorkSheetGrupe . C e l l s [ currentRow , donator . Grupe sanguine .
idgrupa + 1 ] = 1 ;
currentRow++;
g
Urmeaz a calcularea num arului total din ecare opt iune
xlWorkSheetGrupe . C e l l s [ currentRow , 1 ] = " Total " ;
xlWorkSheetGrupe . C e l l s [ currentRow , 2 ] . Formula = "=SUM(B2 :B" +
( currentRow 1 ) . ToString ( ) + " ) " ;
xlWorkSheetGrupe . C e l l s [ currentRow , 3 ] . Formula = "=SUM(C2 :C" +
( currentRow 1 ) . ToString ( ) + " ) " ;
xlWorkSheetGrupe . C e l l s [ currentRow , 4 ] . Formula = "=SUM(D2 :D" +
( currentRow 1 ) . ToString ( ) + " ) " ;
xlWorkSheetGrupe . C e l l s [ currentRow , 5 ] . Formula = "=SUM(E2 :E" +
( currentRow 1 ) . ToString ( ) + " ) " ;
Se creeaz a un nou chart ^ n worksheetul curent si se folosesc datele obt inute.
Excel . ChartObjects xlCharts =
( Excel . ChartObjects ) xlWorkSheetGrupe . ChartObjects (Type . Missing ) ;
Excel . ChartObject myChart =
( Excel . ChartObject ) xlCharts . Add(288 , 16 , 384 , 3 1 5 ) ;
Excel . Chart chartPage = myChart . Chart ;
chartPage . HasTitle = true ;
chartPage . ChartTitle . Text = "Grupe sanguine " ;
chartRange = xlWorkSheetGrupe . get Range
("$A$1 : $E$1 , $A$"+currentRow +":$E$"+currentRow ) ;
chartRange . Columns . AutoFit ( ) ;
chartPage . SetSourceData ( chartRange , misValue ) ;
chartPage . ChartType = Excel . XlChartType . xl3DPieExploded ;
chartPage . ApplyDataLabels ( XlDataLabelsType . xlDataLabelsShowValue ,
XlDataLabelsType . xlDataLabelsShowLabel , true , f a l s e , f a l s e , true ,
f a l s e , true ) ;
// s f a r s i t f i l a grupe sanguine
40
Statistic a grupe sanguine
Pentru ^ nregistr arile prezente ^ n baza de date obt ine:
Statistic a grupe sanguine + rh
Pentru ^ nregistr arile prezente ^ n baza de date obt ine:
41
Statistic a ^ n funct ie de sexul donatorilor
Pentru ^ nregistr arile prezente ^ n baza de date obt ine:
2.6 Modicarea informat iilor din baza de date
Pentru modicarea unei^ nregistr ari sau ad augarea unei^ nregistr ari am ad augat^ n interfat a
urm atoarele butoane:
Butonul Adaug a
La ap asarea acestui buton se creeaz a o nou a ^ nregistrare de tip donat ie si un nou Donator.
Dup a completarea datelor din panoul informat ii donator si completarea ^ n linia tabelului
cu donat ii putem salva ap as^ and butonul Salvare.
Butonul Editare
La ap asarea acestui buton panoul informat ii donator se deblocheaz a si putem modica
datele din interior. Acest buton poate folosit ^ n cazul schimb arii num arului de telefon,
sau al numelui de familie, ^ n cazul c as atoriei. Pentru nalizarea modic arilor dorite se
apas a pe butonul Salvare.
42
Butonul Anulare
Acest buton are un efect c^ and suntem ^ n modul de ad augare sau editare. La ap asarea
acestui buton ultimele modic ari nu vor luate ^ n considerare si la urm atoarea a sare a
^ nregistr arilor se va reveni la situat ia precedent a.
Butonul Salvare
Acesta funct ioneaz a ^ n acelea si situat ii ca si butonul de anulare, doar c a acesta are o
react ie opus a celei din cazul precedent.
2.7 Conectarea la cititorul RFID
Conectarea la cititor se face prin introducerea IP-ului ^ n c^ ampul dedicat si ap asarea
butonului de conectare. ^In momentul ^ n care conexiunea este realizat a mesajul "Citi-
torul RFID nu este conectat" se va modica ^ n "Cititorul RFID este conectat" si ^ n
DataGridView-ul donat ii vor mai vizibile doar acele ^ nregistr ari care sunt legate printr-
o relat ie cu tagurile RFID din raza antenei.
43
Bibliograe
[1] HARTING Technology Group, "RF-R3x0QuickStart2.1.0" , 2018-10-08.
[2] HARTING Technology Group, "RF-R350 RFID App V2.0.x – User Manual" , Edition
2018, 07/17.
[3] https://www.abr.com/what-is-rd-how-does-rd-work/
[4] https://aureldeac89.weebly.com/uploads/4/6/8/0/4680293/2 20retele decalculatoare.pdf
[5] http://csharp.net-informations.com/communications/csharp-socket-
programming.htm
[6] https://searchsqlserver.techtarget.com/denition/database
[7] https://www.tp-link.com/ro/business-networking/accessory/tl-poe150s
44
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: R aducu-R azvan Gheorghe [616664] (ID: 616664)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
