forked from xuos/xiuos
				
			feat add control device struct in control framework
This commit is contained in:
		
							parent
							
								
									0c45a736d3
								
							
						
					
					
						commit
						2b3f3de22e
					
				|  | @ -126,6 +126,7 @@ static int ControlAnalyzeRecipe(ControlProtocolType control_protocol, const char | |||
|         return -1; | ||||
|     } | ||||
| 
 | ||||
|     strncpy(control_protocol->device->dev_name, control_protocol->recipe->device_name, 20); | ||||
|     control_protocol->protocol_type = control_protocol->recipe->protocol_type; | ||||
| 
 | ||||
|     /*Get the variable need to read from recipe file*/ | ||||
|  | @ -254,6 +255,15 @@ int ControlFrameworkInit(void) | |||
|         ret = -1; | ||||
|         goto _out; | ||||
|     } | ||||
| 
 | ||||
|     control_protocol->device = (struct ControlDevice *)PrivMalloc(sizeof(struct ControlDevice)); | ||||
|     if (NULL == control_protocol->device) { | ||||
|         printf("%s malloc control device failed!\n", __func__); | ||||
|         PrivFree(control_protocol->device); | ||||
|         PrivFree(control_protocol); | ||||
|         ret = -1; | ||||
|         goto _out; | ||||
|     } | ||||
|      | ||||
|     //Control Protocol Struct Init
 | ||||
|     ret = ControlProtocolInit(control_protocol); | ||||
|  | @ -274,6 +284,7 @@ int ControlFrameworkInit(void) | |||
|     } | ||||
| 
 | ||||
|     control_protocol->protocol_status = CONTROL_REGISTERED; | ||||
|     control_protocol->device->status = CONTROL_REGISTERED; | ||||
| 
 | ||||
|     ret = ControlPeripheralInit(control_protocol->recipe); | ||||
|     if (ret < 0) { | ||||
|  | @ -287,3 +298,57 @@ int ControlFrameworkInit(void) | |||
| _out: | ||||
|     return ret; | ||||
| } | ||||
| 
 | ||||
| static char *const protocol_type_str[] = | ||||
| { | ||||
|     "TYPE_START", | ||||
|     "S7", | ||||
|     "MODBUS_TCP", | ||||
|     "MODBUS_UART", | ||||
|     "OPC_UA", | ||||
|     "FINS", | ||||
|     "MELSEC_1E", | ||||
|     "MELSEC_3E_Q_L", | ||||
|     "MELSEC_3E_IQ_R", | ||||
|     "MELSEC_1C", | ||||
|     "MELSEC_3C", | ||||
|     "TYPE_END" | ||||
| }; | ||||
| 
 | ||||
| /**
 | ||||
|  * @description: Control Framework Shell Cmd Information | ||||
|  * @param void | ||||
|  * @return success : 0 error : -1 | ||||
|  */ | ||||
| void ShowControl(void) | ||||
| { | ||||
|     int i = 0;  | ||||
|     int maxlen; | ||||
|     const char *item_type = "control_protocol_type"; | ||||
|     const char *item_name_0 = "control_protocol_name"; | ||||
|     const char *item_name_1 = "control_device_name"; | ||||
|     const char *item_status = "status"; | ||||
| 
 | ||||
|     ControlProtocolType control_protocol = ControlProtocolFind(); | ||||
| 
 | ||||
|     printf(" %-28s%-28s%-26s%-20s\n", item_type, item_name_0, item_name_1, item_status);  | ||||
|     maxlen = 90; | ||||
|     while (i < maxlen) { | ||||
|         i++; | ||||
|         if (maxlen == i) { | ||||
|             printf("-\n"); | ||||
|         } else { | ||||
|             printf("-"); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     if (control_protocol) { | ||||
|         printf("%s", " "); | ||||
|         KPrintf("%-28s%-28s%-26s%-8d\n",  | ||||
|             protocol_type_str[1],  | ||||
|             protocol_type_str[1], | ||||
|             control_protocol->device->dev_name, | ||||
|             control_protocol->device->status); | ||||
|     } | ||||
| } | ||||
| PRIV_SHELL_CMD_FUNCTION(ShowControl, show control framework information, PRIV_SHELL_CMD_FUNC_ATTR); | ||||
|  |  | |||
|  | @ -62,6 +62,15 @@ typedef enum | |||
|     CONTROL_UNREGISTERED, | ||||
| }ProtocolStatus; | ||||
| 
 | ||||
| struct ControlDevice | ||||
| { | ||||
|     char *dev_name; | ||||
|     int status; | ||||
| 
 | ||||
|     //to do
 | ||||
|     void *dev_done; | ||||
| }; | ||||
| 
 | ||||
| struct ControlProtocol | ||||
| { | ||||
|     char *name; | ||||
|  | @ -70,6 +79,7 @@ struct ControlProtocol | |||
| 
 | ||||
|     struct ControlRecipe *recipe; | ||||
|     struct ControlDone *done; | ||||
|     struct ControlDevice *device; | ||||
|      | ||||
|     void *args; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue