procsm.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. #ifndef PROCSM_H
  2. #define PROCSM_H
  3. #include <QThread>
  4. #include <QSharedMemory>
  5. #include <QDateTime>
  6. #include <QList>
  7. #include <QVariant>
  8. #ifdef USEDBUS
  9. #include <QtDBus/QDBusMessage>
  10. #include <QtDBus/QDBusConnection>
  11. #endif
  12. #include "ivmodulemsg_type.h"
  13. class procsm_info
  14. {
  15. public:
  16. unsigned int mFirst;
  17. unsigned int mNext;
  18. unsigned int mCap;
  19. unsigned int mLock;
  20. unsigned int mnBufSize;
  21. };
  22. class procsm_head
  23. {
  24. public:
  25. unsigned short mYear;
  26. unsigned char mMonth;
  27. unsigned char mDay;
  28. unsigned char mHour;
  29. unsigned char mMinute;
  30. unsigned char mSec;
  31. unsigned short mMSec;
  32. unsigned int mindex;
  33. unsigned int mnPos;
  34. unsigned int mnLen;
  35. public:
  36. void SetDate(QDateTime dt)
  37. {
  38. mYear = dt.date().year();
  39. mMonth = dt.date().month();
  40. mDay = dt.date().day();
  41. mHour = dt.time().hour();
  42. mMinute = dt.time().minute();
  43. mSec = dt.time().second();
  44. mMSec = dt.time().msec();
  45. }
  46. void GetDate(QDateTime * pdt)
  47. {
  48. QDate dt;
  49. dt.setDate(mYear,mMonth,mDay);
  50. QTime time;
  51. time.setHMS(mHour,mMinute,mSec,mMSec);
  52. pdt->setDate(dt);
  53. pdt->setTime(time);
  54. }
  55. };
  56. class procsm : public QObject
  57. {
  58. #ifdef USEDBUS
  59. Q_OBJECT
  60. #endif
  61. public:
  62. procsm(const char * strsmname,const unsigned int nBufSize,const unsigned int nMaxPacCount,const int nMode);
  63. int writemsg(const char * str,const unsigned int nSize);
  64. unsigned int getcurrentnext();
  65. int readmsg(unsigned int index,char * str,unsigned int nMaxSize,unsigned int * nRead,QDateTime * pdt);
  66. bool AttachMem();
  67. private:
  68. int MoveMem(const unsigned int nSize);
  69. QSharedMemory * mpASM;
  70. unsigned int mnBufSize;
  71. unsigned int mnMaxPacCount;
  72. procsm_info * mpinfo;
  73. procsm_head * mphead;
  74. bool mbAttach;
  75. char * mstrtem;
  76. public:
  77. const static int ModeRead = 1;
  78. const static int ModeWrite = 0;
  79. iv::modulemsg_type mmodulemsg_type;
  80. #ifdef USEDBUS
  81. private slots:
  82. void onQuery();
  83. #endif
  84. private:
  85. #ifdef USEDBUS
  86. QDBusMessage mmsg;
  87. QDBusMessage mmsgres; //Response Message Query;
  88. #endif
  89. };
  90. #endif // PROCSM_H