Skip to content

Conversation

@LUGGGI
Copy link

@LUGGGI LUGGGI commented Oct 26, 2025

Hi,

I used this package for my master’s thesis and updated many parts of it.
I tried not to change too much in terms of usage to allow existing systems to be updated easily.
In some cases, there were bugs or inconsistencies with the current MTP specifications, in those cases, I modified the code to comply with the latest specification.

The following is a list of the updates I made, in alphabetical order by the files changed.
It does not include refactoring or the addition of comments and type hints.

  1. Added new examples to demonstrate both new and existing functionalities

  2. Updated existing examples to work with the latest changes

  3. Added a new architecture class diagram

  4. ActiveElements:

    • Moved lock functionality to a separate class
    • Reset protection only with the reset command
    • Improved logging
    • Set safe position only if enabled
    • Added OperationMode for BinVlv
    • Use .set_value(False) instead of .value = False
  5. Attribute: Added methods for adding/removing sub-callbacks

  6. CommandEnControl: Hold and pause disabled by default

  7. Disabled restart when no valid procedure is set

  8. OPCUAServerPEA:

    • Added functionality to add indicators, operations, and custom elements
    • Added functions to create custom folders and leaves
    • Refactored _build_opcua_server, _create_opcua_objects_for_folders, and _create_opcua_objects_for_leaves
  9. Moved ParameterElements to the correct file and added the OperationElements implementation

  10. operation_source_mode:

    • Added functionality to link one OperationSourceMode to another
    • Created OperationMode and SourceMode classes for the elements
  11. ProcedureControl: Improved resetting of procedure commands

  12. Service:

    • Stop state threads when going offline
    • Update CommandEn when changing operation mode
    • Added functions to enable pause, hold, and restart
    • is_state now works for edge cases
    • Added function to get state_stop_event
    • Implemented default functionality (logging state entry) for all state functions except starting, execute, and completing
  13. Fixed incorrect state code

  14. StateMachine: Reset the command operation code and updated functions to refresh CommandEn and disable_commands_if_no_procedure

  15. suc_data_assembly: Added abstract methods and SUCParameterElement

  16. thread_control:

    • Added StoppableThread class that can be stopped by setting an event
    • Added exception_callback
    • Request stopping of the old state thread when a new one starts
    • Call the state change function when a state function finishes

Lukas Beck added 30 commits July 20, 2025 17:56
Lukas Beck added 30 commits August 27, 2025 16:50
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.

1 participant