Skip to content

Conversation

@trns1997
Copy link
Collaborator

@trns1997 trns1997 commented Dec 13, 2025

Closes #267
Closes #266
Closes #264

Screencast.from.2025-12-13.22-12-59.webm

This is a very crude POC to see if a gui application is doable. If we want to take this idea further, we will need to rethink the archi (there is none), create clear components based on what we want.

Usage:

pip install PySide6
pip install . # for the latest binding capabilities
python -m tools.ethercat_gui -i enp8s0

@github-actions
Copy link

github-actions bot commented Dec 13, 2025

File Coverage Lines Branches
All files 84% 86% 83%
lib/include/kickcat/Error.h 87% 91% 83%
lib/include/kickcat/SBufQueue.h 80% 98% 63%
lib/master/include/kickcat/Bus.h 71% 100% 42%
lib/master/src/Bus.cc 82% 85% 80%
lib/master/src/CoE.cc 79% 87% 72%
lib/master/src/Link.cc 98% 100% 97%
lib/master/src/Prints.cc 95% 95% 95%
lib/slave/src/AbstractESC.cc 90% 100% 81%
lib/slave/src/AbstractEmulatedEEPROM.cc 0% 0% 0%
lib/slave/src/ESMStates.cc 94% 99% 88%
lib/slave/src/ESM.cc 92% 93% 90%
lib/slave/src/PDO.cc 86% 92% 80%
lib/slave/src/EEPROM/EEPROM_factory.cc 0% 0% 100%
lib/slave/src/ESC/EmulatedESC.cc 53% 60% 46%
lib/slave/src/slave/Slave.cc 0% 0% 0%
lib/src/Frame.cc 87% 92% 82%
lib/src/Mailbox.cc 64% 71% 56%
lib/src/SIIParser.cc 93% 95% 91%
lib/src/protocol.cc 95% 94% 97%
lib/src/CoE/EsiParser.cc 90% 93% 87%
lib/src/CoE/OD.cc 99% 99% 100%
lib/src/CoE/mailbox/request.cc 78% 83% 74%
lib/src/CoE/mailbox/response.cc 93% 97% 88%
lib/src/EoE/protocol.cc 0% 0% 0%

Minimum allowed coverage is 75%

Generated by 🐒 cobertura-action against 1c43627

@leducp
Copy link
Owner

leducp commented Dec 14, 2025

I like the general idea, especially to ease PDO mapping. I would proably use it if I can setup the PDO mapping manullay through the GUI.
The flow I have in mind is like this:

  1. add/rm a few SDO to the mapping (with a button 'add' and a field id/subid)
  2. apply the mapping and check if it was written successfully
  3. try the mapping (because writing OK doesn't mean that the mapping is coherent/valide); if failure, go back to 1.
  4. go to SAFE-OP; if failure, go back to 1
  5. read/write PDO

Another thing that could be nice is to have a standard GUI for DS402 slaves. So you can select the slave (no need to detect the profile for a starter), go to OP (the app apply a standard PDO configuration - we probably need something configurable with a file to handle various hardware) then enable/disable the motor, apply a torque, go to pos, etc

@trns1997 trns1997 marked this pull request as draft December 15, 2025 06:52
@trns1997
Copy link
Collaborator Author

I like the general idea, especially to ease PDO mapping. I would proably use it if I can setup the PDO mapping manullay through the GUI. The flow I have in mind is like this:

1. add/rm a few SDO to the mapping (with a button 'add' and a field id/subid)

2. apply the mapping and check if it was written successfully

3. try the mapping (because writing OK doesn't mean that the mapping is coherent/valide);  if failure, go back to 1.

4. go to SAFE-OP;  if failure, go back to 1

5. read/write PDO

Another thing that could be nice is to have a standard GUI for DS402 slaves. So you can select the slave (no need to detect the profile for a starter), go to OP (the app apply a standard PDO configuration - we probably need something configurable with a file to handle various hardware) then enable/disable the motor, apply a torque, go to pos, etc

I rearchitectured and split up the code to make it cleaner to build upon. So i suggest we validate this GUI tool as it is first. And then i will make a bunch on issues based on your requested features, to build them piece by piece. What do you think?

@trns1997 trns1997 force-pushed the ethercat-gui branch 2 times, most recently from b48ac42 to 1ac37e3 Compare January 18, 2026 10:35
@trns1997 trns1997 marked this pull request as ready for review January 18, 2026 10:59
@trns1997 trns1997 requested a review from leducp January 18, 2026 10:59
@leducp
Copy link
Owner

leducp commented Jan 19, 2026

I like the general idea, especially to ease PDO mapping. I would proably use it if I can setup the PDO mapping manullay through the GUI. The flow I have in mind is like this:

1. add/rm a few SDO to the mapping (with a button 'add' and a field id/subid)

2. apply the mapping and check if it was written successfully

3. try the mapping (because writing OK doesn't mean that the mapping is coherent/valide);  if failure, go back to 1.

4. go to SAFE-OP;  if failure, go back to 1

5. read/write PDO

Another thing that could be nice is to have a standard GUI for DS402 slaves. So you can select the slave (no need to detect the profile for a starter), go to OP (the app apply a standard PDO configuration - we probably need something configurable with a file to handle various hardware) then enable/disable the motor, apply a torque, go to pos, etc

I rearchitectured and split up the code to make it cleaner to build upon. So i suggest we validate this GUI tool as it is first. And then i will make a bunch on issues based on your requested features, to build them piece by piece. What do you think?

OK, let's do that

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[GUI Tool] Read and Display Slave dataframe contents [GUI Tool] Get Bus and Slave infos [GUI Tool] PDO Interaction Panel (Read)

2 participants