NodeLinkCommon.c 908 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include "NodeLinkCommon.h"
  2. #include "MathHelper.h"
  3. /**
  4. * 数据编码
  5. *
  6. * @author lxz (041820 14:21:27)
  7. *
  8. * @param slave
  9. * @param dst
  10. * @param src
  11. * @param len
  12. *
  13. * @return int
  14. */
  15. int nodelink_decode(unsigned char *dst, unsigned char *src, int len) {
  16. int i;
  17. if (len > 0) {
  18. i=len-1;
  19. if (mh_crc8_calc(src, len) == 0) {
  20. while(i--)
  21. {
  22. dst[i]=src[i];
  23. }
  24. return len - 1;
  25. }
  26. }
  27. return 0;
  28. }
  29. /**
  30. * 数据编码
  31. *
  32. * @author lxz (041820 14:22:05)
  33. *
  34. * @param id
  35. * @param dst
  36. * @param src
  37. * @param len
  38. *
  39. * @return int
  40. */
  41. int nodelink_encode(unsigned char *dst, unsigned char *src, int len) {
  42. int res = 0;
  43. unsigned char crc = 0;
  44. crc = mh_crc8_calc(src, len);
  45. res = len + 1;
  46. dst[len] = crc;
  47. while (len--) {
  48. dst[len] = src[len];
  49. }
  50. return res;
  51. }