It’s been two weeks since the last status report! The first week was spring break for us, so it felt good to get back into the groove of things this past week.
The first thing I worked on was the Ethics assignment. For it, I read the case study found at https://www.scu.edu/ethics/focus-areas/more/engineering-ethics/engineering-ethics-cases/may-the-truth-be-with-you/. It describes a situation where an employee realizes that her company sold defective goods to a customer. She has to decide between telling the customer the truth, or helping her company’s bottom line by charging for the repairs. It was cool to read because I thought that the scenario was very realistic – I could definitely see this happening in the industry today.
Next, I put some more time into working on the front end for the circuit simulator. I found a very competent javascript circuit simulator written by MIT here at https://github.com/zupolgec/circuit-simulator. To give direction to my efforts, I used this as a guide on how to implement our simulator.
Our simulator is built with a class based programming style. We currently have the following classes: the Schematic class representing the whole system, the Component class representing individual circuit components, the ConnectionPoint class representing connections between circuit components, and the Wire class representing wires. There are also classes that inherit from the Component class: Resistor class, Inductor class, Capacitor class, etc.
The Component class has methods like rotate, move, add and remove. These do as expected. The subclasses of Component (like Resistor and Inductor) have their own personal draw and toString methods.
The Wire class represents the wires connecting instances of the Component class. It has a method bisect which checks whether or not any component currently bisects a wire. If there are, then the bisected wire is deleted and two wires are created that represent both halves of the bisected wire.
The Schematic class holds all the methods that tie the whole visualizer together. It’s in charge of holding and drawing all of the circuit components added by the user. It’s also in charge of handing when the user wants to export circuits to and import from file (though, these features aren’t done yet 🙁 ).
Overall, I think I got a nice bit of progress in this past two weeks. Obviously, there is always more to be done, but I definitely feel like I’m on track.
This upcoming week, I want to finish working on the export and import features. This is really important to finish because our midpoint demo is coming up! Next week is really going to be all about integration.