Skip to main content

ETStudio

Pre-dependence

  1. Visual Studio 2022
  2. DevExpress 23.2.5: DevExpressComponentsBundleSetup-23.2.5.exe.zip.
    • You can use the Trial version for development first .
  3. ETStudio computer software: the latest version of EtStudioInstall.exe, then install.

Project configuration

Download the Demo library

  1. Project: etstudio-demo.zip

Debug the Demo library

  1. Open with Visual Studio 2022 ETStudio.Demo.sln project, after the project is opened, it should have the following structure:
    • alt text
  2. exist Debugger right-click on the project and turn it Debugger set as startup item
    • alt text
  3. Right-click Debugger project, Select property>Configuration Properties>debug>Order set as C:\Program Files\XYuAuto\ETStudio\ETStudio.exe,Work Directory set as C:\Program Files\XYuAuto\ETStudio\,Debug type set as Hybrid (.NET Core). As shown in the picture:
    • alt text
  4. Right click in sequence Debugger>generate or Regenerate, build Demo project.
    • alt text
  5. Configure the demo library to load the host machine
    • Open with a text editor ./plugins.json for details, see [Introduction to plugins.json structure]
  6. copy ./plugins.json arrive C:\Program Files\XYuAuto\ETStudio\ directory, let the upper computer load when running Demo module.
    • alt text
  7. Configure the project as x64 and click Run to debug.
    • alt text

Development requirements

  1. UI is based on C#Developed by WPF.
  2. Please use UI control DevExpress, unless DevExpress none in.
  3. Please use English in all text in the demo interface.
  4. Code Specification.

Development Guide

Interface

  1. The interface should be in Views definition in the directory

Data

  1. The data structure used should be defined Models in the directory

Put interface interaction logic in the ViewModels directory

Protocol logic

  1. Protocols and other logic should be put into Services in the directory.

Project Document Management

When creating a computer project, the user will select an empty directory as the project directory and ETStudio.ets the project files are stored in this directory, and all files related to the project (such as: A2L files, ECU decrypted dll files, etc.) should be placed in this directory.

Introduction to plugins json structure

Data structure diagram

Data structure reference

plugins.json structure diagram

plugins.json structure reference

There are two display types plugin cases in the above file:

  1. Integrated above the main interface (XCP) and displayed in large icons.
  2. Integrate into Tools → Plugins (PluginDemo).

Table 1 Plugin parameter analysis

ParametersAnalysis
typeCan be "mainwindow" or any other arbitrary string or omitted:
1. If and only if "mainwindow" when displayed in the form of a large icon above the interface.Big icon
2. Other situations will be displayed in Tools → Plugins.Plugins
nameIcon names such as XCP and PluginDemo.name
pathdll Specific path.
classNameCall class name.
iconOnly Base64 data in PNG format is supported. Prefixes need to be deleted "data:image/png;base64,",reserve "iVBORw0KGgoAAA...". Use the default icon when empty.
ItemsList of feature buttons that need integration.

Table 2 items parameter analysis

ParametersAnalysis
typeCan be "CallFunction" or any other arbitrary string or omitted:
1. When "CallFunction" when called, the name method of className in Table 1 is called.
2. In other cases, interfaces will be created based on subsequent configurations.
locWhen type does not "CallFunction" enabled to create an interface with name.
name1. When type is "CallFunction" when called, the name method of className in Table 1 is called.
2. When the type is other cases, the interface will be created based on the subsequent configuration.
titleShows the button name.
HintMouse suspension displays information.Hint
iconOnly Base64 data in PNG format is supported. Prefixes need to be deleted "data:image/png;base64,",reserve "iVBORw0KGgoAAA...". Use the default icon when empty.

Introduction to Profile file structure

Profile file structure

The red frame can be regarded as a fixed writing method.IModule the interface comes from Prism.Modularity.

  • Calling methods through CallFunction: Change the method modifier to public static, similar to the example CallFunction1 and CallFunction2.
  • Display the interface and hand it over to the upper computer for management: refer to OnInitialized code to register the main view:
containerProvider.Resolve<IMenuMgmt>().RegMenuBtnView("DemoLoc","DemoName","DemoComment", typeof(DemoView), null, null);
  • If you need to subscribe to an event, you can refer to the event registration code in OnInitialized PreviewSaveProjectConfigurationEvent: Project file saving event ProjectConfigNewLoadStatusChanged: Project file switching event SoftwareCloseEvent: Uploader shutdown event

  • For specific details, please refer to the Demo project

  • alt text