Skip to content

Getting prepared for the new version of Cadmium#27

Open
romancardenas wants to merge 80 commits intomainfrom
dev-rt
Open

Getting prepared for the new version of Cadmium#27
romancardenas wants to merge 80 commits intomainfrom
dev-rt

Conversation

@romancardenas
Copy link
Member

No description provided.

jonmenard and others added 30 commits August 10, 2022 10:07
In this first step I integrated the Linux rt-clock hpp, which allows the model to be run with events being displayed in real time. Asynchronous events are not supported yet
In this second step I created a model to run in RT. I created an atomic digital pin which continuously listens for input from the enter key. This model interacts with other simulated models
std::mutex is not available to microcontrollers, and logs should not be made when running on microcontrollers. added and ifdef RT to remove logger during compiling
In this step I changed the rt clock to allow for interrupts when an asynchronous model has an event. This will cause it to be checked and an message placed in its external port
Adding atomic models for digital and analogue input/outputs, pwmOutputs, and most importantly interrupt (asynchronous) inputs.
…erial port). Added real time clock for mbed.
…elapsed time in case an external interrupt occurrs. Added minor changes to the code in this method to make it look more clear.
Jeg27 and others added 9 commits September 26, 2023 19:12
this will no longer be needed.  Have to add another folder to allow CCS to work, which breaks the Windows script
Windows script does not work - issues w/ permissions.  Fixing in next commit
Removing duplicate folder.  Instructions for including the cadmium folder will be updated to compensate for this.
@romancardenas
Copy link
Member Author

@cruizm @Sasisekhar it's been a while since this PR is stale. Can we meet within the next weeks to remember the current state and do the work is required to push this PR to master?

@Sasisekhar
Copy link

Agreed! Lets do that.

@Sasisekhar
Copy link

Once the MIT license has been applied to dev-rt I wil get back on pushing dev-rt to main.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

binary files should no be included

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

binary files should no be included

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

binary files should no be included

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

binary files should no be included

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ZIP files should not be included. Also, I personally prefer to split the core Cadmium from embedded implementations. Otherwise, this repo will be bigger and bigger and you would need significant disk space even if you just one to use computer simulation.

@romancardenas
Copy link
Member Author

@Sasisekhar review complete! I personally think that it is better to remove all the embedded examples from this repo and use submodules. In this way, people can download only the parts they are going to use, making the tools way more friendly.

@Sasisekhar
Copy link

@Sasisekhar review complete! I personally think that it is better to remove all the embedded examples from this repo and use submodules. In this way, people can download only the parts they are going to use, making the tools way more friendly.

Thanks for the review @romancardenas ! yes that makes sense.
The main reason everything is currently bundled together is to make it easier for students to access all the examples without having to chase documentation. Now that the documentation is complete:
installation: https://devssim.carleton.ca/manuals/installation/
development: https://devssim.carleton.ca/manuals/developer/
We can change the structure, and I will update the manual to reflect it!

I also agree with removing build files altogether. I skipped over those for now since I was only focusing on resolving the technical merge conflicts between branches, but I can clean them up as part of the restructure.

Regarding the different Cadmium flavors (vanilla, distributed, real-time, parallel, etc.), do you think it would be better to separate them by branches, or keep all sources in main?

Personally, I switch between versions fairly often, so keeping everything in one branch and using macros has been very convenient. However, since installation now creates the $CADMIUM environment variable, it should be straightforward to automate branch switching with something like:

project_dir=$PWD
cd $CADMIUM/..
git switch <BRANCH>
cd $project_dir
source build_sim.sh

Happy to go either way, just want to pick the approach that’s cleanest and easiest for users long term.

@romancardenas
Copy link
Member Author

Regarding the different Cadmium flavors (vanilla, distributed, real-time, parallel, etc.), do you think it would be better to separate them by branches, or keep all sources in main?

All in main, those are features that any student can use :)

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.

7 participants