Gra zręcznościowa „Straszna Epidemia"  V1.2
Projekt Wizualizacja Danych Sensorycznych Kewin Gałuszka rok akademicki 2019/2020
usart.cpp
Idź do dokumentacji tego pliku.
1 #include "usart.h"
2 
4 {
5  this -> device = new QSerialPort;
6 }
7 
9 {
10  delete device;
11 }
12 
13 
14 
15 void usart::slt_usart_connect(QString clear_portName)
16 {
17  this->device->setPortName(clear_portName);
18 
19  if(!device->isOpen()){
20  if(device->open(QSerialPort::ReadWrite)) {
21  this->device->setBaudRate(QSerialPort::Baud9600);
22  this->device->setDataBits(QSerialPort::Data8);
23  this->device->setParity(QSerialPort::NoParity);
24  this->device->setStopBits(QSerialPort::OneStop);
25  this->device->setFlowControl(QSerialPort::NoFlowControl);
26 
27  qDebug() << "Otwarto port szeregowy.";
28  connect(this->device, SIGNAL(readyRead()), this, SLOT(usart_read()));
29  emit sig_clearStatus();
30  QString stat_con;
31  stat_con = tr("<font color = green >Połączono\n"" </font size = 11 >");
32  emit sig_writeStatus(stat_con);
33  }
34  }
35  else{
36  emit sig_addToLogs("Nie można otworzyć portu");
37  }
38 }
39 
40 
41 
42 
43 void usart::slt_usart_disconnect()
44 {
45 
46  if(this->device->isOpen())
47  {
48  this->device->close();
49  emit sig_addToLogs("Zakonczono polaczenie");
50  emit sig_clearStatus();
51  QString stat_dis;
52  stat_dis = tr("<font color = red >Rozłączono\n"" </font size = 11 >");
53  emit sig_writeStatus(stat_dis);
54 
55  }
56  else
57  {
58  emit sig_addToLogs("Nie mozna zamknac portu. Port nie jest otwarty");
59  return;
60  }
61 
62 
63 }
64 
65 void usart::usart_read() {
66 
67 
68  float resolution = 2.0;
69  QString tmp_buffer;
70  QStringList buffer_list, good_buffer_list;
71 
72 
73  while(this->device->canReadLine()) {
74 
75  QString tmp_buffer = this->device->readLine(); //read line from port and add to buffer
76  // qDebug() << "line" << tmp_buffer;
77 
78  //serialData = device->readAll();
79  // tmp_buffer = this->device->readLine();
80  //qDebug() << "serial" << tmp_buffer;
81 
82  buffer_list = tmp_buffer.split(" "); //split by space
83 
84  // qDebug() << "rozdzielone" << buffer_list;
85 
86 
87  if(1){
88  good_buffer_list = buffer_list;
89 
90  int16_t unconverted_acc_x = good_buffer_list[1].toInt();
91  int16_t unconverted_acc_y = good_buffer_list[2].toInt();
92  int16_t unconverted_acc_z = good_buffer_list[3].toInt();
93 
94  emit moveData(unconverted_acc_y);
95  emit shootData(unconverted_acc_x);
96 
97  float acc_x = ((float)unconverted_acc_x*resolution)/((float)INT16_MAX);
98  float acc_y = ((float)unconverted_acc_y*resolution)/((float)INT16_MAX);
99  float acc_z = ((float)unconverted_acc_z*resolution)/((float)INT16_MAX);
100 
101  QList<float> acc_list = {acc_x, acc_y, acc_z};
102 
103  // qDebug()<<"data:" << acc_list;
104 
105  emit plotData(acc_list);
106 
107  }
108 
109  serialBuffer="";
110  buffer_list.clear();
111  good_buffer_list.clear();
112 
113 
114 
115 
116 
117 
118  }
119 
120 
121 
122  //emit sig_addToLogs(line.left(pos));
123 
124 }
125 
126 
usart::usart
usart()
Konstruktor.
Definition: usart.cpp:3
usart::shootData
void shootData(int Data)
Sygnał emitowany celem oddania strzału przez użytkownika.
usart::sig_addToLogs
void sig_addToLogs(QString message)
Sygnał emitowany celem dodania komunikatu do okna ustawień
usart::sig_writeStatus
void sig_writeStatus(QString message)
Sygnał emitowany celem dodania komunikatu do okna ustawień
usart::~usart
~usart()
Destruktor.
Definition: usart.cpp:8
usart::plotData
void plotData(QList< float >)
Funkcja realizująca odczytywanie danych z portu szeregowego oraz obsługę sumy kontrolnej.
usart::sig_clearStatus
void sig_clearStatus()
Sygnał emitowany celem wyczyszczenia widżetu statusu połączenia.
usart.h
usart::moveData
void moveData(int Data)
Sygnał emitowany celem wykonania ruchu przez użytkownika.