global.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #pragma once
  2. #include <string>
  3. using std::string;
  4. string getConfig(string key);
  5. int getConfig_INT(string key);
  6. void saveConfig(string key, string val);
  7. void saveConfig(string key, int val);
  8. void saveConfig(string key, double val);
  9. //WORD calccrc(BYTE crcbuf, WORD crc, WORD polynom);
  10. //WORD chkcrc_modbus(BYTE *buf, WORD len, WORD polynom);
  11. std::string getCurrentDate();
  12. std::string getCurrentTime();
  13. std::string getCurrentTime_Short();
  14. WORD calccrc(BYTE crcbuf, WORD crc);
  15. WORD chkcrc(BYTE *buf, WORD len);
  16. template <class T>
  17. void numberToBuffer(T number, int len, unsigned char * buf, bool isReversed = false)
  18. {
  19. if (isReversed)
  20. {
  21. for (int i = 0; i<len; i++)
  22. *((unsigned char *)(buf + len - i - 1)) = (unsigned char)(number / (T)pow(256.0, len - i - 1)) % 256L;
  23. }
  24. else
  25. {
  26. for (int i = 0; i<len; i++)
  27. *((unsigned char *)(buf + i)) = (unsigned char)(number / (T)pow(256.0, len - i - 1)) % 256L;
  28. }
  29. }
  30. template <class T>
  31. void bufferToNumber(const unsigned char * buf, int len, T & number, bool isReversed = false)
  32. {
  33. number = 0;
  34. if (isReversed)
  35. {
  36. for (int i = 0; i<len; i++)
  37. number += *((unsigned char *)(buf + i)) * (T)pow(256.0, i);
  38. }
  39. else
  40. {
  41. for (int i = 0; i<len; i++)
  42. number += *((unsigned char *)(buf + i)) * (T)pow(256.0, len - i - 1);
  43. }
  44. }