Skip to content

Latest commit

 

History

History
130 lines (98 loc) · 3.84 KB

README.md

File metadata and controls

130 lines (98 loc) · 3.84 KB

EcuBus-Pro

A powerful automotive ECU development tool
Easy of use, Cross platform, Multi dongle, Powerful script ability, CLI support
Document: https://app.whyengineer.com

Introduction

CAN-OE is the best tool, but it's expensive. We still need another tool to develop our ECU code. EcuBus-Pro is a powerful automotive ECU development tool, it contains the following features:

  • open source and free
  • easy of use
  • cross platform
  • add multi USB dongle (PEAK, Kvaser, ZLG, etc)
  • powerful script ability, based on typescript
  • CLI ability support

Detailed features

See the User Manual for more detailed features: User Manual

  • CAN/CAN-FD
    • PEAK
    • Kvaser
    • ZLG
    • Simulation
  • DOIP
    • PC Adapter
  • UDS
    • Over CAN/CAN-FD
    • Over DoIP
  • Script
    • UDS
    • CAN
    • KeyBoard
    • SerialPort

GUI Snapshot

base1

base1

Script Ability

Script Engine is based on nodejs, you can use almost all nodejs functions in your script, Also, we provide a lot of APIs to interact with EcuBus-Pro, such as: cli

CLI Ability

run uds sequence by cli cli

Thanks

This project exists thanks to all the people who have contributed:

Your contributions are always welcome! Please have a look at the contribution guidelines first.

Your logo will show up here with a link to your github profile.

Support this project

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. 🙏

Technical support

You can also consider sponsoring us to get extra technical support services. If you do, you can get access to the ecubus/technical-support repository, which has the following benefits:

  • Handling Issues with higher priority
  • One-to-one technical consulting service
  • Help to write addon code to access 0x27,0x29 dll functions

License

Apache-2.0


<script setup> import 'viewerjs/dist/viewer.css'; import Viewer from 'viewerjs'; import { onMounted,onUnmounted} from 'vue'; onMounted(() => { const images = document.querySelectorAll('img[alt="base1"]'); const viewerContainer = document.createElement('div'); //setup attribute id for viewerContainer viewerContainer.setAttribute('id', 'viewerContainer'); viewerContainer.style.display = 'none'; document.body.appendChild(viewerContainer); //css pointer images.forEach(img => img.style.cursor = 'pointer'); images.forEach(img => viewerContainer.appendChild(img.cloneNode(true))); const viewer = new Viewer(viewerContainer, { inline: false, zoomRatio: 0.1, }); images.forEach((img, index) => { img.addEventListener('click', () => { viewer.view(index); }); }); }); onUnmounted(() => { const viewerContainer = document.getElementById('viewerContainer'); if (viewerContainer) { viewerContainer.remove(); } }); </script>