mcu_api.h 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. /**
  2. * @file mcu_api.h
  3. * @brief declaration of fuction in mcu_api.c
  4. * @author qinlang
  5. * @date 2022.05.06
  6. * @par email:qinlang.chen@tuya.com
  7. * @copyright HANGZHOU TUYA INFORMATION TECHNOLOGY CO.,LTD
  8. * @par company
  9. * http://www.tuya.com
  10. */
  11. #ifndef __MCU_API_H_
  12. #define __MCU_API_H_
  13. #ifdef __cplusplus
  14. extern "C"
  15. {
  16. #endif
  17. #ifdef MCU_API_GLOBAL
  18. #define MCU_API_EXTERN
  19. #else
  20. #define MCU_API_EXTERN extern
  21. #endif
  22. /**
  23. * @brief hex translate to bcd
  24. * @param[in] {Value_H} higher bits data
  25. * @param[in] {Value_L} lower bits data
  26. * @return bcd type data
  27. */
  28. unsigned char hex_to_bcd(unsigned char Value_H,unsigned char Value_L);
  29. /**
  30. * @brief get string len
  31. * @param[in] {str} higher bits data
  32. * @return string len
  33. */
  34. unsigned long my_strlen(unsigned char *str);
  35. /**
  36. * @brief assign ch to the first count bytes of the memory address src
  37. * @param[in] {src} srouce address
  38. * @param[in] {ch} set value
  39. * @param[in] {count} length of set address
  40. * @return void
  41. */
  42. void *my_memset(void *src,unsigned char ch,unsigned short count);
  43. /**
  44. * @brief copy count bytes data from src to dest
  45. * @param[in] {src} srouce address
  46. * @param[in] {dest} destination address
  47. * @param[in] {count} length of copy data
  48. * @return void
  49. */
  50. void *my_memcpy(void *dest, const void *src, unsigned short count);
  51. /**
  52. * @brief copy string src to string dest
  53. * @param[in] {src} srouce address
  54. * @param[in] {dest} destination address
  55. * @return the tail of destination
  56. */
  57. char *my_strcpy(char *dest, const char *src);
  58. /**
  59. * @brief compare string s1 with string s2
  60. * @param[in] {s1} srouce address
  61. * @param[in] {s2} destination address
  62. * @return compare result
  63. */
  64. int my_strcmp(char *s1 , char *s2);
  65. /**
  66. * @brief int translate to byte
  67. * @param[in] {number} int data
  68. * @param[out] {value} the result array
  69. * @return void
  70. */
  71. void int_to_byte(unsigned long number,unsigned char value[4]);
  72. /**
  73. * @brief byte data translate to int
  74. * @param[in] {value} the byte array
  75. * @return result of int data
  76. */
  77. unsigned long byte_to_int(const unsigned char value[4]);
  78. /**
  79. * @brief report bool type DP data to zigbee module
  80. * @param[in] {dpid} dp id
  81. * @param[in] {value} Data contents of dp
  82. * @return send result
  83. */
  84. unsigned char mcu_dp_bool_update(unsigned char dpid,unsigned char value);
  85. /**
  86. * @brief report enum type DP data to zigbee module
  87. * @param[in] {dpid} dp id
  88. * @param[in] {value} Data contents of dp
  89. * @return send result
  90. */
  91. unsigned char mcu_dp_enum_update(unsigned char dpid,unsigned char value);
  92. /**
  93. * @brief report bitmap type DP data to zigbee module
  94. * @param[in] {dpid} dp id
  95. * @param[in] {value} Data contents of dp
  96. * @return send result
  97. */
  98. unsigned char mcu_dp_bitmap_update(unsigned char dpid,unsigned long value);
  99. /**
  100. * @brief report fault type DP data to zigbee module
  101. * @param[in] {dpid} dp id
  102. * @param[in] {value} Data contents of dp
  103. * @return send result
  104. */
  105. unsigned char mcu_dp_fault_update(unsigned char dpid,unsigned long value);
  106. /**
  107. * @brief report raw type DP data to zigbee module
  108. * @param[in] {dpid} dp id
  109. * @param[in] {value} Data contents of dp
  110. * @param[in] {len} length of Data contents
  111. * @return send result
  112. */
  113. unsigned char mcu_dp_raw_update(unsigned char dpid,const unsigned char value[],unsigned short len);
  114. /**
  115. * @brief report string type DP data to zigbee module
  116. * @param[in] {dpid} dp id
  117. * @param[in] {value} Data contents of dp
  118. * @param[in] {len} length of Data contents
  119. * @return send result
  120. */
  121. unsigned char mcu_dp_string_update(unsigned char dpid,const unsigned char value[],unsigned short len);
  122. /**
  123. * @brief report raw type DP data to zigbee module
  124. * @param[in] {dpid} dp id
  125. * @param[in] {value} Data contents of dp
  126. * @return send result
  127. */
  128. unsigned char mcu_dp_value_update(unsigned char dpid,unsigned long value);
  129. /**
  130. * @brief mcu get bool type value from zigbee translate
  131. * @param[in] {value} data of dp
  132. * @param[in] {len} Data length
  133. * @return true or false
  134. */
  135. unsigned char mcu_get_dp_download_bool(const unsigned char value[],unsigned short len);
  136. /**
  137. * @brief mcu get enum type value from zigbee translate
  138. * @param[in] {value} data of dp
  139. * @param[in] {len} Data length
  140. * @return enum data
  141. */
  142. unsigned char mcu_get_dp_download_enum(const unsigned char value[],unsigned short len);
  143. /**
  144. * @brief mcu get value type value from zigbee translate
  145. * @param[in] {value} data of dp
  146. * @param[in] {len} Data length
  147. * @return value data
  148. */
  149. unsigned long mcu_get_dp_download_value(const unsigned char value[],unsigned short len);
  150. /**
  151. * @brief mcu reset zigbee module
  152. * @param[in] {void}
  153. * @return void
  154. */
  155. void mcu_reset_zigbee(void);
  156. /**
  157. * @brief mcu start zigbee module
  158. * @param[in] {void}
  159. * @return void
  160. */
  161. void mcu_network_start(void);
  162. /**
  163. * @brief mcu start zigbee module test
  164. * @param[in] {channel} test channel usually 11
  165. * @return void
  166. */
  167. void mcu_start_zigbee_test(unsigned char channel);
  168. /**
  169. * @brief copy receive data from uart receive interrupt
  170. * @param[in] {value} Data received from interrupt
  171. * @return void
  172. */
  173. void uart_receive_input(unsigned char value);
  174. /**
  175. * @brief init paramter and set rx_buf with zero
  176. * @param[in] {void}
  177. * @return void
  178. */
  179. void zigbee_protocol_init(void);
  180. /**
  181. * @brief check rx buffer is empty or not
  182. * @param Null
  183. * @return the queue state
  184. */
  185. unsigned char with_data_rxbuff(void);
  186. /**
  187. * @brief read byte from zigbee_queue_buf array
  188. * @param[in] {void}
  189. * @return read byte value
  190. */
  191. unsigned char Queue_Read_Byte(void);
  192. /**
  193. * @brief uart receive data handle, call this function at mian loop
  194. * @param[in] {void}
  195. * @return void
  196. */
  197. void zigbee_uart_service(void);
  198. #ifdef __cplusplus
  199. }
  200. #endif
  201. #endif