Adding Some Functionality
1. Sorting ports
For blocks with multiple input and output wires, the order of the wires must be maintained in order to get the correct data from each wire. For this purpose some changes to the Python back end were made. After reading the json file from the front end, the back end generates a unique identifier for each wire and maintains a dictionary of ports inside each block. The correct wires are matched to that dictionary to set up to appropriate connections.
2. Information Blocks
These information blocks are just like comments in a code. To explain what is going on inside the circuit, I added information blocks so that a description can be provided for the circuit which can make it easier for someone to remember what this part of the circuit does. Also it can help someone else in understanding what is happening inside the project.
3. Constant(Parameter) blocks for User Defined Blocks
The parameters support for built in blocks was present but sometimes to gain more fine control of the program, we felt it was necessary to add a new functionality. User defined blocks should be dynamic and they should also have some parameters so it is easy to fine tune them instead of editing the code everytime. I added parameter blocks which can be connected to user defined blocks and feed them input.
F1 Installation Fix
Meanwhile, I was also working on trying to get the Formula1 working with my computer. After some days on working with it, I finally got it working and closed the issue by sharing some steps on how I got it working with my installation. Link to Comment
As our tool was reaching its final stages, it was time to start working on the documentation. I described how the project is managed and wrote short descriptions about each block. The work done in detail can be found below: Link to Documentation