mainwindow.cpp 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. #include <QMessageBox>
  4. #include <QDateTime>
  5. MainWindow::MainWindow(QWidget *parent)
  6. : QMainWindow(parent)
  7. , ui(new Ui::MainWindow)
  8. {
  9. ui->setupUi(this);
  10. mpdbclient = new grpcdbclient();
  11. mpdbclient->start();
  12. connect(mpdbclient,SIGNAL(reqres(int)),this,SLOT(onreqres(int)));
  13. connect(mpdbclient,SIGNAL(datareqres(int)),this,SLOT(ondatareqres(int)));
  14. mpitemmodel = new QStandardItemModel(this);
  15. ui->listView->setModel(mpitemmodel);
  16. setWindowTitle("Query grpcdb");
  17. }
  18. MainWindow::~MainWindow()
  19. {
  20. delete ui;
  21. }
  22. void MainWindow::on_pushButton_setbegin_clicked()
  23. {
  24. QDate date = ui->calendarWidget->selectedDate();
  25. QDateTime datetime;
  26. datetime.setDate(date);
  27. QTime xTime;
  28. xTime.setHMS(0,0,0,0);
  29. datetime.setTime(xTime);
  30. ui->lineEdit_begin->setText(datetime.toString("yyyy/MM/dd hh:mm:ss:zzz"));
  31. }
  32. void MainWindow::on_pushButton_setend_clicked()
  33. {
  34. QDate date = ui->calendarWidget->selectedDate();
  35. QDateTime datetime;
  36. datetime.setDate(date);
  37. QTime xTime;
  38. xTime.setHMS(23,59,59,999);
  39. datetime.setTime(xTime);
  40. ui->lineEdit_end->setText(datetime.toString("yyyy/MM/dd hh:mm:ss:zzz"));
  41. }
  42. void MainWindow::on_pushButton_query_clicked()
  43. {
  44. mpitemmodel->clear();
  45. QString strbegin = ui->lineEdit_begin->text();
  46. if(strbegin == "")
  47. {
  48. QMessageBox::warning(this,"Warning","Please Set begin time.",QMessageBox::YesAll);
  49. ui->lineEdit_begin->setFocus();
  50. return;
  51. }
  52. QDateTime xfrom = QDateTime::fromString(strbegin,"yyyy/MM/dd hh:mm:ss:zzz");
  53. if(xfrom.isNull() || !xfrom.isValid())
  54. {
  55. QMessageBox::warning(this,"Warning","begin time is Not Valid.",QMessageBox::YesAll);
  56. ui->lineEdit_begin->setFocus();
  57. return;
  58. }
  59. QString strto = ui->lineEdit_end->text();
  60. if(strto == "")
  61. {
  62. QMessageBox::warning(this,"Warning","Please Set end time.",QMessageBox::YesAll);
  63. ui->lineEdit_end->setFocus();
  64. return;
  65. }
  66. QDateTime xto = QDateTime::fromString(strto,"yyyy/MM/dd hh:mm:ss:zzz");
  67. if(xto.isNull() || !xto.isValid())
  68. {
  69. QMessageBox::warning(this,"Warning","end time is Not Valid.",QMessageBox::YesAll);
  70. ui->lineEdit_end->setFocus();
  71. return;
  72. }
  73. if((xfrom.toMSecsSinceEpoch() >= xto.toMSecsSinceEpoch()))
  74. {
  75. QMessageBox::warning(this,"Warning","end time is earlier than start time.",QMessageBox::YesAll);
  76. ui->lineEdit_end->setFocus();
  77. return;
  78. }
  79. QString strvehid = ui->lineEdit_vehid->text();
  80. if(strvehid == "")
  81. {
  82. QMessageBox::warning(this,"Warning","vehid is Not Valid.",QMessageBox::YesAll);
  83. ui->lineEdit_vehid->setFocus();
  84. return;
  85. }
  86. mpdbclient->requestlist(xfrom.toMSecsSinceEpoch(),xto.toMSecsSinceEpoch(),strvehid.toStdString());
  87. ui->pushButton_query->setEnabled(false);
  88. }
  89. void MainWindow::onreqres(int nres)
  90. {
  91. ui->pushButton_query->setEnabled(true);
  92. if(nres == -1)
  93. {
  94. QMessageBox::warning(this,"Warning","Connect to Server Fail.",QMessageBox::YesAll);
  95. return;
  96. }
  97. iv::db::listReply xlistreply;
  98. mpdbclient->getlistreply(xlistreply);
  99. if(xlistreply.nres() == 0)
  100. {
  101. unsigned int i;
  102. for(i=0;i<xlistreply.recodetime_size();i++)
  103. {
  104. qint64 timex = xlistreply.recodetime(i);
  105. QDateTime dt = QDateTime::fromMSecsSinceEpoch(timex);
  106. QStandardItem * item = new QStandardItem(dt.toString("yyyy/MM/dd hh:mm:ss:zzz"));
  107. mpitemmodel->appendRow(item);
  108. }
  109. QMessageBox::information(this,"Info","Query List Successfully.",QMessageBox::YesAll);
  110. }
  111. else
  112. {
  113. if(xlistreply.nres() == -1)
  114. {
  115. QMessageBox::warning(this,"Warning","Server Open DataBase Fail.",QMessageBox::YesAll);
  116. }
  117. if(xlistreply.nres() == -2)
  118. {
  119. QMessageBox::warning(this,"Waring","Server Database Busy.",QMessageBox::YesAll);
  120. }
  121. }
  122. }
  123. void MainWindow::on_pushButton_DownLoad_clicked()
  124. {
  125. QString strrecord = ui->listView->currentIndex().data().toString();
  126. if(strrecord == "")
  127. {
  128. QMessageBox::warning(this,"Warning","No Select.",QMessageBox::YesAll);
  129. return;
  130. }
  131. qint64 nrecordid = QDateTime::fromString(strrecord,"yyyy/MM/dd hh:mm:ss:zzz").toMSecsSinceEpoch();
  132. std::string strvehid = ui->lineEdit_vehid->text().toStdString();
  133. mpdbclient->requestfilename(nrecordid,strvehid);
  134. }
  135. void MainWindow::ondatareqres(int nres)
  136. {
  137. if(nres == -1)
  138. {
  139. QMessageBox::warning(this,"Warning","Connect to Server Fail.",QMessageBox::YesAll);
  140. return;
  141. }
  142. iv::db::dataReply xdatareply;
  143. mpdbclient->getdatareply(xdatareply);
  144. qDebug("file name is %s, size is %d",xdatareply.strfilename().data(),xdatareply.nfilesize());
  145. }