Arduino – platformă gratuită pentru pasionații de electronică

Arduino este o platformă gratuită destinată celor pasionați de electronică, studenți și ingineri din domeniu deopotrivă, dar și celor care doar au ca hobby construirea de montaje electronice.

Arduino este atât un produs software cât și un concept, extinzând conceptul open source și asupra realizărilor tehnice concrete (scheme, cablaje electronice, etc.).

Partea de software a platformei este integrată într-o interfață grafică de tip IDE bazată pe limbajul de programare Processing . Programarea controllerului de pe platforma fizică se face folosind limbajul de programare Arduino

Proiectele fizice realizate pe platformele Arduino pot funcționa de sine stătător dar pot interacționa cu aplicații care funcționează pe un calculator precum Flash, Processing, MaxMSP.

Cu platformele fizice Arduino puteți transforma calculatorul dumneavoastră într-un instrument de măsură complex sau într-un dispozitiv inteligent de testare și evaluare a prototipurilor.

Mediul Integrat de Dezvoltare (IDE) Arduino

Mediul integrat de dezvoltare Arduino este destinat scrierii programelor ce pot fi incărcate pe platformele fizice Arduino. Interfața este scrisă in Java și mediul de programare folosește limbaje de programare de tip open source precum Processing, avr-gcc. Interfața este multiplatformă, putând rula în Windows©, Mac OS X© și Linux. Programul poate fi obținut atât ca executabil specific platformei de lucru pe care o aveți dar și sub formă de cod sursă pe care il puteți compila conform condițiilor specifice pe care le aveți.

Ultima versiune stabilă a programului este 0011 Alpha și poate fi obținută pe pagina oficială a proiectului.

După instalare interfața principală a programului arată ca în captura de ecran de mai jos:
Arduino IDE

Platforma hardware Arduino

Pe scurt, platforma este o placă (de test, de circuit imprimat, etc.) de diferite forme fizice și design care are ca element central un circuit integrat programabil. Atât placa de bază cât și circuitul integrat programabil pot fi diferite, ceea ce conferă proiectelor realizate o flexibilitate in proiectare deosebită. Plăcile pot fi obținute contra cost, dar le puteți realiza și singuri deoarece schemele în baza cărora sunt construite sunt de tip open source. Multe, foarte multe informații suplimentare puteți afla pe pagina oficială de Internet a proiectului Arduino la secțiunea Hardware .

Înarmați cu un mediu de programare și cu o platformă fizică simple și flexibile nu vă mai rămâne decât să vă suflecați mânecile și să treceți la treabă. Spor la lucru!

Comments (26)

  1. dan wrote::

    cum as putea sa cumpar placa?…

    Va multumesc

    joi, ianuarie 29, 2009 at 18:20 #
  2. Doru Horișco wrote::

    Aici este lista cu locurile de unde poti achizitiona produse realizate cu arduino: http://arduino.cc/en/Main/Buy

    Plăci de bază, circuite,…

    sâmbătă, ianuarie 31, 2009 at 1:54 #
  3. cti97 wrote::

    las si eu un comentariu, poate stie cineva de unde se poata achizitiona arduino din romania – un magazin de electronice, ceva ?

    PS: imi place foarte mult tema asta de wp – tu ai tradus-o ? arata fosrte bine, dpmdv (minimalist)

    joi, martie 26, 2009 at 13:06 #
  4. Doru Horișco wrote::

    Nu cunosc să existe așa ceva, din nefericire.
    Pentru București poate încerci http://www.conexelectronic.ro/index.php
    Șansele sunt mici dar merită încercat.

    duminică, martie 29, 2009 at 1:19 #
  5. yo8rtt wrote::

    Eu am realizat schema pe rs232 si functioneaza perfect. Am reproiectat cablajul pentru componente smd. Acum lucrez la un proiect in care am interfatat arduino cu un cititor rfid de la feig (isc.m02).
    Atmega8-16 se gasesc. Eu am luat de la Adelaida.
    Succes!

    joi, aprilie 2, 2009 at 21:14 #
  6. Pentru cei interesati de achizitionarea modulului Arduino va rog sa ma contactati, e-mai cipri_comiati@yahoo.com

    un modul ajunge la aprox 150 lei, include bootloader, si este dotata cu ATMEGA 168 si port usb,
    aveti aicea si o poza cu arduino http://img259.imageshack.us/img259/9836/arduino.jpg

    joi, aprilie 23, 2009 at 22:05 #
  7. Pentru cei interesati … am 2 bucati Arduino Diecimila http://arduino.cc/en/Main/ArduinoBoardDiecimila

    marți, aprilie 28, 2009 at 11:58 #
  8. Gheorghe Iuga wrote::

    Salut comunitatea opensource din Romania. Pentru cei interesati, eu am cumparat recent platforma Arduino Duemilanove chiar din tara. O gasiti aici: http://robotop.ro/shop/product_info.php/cPath/30/products_id/98

    duminică, mai 17, 2009 at 13:56 #
  9. Silviu Turuga wrote::

    Arduino este disponibil de astazi in mod oficial pe http://shop.turuga.ro

    Livrare in toata tara prin Nemo Expres

    TURUGA este singurul distribuitor autorizat in Romania (http://arduino.cc/en/Main/Buy)

    joi, iulie 30, 2009 at 13:42 #
  10. Silviu Turuga wrote::

    Produsele Pololu[/a>, Solarbotics si Tamiya sunt pe stoc.

    Va asteapta o varietate de micromotorase, rotite, sasiuri si senzori pentru a putea da viata robotelului dumneavoastra!

    Nu uitati de promotiile din fiecare saptamana, doar saptamana asta Arduino Ethernet Shield este la 155 ron. In fiecare saptamana un produs va avea pretul scazut.

    joi, august 27, 2009 at 17:04 #
  11. aygun wrote::

    Arduino se poate construi ca DIY

    Aici referinte , scheme , detalii

    http://arduino.cc/en/Main/ArduinoBoardSerial

    Eu mi-am facut vreo 4 bucati. Per total iesi mult mai ieftin daca il construiesti.

    Numai de bine

    joi, martie 11, 2010 at 10:01 #
  12. Gelu wrote::

    Incepand de azi, noul Arduino UNO disponibil in Romania doar la Robofun – http://www.robofun.ro/microcontrollere/arduino_uno

    luni, octombrie 4, 2010 at 13:27 #
  13. Andrei wrote::

    Arduino Uno puteti gasi si la Magazinul de Mecatronica: http://shop.mecatronica.eu/arduino-uno-plus/

    marți, noiembrie 2, 2010 at 17:27 #
  14. Ale wrote::

    Tocmai mi-am cumparat un ARDUINO UNO de la magazinul shop.mecatronica.eu si pe langa arduino am mai primit si un pachet cu cateva piese care m-au ajutat sa invat sa folosesc placa de dezvoltare. Foarte interesant!!! recomand!

    joi, decembrie 2, 2010 at 12:20 #
  15. corina wrote::

    Stie cineva unde as putea sa gasesc documentatie despre rfid-ul mrf49xa de la microchip…in limba romana ar fi de preferat. multumesc

    sâmbătă, iunie 11, 2011 at 14:52 #
  16. Alex wrote::

    Daca mai este interesat cineva sa cumpere arduino sau alte piese compatibile sa intre pe http://www.robofun.ro

    miercuri, mai 30, 2012 at 23:05 #
  17. eugen wrote::

    OK, acum putem cumpara arduino de peste tot locul am insa nevoie de cineva sa-mi scrie un program… (in mare, trebuie sa comand temporizat un motor si sa inchid/deschid un circuit) Cineva?

    joi, august 23, 2012 at 8:27 #
  18. cti97 wrote::

    acum poti incerca si raspberry pi + Gertboard = http://www.raspberrypi.org/archives/1734

    si astfel poti sa folosesti scripturi python sa-l programezi

    joi, august 23, 2012 at 12:35 #
  19. Dan wrote::

    Scriu programe pentru Arduino. Vind placute facute de mine, compatibile Arduino, insa intra intr-o cutie de chibrite(mai ramane si spatiu), au si RTC spre deosebire de Arduino. Dau si CD cu compilator(cu IDE!), tutoriale de utilizare I2C,SPI,RTC,Timers,Interrupts,USART,etc. Mediul de dezvoltare al Arduino este bun, insa daca vrei cu adevarat sa inveti, nu ezita si scrie-mi: dan.nedelcu59@gmail.com
    Apropo am 28 :-)

    vineri, septembrie 21, 2012 at 13:30 #
  20. Alex wrote::

    Salutare, am un proiect care are la baza un Arduino si un altgoritm care l-am gasit undeva online. Contra cost am nevoie de cineva care sa ma ajute cu manopera . contact : alxrdl@yahoo.com

    joi, octombrie 18, 2012 at 2:50 #
  21. mihai wrote::

    model

    vineri, august 4, 2017 at 20:18 #
  22. mihai wrote::

    model

    vineri, august 4, 2017 at 20:18 #
  23. mihai wrote::

    catalog_l2
    model
    BaseEntity.Class
    package ro.ntt.catalog.model;

    public class BaseEntity {
    private ID id;

    public BaseEntity(ID id) {
    this.id = id;
    }

    public ID getId() {
    return this.id;
    }

    public void setId(ID id) {
    this.id = id;
    }

    public String toString() {
    return “BaseEntity{id=” + this.id + ‘}’;
    }
    }

    Student.Class
    package ro.ntt.catalog.model;

    public class Student extends BaseEntity {
    private String serialNumber;
    private String name;
    private int group;

    public Student(Long id, String serialNumber, String name, int group) {
    super(id);
    this.serialNumber = serialNumber;
    this.name = name;
    this.group = group;
    }

    public String getSerialNumber() {
    return this.serialNumber;
    }

    public void setSerialNumber(String serialNumber) {
    this.serialNumber = serialNumber;
    }

    public String getName() {
    return this.name;
    }

    public void setName(String name) {
    this.name = name;
    }

    public int getGroup() {
    return this.group;
    }

    public void setGroup(int group) {
    this.group = group;
    }

    public boolean equals(Object o) {
    if (this == o) {
    return true;
    } else if (o != null && this.getClass() == o.getClass()) {
    Student student = (Student)o;
    if (this.group != student.group) {
    return false;
    } else {
    return !this.serialNumber.equals(student.serialNumber) ? false : this.name.equals(student.name);
    }
    } else {
    return false;
    }
    }

    public int hashCode() {
    int result = this.serialNumber.hashCode();
    result = 31 * result + this.name.hashCode();
    result = 31 * result + this.group;
    return result;
    }

    public String toString() {
    return “Student{serialNumber=’” + this.serialNumber + ‘\” + “, name=’” + this.name + ‘\” + “, group=” + this.group + “} ” + super.toString();
    }
    }

    repository
    InMemoryRepository.Class
    package ro.ntt.catalog.repository;

    import java.util.HashMap;
    import java.util.Map;
    import java.util.Optional;
    import java.util.Set;
    import java.util.Map.Entry;
    import java.util.function.BiFunction;
    import java.util.function.Function;
    import java.util.stream.Collectors;
    import ro.ntt.catalog.model.BaseEntity;

    public class InMemoryRepository<ID, T extends BaseEntity> implements Repository {
    private Map entities = new HashMap();

    public InMemoryRepository() {
    }

    public Optional findOne(ID id) {
    if (id == null) {
    throw new IllegalArgumentException(“id must not be null”);
    } else {
    return Optional.ofNullable(this.entities.get(id));
    }
    }

    public Iterable findAll() {
    Set allEntities = (Set)this.entities.entrySet().stream().map(Entry::getValue).collect(Collectors.toSet());
    return allEntities;
    }

    public Optional save(T entity) {
    if (entity == null) {
    throw new IllegalArgumentException(“id must not be null”);
    } else {
    return Optional.ofNullable(this.entities.putIfAbsent(entity.getId(), entity));
    }
    }

    public Optional delete(ID id) {
    if (id == null) {
    throw new IllegalArgumentException(“id must not be null”);
    } else {
    return Optional.ofNullable(this.entities.remove(id));
    }
    }

    public Optional update(T entity) {
    if (entity == null) {
    throw new IllegalArgumentException(“entity must not be null”);
    } else {
    return Optional.ofNullable(this.entities.computeIfPresent(entity.getId(), (k, v) -> {
    return entity;
    }));
    }
    }
    }

    Repository.Class
    package ro.ntt.catalog.repository;

    import java.util.Optional;
    import ro.ntt.catalog.model.BaseEntity;

    public interface Repository<ID, T extends BaseEntity> {
    Optional findOne(ID var1);

    Iterable findAll();

    Optional save(T var1);

    Optional delete(ID var1);

    Optional update(T var1);
    }

    StudentXmlRepository.class
    package ro.ntt.catalog.repository;

    import java.util.Iterator;
    import java.util.List;
    import java.util.Optional;
    import ro.ntt.catalog.model.Student;

    public class StudentXmlRepository extends InMemoryRepository {
    private String fileName;

    public StudentXmlRepository(String fileName) {
    this.fileName = fileName;
    this.loadData();
    }

    private void loadData() {
    List students = null;
    Iterator var2 = ((List)students).iterator();

    while(var2.hasNext()) {
    Student student = (Student)var2.next();
    super.save(student);
    }

    }

    public Optional save(Student entity) {
    Optional optional = super.save(entity);
    return optional.isPresent() ? optional : Optional.empty();
    }
    }

    service
    StudentService.class
    package ro.ntt.catalog.service;

    import java.util.HashSet;
    import java.util.Set;
    import java.util.function.Consumer;
    import ro.ntt.catalog.model.Student;
    import ro.ntt.catalog.repository.Repository;

    public class StudentService {
    private Repository studentRepository;

    public StudentService(Repository studentRepository) {
    this.studentRepository = studentRepository;
    }

    public void addStudent(Student student) {
    this.studentRepository.save(student);
    }

    public Set getAllStudents() {
    Set students = new HashSet();
    this.studentRepository.findAll().forEach((student) -> {
    students.add(student);
    });
    return students;
    }
    }

    ui
    package ro.ntt.catalog;

    import ro.ntt.catalog.model.Student;
    import ro.ntt.catalog.repository.InMemoryRepository;
    import ro.ntt.catalog.repository.Repository;
    import ro.ntt.catalog.service.StudentService;
    import ro.ntt.catalog.ui.Console;

    public class Main {
    public Main() {
    }

    public static void main(String[] args) {
    Repository studentRepository = new InMemoryRepository();
    StudentService studentService = new StudentService(studentRepository);
    Console console = new Console(studentService);
    console.runMenu();
    System.out.println(“bye”);
    }
    }

    vineri, august 4, 2017 at 20:24 #
  24. mihai wrote::

    filme
    Film.class
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;

    public class Main {
    public Main() {
    }

    public static void main(String[] args) {
    Film gigi = new Film(“Titan”, ” Ciprianov”, 2000);
    FilmPremiat fp = new FilmPremiat(“JJJJ”, “efefef”, 12234, 0);
    List lst = new ArrayList();
    lst.add(gigi);
    lst.add(fp);

    for(int i = 0; i < lst.size(); ++i) {
    System.out.println(lst.get(i));
    }

    Iterator var6 = lst.iterator();

    while(var6.hasNext()) {
    Film f = (Film)var6.next();
    System.out.println(f);
    }

    }
    }

    FilmPremiat.class
    public class FilmPremiat extends Film {
    private int nrPremii;

    public FilmPremiat(String titlu, String regizor, int anul, int nrPremii) {
    super(titlu, regizor, anul);
    this.nrPremii = nrPremii;
    }

    public FilmPremiat(int nrPremii) {
    this.nrPremii = nrPremii;
    }

    public int getNrPremii() {
    return this.nrPremii;
    }

    public void setNrPremii(int nrPremii) {
    this.nrPremii = nrPremii;
    }

    public String toString() {
    return super.toString() + " " + this.nrPremii;
    }
    }

    Main.class
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;

    public class Main {
    public Main() {
    }

    public static void main(String[] args) {
    Film gigi = new Film("Titan", " Ciprianov", 2000);
    FilmPremiat fp = new FilmPremiat("JJJJ", "efefef", 12234, 0);
    List lst = new ArrayList();
    lst.add(gigi);
    lst.add(fp);

    for(int i = 0; i < lst.size(); ++i) {
    System.out.println(lst.get(i));
    }

    Iterator var6 = lst.iterator();

    while(var6.hasNext()) {
    Film f = (Film)var6.next();
    System.out.println(f);
    }

    }
    }

    sâmbătă, august 5, 2017 at 6:40 #
  25. mihai wrote::

    prima incercare
    model
    Caine.class
    public class Caine {
    private String rasa;
    private int varsta;
    private double greutate;

    public Caine() {
    rasa = null;
    varsta = -1;
    greutate =0;
    }

    public Caine(String rasa, int varsta, double greutate) {
    this.rasa = rasa;
    this.varsta = varsta;
    this.greutate = greutate;
    }

    public String getRasa() {
    return rasa;
    }

    public void setRasa(String rasa) {
    this.rasa = rasa;
    }

    public int getVarsta() {
    return varsta;
    }

    public void setVarsta(int varsta) {
    this.varsta = varsta;
    }

    public double getGreutate() {
    return greutate;
    }

    public void setGreutate(double greutate) {
    this.greutate = greutate;
    }

    @Override
    public String toString() {
    return rasa+” “+varsta+” “+greutate;
    }

    @Override
    public boolean equals(Object obj) {
    if (this == obj) return true;
    if (obj == null || getClass() != obj.getClass()) return false;

    Caine c = (Caine)obj;
    return this.rasa == c.rasa;
    }
    }

    CainePedigree.class
    public class CainePedigree extends Caine{
    private double pedigree;

    public double getPedigree() {
    return pedigree;
    }

    public void setPedigree(double pedigree) {
    this.pedigree = pedigree;
    }

    public CainePedigree(double pedigree) {
    super();
    this.pedigree = pedigree;
    }

    public CainePedigree(String rasa, int varsta, double greutate, double pedigree) {
    super(rasa, varsta, greutate);
    this.pedigree = pedigree;
    }

    @Override
    public String toString() {
    return super.toString()+ ” ” + pedigree;
    }
    }

    repository
    Main.class
    public class Main {
    public static void main(String [ ] args)
    {
    Caine c = new Caine(“zolly”,23,34.56);
    Caine v = new Caine(“zolly”,23,34.56);
    System.out.println(c.equals(v));
    System.out.println(c.equals(3));
    List l = new ArrayList();
    List ints = new ArrayList();
    IRepo ir = new Repository();
    // Caine cp = new CainePedigree(“Pitbul”, 12, 20, 1);
    CainePedigree cp = new CainePedigree(“Pitbul”, 12, 20, 1);
    l.add(cp);

    for (Caine ccc:
    l) {
    if (ccc instanceof CainePedigree){
    CainePedigree cop = (CainePedigree)ccc;
    System.out.println(cop.getPedigree());
    }else{
    System.out.println(ccc);
    }

    }

    CainePedigree cpd = (CainePedigree) cp;

    IRepo iir = new Repository();

    System.out.println(“Hello”);
    System.out.println(c);

    IRepo repo = new Repository();
    try {
    repo.add(new Integer(3));
    repo.add(new Caine());
    repo.add(new Object());

    } catch (Exception e) {
    System.out.println(e.getMessage());;
    }

    }
    }

    sâmbătă, august 5, 2017 at 6:44 #
  26. mihai wrote::

    PariuriSportive
    model
    Admin.class
    package model;

    public class Admin extends User {
    private String parola;

    public Admin() {
    }

    public Admin(String nume, int id, String rank, String parola) {
    super(nume, id, rank);
    this.parola = parola;
    }

    public String getParola() {
    return this.parola;
    }

    public void setParola(String parola) {
    this.parola = parola;
    }

    public String toString() {
    return “Admin{” + super.toString() + “parola=’” + this.parola + ‘\” + ‘}’;
    }
    }

    Pariu.class
    package model;

    public class Pariu implements Comparable {
    private double cota;
    private int id;
    private String detalii;

    public Pariu() {
    }

    public Pariu(double cota, int id, String detalii) {
    this.cota = cota;
    this.id = id;
    this.detalii = detalii;
    }

    public double getCota() {
    return this.cota;
    }

    public void setCota(double cota) {
    this.cota = cota;
    }

    public int getId() {
    return this.id;
    }

    public void setId(int id) {
    this.id = id;
    }

    public String getDetalii() {
    return this.detalii;
    }

    public void setDetalii(String detalii) {
    this.detalii = detalii;
    }

    public String toString() {
    return “Pariu{cota=” + this.cota + “, id=” + this.id + “, detalii=’” + this.detalii + ‘\” + ‘}’;
    }

    public int compareTo(Pariu o) {
    if (this.cota o.cota ? 1 : 0;
    }
    }

    public boolean equals(Object o) {
    if (this == o) {
    return true;
    } else if (o != null && this.getClass() == o.getClass()) {
    Pariu pariu = (Pariu)o;
    return this.id == pariu.id;
    } else {
    return false;
    }
    }
    }

    User.class
    package model;

    public class User {
    private String nume;
    private int id;
    private String rank;

    public User() {
    }

    public User(String nume, int id, String rank) {
    this.nume = nume;
    this.id = id;
    this.rank = rank;
    }

    public String getNume() {
    return this.nume;
    }

    public void setNume(String nume) {
    this.nume = nume;
    }

    public int getId() {
    return this.id;
    }

    public void setId(int id) {
    this.id = id;
    }

    public String getRank() {
    return this.rank;
    }

    public void setRank(String rank) {
    this.rank = rank;
    }

    public String toString() {
    return “User{nume=’” + this.nume + ‘\” + “, id=” + this.id + “, rank=” + this.rank + ‘}’;
    }

    public boolean equals(Object o) {
    if (this == o) {
    return true;
    } else if (o != null && this.getClass() == o.getClass()) {
    User user = (User)o;
    return this.id == user.id;
    } else {
    return false;
    }
    }
    }

    repository
    IRepo.class
    package repository;

    import java.util.List;

    public interface IRepo {
    void adauga(T var1) throws Exception;

    void sterge(T var1) throws Exception;

    boolean cauta(T var1);

    void modifica(T var1) throws Exception;

    T getPozitie(int var1) throws Exception;

    List getAll();
    }

    Repository.class
    package repository;

    import java.util.ArrayList;
    import java.util.List;

    public class Repository implements IRepo {
    private List pariuri = new ArrayList();

    public Repository() {
    }

    public void adauga(T pariu) throws Exception {
    if (this.pariuri.contains(pariu)) {
    throw new Exception(“Element existent!”);
    } else {
    this.pariuri.add(pariu);
    }
    }

    public void sterge(T pariu) throws Exception {
    if (!this.pariuri.contains(pariu)) {
    throw new Exception(“Element inexistent”);
    } else {
    this.pariuri.remove(pariu);
    }
    }

    public boolean cauta(T pariu) {
    return this.pariuri.contains(pariu);
    }

    public void modifica(T pariu) throws Exception {
    if (!this.pariuri.contains(pariu)) {
    throw new Exception(“Element inexistent”);
    } else {
    int poz = this.pariuri.indexOf(pariu);
    this.pariuri.set(poz, pariu);
    }
    }

    public T getPozitie(int poz) throws Exception {
    if (poz >= 0 && poz < this.pariuri.size()) {
    return this.pariuri.get(poz);
    } else {
    throw new Exception("pozit ie invalida");
    }
    }

    public List getAll() {
    return new ArrayList(this.pariuri);
    }
    }

    RepositoryAdmin.class
    package repository;

    import model.Admin;

    public class RepositoryAdmin extends Repository {
    private static RepositoryAdmin instance;

    private RepositoryAdmin() {
    }

    public static RepositoryAdmin getInstance() {
    if (instance == null) {
    instance = new RepositoryAdmin();
    }

    return instance;
    }
    }

    RepositoryPariu.class
    package repository;

    import model.Pariu;

    public class RepositoryPariu extends Repository {
    private static RepositoryPariu instance;

    private RepositoryPariu() {
    }

    public static RepositoryPariu getInstance() {
    if (instance == null) {
    instance = new RepositoryPariu();
    }

    return instance;
    }
    }

    RepositoryUser.class
    package repository;

    import model.User;

    public class RepositoryUser extends Repository {
    private static RepositoryUser instance;

    private RepositoryUser() {
    }

    public static RepositoryUser getInstance() {
    if (instance == null) {
    instance = new RepositoryUser();
    }

    return instance;
    }
    }

    service
    PariuController.class
    package service;

    import java.util.List;
    import model.User;
    import repository.RepositoryAdmin;
    import repository.RepositoryPariu;
    import repository.RepositoryUser;
    import validare.ValidatorUser;

    public class PariuController {
    private RepositoryAdmin repositoryAdmin;
    private RepositoryUser repositoryUser;
    private RepositoryPariu repositoryPariu;
    private ValidatorUser validatorUser;

    public PariuController(RepositoryAdmin repositoryAdmin, RepositoryUser repositoryUser, RepositoryPariu repositoryPariu) {
    this.repositoryAdmin = repositoryAdmin;
    this.repositoryUser = repositoryUser;
    this.repositoryPariu = repositoryPariu;
    this.validatorUser = new ValidatorUser();
    }

    public void addUser(String nume, int id, String rank) throws Exception {
    User user = new User(nume, id, rank);
    this.validatorUser.valideaza(user);
    this.repositoryUser.adauga(user);
    }

    public List getAllUser() {
    return this.repositoryUser.getAll();
    }
    }

    UI
    Console.class
    package UI;

    import java.util.Iterator;
    import java.util.List;
    import java.util.Scanner;
    import model.User;
    import service.PariuController;

    public class Console {
    private PariuController pariuController;

    public Console(PariuController pariuController) {
    this.pariuController = pariuController;
    }

    private void showOptions() {
    System.out.println(“1.Adauga user”);
    System.out.println(“2.Afiseaza users”);
    System.out.println(“x.exit”);
    }

    public void run() {
    Scanner scanner = new Scanner(System.in);

    while(true) {
    this.showOptions();
    System.out.println(“Alege o optiune! “);
    String opt = scanner.next();
    if (opt.equals(“x”)) {
    return;
    }

    if (opt.equals(“1″)) {
    this.UIadd(scanner);
    }

    if (opt.equals(“2″)) {
    this.UIprint();
    }
    }
    }

    private void UIprint() {
    List users = this.pariuController.getAllUser();
    Iterator var2 = users.iterator();

    while(var2.hasNext()) {
    User user = (User)var2.next();
    System.out.println(user);
    }

    }

    private void UIadd(Scanner scanner) {
    System.out.println(“dati nume: “);
    String nume = scanner.next();
    System.out.println(“dati id: “);
    int id = scanner.nextInt();
    System.out.println(“dati rank: “);
    String rank = scanner.next();

    try {
    this.pariuController.addUser(nume, id, rank);
    } catch (Exception var6) {
    System.out.println(var6.getMessage());
    }

    }
    }

    validare
    IValidator.class
    package validare;

    public interface IValidator {
    void valideaza(T var1) throws Exception;
    }

    ValidatorUser.class
    package validare;

    import java.util.ArrayList;
    import java.util.List;
    import model.User;

    public class ValidatorUser implements IValidator {
    private List ranks = new ArrayList() {
    {
    this.add(“novice”);
    this.add(“experimentat”);
    this.add(“veteran”);
    }
    };

    public ValidatorUser() {
    }

    public void valideaza(User user) throws Exception {
    String exceptii = “”;
    if (user.getNume().equals(“”)) {
    exceptii = exceptii + “nume invalid!\n”;
    }

    if (user.getId() < 1) {
    exceptii = exceptii + "id invalid!\n";
    }

    if (!this.ranks.contains(user.getRank())) {
    exceptii = exceptii + "rank invalid!\n";
    }

    if (exceptii.length() != 0) {
    throw new Exception(exceptii);
    }
    }
    }

    Main.class \\trebuie sa fie direct sub model
    import UI.Console;
    import model.Pariu;
    import repository.RepositoryAdmin;
    import repository.RepositoryPariu;
    import repository.RepositoryUser;
    import service.PariuController;

    public class Main {
    public Main() {
    }

    public static void main(String[] args) throws Exception {
    Pariu[] pariuri = new Pariu[]{new Pariu(1.25D, 1, "primul pariu"), new Pariu(0.75D, 2, "al 2-lea pariu"), new Pariu(1.55D, 3, "al 3-lea pariu"), new Pariu(1.25D, 4, "al 4-lea pariu"), new Pariu(0.25D, 5, "al 5-lea pariu")};
    RepositoryUser repositoryUser = RepositoryUser.getInstance();
    RepositoryAdmin repositoryAdmin = RepositoryAdmin.getInstance();
    RepositoryPariu repositoryPariu = RepositoryPariu.getInstance();
    PariuController pariuController = new PariuController(repositoryAdmin, repositoryUser, repositoryPariu);
    Console console = new Console(pariuController);
    console.run();
    }
    }

    sâmbătă, august 5, 2017 at 6:49 #

Trackback/Pingback (1)

  1. [...] (în cazul în care nu știu încă) platforma Arduino pentru construirea montajelor electronice. Informații despre Arduino și despre posibilitatea achiziționării de plăci și componente de test pentru Arduino în [...]