-
Notifications
You must be signed in to change notification settings - Fork 221
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
Feature/support multiple clients #271
Feature/support multiple clients #271
Conversation
Currently WIP (alpha) |
8651a89
to
436c92a
Compare
@MichalPrincNXP test_annotation can be compiled. I moved C related generated code into its own files. This way C++ code will be cleaner. Also more transparent for C develepors how the C++ code is wrapped. |
1a81ee4
to
6c67966
Compare
6c67966
to
06e1ce3
Compare
06e1ce3
to
0f2edf3
Compare
Hi! |
HI @mnathieu , it is still my top priority. I had solution twice, but twice it was not complete due to issues with callbacks and c++. I am expecting that i will finish integration to the end of this year. Question is if documentation update will be part of it, or i will add documentation update next year. I guess release depend on that. |
0f2edf3
to
ae016fa
Compare
HI @MichalPrincNXP, |
Hi @Hadatko we are looking forward for this feature , when do you plan to release it ? |
Hi @tmordeko , i think i will be able to release it here (to develop branch) before March 2023. It looks working well now, but code need be edited a bit (formatted/refactored). Maybe release it in small steps (i already created few smaller PRs). |
9c66dd8
to
f50951c
Compare
566c957
to
b114965
Compare
Hi @MichalPrincNXP could you take o look on this code? It should be ready more or less. If you would like it i would improve pytests and update documentation. Hi @amgross i am curious about tour opinion too. Do you think you could review it as well? One thing which i know is not good is generating common datatypes. I wanted to have two header files. One for c and one for c++. For c++ i wanted to hide them under namescope erpcShim. I had compilation issues which i think i would be able to solve (related const definition). But then i started to think if it is good idea and if i should rather use global namespace. |
Signed-off-by: Cervenka Dusan <[email protected]>
Signed-off-by: Cervenka Dusan <[email protected]>
@MichalPrincNXP i made changes based on your PR. Let me know if they met your requests. Also i enabled in clang config to keep empty lines between includes, which will simplify keeping includes on some specific position... |
This reverts commit d5acf06. Signed-off-by: Cervenka Dusan <[email protected]>
@MichalPrincNXP @PhilippHaefele for know i want finish this PR and we don't have much time so i reverted commit with enum classes support in shim code. And we can create new PR where we will solve that. |
Signed-off-by: Cervenka Dusan <[email protected]>
Thank you, let me check it again on hw |
Hi Dusan,
Could you please help to address these issues? |
Hi @MichalPrincNXP , thank you. I will take a look on these. I didn't expect issue as our tests are passing. Maybe we need updated tests... |
@MichalPrincNXP Did you use newly compiled erpcgen from this branch (you need do it by yourself or download from CI). DId you update erpc file (current one is no longer supported. You can see in tests/test_callback). |
Yes, the newly compiled erpcgen has been used and the erpc file updated. Could you please review attached updated erpc first? Hope I did it correctly. |
So i took a look into your erpc file. Callback was defined as global now moved into two interfaces. This mean that the callback will be created twice (one for each interface) and it will be used only within interface where it is declared. If you take look into test_callback.erpc changes, the callback is created only in one interface and in second interface it is referenced trough "Interface::". This is enabling to us define from which interface callback should be used. |
I see, I am trying to use Core1Interface:: / Core0Interface:: but still facing issues ... may I ask you if you could provide the updated erpc_two_way_rpc.erpc? |
@MichalPrincNXP I noticed that erpc file is using includes to non existing files. I woudl remove them. Anyway it looks like there is still an issue using callback type in return function. So i will investigate this part |
Signed-off-by: Cervenka Dusan <[email protected]>
hi @MichalPrincNXP , i am struggling a bit with compiling provided example (i will try to do it). In a mean time i think i fixed both observated errors. Could you try newer erpcgen based on latest commit? |
sure |
Hi Dusan, still one build issue in erpc_two_way_rpc_Core0Interface_server.cpp/erpc_two_way_rpc_Core1Interface_server.cpp shim code:
|
So there is bug i should repair quickly. It can be ignored if definition is changed to: |
@MichalPrincNXP Fix was easy (actually modifying previous commit). I could do it before but i thought that i can break something. If i would do it we wouldn't have this error :DDD So i took a look on changes with this fix and it really changed only one line in generated shim code so i believe if this was the only error, that it will work properly. |
Signed-off-by: Cervenka Dusan <[email protected]>
098a051
to
c7d80d6
Compare
@MichalPrincNXP SO it broke something as i was affraid, but now fix everywhere ;) Still modifying previous config only... |
Thanks, build is ok now. I have to adjust the erpc_two_way example logic a little and once it is working again I could integrate this PR. |
Finished, thank you Dusan for this new erpc feature. |
;) Thank you for testing and finding bugs |
Pull request
Choose Correct
Describe the pull request
Better support of C++ usecases -> mainly multiple clients usage.
To Reproduce
Expected behavior
test_passing :D
Screenshots
Desktop (please complete the following information):
Steps you didn't forgot to do
Additional context