ssFrameLib.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /* -*- mode: C++ -*-
  2. * All right reserved, Sure_star Coop.
  3. * @Technic Support: <sdk@isurestar.com>
  4. * $Id$
  5. */
  6. #include "ssFrameLib.h"
  7. int checkSum(unsigned char *_dataBuf, int count_)
  8. {
  9. int rtn = 0;
  10. for (int i = 0; i < count_; i++)
  11. {
  12. rtn += _dataBuf[i];
  13. }
  14. rtn = rtn & 0xFF;
  15. return rtn;
  16. }
  17. lidarAPi::DEB_FRAME_S packDEBV3Frame(lidarAPi::SCD_FRAME_TYPE_E flag, int regAddress, int regData)
  18. {
  19. lidarAPi::DEB_FRAME_S tmpFrame_;
  20. memset(&tmpFrame_, 0, sizeof(lidarAPi::DEB_FRAME_S));
  21. switch (flag)
  22. {
  23. case lidarAPi::eCmdWrite:
  24. tmpFrame_.msgHead = DEB_FRAME_WRITE;
  25. break;
  26. case lidarAPi::eCmdRead:
  27. tmpFrame_.msgHead = DEB_FRAME_READ;
  28. break;
  29. case lidarAPi::eCmdQuery:
  30. tmpFrame_.msgHead = DEB_FRAME_READ;
  31. break;
  32. default:
  33. tmpFrame_.msgHead = DEB_FRAME_WRITE;
  34. break;
  35. }
  36. unsigned short tmpSData = 0;
  37. tmpSData = regAddress;
  38. tmpFrame_.regAddress = tmpSData;
  39. tmpFrame_.regData = regData;
  40. unsigned char *tmpBase = (unsigned char *)&tmpFrame_;
  41. tmpFrame_.msgCheckSum = checkSum(tmpBase + 2, sizeof(lidarAPi::DEB_FRAME_S) - 2);
  42. return tmpFrame_;
  43. }