pqrtuhelper.h 890 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #ifndef PQ_RTUHELPER_H
  2. #define PQ_RTUHELPER_H
  3. #include <QByteArray>
  4. #include "QDebug"
  5. /***
  6. * 通讯处理的公共函数
  7. */
  8. namespace PQ {
  9. class RTUHelper
  10. {
  11. public:
  12. RTUHelper();
  13. virtual ~RTUHelper();
  14. enum RType
  15. {
  16. SubAddress,//从站地址
  17. GetType, //要数类型
  18. NumLength, //需要的长度
  19. ReadData, //需要读取数据
  20. CRCUL, //CRC 低位
  21. CRCUH // CRC 高位
  22. };
  23. inline void setCheckSubAddress(bool check){
  24. _checkSubAddress = check;
  25. }
  26. inline void addCheckSubAddress(char ch){
  27. _subAddress.append(ch);
  28. }
  29. void readed(const QByteArray & data);
  30. protected:
  31. virtual void doHandle(const QByteArray & data) = 0;
  32. private:
  33. QByteArray buffer;
  34. RType readType;
  35. int toReadlen;
  36. private:
  37. bool _checkSubAddress;
  38. QByteArray _subAddress;
  39. };
  40. }
  41. #endif // RTUHELPER_H