Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Native python implementation #546

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from
Draft

Native python implementation #546

wants to merge 3 commits into from

Conversation

gijzelaerr
Copy link
Owner

implements #545

@gijzelaerr gijzelaerr marked this pull request as draft November 13, 2024 18:42
@lupaulus
Copy link
Contributor

I will try to work on ISO-on-TCP Stack

@gijzelaerr
Copy link
Owner Author

this idea is a bit in flux. I've been trying to do a full auto translation with google gemini and github co-pilot with mixed results. I have another branch somewhere that has better results, but i didn't find the time to polish it.

How do you propose to work on the iso-on-tcp stack?

@lupaulus
Copy link
Contributor

I propose to convert Davide's work on the basis of ISO TCP. I also have another ISO TCP integration at my disposal, which is optimised for faster communications (20ms). I used co-pilot too, but it needs cleaning and adaptation with python standards and performance (multiprocess - threadings - socket).

@gijzelaerr
Copy link
Owner Author

thats basically what is happening in the branch, the basics should be there. What would be different? why is this alternative implementation faster?

@lupaulus
Copy link
Contributor

I am not sure if it faster than David exchange, but they seem to be a different usage of hardware capabilities (Processor, thread, realtime kernel)

Here my branch, I will continue

I heard that Siemens will release a new CPU for the end of the year. From what I've heard, this will remain an S7.
I'm seeking for documentation about the S7+ protocol, not sure if I can implement it.

@gijzelaerr
Copy link
Owner Author

so my original plan was:

  • reimplement c++ implementation in python, as we/you now mostly did in this branch. Aim is to make it a drop in replacement with the same/similar API, which can be a bit clunky initially.
  • do a bit of testing see if it works with the emulator
  • integrate it with the existing code, remove the DLL and reroute all calls that went to the DLL to the new native implementation
  • Make sure test suite runs
  • cleanup phase, see if we can simplify some calls
  • code style and type checks passes everywhere
  • done!

what do you think?

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.

2 participants