| 
									
										
										
										
											2023-06-10 11:52:00 +08:00
										 |  |  | #ifndef commend_h__
 | 
					
						
							|  |  |  | #define commend_h__
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "list.h"
 | 
					
						
							|  |  |  | #include "bytearray.h"
 | 
					
						
							|  |  |  | #include "signal.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // 执行命令函数不能调用延时函数
 | 
					
						
							|  |  |  | typedef int (*cmd_fun_def)(list_def *argv /* str */); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct{ | 
					
						
							|  |  |  |   const char *name; | 
					
						
							|  |  |  |   const char *help; | 
					
						
							|  |  |  |   cmd_fun_def fun; | 
					
						
							|  |  |  | }commend_def; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define commend_export(name_,fun_,help_) \
 | 
					
						
							|  |  |  |   const static char __cmd_##name_##_name[] SECTION(".rodata.cmdstr") = #name_; \ | 
					
						
							|  |  |  |   const static char __cmd_##name_##_help[] SECTION(".rodata.cmdstr") = help_; \ | 
					
						
							|  |  |  |   RT_USED static commend_def _cmd_##name_ SECTION("cmdstruct")= \ | 
					
						
							|  |  |  |   {\ | 
					
						
							|  |  |  |     .name=__cmd_##name_##_name,\ | 
					
						
							|  |  |  |     .help=__cmd_##name_##_help,\ | 
					
						
							|  |  |  |     .fun=fun_,\ | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | int cmd_print(const char *fmt,...); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  | signal cmd_reply_signal(void *obj,uint8_t cmd,array_def *data); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-14 18:05:04 +08:00
										 |  |  | void cmd_recv_slot(void *obj,const char *codec_name,uint8_t cmd,array_def *data,char *err_str);   | 
					
						
							| 
									
										
										
										
											2023-06-10 11:52:00 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 |