2.6 KiB
Environment Setup
Working on this repository requires you to use cargo and npm. In the following document the installation process will be shown
Ubuntu/Debian Installation
# Just press enter when prompted
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
apt install npm
apt install nodejs
# assuming you dont have git already, Git setup not included in here
apt install git
git clone git@github.com:qitechgmbh/control.git
cd control
cd electron
npm install
Running Backend and Frontend Linux
Backend
To Compile backend code and run it on Linux:
./cargo_run_linux.sh
The script sets capabilities on the compiled binary like raw socket access. Here it is required that you are connected to atleast one machine that is communicated with over ethercat or usb/serial. The Most minimal working setup would be to connect over ethernet to an ek1100 beckhoff terminal.
Mock-Machine
The Mock-Machine can be used to test code that does not require an actual machine connection. Like Frontend Code for example.
Mock machines can be used if the compile feature mock-machine is enabled.
# in root git folder
./cargo_run_linux.sh mock-machine
Frontend
To run the Frontend Code:
# need to be in the electron folder and an additional terminal
cd electron
npm run start
Contributing
Generally you contribute to the codebase by:
- Opening or Choosing an existing issue (Bug,Feature,Task etc)
- Work on it locally
- Commit your changes locally
- Before pushing changes, if there were changes on the master branch, rebase your branch like so:
git fetch
git rebase origin/master
- Push changes
# IF you needed to rebase
git push --force-with-lease
# ELSE you just push
git push
- Open a Pull Request on Github and link the issue by writing fix #issue_number, after the pull request is merged into master the branch is closed automatically
- Request a Review and hope for the best :)
Recommended Editor Setup
We recommend you to use an Editor with rust-analyzer support like VSCode to speed up development and detect errors before compiling.
Minimal Hardware Examples
To get started with actual hardware, check out these step-by