main.cpp 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. #include "adcintelligentshow.h"
  2. #include <QApplication>
  3. #include <QDebug>
  4. #include <QStringList>
  5. #ifdef Android
  6. #include <QAndroidJniEnvironment>
  7. #include <QtAndroid>
  8. //#include <QAndr
  9. #include <QAndroidJniObject>
  10. #endif
  11. #include <iostream>
  12. #include "xmlparam.h"
  13. #include "grpcclientthread.h"
  14. #ifdef Android
  15. grpcclientthread * ggt;
  16. #endif
  17. std::string gstrmode = "false";
  18. std::string gstrserverip = "192.168.1.102";
  19. std::string gstrserverport = "30051";
  20. std::string gstrqueryinterval = "10";
  21. #include "pos_def.h"
  22. std::vector<iv::pos_def> gvectorpos;
  23. void LoadPos(std::string strfilepath)
  24. {
  25. QFile xFile;
  26. #ifdef Android
  27. QString strpath = "/storage/emulated/0/pos.txt";
  28. xFile.setFileName(strpath);
  29. #else
  30. xFile.setFileName(strfilepath.data());
  31. #endif
  32. if(xFile.open(QIODevice::ReadOnly))
  33. {
  34. QByteArray ba = xFile.readAll();
  35. QList<QByteArray> baline =ba.split('\n');//x.split(QRegExp("\n ")) ;//ba.split('\n');
  36. int nline = baline.size();
  37. int i;
  38. for(i=0;i<nline;i++)
  39. {
  40. QString x(baline[i]);
  41. // QList<QByteArray> badata = baline[i].split('\t');
  42. QStringList badata = x.split(QRegExp("[\t ,;]"));
  43. if(badata.size()>=3)
  44. {
  45. iv::pos_def xposdef;
  46. xposdef.mstrstationname = badata[0].toStdString();
  47. xposdef.mflon = badata[1].toDouble();
  48. xposdef.mflat = badata[2].toDouble();
  49. gvectorpos.push_back(xposdef);
  50. }
  51. }
  52. }
  53. xFile.close();
  54. }
  55. int main(int argc, char *argv[])
  56. {
  57. QApplication a(argc, argv);
  58. #ifdef Android
  59. QAndroidJniEnvironment env;
  60. QAndroidJniObject activity = QtAndroid::androidActivity();
  61. QAndroidJniObject name = QAndroidJniObject::getStaticObjectField(
  62. "android/content/Context",
  63. "POWER_SERVICE",
  64. "Ljava/lang/String;"
  65. );
  66. // CHECK_EXCEPTION();
  67. QAndroidJniObject powerService = activity.callObjectMethod(
  68. "getSystemService",
  69. "(Ljava/lang/String;)Ljava/lang/Object;",
  70. name.object<jstring>());
  71. // CHECK_EXCEPTION();
  72. QAndroidJniObject tag = QAndroidJniObject::fromString("QtJniWakeLock");
  73. QAndroidJniObject k = powerService.callObjectMethod(
  74. "newWakeLock",
  75. "(ILjava/lang/String;)Landroid/os/PowerManager$WakeLock;",
  76. 10, //SCREEN_BRIGHT_WAKE_LOCK
  77. tag.object<jstring>()
  78. );
  79. if(k.isValid())
  80. {
  81. k.callMethod<void>("acquire");
  82. }
  83. // CHECK_EXCEPTION();
  84. #endif
  85. QString strpath = QCoreApplication::applicationDirPath();
  86. if(argc < 2)
  87. strpath = strpath + "/ADCIntelligentShow_grpc.xml";
  88. else
  89. strpath = argv[1];
  90. // std::cout<<strpath.toStdString()<<std::endl;
  91. #ifdef Android
  92. strpath = "/storage/emulated/0/ADCIntelligentShow_grpc.xml";
  93. #endif
  94. iv::xmlparam::Xmlparam xp(strpath.toStdString());
  95. gstrmode = xp.GetParam("useoutgrpc","false");
  96. gstrserverip = xp.GetParam("serverip","192.168.1.102");
  97. gstrserverport = xp.GetParam("serverport","30051");
  98. gstrqueryinterval = xp.GetParam("queryinterval","10");
  99. grpcclientthread xrpcthread;
  100. #ifdef Android
  101. ggt = &xrpcthread;
  102. #endif
  103. if(strncmp(gstrmode.data(),"false",255) == 0)
  104. {
  105. xrpcthread.setserverip(gstrserverip);
  106. xrpcthread.setserverport(gstrserverport);
  107. xrpcthread.setqueryinterval(gstrqueryinterval);
  108. xrpcthread.addquerymsgunit("hcp2_gpsimu",100000,1);
  109. xrpcthread.addquerymsgunit("tracemap",10000000,1);
  110. xrpcthread.addquerymsgunit("lidar_obs",20000000,1);
  111. xrpcthread.addquerymsgunit("brainstate",10000,1);
  112. xrpcthread.addquerymsgunit("deciton",10000,1);
  113. xrpcthread.addquerymsgunit("radar",100000,1);
  114. xrpcthread.addctrlmsgunit("pad",1000,1);
  115. xrpcthread.addctrlmsgunit("xodrreq",1000,1);
  116. #ifndef Android
  117. xrpcthread.startlisten();
  118. #endif
  119. xrpcthread.start();
  120. }
  121. #ifndef Android
  122. LoadPos("pos.txt");
  123. #else
  124. // LoadPos("/storage/emulated/0/pos.txt");
  125. LoadPos("/storage/emulated/0/pos.txt");
  126. #endif
  127. ADCIntelligentShow w;
  128. #ifdef Android
  129. w.showFullScreen();
  130. // w.showMaximized();
  131. #else
  132. w.show();
  133. #endif
  134. return a.exec();
  135. }