赞
踩
ARXML(AUTOSAR XML)是AUTOSAR(AUTomotive Open System ARchitecture)标准中定义的一种XML格式的文件,用于描述汽车电子系统的软件和硬件架构。ARXML文件包含了汽车电子系统的各种信息,如ECU(Electronic Control Unit)的定义和配置,信号和参数定义,软件组件和接口定义等。
ARXML文件使用XML(eXtensible Markup Language)格式,可以被计算机系统和工具软件轻松解析和处理。它提供了一种统一且可扩展的方式来描述汽车电子系统,以便在不同的开发环境中共享和处理系统的信息。
ARXML文件的结构由AUTOSAR标准定义,包含了一系列的元素和属性,用于表示系统的各个方面。例如,ARXML文件可以包含ECU描述、设备描述、信号描述、参数描述、变量描述、软件组件描述等元素。这些元素之间可以定义层级关系,以便表示系统的组织结构。
通过使用ARXML,汽车电子系统的开发者可以在不同的开发环境中共享和处理系统的信息,例如系统架构设计、软件组件的定义和配置、通信接口的定义等。这样可以提高系统开发的效率和质量,并支持系统的模块化和可重用性。
总之,ARXML是一种用于描述汽车电子系统的XML格式文件,用于表示系统的软件和硬件架构,以及各种相关的信息。它是AUTOSAR标准的一部分,为汽车电子系统的开发和集成提供了统一的描述方式。
如下所示,ARXML文件中的连线有特定的格式:
- <ASSEMBLY-SW-CONNECTOR UUID="09e3fd1a-f316-4af7-9825-c62942eec3e5">
- <SHORT-NAME>Assembly169</SHORT-NAME>
- <PROVIDER-IREF>
- <CONTEXT-COMPONENT-REF DEST="SW-COMPONENT-PROTOTYPE">/Composition/AC/BO_VC_SystemCtrl</CONTEXT-COMPONENT-REF>
- <TARGET-P-PORT-REF DEST="P-PORT-PROTOTYPE">/SoftwareTypes/ComponentTypes/BO_VC_SystemCtrl/FF_CoolingFan_PWM_Adjust_AcTx</TARGET-P-PORT-REF>
- </PROVIDER-IREF>
- <REQUESTER-IREF>
- <CONTEXT-COMPONENT-REF DEST="SW-COMPONENT-PROTOTYPE">/Composition/AC/BO_VC_AcTx</CONTEXT-COMPONENT-REF>
- <TARGET-R-PORT-REF DEST="R-PORT-PROTOTYPE">/SoftwareTypes/ComponentTypes/BO_VC_AcTx/FF_CoolingFan_PWM_Adjust_AcTx</TARGET-R-PORT-REF>
- </REQUESTER-IREF>
- </ASSEMBLY-SW-CONNECTOR>
因此,可以通过对特定字符的检索,来达到检查有没有连线的目的。
本文使用的是m语言,写了个简易脚本:
- classdef ARXMLConnectCheck < matlab.apps.AppBase
-
- % Properties that correspond to app components
- properties (Access = public)
- UIFigure matlab.ui.Figure
- Hyperlink matlab.ui.control.Hyperlink
- Button_2 matlab.ui.control.Button
- ARXMLEditField matlab.ui.control.EditField
- ARXMLLabel matlab.ui.control.Label
- WriteTextArea matlab.ui.control.TextArea
- WriteLabel matlab.ui.control.Label
- Button matlab.ui.control.Button
- PortEditField matlab.ui.control.EditField
- PortEditFieldLabel matlab.ui.control.Label
- SWCEditField matlab.ui.control.EditField
- SWCEditFieldLabel matlab.ui.control.Label
- ArxmlLabel matlab.ui.control.Label
- end
-
-
- properties (Access = public)
- SWC_Name % Description
- NewPort_Name
- XML
- end
-
-
- % Callbacks that handle component events
- methods (Access = private)
-
- % Value changed function: SWCEditField
- function SWCEditFieldValueChanged(app, event)
- value = app.SWCEditField.Value;
- app.SWC_Name = char(value);
- end
-
- % Value changed function: PortEditField
- function PortEditFieldValueChanged(app, event)
- value = app.PortEditField.Value;
- app.NewPort_Name = char(value);
- end
-
- % Button pushed function: Button
- function ButtonPushed(app, event)
- app.WriteTextArea.Value = ArxmlConnectCheck1(app.SWC_Name, app.NewPort_Name, app.XML);
- app.WriteTextArea.Value = strcat(app.WriteTextArea.Value, " More imformantion for the trace");
- end
-
- % Value changed function: ARXMLEditField
- function ARXMLEditFieldValueChanged(app, event)
- value = app.ARXMLEditField.Value;
- app.XML = char(value);
- end
-
- % Value changed function: WriteTextArea
- function WriteTextAreaValueChanged(app, event)
-
-
- end
-
- % Button pushed function: Button_2
- function Button_2Pushed(app, event)
- app.ARXMLEditField.Value = uigetfile(".arxml","请选择输入的ARXML文件", "THS_VC_SystemCtrl.arxml","MultiSelect","on");
- app.XML = char(app.ARXMLEditField.Value);
- end
- end
-
- % Component initialization
- methods (Access = private)
-
- % Create UIFigure and components
- function createComponents(app)
-
- % Create UIFigure and hide until all components are created
- app.UIFigure = uifigure('Visible', 'off');
- app.UIFigure.Position = [100 100 640 480];
- app.UIFigure.Name = 'MATLAB App';
-
- % Create ArxmlLabel
- app.ArxmlLabel = uilabel(app.UIFigure);
- app.ArxmlLabel.BackgroundColor = [0.502 0.502 0.502];
- app.ArxmlLabel.HorizontalAlignment = 'center';
- app.ArxmlLabel.FontSize = 18;
- app.ArxmlLabel.FontWeight = 'bold';
- app.ArxmlLabel.FontAngle = 'italic';
- app.ArxmlLabel.Position = [1 444 640 37];
- app.ArxmlLabel.Text = 'Arxml校验脚本';
-
- % Create SWCEditFieldLabel
- app.SWCEditFieldLabel = uilabel(app.UIFigure);
- app.SWCEditFieldLabel.HorizontalAlignment = 'right';
- app.SWCEditFieldLabel.Position = [342 384 45 22];
- app.SWCEditFieldLabel.Text = 'SWC:';
-
- % Create SWCEditField
- app.SWCEditField = uieditfield(app.UIFigure, 'text');
- app.SWCEditField.ValueChangedFcn = createCallbackFcn(app, @SWCEditFieldValueChanged, true);
- app.SWCEditField.Position = [393 384 196 22];
-
- % Create PortEditFieldLabel
- app.PortEditFieldLabel = uilabel(app.UIFigure);
- app.PortEditFieldLabel.HorizontalAlignment = 'right';
- app.PortEditFieldLabel.Position = [28 384 75 22];
- app.PortEditFieldLabel.Text = 'Port口名称:';
-
- % Create PortEditField
- app.PortEditField = uieditfield(app.UIFigure, 'text');
- app.PortEditField.ValueChangedFcn = createCallbackFcn(app, @PortEditFieldValueChanged, true);
- app.PortEditField.Position = [121 385 186 21];
-
- % Create Button
- app.Button = uibutton(app.UIFigure, 'push');
- app.Button.ButtonPushedFcn = createCallbackFcn(app, @ButtonPushed, true);
- app.Button.Position = [271 244 100 23];
- app.Button.Text = '开始校验';
-
- % Create WriteLabel
- app.WriteLabel = uilabel(app.UIFigure);
- app.WriteLabel.HorizontalAlignment = 'right';
- app.WriteLabel.Position = [28 193 57 22];
- app.WriteLabel.Text = 'Write窗口';
-
- % Create WriteTextArea
- app.WriteTextArea = uitextarea(app.UIFigure);
- app.WriteTextArea.ValueChangedFcn = createCallbackFcn(app, @WriteTextAreaValueChanged, true);
- app.WriteTextArea.Position = [112 42 454 173];
-
- % Create ARXMLLabel
- app.ARXMLLabel = uilabel(app.UIFigure);
- app.ARXMLLabel.HorizontalAlignment = 'right';
- app.ARXMLLabel.Position = [28 314 83 22];
- app.ARXMLLabel.Text = 'ARXML文件:';
-
- % Create ARXMLEditField
- app.ARXMLEditField = uieditfield(app.UIFigure, 'text');
- app.ARXMLEditField.ValueChangedFcn = createCallbackFcn(app, @ARXMLEditFieldValueChanged, true);
- app.ARXMLEditField.Position = [121 312 186 24];
-
- % Create Button_2
- app.Button_2 = uibutton(app.UIFigure, 'push');
- app.Button_2.ButtonPushedFcn = createCallbackFcn(app, @Button_2Pushed, true);
- app.Button_2.Position = [416 313 100 23];
- app.Button_2.Text = '选择';
-
- % Create Hyperlink
- app.Hyperlink = uihyperlink(app.UIFigure);
- app.Hyperlink.URL = 'file:///C:/Users/34357/Desktop/Made.html';
- app.Hyperlink.Position = [36 42 59 22];
-
- % Show the figure after all components are created
- app.UIFigure.Visible = 'on';
- end
- end
-
- % App creation and deletion
- methods (Access = public)
-
- % Construct app
- function app = ARXMLConnectCheck
-
- % Create UIFigure and components
- createComponents(app)
-
- % Register the app with App Designer
- registerApp(app, app.UIFigure)
-
- if nargout == 0
- clear app
- end
- end
-
- % Code that executes before app deletion
- function delete(app)
-
- % Delete UIFigure when app is deleted
- delete(app.UIFigure)
- end
- end
- end
输出结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。