tax_ctrl.c 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. #include "includes.h"
  2. #include "device.h"
  3. #include "tax_ctrl.h"
  4. #include "net_proc.h"
  5. #include "uart.h"
  6. #include "des.h"
  7. #include "BSP.h"
  8. #include "net_ctrl.h"
  9. int rs485_send_flag = 0;
  10. #define CRC_INIT_VALUE 0x0000
  11. uint8_t XSP_ADDRESS = 0x81;
  12. /**
  13. * @brief hex convert ascii
  14. * @par param[in] *ascii:ascii data
  15. * @par param[in] *hex:hex data
  16. * @par param[in] hexLen:length of hex
  17. * @retval length
  18. */
  19. uint32_t Hex2Dec(uint8_t *hex, uint16_t hexLen)
  20. {
  21. uint32_t data = 0;
  22. uint8_t i;
  23. for(i=0;i<hexLen;i++) {
  24. data = data * 100;
  25. data += (hex[i]>>4)*10 + (hex[i]&0x0F);
  26. }
  27. return data;
  28. }
  29. uint16_t _crc16_get(uint8_t *_buff,uint32_t _len)
  30. {
  31. uint32_t i,j;
  32. uint16_t crc;
  33. uint16_t temp;
  34. crc=(uint16_t)CRC_INIT_VALUE;
  35. for(i=0;i<_len;i++) {
  36. temp=_buff[i];
  37. temp &=0x00FF;
  38. crc^=temp;
  39. for(j=0;j<8;j++) {
  40. if((crc&0x0001)!=0x00) {
  41. crc>>=1;
  42. crc^=0xA001;
  43. } else {
  44. crc>>=1;
  45. }
  46. }
  47. }
  48. return crc;
  49. }
  50. static uint16_t _crc_get(uint8_t *data, uint8_t size)
  51. {
  52. uint8_t i, crc = 0;
  53. for(i = 0;i < size;i++){
  54. crc ^=data[i];
  55. }
  56. return crc;
  57. }
  58. /////////////////////////////////////////////////////////////////////////////
  59. //显示屏通信过程
  60. /////////////////////////////////////////////////////////////////////////////
  61. //取反函数
  62. int reverse_get(uint8_t* buffer, uint8_t* result,uint8_t data_len)
  63. {
  64. int ret = 0;
  65. int i;
  66. for(i = 0; i < data_len; i++)
  67. {
  68. *(result+i) = ~(*(buffer+i));
  69. }
  70. return ret;
  71. }
  72. //比较两个字符串
  73. static int _my_strcmp(uint8_t *buff1, uint8_t *buff2, uint8_t len)
  74. {
  75. int i, ret = 1;
  76. for(i = 0; i < len; i++)
  77. {
  78. if(buff1[i] != buff2[i])
  79. {
  80. return ret;
  81. }
  82. }
  83. ret = 0;
  84. return ret;
  85. }