-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfinger.cpp
More file actions
91 lines (70 loc) · 2.3 KB
/
Copy pathfinger.cpp
File metadata and controls
91 lines (70 loc) · 2.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#include "finger.h"
#include "mainwindow.h"
#include <QtSerialPort/QSerialPort>
#include <QSerialPort>
#include <QSerialPortInfo>
#include <QObject>
#include <QtCore>
finger::finger()
{
data="";
arduino_port_name="";
arduino_is_available=false;
serial=new QSerialPort;
}
QString finger::getarduino_port_name()
{
return arduino_port_name;
}
QSerialPort *finger::getserial()
{
return serial;
}
int finger::connect_arduino()
{ // recherche du port sur lequel la carte arduino identifée par arduino_uno_vendor_id
// est connectée
foreach (const QSerialPortInfo &serial_port_info, QSerialPortInfo::availablePorts()){
if(serial_port_info.hasVendorIdentifier() && serial_port_info.hasProductIdentifier()){
if(serial_port_info.vendorIdentifier() == arduino_uno_vendor_id && serial_port_info.productIdentifier()
== arduino_uno_producy_id) {
arduino_is_available = true;
arduino_port_name=serial_port_info.portName();
} } }
qDebug() << "arduino_port_name is :" << arduino_port_name;
if(arduino_is_available){ // configuration de la communication ( débit...)
serial->setPortName(arduino_port_name);
if(serial->open(QSerialPort::ReadWrite)){
serial->setBaudRate(QSerialPort::Baud9600); // débit : 9600 bits/s
serial->setDataBits(QSerialPort::Data8); //Longueur des données : 8 bits,
serial->setParity(QSerialPort::NoParity); //1 bit de parité optionnel
serial->setStopBits(QSerialPort::OneStop); //Nombre de bits de stop : 1
serial->setFlowControl(QSerialPort::NoFlowControl);
return 0;
}
return 1;
}
return -1;
}
int finger::close_arduino()
{
if(serial->isOpen()){
serial->close();
return 0;
}
return 1;
}
QByteArray finger::read_from_arduino()
{
if(serial->isReadable()){
data=serial->readAll(); //récupérer les données reçues
return data;
}
}
int finger::write_to_arduino( QByteArray d)
{
if(serial->isWritable()){
serial->write(d); // envoyer des donnés vers Arduino
}else{
qDebug() << "Couldn't write to serial!";
}
}