A Java desktop application that receives six numbers via a TCP connection and displays them as the angles of a six-joint robotic arm. The tester package includes a random number generator server (running on port 12345) for testing the Cobot Simulator.
There are two versions of the Cobot Simulator:
The Head Simulator is a Java desktop application where a head follows the mouse cursor. The head position is streamed to port 8888 and can be received by a client application. The tester package includes a client that receives the head position and displays it on the console.
There are two versions of the Cobot Simulator:
The Affect Simulator is a Java desktop application that simulates the affective state of a user. The user can select the affective state from a group of sliders. The selected affective states are to be streamed to port <***> and can be received by a client application.
The Eye Simulator is a Java desktop application that simulates the eye gaze of a user. The user can select the eye gaze moving the mouse cursor. The selected eye gaze is to be streamed to port <***> and can be received by a client application.
The Affect and Eye Tracker Dashboard is a Java desktop application that receives the affective states and eye gaze of a user from the Affect Simulator and Eye Simulator, respectively. The dashboard displays the affective states and eye gaze of the user in real-time as circles in different colors.
-
1️⃣ Implement a Common Publisher
- Ensure the publisher class works across all components.
-
2️⃣ Implement a Common Subscriber
- Ensure the subscriber class works across all components.
-
3️⃣ Create a app.library.Blackboard with Delegates
- Implement a set of blackboards following the singleton pattern for shared communication.
-
4️⃣ Implement Standard Robot with Animation
- Design a standard robot class and provide an example implementation for its animation functionality.
-
5️⃣ Panels Observing the Blackboard
- Ensure all panels observe the blackboard, displaying a default drawing and updating whenever an event is fired.
-
6️⃣ Add Menus to Applications
- Include a menu in all applications with options to start/stop sending or receiving data, i.e., all app.library.Main are "similar"
-
7️⃣ Code Review
- Ensure all classes adhere to the Single Responsibility Principle (SRP). Make recomendations
- Review and justify the use of any global variables. Make recomendations
- Verify the accuracy of the class diagrams and collect them for documentation. Make recomendations
-
8️⃣ Use a Logger
- Keep or include the SFL4J library.
- Mandatory for Exceptions
- Consider debuging or tracing messages as needed. It is not perfume use when needed
-
9️⃣ Implement MQTT
- Create a publisher class that stream data to an MQTT Broker (Use PAHO library and Mosquitto Broker)
- Create a subscriber class that stream data to an MQTT Broker (Use PAHO library and Mosquitto Broker)
-
1️⃣0️⃣ Pull Request
- Pull request to update your code. Only your Module or the Library!