My Master Thesis project.
You can find the presentation on slide share and the pdf of the thesis here
You can find the REST API on swagger.com link
-
In the MainSystem.java there is the logic of all the API.
-
Client.java is just for test.
-
The InterfaceJNI.java spawns new SubProcess (InstancePlathea.java) for each room that loads the DLL, in this way we can have a instance of the DLL for each room.
TIPS: for debbugging you can start the subprocess in a terminal with the command:
java InstancePlathea <port>
but remember to comment the line in the InstancePlathea.java file.
In this way you can see the logs and stop easily the subprocess.
-
ClientDLL: is just a C++ project that use PLaTHEA_DLL. It is for debugging and imports the PlatheaDLL directly.
-
PlatheaDLL: is Plathea transformed into a Dynamic-link library
-
InterfaceJNI_DLL: is the JNI (Java Native Interface). It is a DLL and is a wrapper for PLaTHEA_DLL
-
jaxrs-jersey-server-generated: is the Java server generated by swagger
-
jaxrs-jersey-server-generated\src\main\java\io\core: in this folder there is the SubProcess (InstancePlathea.java).
Dependencies:
- LeoStromLibrary
- libjpeg-turbo-1.3.1
- opencv-master (you must compile for you machine probably)
- PLaTHEADPWS
- tinyxml
To create the JNI .h you can use the command:
javac -h . InterfaceJNI.java
then you can use this file in the InterfaceJNI_DLL project, then compile and copy the .dll in the folder jaxrs-jersey-server-generated\src\main\java\io\core\
In the jaxrs-jersey-server-generated folder use the command
mvn clean project jetty:run
In the webapp folder use these commands:
use this just the first time
npm install
npm start
Developed by Jacopo Carlini.