diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f2fe0d725..71c928d4b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -50,11 +50,6 @@ jobs: path: photon-client/dist/ build-server: - # Let all steps run within the photon-server dir. - defaults: - run: - working-directory: photon-server - # The type of runner that the job will run on. runs-on: ubuntu-latest @@ -84,11 +79,16 @@ jobs: run: ./gradlew jacocoTestReport # Publish Coverage Report. - - name: Publish Coverage Report + - name: Publish Server Coverage Report uses: codecov/codecov-action@v1 with: file: ./photon-server/build/reports/jacoco/test/jacocoTestReport.xml + - name: Publish Core Coverage Report + uses: codecov/codecov-action@v1 + with: + file: ./photon-core/build/reports/jacoco/test/jacocoTestReport.xml + build-offline-docs: runs-on: ubuntu-latest @@ -128,11 +128,6 @@ jobs: build-package: needs: [build-client, build-server, build-offline-docs] - # Let all steps run within the photon-server dir. - defaults: - run: - working-directory: photon-server - # The type of runner that the job will run on. runs-on: ubuntu-latest @@ -147,8 +142,8 @@ jobs: # Clear any existing web resources. - run: | - rm -rf src/main/resources/web/* - mkdir -p src/main/resources/web/docs + rm -rf photon-server/src/main/resources/web/* + mkdir -p photon-server/src/main/resources/web/docs # Download client artifact to resources folder. - uses: actions/download-artifact@v2 @@ -162,16 +157,10 @@ jobs: name: built-docs path: photon-server/src/main/resources/web/docs - - # Print folder contents. - - run: ls - working-directory: photon-server/src/main/resources/web/ - # Build fat jar. - run: | chmod +x gradlew - ./gradlew shadowJar - working-directory: photon-server + ./gradlew photon-server:shadowJar # Upload final fat jar as artifact. - uses: actions/upload-artifact@master @@ -189,11 +178,6 @@ jobs: if: github.event_name == 'push' check-lint: - # Let all steps run within the photon-server dir. - defaults: - run: - working-directory: photon-server - # The type of runner that the job will run on. runs-on: ubuntu-latest diff --git a/.gitignore b/.gitignore index c0af66100..3e8fcce9f 100644 --- a/.gitignore +++ b/.gitignore @@ -126,3 +126,8 @@ photon-server/photon-vision photon-server/src/main/resources/web photon-server/src/main/java/org/photonvision/PhotonVersion.java photon-server/src/main/generated/native/include/org_photonvision_raspi_PicamJNI.h +*.bin +.gradle +.gradle/* +photonvision_config +build/spotlessJava diff --git a/photon-server/LicenseHeader.txt b/LicenseHeader.txt similarity index 100% rename from photon-server/LicenseHeader.txt rename to LicenseHeader.txt diff --git a/build.gradle b/build.gradle new file mode 100644 index 000000000..5444787b4 --- /dev/null +++ b/build.gradle @@ -0,0 +1,32 @@ +plugins { + id "com.diffplug.gradle.spotless" version "3.28.0" +} + +allprojects { + repositories { + jcenter() + mavenCentral() + maven { + url = "https://maven.photonvision.org/repository/internal/" + } + maven { + url = 'https://frcmaven.wpi.edu:443/artifactory/development' + } + } +} + +spotless { + java { + googleJavaFormat() + paddedCell() + indentWithTabs(2) + indentWithSpaces(4) + removeUnusedImports() + } + java { + target '**/*.java' + licenseHeaderFile "$rootDir/LicenseHeader.txt" + + targetExclude('photon-core/src/main/java/org/photonvision/PhotonVersion.java') + } +} diff --git a/common.gradle b/common.gradle new file mode 100644 index 000000000..70d90b232 --- /dev/null +++ b/common.gradle @@ -0,0 +1,93 @@ +// Plugins +apply plugin: 'jacoco' +apply plugin: 'java' + +sourceCompatibility = 11 + +// Common version config +ext { + wpilibVersion = '2020.3.2-99-g9f4de91' + joglVersion = '2.4.0-rc-20200307' + openCVVersion = '3.4.7-2' +} + +// Common deps +dependencies { + // Jackson + implementation "com.fasterxml.jackson.core:jackson-annotations:2.10.0" + implementation "com.fasterxml.jackson.core:jackson-core:2.10.0" + implementation "com.fasterxml.jackson.core:jackson-databind:2.10.0" + + // Apache commons + implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.9' + implementation 'org.apache.commons:commons-math3:3.6.1' + implementation group: 'commons-io', name: 'commons-io', version: '2.6' + implementation group: 'commons-cli', name: 'commons-cli', version: '1.4' + implementation 'org.apache.commons:commons-collections4:4.4' + implementation 'org.apache.commons:commons-exec:1.3' + + // WPILib deps + implementation "edu.wpi.first.wpiutil:wpiutil-java:$wpilibVersion" + implementation "edu.wpi.first.cameraserver:cameraserver-java:$wpilibVersion" + + implementation "edu.wpi.first.cscore:cscore-java:$wpilibVersion" + compile "edu.wpi.first.cscore:cscore-jni:$wpilibVersion:linuxaarch64bionic" + compile "edu.wpi.first.cscore:cscore-jni:$wpilibVersion:linuxraspbian" + compile "edu.wpi.first.cscore:cscore-jni:$wpilibVersion:linuxx86-64" + compile "edu.wpi.first.cscore:cscore-jni:$wpilibVersion:osxx86-64" + compile "edu.wpi.first.cscore:cscore-jni:$wpilibVersion:windowsx86-64" + + implementation "edu.wpi.first.ntcore:ntcore-java:$wpilibVersion" + compile "edu.wpi.first.ntcore:ntcore-jni:$wpilibVersion:linuxaarch64bionic" + compile "edu.wpi.first.ntcore:ntcore-jni:$wpilibVersion:linuxraspbian" + compile "edu.wpi.first.ntcore:ntcore-jni:$wpilibVersion:linuxx86-64" + compile "edu.wpi.first.ntcore:ntcore-jni:$wpilibVersion:osxx86-64" + compile "edu.wpi.first.ntcore:ntcore-jni:$wpilibVersion:windowsx86-64" + + implementation "edu.wpi.first.thirdparty.frc2020.opencv:opencv-java:$openCVVersion" + compile "edu.wpi.first.thirdparty.frc2020.opencv:opencv-jni:$openCVVersion:linuxaarch64bionic" + compile "edu.wpi.first.thirdparty.frc2020.opencv:opencv-jni:$openCVVersion:linuxraspbian" + compile "edu.wpi.first.thirdparty.frc2020.opencv:opencv-jni:$openCVVersion:linuxx86-64" + compile "edu.wpi.first.thirdparty.frc2020.opencv:opencv-jni:$openCVVersion:osxx86-64" + compile "edu.wpi.first.thirdparty.frc2020.opencv:opencv-jni:$openCVVersion:windowsx86-64" + + implementation 'edu.wpi.first.wpimath:wpimath-java:2021.1.2-9-g26584ff' + + // test stuff + testImplementation('org.junit.jupiter:junit-jupiter:5.6.0') +} + +test { + useJUnitPlatform() + testLogging { + events 'passed', 'skipped', 'failed', 'standardOut', 'standardError' + } +} + +task testHeadless(type: Test) { + group = 'verification' + systemProperty("java.awt.headless", "true") + useJUnitPlatform() +} + +task generateJavaDocs(type: Javadoc) { + source = sourceSets.main.allJava + classpath = sourceSets.main.compileClasspath + destinationDir = file("${projectDir}/build/docs") +} + +jacocoTestReport { + dependsOn test // Tests are required to run before generating the report + + reports { + xml.enabled true + } + + afterEvaluate { + classDirectories.setFrom(files(classDirectories.files.collect { + fileTree(dir: it, + exclude: 'edu/wpi/**' + ) + })) + } +} \ No newline at end of file diff --git a/photon-server/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from photon-server/gradle/wrapper/gradle-wrapper.jar rename to gradle/wrapper/gradle-wrapper.jar diff --git a/photon-server/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties similarity index 64% rename from photon-server/gradle/wrapper/gradle-wrapper.properties rename to gradle/wrapper/gradle-wrapper.properties index 711be8e71..b16a683a7 100644 --- a/photon-server/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.0-bin.zip -distributionSha256Sum=5a3578b9f0bb162f5e08cf119f447dfb8fa950cedebb4d2a977e912a11a74b91 +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip +distributionSha256Sum=3239b5ed86c3838a37d983ac100573f64c1f3fd8e1eb6c89fa5f9529b5ec091d zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/photon-server/gradlew b/gradlew old mode 100755 new mode 100644 similarity index 100% rename from photon-server/gradlew rename to gradlew diff --git a/photon-server/gradlew.bat b/gradlew.bat similarity index 100% rename from photon-server/gradlew.bat rename to gradlew.bat diff --git a/photon-core/.gitignore b/photon-core/.gitignore new file mode 100644 index 000000000..933a7e534 --- /dev/null +++ b/photon-core/.gitignore @@ -0,0 +1,13 @@ +bin/* +.settings/* +.project +.classpath +*.prefs +.gradle +.gradle/* +build +build/* +photonvision/* +photonvision_config/* + +src/main/java/org/photonvision/PhotonVersion.java \ No newline at end of file diff --git a/photon-core/build.gradle b/photon-core/build.gradle new file mode 100644 index 000000000..fd6eb19a0 --- /dev/null +++ b/photon-core/build.gradle @@ -0,0 +1,19 @@ +apply from: '../common.gradle' +apply from: 'versioningHelper.gradle' + +dependencies { + implementation 'io.javalin:javalin:3.7.0' + + implementation 'org.msgpack:msgpack-core:0.8.20' + implementation 'org.msgpack:jackson-dataformat-msgpack:0.8.20' + + // JOGL stuff (currently we only distribute for aarch64, which is Pi 4) + implementation "org.jogamp.gluegen:gluegen-rt:$joglVersion" + implementation "org.jogamp.jogl:jogl-all:$joglVersion" + + implementation "org.jogamp.gluegen:gluegen-rt:$joglVersion:natives-linux-aarch64" + implementation "org.jogamp.jogl:jogl-all:$joglVersion:natives-linux-aarch64" + + // Zip + compile 'org.zeroturnaround:zt-zip:1.14' +} diff --git a/photon-core/gradle/wrapper/gradle-wrapper.jar b/photon-core/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 000000000..cc4fdc293 Binary files /dev/null and b/photon-core/gradle/wrapper/gradle-wrapper.jar differ diff --git a/photon-core/gradle/wrapper/gradle-wrapper.properties b/photon-core/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 000000000..b16a683a7 --- /dev/null +++ b/photon-core/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip +distributionSha256Sum=3239b5ed86c3838a37d983ac100573f64c1f3fd8e1eb6c89fa5f9529b5ec091d +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/photon-core/settings.gradle b/photon-core/settings.gradle new file mode 100644 index 000000000..0533be7ae --- /dev/null +++ b/photon-core/settings.gradle @@ -0,0 +1,2 @@ +rootProject.name = 'photon-core' + diff --git a/photon-server/src/main/java/org/photonvision/common/ProgramStatus.java b/photon-core/src/main/java/org/photonvision/common/ProgramStatus.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/ProgramStatus.java rename to photon-core/src/main/java/org/photonvision/common/ProgramStatus.java diff --git a/photon-server/src/main/java/org/photonvision/common/configuration/CameraConfiguration.java b/photon-core/src/main/java/org/photonvision/common/configuration/CameraConfiguration.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/configuration/CameraConfiguration.java rename to photon-core/src/main/java/org/photonvision/common/configuration/CameraConfiguration.java diff --git a/photon-server/src/main/java/org/photonvision/common/configuration/ConfigManager.java b/photon-core/src/main/java/org/photonvision/common/configuration/ConfigManager.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/configuration/ConfigManager.java rename to photon-core/src/main/java/org/photonvision/common/configuration/ConfigManager.java diff --git a/photon-server/src/main/java/org/photonvision/common/configuration/HardwareConfig.java b/photon-core/src/main/java/org/photonvision/common/configuration/HardwareConfig.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/configuration/HardwareConfig.java rename to photon-core/src/main/java/org/photonvision/common/configuration/HardwareConfig.java diff --git a/photon-server/src/main/java/org/photonvision/common/configuration/HardwareSettings.java b/photon-core/src/main/java/org/photonvision/common/configuration/HardwareSettings.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/configuration/HardwareSettings.java rename to photon-core/src/main/java/org/photonvision/common/configuration/HardwareSettings.java diff --git a/photon-server/src/main/java/org/photonvision/common/configuration/NetworkConfig.java b/photon-core/src/main/java/org/photonvision/common/configuration/NetworkConfig.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/configuration/NetworkConfig.java rename to photon-core/src/main/java/org/photonvision/common/configuration/NetworkConfig.java diff --git a/photon-server/src/main/java/org/photonvision/common/configuration/PhotonConfiguration.java b/photon-core/src/main/java/org/photonvision/common/configuration/PhotonConfiguration.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/configuration/PhotonConfiguration.java rename to photon-core/src/main/java/org/photonvision/common/configuration/PhotonConfiguration.java diff --git a/photon-server/src/main/java/org/photonvision/common/dataflow/CVPipelineResultConsumer.java b/photon-core/src/main/java/org/photonvision/common/dataflow/CVPipelineResultConsumer.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/dataflow/CVPipelineResultConsumer.java rename to photon-core/src/main/java/org/photonvision/common/dataflow/CVPipelineResultConsumer.java diff --git a/photon-server/src/main/java/org/photonvision/common/dataflow/DataChangeDestination.java b/photon-core/src/main/java/org/photonvision/common/dataflow/DataChangeDestination.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/dataflow/DataChangeDestination.java rename to photon-core/src/main/java/org/photonvision/common/dataflow/DataChangeDestination.java diff --git a/photon-server/src/main/java/org/photonvision/common/dataflow/DataChangeService.java b/photon-core/src/main/java/org/photonvision/common/dataflow/DataChangeService.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/dataflow/DataChangeService.java rename to photon-core/src/main/java/org/photonvision/common/dataflow/DataChangeService.java diff --git a/photon-server/src/main/java/org/photonvision/common/dataflow/DataChangeSource.java b/photon-core/src/main/java/org/photonvision/common/dataflow/DataChangeSource.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/dataflow/DataChangeSource.java rename to photon-core/src/main/java/org/photonvision/common/dataflow/DataChangeSource.java diff --git a/photon-server/src/main/java/org/photonvision/common/dataflow/DataChangeSubscriber.java b/photon-core/src/main/java/org/photonvision/common/dataflow/DataChangeSubscriber.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/dataflow/DataChangeSubscriber.java rename to photon-core/src/main/java/org/photonvision/common/dataflow/DataChangeSubscriber.java diff --git a/photon-server/src/main/java/org/photonvision/common/dataflow/events/DataChangeEvent.java b/photon-core/src/main/java/org/photonvision/common/dataflow/events/DataChangeEvent.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/dataflow/events/DataChangeEvent.java rename to photon-core/src/main/java/org/photonvision/common/dataflow/events/DataChangeEvent.java diff --git a/photon-server/src/main/java/org/photonvision/common/dataflow/events/HTTPRequestEvent.java b/photon-core/src/main/java/org/photonvision/common/dataflow/events/HTTPRequestEvent.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/dataflow/events/HTTPRequestEvent.java rename to photon-core/src/main/java/org/photonvision/common/dataflow/events/HTTPRequestEvent.java diff --git a/photon-server/src/main/java/org/photonvision/common/dataflow/events/IncomingWebSocketEvent.java b/photon-core/src/main/java/org/photonvision/common/dataflow/events/IncomingWebSocketEvent.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/dataflow/events/IncomingWebSocketEvent.java rename to photon-core/src/main/java/org/photonvision/common/dataflow/events/IncomingWebSocketEvent.java diff --git a/photon-server/src/main/java/org/photonvision/common/dataflow/events/OutgoingUIEvent.java b/photon-core/src/main/java/org/photonvision/common/dataflow/events/OutgoingUIEvent.java similarity index 86% rename from photon-server/src/main/java/org/photonvision/common/dataflow/events/OutgoingUIEvent.java rename to photon-core/src/main/java/org/photonvision/common/dataflow/events/OutgoingUIEvent.java index b0cf910a8..efb3308dc 100644 --- a/photon-server/src/main/java/org/photonvision/common/dataflow/events/OutgoingUIEvent.java +++ b/photon-core/src/main/java/org/photonvision/common/dataflow/events/OutgoingUIEvent.java @@ -34,6 +34,13 @@ public class OutgoingUIEvent extends DataChangeEvent { this.originContext = originContext; } + public static OutgoingUIEvent> wrappedOf( + String commandName, Object value) { + HashMap data = new HashMap<>(); + data.put(commandName, value); + return new OutgoingUIEvent<>(commandName, data); + } + public static OutgoingUIEvent> wrappedOf( String commandName, String propertyName, Object value, WsContext originContext) { HashMap data = new HashMap<>(); diff --git a/photon-server/src/main/java/org/photonvision/common/dataflow/networktables/NTDataChangeListener.java b/photon-core/src/main/java/org/photonvision/common/dataflow/networktables/NTDataChangeListener.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/dataflow/networktables/NTDataChangeListener.java rename to photon-core/src/main/java/org/photonvision/common/dataflow/networktables/NTDataChangeListener.java diff --git a/photon-server/src/main/java/org/photonvision/common/dataflow/networktables/NTDataPublisher.java b/photon-core/src/main/java/org/photonvision/common/dataflow/networktables/NTDataPublisher.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/dataflow/networktables/NTDataPublisher.java rename to photon-core/src/main/java/org/photonvision/common/dataflow/networktables/NTDataPublisher.java diff --git a/photon-server/src/main/java/org/photonvision/common/dataflow/networktables/NetworkTablesManager.java b/photon-core/src/main/java/org/photonvision/common/dataflow/networktables/NetworkTablesManager.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/dataflow/networktables/NetworkTablesManager.java rename to photon-core/src/main/java/org/photonvision/common/dataflow/networktables/NetworkTablesManager.java diff --git a/photon-server/src/main/java/org/photonvision/common/dataflow/structures/Packet.java b/photon-core/src/main/java/org/photonvision/common/dataflow/structures/Packet.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/dataflow/structures/Packet.java rename to photon-core/src/main/java/org/photonvision/common/dataflow/structures/Packet.java diff --git a/photon-server/src/main/java/org/photonvision/common/dataflow/websocket/UIDataPublisher.java b/photon-core/src/main/java/org/photonvision/common/dataflow/websocket/UIDataPublisher.java similarity index 81% rename from photon-server/src/main/java/org/photonvision/common/dataflow/websocket/UIDataPublisher.java rename to photon-core/src/main/java/org/photonvision/common/dataflow/websocket/UIDataPublisher.java index f0f251753..1101bbb43 100644 --- a/photon-server/src/main/java/org/photonvision/common/dataflow/websocket/UIDataPublisher.java +++ b/photon-core/src/main/java/org/photonvision/common/dataflow/websocket/UIDataPublisher.java @@ -17,14 +17,13 @@ package org.photonvision.common.dataflow.websocket; -import com.fasterxml.jackson.core.JsonProcessingException; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; import org.photonvision.common.dataflow.CVPipelineResultConsumer; +import org.photonvision.common.dataflow.DataChangeService; +import org.photonvision.common.dataflow.events.OutgoingUIEvent; import org.photonvision.common.logging.LogGroup; import org.photonvision.common.logging.Logger; -import org.photonvision.server.SocketHandler; import org.photonvision.vision.pipeline.result.CVPipelineResult; public class UIDataPublisher implements CVPipelineResultConsumer { @@ -57,18 +56,10 @@ public class UIDataPublisher implements CVPipelineResultConsumer { uiTargets.add(t.toHashMap()); } dataMap.put("targets", uiTargets); - uiMap.put(index, dataMap); - var retMap = new HashMap(); - retMap.put("updatePipelineResult", uiMap); - - try { - SocketHandler.getInstance().broadcastMessage(retMap, null); - } catch (JsonProcessingException e) { - logger.error(e.getMessage()); - logger.error(Arrays.toString(e.getStackTrace())); - } + DataChangeService.getInstance() + .publishEvent(OutgoingUIEvent.wrappedOf("updatePipelineResult", uiMap)); lastUIResultUpdateTime = now; } } diff --git a/photon-server/src/main/java/org/photonvision/common/hardware/GPIO/CustomGPIO.java b/photon-core/src/main/java/org/photonvision/common/hardware/GPIO/CustomGPIO.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/hardware/GPIO/CustomGPIO.java rename to photon-core/src/main/java/org/photonvision/common/hardware/GPIO/CustomGPIO.java diff --git a/photon-server/src/main/java/org/photonvision/common/hardware/GPIO/GPIOBase.java b/photon-core/src/main/java/org/photonvision/common/hardware/GPIO/GPIOBase.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/hardware/GPIO/GPIOBase.java rename to photon-core/src/main/java/org/photonvision/common/hardware/GPIO/GPIOBase.java diff --git a/photon-server/src/main/java/org/photonvision/common/hardware/GPIO/pi/PigpioCommand.java b/photon-core/src/main/java/org/photonvision/common/hardware/GPIO/pi/PigpioCommand.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/hardware/GPIO/pi/PigpioCommand.java rename to photon-core/src/main/java/org/photonvision/common/hardware/GPIO/pi/PigpioCommand.java diff --git a/photon-server/src/main/java/org/photonvision/common/hardware/GPIO/pi/PigpioException.java b/photon-core/src/main/java/org/photonvision/common/hardware/GPIO/pi/PigpioException.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/hardware/GPIO/pi/PigpioException.java rename to photon-core/src/main/java/org/photonvision/common/hardware/GPIO/pi/PigpioException.java diff --git a/photon-server/src/main/java/org/photonvision/common/hardware/GPIO/pi/PigpioPin.java b/photon-core/src/main/java/org/photonvision/common/hardware/GPIO/pi/PigpioPin.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/hardware/GPIO/pi/PigpioPin.java rename to photon-core/src/main/java/org/photonvision/common/hardware/GPIO/pi/PigpioPin.java diff --git a/photon-server/src/main/java/org/photonvision/common/hardware/GPIO/pi/PigpioPulse.java b/photon-core/src/main/java/org/photonvision/common/hardware/GPIO/pi/PigpioPulse.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/hardware/GPIO/pi/PigpioPulse.java rename to photon-core/src/main/java/org/photonvision/common/hardware/GPIO/pi/PigpioPulse.java diff --git a/photon-server/src/main/java/org/photonvision/common/hardware/GPIO/pi/PigpioSocket.java b/photon-core/src/main/java/org/photonvision/common/hardware/GPIO/pi/PigpioSocket.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/hardware/GPIO/pi/PigpioSocket.java rename to photon-core/src/main/java/org/photonvision/common/hardware/GPIO/pi/PigpioSocket.java diff --git a/photon-server/src/main/java/org/photonvision/common/hardware/GPIO/pi/PigpioSocketLock.java b/photon-core/src/main/java/org/photonvision/common/hardware/GPIO/pi/PigpioSocketLock.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/hardware/GPIO/pi/PigpioSocketLock.java rename to photon-core/src/main/java/org/photonvision/common/hardware/GPIO/pi/PigpioSocketLock.java diff --git a/photon-server/src/main/java/org/photonvision/common/hardware/HardwareManager.java b/photon-core/src/main/java/org/photonvision/common/hardware/HardwareManager.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/hardware/HardwareManager.java rename to photon-core/src/main/java/org/photonvision/common/hardware/HardwareManager.java diff --git a/photon-server/src/main/java/org/photonvision/common/hardware/Platform.java b/photon-core/src/main/java/org/photonvision/common/hardware/Platform.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/hardware/Platform.java rename to photon-core/src/main/java/org/photonvision/common/hardware/Platform.java diff --git a/photon-server/src/main/java/org/photonvision/common/hardware/StatusLED.java b/photon-core/src/main/java/org/photonvision/common/hardware/StatusLED.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/hardware/StatusLED.java rename to photon-core/src/main/java/org/photonvision/common/hardware/StatusLED.java diff --git a/photon-server/src/main/java/org/photonvision/common/hardware/VisionLED.java b/photon-core/src/main/java/org/photonvision/common/hardware/VisionLED.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/hardware/VisionLED.java rename to photon-core/src/main/java/org/photonvision/common/hardware/VisionLED.java diff --git a/photon-server/src/main/java/org/photonvision/common/hardware/metrics/CPUMetrics.java b/photon-core/src/main/java/org/photonvision/common/hardware/metrics/CPUMetrics.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/hardware/metrics/CPUMetrics.java rename to photon-core/src/main/java/org/photonvision/common/hardware/metrics/CPUMetrics.java diff --git a/photon-server/src/main/java/org/photonvision/common/hardware/metrics/DiskMetrics.java b/photon-core/src/main/java/org/photonvision/common/hardware/metrics/DiskMetrics.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/hardware/metrics/DiskMetrics.java rename to photon-core/src/main/java/org/photonvision/common/hardware/metrics/DiskMetrics.java diff --git a/photon-server/src/main/java/org/photonvision/common/hardware/metrics/GPUMetrics.java b/photon-core/src/main/java/org/photonvision/common/hardware/metrics/GPUMetrics.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/hardware/metrics/GPUMetrics.java rename to photon-core/src/main/java/org/photonvision/common/hardware/metrics/GPUMetrics.java diff --git a/photon-server/src/main/java/org/photonvision/common/hardware/metrics/MetricsBase.java b/photon-core/src/main/java/org/photonvision/common/hardware/metrics/MetricsBase.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/hardware/metrics/MetricsBase.java rename to photon-core/src/main/java/org/photonvision/common/hardware/metrics/MetricsBase.java diff --git a/photon-server/src/main/java/org/photonvision/common/hardware/metrics/MetricsPublisher.java b/photon-core/src/main/java/org/photonvision/common/hardware/metrics/MetricsPublisher.java similarity index 86% rename from photon-server/src/main/java/org/photonvision/common/hardware/metrics/MetricsPublisher.java rename to photon-core/src/main/java/org/photonvision/common/hardware/metrics/MetricsPublisher.java index db8dfeb49..f28d082a3 100644 --- a/photon-server/src/main/java/org/photonvision/common/hardware/metrics/MetricsPublisher.java +++ b/photon-core/src/main/java/org/photonvision/common/hardware/metrics/MetricsPublisher.java @@ -17,13 +17,13 @@ package org.photonvision.common.hardware.metrics; -import com.fasterxml.jackson.core.JsonProcessingException; import java.util.HashMap; +import org.photonvision.common.dataflow.DataChangeService; +import org.photonvision.common.dataflow.events.OutgoingUIEvent; import org.photonvision.common.hardware.Platform; import org.photonvision.common.logging.LogGroup; import org.photonvision.common.logging.Logger; import org.photonvision.common.util.TimedTaskManager; -import org.photonvision.server.SocketHandler; public class MetricsPublisher { private static final Logger logger = new Logger(MetricsPublisher.class, LogGroup.General); @@ -65,14 +65,7 @@ public class MetricsPublisher { metrics.put("gpuMemUtil", gpuMetrics.getMallocedMemory()); metrics.put("diskUtilPct", diskMetrics.getUsedDiskPct()); - var retMap = new HashMap(); - retMap.put("metrics", metrics); - - try { - SocketHandler.getInstance().broadcastMessage(retMap, null); - } catch (JsonProcessingException e) { - logger.error("Exception while sending metrics!", e); - } + DataChangeService.getInstance().publishEvent(OutgoingUIEvent.wrappedOf("metrics", metrics)); } private static class Singleton { diff --git a/photon-server/src/main/java/org/photonvision/common/hardware/metrics/RAMMetrics.java b/photon-core/src/main/java/org/photonvision/common/hardware/metrics/RAMMetrics.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/hardware/metrics/RAMMetrics.java rename to photon-core/src/main/java/org/photonvision/common/hardware/metrics/RAMMetrics.java diff --git a/photon-server/src/main/java/org/photonvision/common/logging/LogGroup.java b/photon-core/src/main/java/org/photonvision/common/logging/LogGroup.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/logging/LogGroup.java rename to photon-core/src/main/java/org/photonvision/common/logging/LogGroup.java diff --git a/photon-server/src/main/java/org/photonvision/common/logging/LogLevel.java b/photon-core/src/main/java/org/photonvision/common/logging/LogLevel.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/logging/LogLevel.java rename to photon-core/src/main/java/org/photonvision/common/logging/LogLevel.java diff --git a/photon-server/src/main/java/org/photonvision/common/logging/Logger.java b/photon-core/src/main/java/org/photonvision/common/logging/Logger.java similarity index 97% rename from photon-server/src/main/java/org/photonvision/common/logging/Logger.java rename to photon-core/src/main/java/org/photonvision/common/logging/Logger.java index 379481891..bae897be5 100644 --- a/photon-server/src/main/java/org/photonvision/common/logging/Logger.java +++ b/photon-core/src/main/java/org/photonvision/common/logging/Logger.java @@ -33,7 +33,6 @@ import org.photonvision.common.configuration.ConfigManager; import org.photonvision.common.dataflow.DataChangeService; import org.photonvision.common.dataflow.events.OutgoingUIEvent; import org.photonvision.common.util.TimedTaskManager; -import org.photonvision.server.SocketHandler; @SuppressWarnings("unused") public class Logger { @@ -302,12 +301,12 @@ public class Logger { private static class UILogAppender implements LogAppender { @Override public void log(String message, LogLevel level) { - var messageMap = new SocketHandler.UIMap(); + var messageMap = new HashMap(); messageMap.put("logMessage", message); messageMap.put("logLevel", level.code); - var superMap = new SocketHandler.UIMap(); + var superMap = new HashMap(); superMap.put("logMessage", messageMap); - DataChangeService.getInstance().publishEvent(new OutgoingUIEvent<>("log", superMap)); + DataChangeService.getInstance().publishEvent(OutgoingUIEvent.wrappedOf("log", superMap)); } } diff --git a/photon-server/src/main/java/org/photonvision/common/networking/NetworkInterface.java b/photon-core/src/main/java/org/photonvision/common/networking/NetworkInterface.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/networking/NetworkInterface.java rename to photon-core/src/main/java/org/photonvision/common/networking/NetworkInterface.java diff --git a/photon-server/src/main/java/org/photonvision/common/networking/NetworkManager.java b/photon-core/src/main/java/org/photonvision/common/networking/NetworkManager.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/networking/NetworkManager.java rename to photon-core/src/main/java/org/photonvision/common/networking/NetworkManager.java diff --git a/photon-server/src/main/java/org/photonvision/common/networking/NetworkMode.java b/photon-core/src/main/java/org/photonvision/common/networking/NetworkMode.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/networking/NetworkMode.java rename to photon-core/src/main/java/org/photonvision/common/networking/NetworkMode.java diff --git a/photon-server/src/main/java/org/photonvision/common/scripting/ScriptCommandType.java b/photon-core/src/main/java/org/photonvision/common/scripting/ScriptCommandType.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/scripting/ScriptCommandType.java rename to photon-core/src/main/java/org/photonvision/common/scripting/ScriptCommandType.java diff --git a/photon-server/src/main/java/org/photonvision/common/scripting/ScriptConfig.java b/photon-core/src/main/java/org/photonvision/common/scripting/ScriptConfig.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/scripting/ScriptConfig.java rename to photon-core/src/main/java/org/photonvision/common/scripting/ScriptConfig.java diff --git a/photon-server/src/main/java/org/photonvision/common/scripting/ScriptEvent.java b/photon-core/src/main/java/org/photonvision/common/scripting/ScriptEvent.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/scripting/ScriptEvent.java rename to photon-core/src/main/java/org/photonvision/common/scripting/ScriptEvent.java diff --git a/photon-server/src/main/java/org/photonvision/common/scripting/ScriptEventType.java b/photon-core/src/main/java/org/photonvision/common/scripting/ScriptEventType.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/scripting/ScriptEventType.java rename to photon-core/src/main/java/org/photonvision/common/scripting/ScriptEventType.java diff --git a/photon-server/src/main/java/org/photonvision/common/scripting/ScriptManager.java b/photon-core/src/main/java/org/photonvision/common/scripting/ScriptManager.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/scripting/ScriptManager.java rename to photon-core/src/main/java/org/photonvision/common/scripting/ScriptManager.java diff --git a/photon-server/src/main/java/org/photonvision/common/util/ColorHelper.java b/photon-core/src/main/java/org/photonvision/common/util/ColorHelper.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/util/ColorHelper.java rename to photon-core/src/main/java/org/photonvision/common/util/ColorHelper.java diff --git a/photon-server/src/main/java/org/photonvision/common/util/MemoryManager.java b/photon-core/src/main/java/org/photonvision/common/util/MemoryManager.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/util/MemoryManager.java rename to photon-core/src/main/java/org/photonvision/common/util/MemoryManager.java diff --git a/photon-server/src/main/java/org/photonvision/common/util/ReflectionUtils.java b/photon-core/src/main/java/org/photonvision/common/util/ReflectionUtils.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/util/ReflectionUtils.java rename to photon-core/src/main/java/org/photonvision/common/util/ReflectionUtils.java diff --git a/photon-server/src/main/java/org/photonvision/common/util/SerializationUtils.java b/photon-core/src/main/java/org/photonvision/common/util/SerializationUtils.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/util/SerializationUtils.java rename to photon-core/src/main/java/org/photonvision/common/util/SerializationUtils.java diff --git a/photon-server/src/main/java/org/photonvision/common/util/ShellExec.java b/photon-core/src/main/java/org/photonvision/common/util/ShellExec.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/util/ShellExec.java rename to photon-core/src/main/java/org/photonvision/common/util/ShellExec.java diff --git a/photon-server/src/main/java/org/photonvision/common/util/TestUtils.java b/photon-core/src/main/java/org/photonvision/common/util/TestUtils.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/util/TestUtils.java rename to photon-core/src/main/java/org/photonvision/common/util/TestUtils.java diff --git a/photon-server/src/main/java/org/photonvision/common/util/TimedTaskManager.java b/photon-core/src/main/java/org/photonvision/common/util/TimedTaskManager.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/util/TimedTaskManager.java rename to photon-core/src/main/java/org/photonvision/common/util/TimedTaskManager.java diff --git a/photon-server/src/main/java/org/photonvision/common/util/file/FileUtils.java b/photon-core/src/main/java/org/photonvision/common/util/file/FileUtils.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/util/file/FileUtils.java rename to photon-core/src/main/java/org/photonvision/common/util/file/FileUtils.java diff --git a/photon-server/src/main/java/org/photonvision/common/util/file/JacksonUtils.java b/photon-core/src/main/java/org/photonvision/common/util/file/JacksonUtils.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/util/file/JacksonUtils.java rename to photon-core/src/main/java/org/photonvision/common/util/file/JacksonUtils.java diff --git a/photon-server/src/main/java/org/photonvision/common/util/java/TriConsumer.java b/photon-core/src/main/java/org/photonvision/common/util/java/TriConsumer.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/util/java/TriConsumer.java rename to photon-core/src/main/java/org/photonvision/common/util/java/TriConsumer.java diff --git a/photon-server/src/main/java/org/photonvision/common/util/math/IPUtils.java b/photon-core/src/main/java/org/photonvision/common/util/math/IPUtils.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/util/math/IPUtils.java rename to photon-core/src/main/java/org/photonvision/common/util/math/IPUtils.java diff --git a/photon-server/src/main/java/org/photonvision/common/util/math/MathUtils.java b/photon-core/src/main/java/org/photonvision/common/util/math/MathUtils.java similarity index 82% rename from photon-server/src/main/java/org/photonvision/common/util/math/MathUtils.java rename to photon-core/src/main/java/org/photonvision/common/util/math/MathUtils.java index 0aa943112..689494c23 100644 --- a/photon-server/src/main/java/org/photonvision/common/util/math/MathUtils.java +++ b/photon-core/src/main/java/org/photonvision/common/util/math/MathUtils.java @@ -59,4 +59,17 @@ public class MathUtils { public static int map(int value, int inMin, int inMax, int outMin, int outMax) { return (int) Math.floor(map((double) value, inMin, inMax, outMin, outMax) + 0.5); } + + /** + * Linearly interpolates between two values. + * + * @param startValue The start value. + * @param endValue The end value. + * @param t The fraction for interpolation. + * @return The interpolated value. + */ + @SuppressWarnings("ParameterName") + public static double lerp(double startValue, double endValue, double t) { + return startValue + (endValue - startValue) * t; + } } diff --git a/photon-server/src/main/java/org/photonvision/common/util/numbers/DoubleCouple.java b/photon-core/src/main/java/org/photonvision/common/util/numbers/DoubleCouple.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/util/numbers/DoubleCouple.java rename to photon-core/src/main/java/org/photonvision/common/util/numbers/DoubleCouple.java diff --git a/photon-server/src/main/java/org/photonvision/common/util/numbers/IntegerCouple.java b/photon-core/src/main/java/org/photonvision/common/util/numbers/IntegerCouple.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/util/numbers/IntegerCouple.java rename to photon-core/src/main/java/org/photonvision/common/util/numbers/IntegerCouple.java diff --git a/photon-server/src/main/java/org/photonvision/common/util/numbers/NumberCouple.java b/photon-core/src/main/java/org/photonvision/common/util/numbers/NumberCouple.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/util/numbers/NumberCouple.java rename to photon-core/src/main/java/org/photonvision/common/util/numbers/NumberCouple.java diff --git a/photon-server/src/main/java/org/photonvision/common/util/numbers/NumberListUtils.java b/photon-core/src/main/java/org/photonvision/common/util/numbers/NumberListUtils.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/common/util/numbers/NumberListUtils.java rename to photon-core/src/main/java/org/photonvision/common/util/numbers/NumberListUtils.java diff --git a/photon-server/src/main/java/org/photonvision/raspi/PicamJNI.java b/photon-core/src/main/java/org/photonvision/raspi/PicamJNI.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/raspi/PicamJNI.java rename to photon-core/src/main/java/org/photonvision/raspi/PicamJNI.java diff --git a/photon-server/src/main/java/org/photonvision/vision/calibration/CameraCalibrationCoefficients.java b/photon-core/src/main/java/org/photonvision/vision/calibration/CameraCalibrationCoefficients.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/calibration/CameraCalibrationCoefficients.java rename to photon-core/src/main/java/org/photonvision/vision/calibration/CameraCalibrationCoefficients.java diff --git a/photon-server/src/main/java/org/photonvision/vision/calibration/JsonMat.java b/photon-core/src/main/java/org/photonvision/vision/calibration/JsonMat.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/calibration/JsonMat.java rename to photon-core/src/main/java/org/photonvision/vision/calibration/JsonMat.java diff --git a/photon-server/src/main/java/org/photonvision/vision/camera/CameraQuirk.java b/photon-core/src/main/java/org/photonvision/vision/camera/CameraQuirk.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/camera/CameraQuirk.java rename to photon-core/src/main/java/org/photonvision/vision/camera/CameraQuirk.java diff --git a/photon-server/src/main/java/org/photonvision/vision/camera/CameraType.java b/photon-core/src/main/java/org/photonvision/vision/camera/CameraType.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/camera/CameraType.java rename to photon-core/src/main/java/org/photonvision/vision/camera/CameraType.java diff --git a/photon-server/src/main/java/org/photonvision/vision/camera/FileVisionSource.java b/photon-core/src/main/java/org/photonvision/vision/camera/FileVisionSource.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/camera/FileVisionSource.java rename to photon-core/src/main/java/org/photonvision/vision/camera/FileVisionSource.java diff --git a/photon-server/src/main/java/org/photonvision/vision/camera/QuirkyCamera.java b/photon-core/src/main/java/org/photonvision/vision/camera/QuirkyCamera.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/camera/QuirkyCamera.java rename to photon-core/src/main/java/org/photonvision/vision/camera/QuirkyCamera.java diff --git a/photon-server/src/main/java/org/photonvision/vision/camera/USBCameraSource.java b/photon-core/src/main/java/org/photonvision/vision/camera/USBCameraSource.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/camera/USBCameraSource.java rename to photon-core/src/main/java/org/photonvision/vision/camera/USBCameraSource.java diff --git a/photon-server/src/main/java/org/photonvision/vision/camera/ZeroCopyPicamSource.java b/photon-core/src/main/java/org/photonvision/vision/camera/ZeroCopyPicamSource.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/camera/ZeroCopyPicamSource.java rename to photon-core/src/main/java/org/photonvision/vision/camera/ZeroCopyPicamSource.java diff --git a/photon-server/src/main/java/org/photonvision/vision/frame/Frame.java b/photon-core/src/main/java/org/photonvision/vision/frame/Frame.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/frame/Frame.java rename to photon-core/src/main/java/org/photonvision/vision/frame/Frame.java diff --git a/photon-server/src/main/java/org/photonvision/vision/frame/FrameConsumer.java b/photon-core/src/main/java/org/photonvision/vision/frame/FrameConsumer.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/frame/FrameConsumer.java rename to photon-core/src/main/java/org/photonvision/vision/frame/FrameConsumer.java diff --git a/photon-server/src/main/java/org/photonvision/vision/frame/FrameDivisor.java b/photon-core/src/main/java/org/photonvision/vision/frame/FrameDivisor.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/frame/FrameDivisor.java rename to photon-core/src/main/java/org/photonvision/vision/frame/FrameDivisor.java diff --git a/photon-server/src/main/java/org/photonvision/vision/frame/FrameProvider.java b/photon-core/src/main/java/org/photonvision/vision/frame/FrameProvider.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/frame/FrameProvider.java rename to photon-core/src/main/java/org/photonvision/vision/frame/FrameProvider.java diff --git a/photon-server/src/main/java/org/photonvision/vision/frame/FrameStaticProperties.java b/photon-core/src/main/java/org/photonvision/vision/frame/FrameStaticProperties.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/frame/FrameStaticProperties.java rename to photon-core/src/main/java/org/photonvision/vision/frame/FrameStaticProperties.java diff --git a/photon-server/src/main/java/org/photonvision/vision/frame/consumer/DummyFrameConsumer.java b/photon-core/src/main/java/org/photonvision/vision/frame/consumer/DummyFrameConsumer.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/frame/consumer/DummyFrameConsumer.java rename to photon-core/src/main/java/org/photonvision/vision/frame/consumer/DummyFrameConsumer.java diff --git a/photon-server/src/main/java/org/photonvision/vision/frame/consumer/FileSaveFrameConsumer.java b/photon-core/src/main/java/org/photonvision/vision/frame/consumer/FileSaveFrameConsumer.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/frame/consumer/FileSaveFrameConsumer.java rename to photon-core/src/main/java/org/photonvision/vision/frame/consumer/FileSaveFrameConsumer.java diff --git a/photon-server/src/main/java/org/photonvision/vision/frame/consumer/MJPGFrameConsumer.java b/photon-core/src/main/java/org/photonvision/vision/frame/consumer/MJPGFrameConsumer.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/frame/consumer/MJPGFrameConsumer.java rename to photon-core/src/main/java/org/photonvision/vision/frame/consumer/MJPGFrameConsumer.java diff --git a/photon-server/src/main/java/org/photonvision/vision/frame/provider/AcceleratedPicamFrameProvider.java b/photon-core/src/main/java/org/photonvision/vision/frame/provider/AcceleratedPicamFrameProvider.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/frame/provider/AcceleratedPicamFrameProvider.java rename to photon-core/src/main/java/org/photonvision/vision/frame/provider/AcceleratedPicamFrameProvider.java diff --git a/photon-server/src/main/java/org/photonvision/vision/frame/provider/FileFrameProvider.java b/photon-core/src/main/java/org/photonvision/vision/frame/provider/FileFrameProvider.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/frame/provider/FileFrameProvider.java rename to photon-core/src/main/java/org/photonvision/vision/frame/provider/FileFrameProvider.java diff --git a/photon-server/src/main/java/org/photonvision/vision/frame/provider/NetworkFrameProvider.java b/photon-core/src/main/java/org/photonvision/vision/frame/provider/NetworkFrameProvider.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/frame/provider/NetworkFrameProvider.java rename to photon-core/src/main/java/org/photonvision/vision/frame/provider/NetworkFrameProvider.java diff --git a/photon-server/src/main/java/org/photonvision/vision/frame/provider/USBFrameProvider.java b/photon-core/src/main/java/org/photonvision/vision/frame/provider/USBFrameProvider.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/frame/provider/USBFrameProvider.java rename to photon-core/src/main/java/org/photonvision/vision/frame/provider/USBFrameProvider.java diff --git a/photon-server/src/main/java/org/photonvision/vision/opencv/CVMat.java b/photon-core/src/main/java/org/photonvision/vision/opencv/CVMat.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/opencv/CVMat.java rename to photon-core/src/main/java/org/photonvision/vision/opencv/CVMat.java diff --git a/photon-server/src/main/java/org/photonvision/vision/opencv/CVShape.java b/photon-core/src/main/java/org/photonvision/vision/opencv/CVShape.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/opencv/CVShape.java rename to photon-core/src/main/java/org/photonvision/vision/opencv/CVShape.java diff --git a/photon-server/src/main/java/org/photonvision/vision/opencv/Contour.java b/photon-core/src/main/java/org/photonvision/vision/opencv/Contour.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/opencv/Contour.java rename to photon-core/src/main/java/org/photonvision/vision/opencv/Contour.java diff --git a/photon-server/src/main/java/org/photonvision/vision/opencv/ContourGroupingMode.java b/photon-core/src/main/java/org/photonvision/vision/opencv/ContourGroupingMode.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/opencv/ContourGroupingMode.java rename to photon-core/src/main/java/org/photonvision/vision/opencv/ContourGroupingMode.java diff --git a/photon-server/src/main/java/org/photonvision/vision/opencv/ContourIntersectionDirection.java b/photon-core/src/main/java/org/photonvision/vision/opencv/ContourIntersectionDirection.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/opencv/ContourIntersectionDirection.java rename to photon-core/src/main/java/org/photonvision/vision/opencv/ContourIntersectionDirection.java diff --git a/photon-server/src/main/java/org/photonvision/vision/opencv/ContourShape.java b/photon-core/src/main/java/org/photonvision/vision/opencv/ContourShape.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/opencv/ContourShape.java rename to photon-core/src/main/java/org/photonvision/vision/opencv/ContourShape.java diff --git a/photon-server/src/main/java/org/photonvision/vision/opencv/ContourSortMode.java b/photon-core/src/main/java/org/photonvision/vision/opencv/ContourSortMode.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/opencv/ContourSortMode.java rename to photon-core/src/main/java/org/photonvision/vision/opencv/ContourSortMode.java diff --git a/photon-server/src/main/java/org/photonvision/vision/opencv/DualMat.java b/photon-core/src/main/java/org/photonvision/vision/opencv/DualMat.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/opencv/DualMat.java rename to photon-core/src/main/java/org/photonvision/vision/opencv/DualMat.java diff --git a/photon-server/src/main/java/org/photonvision/vision/opencv/DualOffsetValues.java b/photon-core/src/main/java/org/photonvision/vision/opencv/DualOffsetValues.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/opencv/DualOffsetValues.java rename to photon-core/src/main/java/org/photonvision/vision/opencv/DualOffsetValues.java diff --git a/photon-server/src/main/java/org/photonvision/vision/opencv/ImageFlipMode.java b/photon-core/src/main/java/org/photonvision/vision/opencv/ImageFlipMode.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/opencv/ImageFlipMode.java rename to photon-core/src/main/java/org/photonvision/vision/opencv/ImageFlipMode.java diff --git a/photon-server/src/main/java/org/photonvision/vision/opencv/ImageRotationMode.java b/photon-core/src/main/java/org/photonvision/vision/opencv/ImageRotationMode.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/opencv/ImageRotationMode.java rename to photon-core/src/main/java/org/photonvision/vision/opencv/ImageRotationMode.java diff --git a/photon-server/src/main/java/org/photonvision/vision/opencv/Releasable.java b/photon-core/src/main/java/org/photonvision/vision/opencv/Releasable.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/opencv/Releasable.java rename to photon-core/src/main/java/org/photonvision/vision/opencv/Releasable.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/CVPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/CVPipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/CVPipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/CVPipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/MutatingPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/MutatingPipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/MutatingPipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/MutatingPipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/impl/BlurPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/BlurPipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/impl/BlurPipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/impl/BlurPipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/impl/CalculateFPSPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/CalculateFPSPipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/impl/CalculateFPSPipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/impl/CalculateFPSPipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/impl/Calibrate3dPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/Calibrate3dPipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/impl/Calibrate3dPipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/impl/Calibrate3dPipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/impl/Collect2dTargetsPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/Collect2dTargetsPipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/impl/Collect2dTargetsPipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/impl/Collect2dTargetsPipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/impl/CornerDetectionPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/CornerDetectionPipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/impl/CornerDetectionPipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/impl/CornerDetectionPipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/impl/Draw2dCrosshairPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/Draw2dCrosshairPipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/impl/Draw2dCrosshairPipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/impl/Draw2dCrosshairPipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/impl/Draw2dTargetsPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/Draw2dTargetsPipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/impl/Draw2dTargetsPipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/impl/Draw2dTargetsPipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/impl/Draw3dTargetsPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/Draw3dTargetsPipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/impl/Draw3dTargetsPipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/impl/Draw3dTargetsPipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/impl/DrawCornerDetectionPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/DrawCornerDetectionPipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/impl/DrawCornerDetectionPipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/impl/DrawCornerDetectionPipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/impl/ErodeDilatePipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/ErodeDilatePipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/impl/ErodeDilatePipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/impl/ErodeDilatePipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/impl/FilterContoursPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/FilterContoursPipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/impl/FilterContoursPipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/impl/FilterContoursPipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/impl/FilterShapesPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/FilterShapesPipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/impl/FilterShapesPipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/impl/FilterShapesPipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/impl/FindBoardCornersPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/FindBoardCornersPipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/impl/FindBoardCornersPipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/impl/FindBoardCornersPipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/impl/FindCirclesPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/FindCirclesPipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/impl/FindCirclesPipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/impl/FindCirclesPipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/impl/FindContoursPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/FindContoursPipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/impl/FindContoursPipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/impl/FindContoursPipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/impl/FindPolygonPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/FindPolygonPipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/impl/FindPolygonPipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/impl/FindPolygonPipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/impl/GPUAcceleratedHSVPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/GPUAcceleratedHSVPipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/impl/GPUAcceleratedHSVPipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/impl/GPUAcceleratedHSVPipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/impl/GroupContoursPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/GroupContoursPipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/impl/GroupContoursPipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/impl/GroupContoursPipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/impl/HSVPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/HSVPipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/impl/HSVPipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/impl/HSVPipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/impl/OutputMatPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/OutputMatPipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/impl/OutputMatPipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/impl/OutputMatPipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/impl/ResizeImagePipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/ResizeImagePipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/impl/ResizeImagePipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/impl/ResizeImagePipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/impl/RotateImagePipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/RotateImagePipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/impl/RotateImagePipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/impl/RotateImagePipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/impl/SolvePNPPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/SolvePNPPipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/impl/SolvePNPPipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/impl/SolvePNPPipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/impl/SortContoursPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/SortContoursPipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/impl/SortContoursPipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/impl/SortContoursPipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipe/impl/SpeckleRejectPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/SpeckleRejectPipe.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipe/impl/SpeckleRejectPipe.java rename to photon-core/src/main/java/org/photonvision/vision/pipe/impl/SpeckleRejectPipe.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipeline/AdvancedPipelineSettings.java b/photon-core/src/main/java/org/photonvision/vision/pipeline/AdvancedPipelineSettings.java similarity index 100% rename from photon-server/src/main/java/org/photonvision/vision/pipeline/AdvancedPipelineSettings.java rename to photon-core/src/main/java/org/photonvision/vision/pipeline/AdvancedPipelineSettings.java diff --git a/photon-server/src/main/java/org/photonvision/vision/pipeline/CVPipeline.java b/photon-core/src/main/java/org/photonvision/vision/pipeline/CVPipeline.java similarity index 98% rename from photon-server/src/main/java/org/photonvision/vision/pipeline/CVPipeline.java rename to photon-core/src/main/java/org/photonvision/vision/pipeline/CVPipeline.java index 07f16c7f5..60acf30df 100644 --- a/photon-server/src/main/java/org/photonvision/vision/pipeline/CVPipeline.java +++ b/photon-core/src/main/java/org/photonvision/vision/pipeline/CVPipeline.java @@ -57,6 +57,7 @@ public abstract class CVPipeline transformToMap(Transform2d transform) { + var ret = new HashMap(); + ret.put("x", transform.getTranslation().getX()); + ret.put("y", transform.getTranslation().getY()); + ret.put("rot", transform.getRotation().getDegrees()); + return ret; + } + public static class TargetCalculationParameters { // TargetOffset calculation values final boolean isLandscape; diff --git a/photon-core/src/main/resources/calibration/lifecam240p.json b/photon-core/src/main/resources/calibration/lifecam240p.json new file mode 100644 index 000000000..349c450c8 --- /dev/null +++ b/photon-core/src/main/resources/calibration/lifecam240p.json @@ -0,0 +1,34 @@ +{ + "resolution": { + "width": 320.0, + "height": 240.0 + }, + "cameraIntrinsics": { + "rows": 3, + "cols": 3, + "type": 6, + "data": [ + 353.74653217742724, + 0.0, + 163.55407989211918, + 0.0, + 340.77624878700817, + 119.8945718300403, + 0.0, + 0.0, + 1.0 + ] + }, + "cameraExtrinsics": { + "rows": 1, + "cols": 5, + "type": 6, + "data": [ + 0.10322037759535845, + -0.2890556437050186, + 0.00406400648501475, + 2.5573586808275763E-4, + -1.462385758978924 + ] + } +} \ No newline at end of file diff --git a/photon-core/src/main/resources/calibration/lifecam480p.json b/photon-core/src/main/resources/calibration/lifecam480p.json new file mode 100644 index 000000000..fff629bf6 --- /dev/null +++ b/photon-core/src/main/resources/calibration/lifecam480p.json @@ -0,0 +1,34 @@ +{ + "resolution": { + "width": 640.0, + "height": 480.0 + }, + "cameraIntrinsics": { + "rows": 3, + "cols": 3, + "type": 6, + "data": [ + 699.3778103158814, + 0.0, + 345.6059345433618, + 0.0, + 677.7161226393544, + 207.12741326228522, + 0.0, + 0.0, + 1.0 + ] + }, + "cameraExtrinsics": { + "rows": 1, + "cols": 5, + "type": 6, + "data": [ + 0.14382207979312617, + -0.9851192814987014, + -0.018168751047242335, + 0.011034504043795105, + 1.9833437176538498 + ] + } +} \ No newline at end of file diff --git a/photon-server/src/test/java/org/photonvision/common/BenchmarkTest.java b/photon-core/src/test/java/org/photonvision/common/BenchmarkTest.java similarity index 100% rename from photon-server/src/test/java/org/photonvision/common/BenchmarkTest.java rename to photon-core/src/test/java/org/photonvision/common/BenchmarkTest.java diff --git a/photon-server/src/test/java/org/photonvision/common/ShapeBenchmarkTest.java b/photon-core/src/test/java/org/photonvision/common/ShapeBenchmarkTest.java similarity index 100% rename from photon-server/src/test/java/org/photonvision/common/ShapeBenchmarkTest.java rename to photon-core/src/test/java/org/photonvision/common/ShapeBenchmarkTest.java diff --git a/photon-server/src/test/java/org/photonvision/common/configuration/ConfigTest.java b/photon-core/src/test/java/org/photonvision/common/configuration/ConfigTest.java similarity index 99% rename from photon-server/src/test/java/org/photonvision/common/configuration/ConfigTest.java rename to photon-core/src/test/java/org/photonvision/common/configuration/ConfigTest.java index ea8306b81..a4477d9e9 100644 --- a/photon-server/src/test/java/org/photonvision/common/configuration/ConfigTest.java +++ b/photon-core/src/test/java/org/photonvision/common/configuration/ConfigTest.java @@ -126,5 +126,7 @@ public class ConfigTest { writer.close(); Assertions.assertDoesNotThrow( () -> JacksonUtils.deserialize(Path.of("test.json"), CameraConfiguration.class)); + + new File("test.json").delete(); } } diff --git a/photon-server/src/test/java/org/photonvision/common/configuration/NetworkConfigTest.java b/photon-core/src/test/java/org/photonvision/common/configuration/NetworkConfigTest.java similarity index 95% rename from photon-server/src/test/java/org/photonvision/common/configuration/NetworkConfigTest.java rename to photon-core/src/test/java/org/photonvision/common/configuration/NetworkConfigTest.java index 94cba8596..181598bc3 100644 --- a/photon-server/src/test/java/org/photonvision/common/configuration/NetworkConfigTest.java +++ b/photon-core/src/test/java/org/photonvision/common/configuration/NetworkConfigTest.java @@ -18,6 +18,7 @@ package org.photonvision.common.configuration; import com.fasterxml.jackson.databind.ObjectMapper; +import java.io.File; import java.io.IOException; import java.nio.file.Path; import org.junit.jupiter.api.Assertions; @@ -30,5 +31,6 @@ public class NetworkConfigTest { var path = Path.of("netTest.json"); mapper.writeValue(path.toFile(), new NetworkConfig()); Assertions.assertDoesNotThrow(() -> mapper.readValue(path.toFile(), NetworkConfig.class)); + new File("netTest.json").delete(); } } diff --git a/photon-server/src/test/java/org/photonvision/common/util/LogFileManagementTest.java b/photon-core/src/test/java/org/photonvision/common/util/LogFileManagementTest.java similarity index 100% rename from photon-server/src/test/java/org/photonvision/common/util/LogFileManagementTest.java rename to photon-core/src/test/java/org/photonvision/common/util/LogFileManagementTest.java diff --git a/photon-server/src/test/java/org/photonvision/common/util/TimedTaskManagerTest.java b/photon-core/src/test/java/org/photonvision/common/util/TimedTaskManagerTest.java similarity index 100% rename from photon-server/src/test/java/org/photonvision/common/util/TimedTaskManagerTest.java rename to photon-core/src/test/java/org/photonvision/common/util/TimedTaskManagerTest.java diff --git a/photon-server/src/test/java/org/photonvision/hardware/HardwareConfigTest.java b/photon-core/src/test/java/org/photonvision/hardware/HardwareConfigTest.java similarity index 100% rename from photon-server/src/test/java/org/photonvision/hardware/HardwareConfigTest.java rename to photon-core/src/test/java/org/photonvision/hardware/HardwareConfigTest.java diff --git a/photon-server/src/test/java/org/photonvision/hardware/HardwareManagerTest.java b/photon-core/src/test/java/org/photonvision/hardware/HardwareManagerTest.java similarity index 100% rename from photon-server/src/test/java/org/photonvision/hardware/HardwareManagerTest.java rename to photon-core/src/test/java/org/photonvision/hardware/HardwareManagerTest.java diff --git a/photon-server/src/test/java/org/photonvision/hardware/HardwareTest.java b/photon-core/src/test/java/org/photonvision/hardware/HardwareTest.java similarity index 100% rename from photon-server/src/test/java/org/photonvision/hardware/HardwareTest.java rename to photon-core/src/test/java/org/photonvision/hardware/HardwareTest.java diff --git a/photon-server/src/test/java/org/photonvision/vision/QuirkyCameraTest.java b/photon-core/src/test/java/org/photonvision/vision/QuirkyCameraTest.java similarity index 100% rename from photon-server/src/test/java/org/photonvision/vision/QuirkyCameraTest.java rename to photon-core/src/test/java/org/photonvision/vision/QuirkyCameraTest.java diff --git a/photon-server/src/test/java/org/photonvision/vision/frame/provider/AcceleratedPicamFrameProviderTest.java b/photon-core/src/test/java/org/photonvision/vision/frame/provider/AcceleratedPicamFrameProviderTest.java similarity index 100% rename from photon-server/src/test/java/org/photonvision/vision/frame/provider/AcceleratedPicamFrameProviderTest.java rename to photon-core/src/test/java/org/photonvision/vision/frame/provider/AcceleratedPicamFrameProviderTest.java diff --git a/photon-server/src/test/java/org/photonvision/vision/frame/provider/FileFrameProviderTest.java b/photon-core/src/test/java/org/photonvision/vision/frame/provider/FileFrameProviderTest.java similarity index 100% rename from photon-server/src/test/java/org/photonvision/vision/frame/provider/FileFrameProviderTest.java rename to photon-core/src/test/java/org/photonvision/vision/frame/provider/FileFrameProviderTest.java diff --git a/photon-server/src/test/java/org/photonvision/vision/opencv/ContourTest.java b/photon-core/src/test/java/org/photonvision/vision/opencv/ContourTest.java similarity index 100% rename from photon-server/src/test/java/org/photonvision/vision/opencv/ContourTest.java rename to photon-core/src/test/java/org/photonvision/vision/opencv/ContourTest.java diff --git a/photon-server/src/test/java/org/photonvision/vision/pipeline/Calibrate3dPipeTest.java b/photon-core/src/test/java/org/photonvision/vision/pipeline/Calibrate3dPipeTest.java similarity index 100% rename from photon-server/src/test/java/org/photonvision/vision/pipeline/Calibrate3dPipeTest.java rename to photon-core/src/test/java/org/photonvision/vision/pipeline/Calibrate3dPipeTest.java diff --git a/photon-server/src/test/java/org/photonvision/vision/pipeline/CirclePNPTest.java b/photon-core/src/test/java/org/photonvision/vision/pipeline/CirclePNPTest.java similarity index 100% rename from photon-server/src/test/java/org/photonvision/vision/pipeline/CirclePNPTest.java rename to photon-core/src/test/java/org/photonvision/vision/pipeline/CirclePNPTest.java diff --git a/photon-server/src/test/java/org/photonvision/vision/pipeline/ColoredShapePipelineTest.java b/photon-core/src/test/java/org/photonvision/vision/pipeline/ColoredShapePipelineTest.java similarity index 100% rename from photon-server/src/test/java/org/photonvision/vision/pipeline/ColoredShapePipelineTest.java rename to photon-core/src/test/java/org/photonvision/vision/pipeline/ColoredShapePipelineTest.java diff --git a/photon-server/src/test/java/org/photonvision/vision/pipeline/PipelineProfilerTest.java b/photon-core/src/test/java/org/photonvision/vision/pipeline/PipelineProfilerTest.java similarity index 100% rename from photon-server/src/test/java/org/photonvision/vision/pipeline/PipelineProfilerTest.java rename to photon-core/src/test/java/org/photonvision/vision/pipeline/PipelineProfilerTest.java diff --git a/photon-server/src/test/java/org/photonvision/vision/pipeline/ReflectivePipelineTest.java b/photon-core/src/test/java/org/photonvision/vision/pipeline/ReflectivePipelineTest.java similarity index 100% rename from photon-server/src/test/java/org/photonvision/vision/pipeline/ReflectivePipelineTest.java rename to photon-core/src/test/java/org/photonvision/vision/pipeline/ReflectivePipelineTest.java diff --git a/photon-server/src/test/java/org/photonvision/vision/pipeline/SolvePNPTest.java b/photon-core/src/test/java/org/photonvision/vision/pipeline/SolvePNPTest.java similarity index 100% rename from photon-server/src/test/java/org/photonvision/vision/pipeline/SolvePNPTest.java rename to photon-core/src/test/java/org/photonvision/vision/pipeline/SolvePNPTest.java diff --git a/photon-server/src/test/java/org/photonvision/vision/processes/VisionModuleManagerTest.java b/photon-core/src/test/java/org/photonvision/vision/processes/VisionModuleManagerTest.java similarity index 100% rename from photon-server/src/test/java/org/photonvision/vision/processes/VisionModuleManagerTest.java rename to photon-core/src/test/java/org/photonvision/vision/processes/VisionModuleManagerTest.java diff --git a/photon-server/src/test/java/org/photonvision/vision/processes/VisionSourceManagerTest.java b/photon-core/src/test/java/org/photonvision/vision/processes/VisionSourceManagerTest.java similarity index 100% rename from photon-server/src/test/java/org/photonvision/vision/processes/VisionSourceManagerTest.java rename to photon-core/src/test/java/org/photonvision/vision/processes/VisionSourceManagerTest.java diff --git a/photon-server/src/test/java/org/photonvision/vision/target/TargetCalculationsTest.java b/photon-core/src/test/java/org/photonvision/vision/target/TargetCalculationsTest.java similarity index 100% rename from photon-server/src/test/java/org/photonvision/vision/target/TargetCalculationsTest.java rename to photon-core/src/test/java/org/photonvision/vision/target/TargetCalculationsTest.java diff --git a/photon-server/src/test/java/org/photonvision/vision/target/TrackedTargetTest.java b/photon-core/src/test/java/org/photonvision/vision/target/TrackedTargetTest.java similarity index 100% rename from photon-server/src/test/java/org/photonvision/vision/target/TrackedTargetTest.java rename to photon-core/src/test/java/org/photonvision/vision/target/TrackedTargetTest.java diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_close_1.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_close_1.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_close_1.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_close_1.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_close_10.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_close_10.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_close_10.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_close_10.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_close_11.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_close_11.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_close_11.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_close_11.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_close_12.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_close_12.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_close_12.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_close_12.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_close_13.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_close_13.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_close_13.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_close_13.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_close_14.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_close_14.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_close_14.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_close_14.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_close_15.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_close_15.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_close_15.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_close_15.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_close_16.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_close_16.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_close_16.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_close_16.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_close_17.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_close_17.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_close_17.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_close_17.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_close_18.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_close_18.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_close_18.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_close_18.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_close_19.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_close_19.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_close_19.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_close_19.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_close_2.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_close_2.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_close_2.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_close_2.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_close_20.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_close_20.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_close_20.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_close_20.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_close_21.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_close_21.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_close_21.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_close_21.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_close_22.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_close_22.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_close_22.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_close_22.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_close_23.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_close_23.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_close_23.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_close_23.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_close_24.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_close_24.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_close_24.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_close_24.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_close_25.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_close_25.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_close_25.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_close_25.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_close_26.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_close_26.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_close_26.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_close_26.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_close_3.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_close_3.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_close_3.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_close_3.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_close_4.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_close_4.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_close_4.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_close_4.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_close_5.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_close_5.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_close_5.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_close_5.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_close_6.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_close_6.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_close_6.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_close_6.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_close_8.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_close_8.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_close_8.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_close_8.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_close_9.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_close_9.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_close_9.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_close_9.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_far_1.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_far_1.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_far_1.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_far_1.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_far_10.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_far_10.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_far_10.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_far_10.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_far_2.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_far_2.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_far_2.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_far_2.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_far_3.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_far_3.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_far_3.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_far_3.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_far_4.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_far_4.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_far_4.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_far_4.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_far_5.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_far_5.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_far_5.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_far_5.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_far_6.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_far_6.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_far_6.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_far_6.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_far_7.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_far_7.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_far_7.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_far_7.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_far_8.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_far_8.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_far_8.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_far_8.jpg diff --git a/photon-server/src/test/resources/calibrationBoardImages/dotboard_far_9.jpg b/photon-core/src/test/resources/calibrationBoardImages/dotboard_far_9.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationBoardImages/dotboard_far_9.jpg rename to photon-core/src/test/resources/calibrationBoardImages/dotboard_far_9.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img1.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img1.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img1.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img1.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img10.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img10.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img10.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img10.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img11.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img11.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img11.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img11.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img12.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img12.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img12.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img12.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img13.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img13.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img13.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img13.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img14.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img14.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img14.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img14.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img15.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img15.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img15.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img15.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img16.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img16.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img16.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img16.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img17.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img17.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img17.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img17.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img18.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img18.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img18.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img18.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img19.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img19.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img19.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img19.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img2.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img2.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img2.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img2.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img20.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img20.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img20.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img20.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img21.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img21.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img21.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img21.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img22.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img22.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img22.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img22.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img23.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img23.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img23.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img23.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img24.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img24.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img24.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img24.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img25.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img25.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img25.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img25.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img3.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img3.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img3.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img3.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img4.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img4.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img4.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img4.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img5.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img5.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img5.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img5.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img6.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img6.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img6.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img6.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img7.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img7.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img7.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img7.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img8.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img8.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img8.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img8.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img9.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img9.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img9.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1280_720_1/img9.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img1.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img1.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img1.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img1.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img10.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img10.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img10.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img10.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img11.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img11.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img11.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img11.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img12.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img12.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img12.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img12.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img13.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img13.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img13.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img13.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img14.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img14.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img14.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img14.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img15.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img15.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img15.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img15.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img16.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img16.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img16.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img16.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img17.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img17.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img17.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img17.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img18.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img18.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img18.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img18.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img19.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img19.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img19.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img19.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img2.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img2.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img2.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img2.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img20.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img20.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img20.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img20.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img21.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img21.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img21.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img21.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img22.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img22.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img22.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img22.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img23.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img23.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img23.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img23.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img24.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img24.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img24.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img24.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img25.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img25.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img25.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img25.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img26.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img26.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img26.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img26.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img27.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img27.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img27.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img27.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img28.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img28.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img28.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img28.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img29.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img29.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img29.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img29.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img3.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img3.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img3.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img3.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img30.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img30.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img30.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img30.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img4.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img4.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img4.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img4.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img5.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img5.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img5.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img5.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img6.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img6.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img6.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img6.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img7.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img7.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img7.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img7.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img8.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img8.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img8.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img8.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img9.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img9.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img9.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/1920_1080_1/img9.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img1.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img1.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img1.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img1.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img10.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img10.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img10.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img10.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img11.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img11.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img11.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img11.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img12.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img12.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img12.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img12.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img13.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img13.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img13.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img13.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img14.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img14.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img14.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img14.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img15.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img15.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img15.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img15.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img16.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img16.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img16.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img16.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img17.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img17.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img17.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img17.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img18.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img18.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img18.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img18.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img19.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img19.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img19.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img19.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img2.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img2.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img2.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img2.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img20.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img20.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img20.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img20.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img21.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img21.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img21.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img21.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img22.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img22.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img22.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img22.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img23.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img23.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img23.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img23.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img24.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img24.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img24.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img24.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img25.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img25.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img25.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img25.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img3.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img3.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img3.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img3.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img4.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img4.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img4.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img4.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img5.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img5.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img5.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img5.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img6.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img6.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img6.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img6.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img7.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img7.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img7.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img7.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img8.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img8.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img8.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img8.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img9.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img9.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img9.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/320_240_1/img9.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img1.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img1.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img1.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img1.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img10.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img10.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img10.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img10.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img11.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img11.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img11.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img11.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img12.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img12.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img12.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img12.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img13.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img13.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img13.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img13.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img14.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img14.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img14.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img14.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img15.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img15.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img15.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img15.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img16.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img16.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img16.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img16.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img17.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img17.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img17.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img17.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img18.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img18.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img18.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img18.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img19.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img19.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img19.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img19.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img2.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img2.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img2.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img2.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img20.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img20.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img20.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img20.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img21.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img21.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img21.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img21.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img22.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img22.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img22.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img22.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img23.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img23.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img23.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img23.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img24.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img24.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img24.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img24.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img25.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img25.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img25.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img25.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img3.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img3.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img3.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img3.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img4.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img4.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img4.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img4.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img5.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img5.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img5.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img5.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img6.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img6.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img6.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img6.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img7.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img7.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img7.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img7.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img8.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img8.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img8.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img8.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img9.jpg b/photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img9.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img9.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/gloworm/960_720_1/img9.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img1.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img1.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img1.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img1.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img10.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img10.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img10.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img10.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img11.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img11.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img11.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img11.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img12.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img12.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img12.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img12.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img13.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img13.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img13.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img13.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img14.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img14.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img14.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img14.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img15.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img15.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img15.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img15.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img16.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img16.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img16.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img16.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img17.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img17.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img17.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img17.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img18.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img18.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img18.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img18.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img19.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img19.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img19.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img19.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img2.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img2.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img2.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img2.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img20.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img20.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img20.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img20.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img21.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img21.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img21.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img21.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img22.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img22.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img22.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img22.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img23.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img23.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img23.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img23.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img24.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img24.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img24.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img24.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img25.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img25.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img25.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img25.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img3.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img3.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img3.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img3.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img4.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img4.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img4.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img4.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img5.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img5.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img5.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img5.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img6.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img6.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img6.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img6.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img7.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img7.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img7.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img7.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img8.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img8.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img8.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img8.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img9.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img9.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img9.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/1920_1080_1/img9.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img1.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img1.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img1.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img1.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img10.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img10.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img10.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img10.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img11.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img11.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img11.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img11.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img12.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img12.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img12.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img12.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img13.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img13.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img13.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img13.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img14.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img14.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img14.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img14.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img15.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img15.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img15.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img15.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img16.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img16.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img16.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img16.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img17.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img17.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img17.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img17.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img18.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img18.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img18.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img18.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img19.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img19.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img19.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img19.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img2.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img2.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img2.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img2.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img20.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img20.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img20.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img20.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img21.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img21.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img21.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img21.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img22.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img22.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img22.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img22.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img23.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img23.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img23.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img23.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img24.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img24.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img24.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img24.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img25.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img25.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img25.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img25.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img26.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img26.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img26.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img26.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img3.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img3.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img3.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img3.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img4.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img4.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img4.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img4.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img5.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img5.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img5.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img5.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img6.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img6.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img6.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img6.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img7.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img7.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img7.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img7.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img8.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img8.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img8.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img8.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img9.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img9.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img9.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/320_240_1/img9.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img1.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img1.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img1.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img1.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img10.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img10.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img10.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img10.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img11.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img11.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img11.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img11.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img12.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img12.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img12.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img12.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img13.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img13.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img13.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img13.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img14.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img14.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img14.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img14.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img15.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img15.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img15.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img15.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img16.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img16.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img16.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img16.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img17.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img17.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img17.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img17.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img18.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img18.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img18.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img18.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img19.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img19.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img19.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img19.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img2.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img2.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img2.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img2.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img20.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img20.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img20.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img20.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img21.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img21.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img21.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img21.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img22.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img22.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img22.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img22.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img23.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img23.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img23.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img23.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img24.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img24.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img24.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img24.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img25.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img25.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img25.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img25.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img3.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img3.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img3.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img3.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img4.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img4.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img4.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img4.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img5.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img5.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img5.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img5.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img6.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img6.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img6.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img6.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img7.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img7.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img7.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img7.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img8.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img8.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img8.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img8.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img9.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img9.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img9.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/640_480_1/img9.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img1.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img1.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img1.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img1.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img10.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img10.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img10.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img10.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img11.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img11.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img11.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img11.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img12.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img12.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img12.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img12.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img13.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img13.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img13.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img13.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img14.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img14.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img14.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img14.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img15.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img15.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img15.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img15.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img16.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img16.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img16.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img16.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img17.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img17.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img17.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img17.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img18.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img18.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img18.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img18.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img19.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img19.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img19.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img19.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img2.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img2.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img2.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img2.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img20.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img20.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img20.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img20.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img21.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img21.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img21.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img21.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img22.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img22.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img22.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img22.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img23.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img23.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img23.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img23.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img24.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img24.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img24.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img24.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img25.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img25.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img25.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img25.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img3.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img3.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img3.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img3.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img4.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img4.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img4.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img4.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img5.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img5.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img5.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img5.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img6.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img6.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img6.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img6.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img7.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img7.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img7.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img7.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img8.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img8.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img8.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img8.jpg diff --git a/photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img9.jpg b/photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img9.jpg similarity index 100% rename from photon-server/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img9.jpg rename to photon-core/src/test/resources/calibrationSquaresImg/piCam/960_720_1/img9.jpg diff --git a/photon-server/src/test/resources/hardware/HardwareConfig.json b/photon-core/src/test/resources/hardware/HardwareConfig.json similarity index 100% rename from photon-server/src/test/resources/hardware/HardwareConfig.json rename to photon-core/src/test/resources/hardware/HardwareConfig.json diff --git a/photon-server/src/test/resources/testimages/2019/WPI/CargoAngledDark48in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/CargoAngledDark48in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/CargoAngledDark48in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/CargoAngledDark48in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/CargoSideStraightDark36in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/CargoSideStraightDark36in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/CargoSideStraightDark36in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/CargoSideStraightDark36in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/CargoSideStraightDark60in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/CargoSideStraightDark60in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/CargoSideStraightDark60in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/CargoSideStraightDark60in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/CargoSideStraightDark72in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/CargoSideStraightDark72in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/CargoSideStraightDark72in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/CargoSideStraightDark72in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/CargoSideStraightPanelDark36in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/CargoSideStraightPanelDark36in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/CargoSideStraightPanelDark36in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/CargoSideStraightPanelDark36in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/CargoStraightDark19in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/CargoStraightDark19in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/CargoStraightDark19in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/CargoStraightDark19in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/CargoStraightDark24in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/CargoStraightDark24in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/CargoStraightDark24in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/CargoStraightDark24in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/CargoStraightDark48in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/CargoStraightDark48in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/CargoStraightDark48in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/CargoStraightDark48in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/CargoStraightDark72in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/CargoStraightDark72in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/CargoStraightDark72in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/CargoStraightDark72in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/CargoStraightDark72in_HighRes.jpg b/photon-core/src/test/resources/testimages/2019/WPI/CargoStraightDark72in_HighRes.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/CargoStraightDark72in_HighRes.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/CargoStraightDark72in_HighRes.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/CargoStraightDark90in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/CargoStraightDark90in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/CargoStraightDark90in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/CargoStraightDark90in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/LoadingAngle36in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/LoadingAngle36in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/LoadingAngle36in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/LoadingAngle36in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/LoadingAngleDark36in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/LoadingAngleDark36in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/LoadingAngleDark36in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/LoadingAngleDark36in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/LoadingAngleDark60in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/LoadingAngleDark60in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/LoadingAngleDark60in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/LoadingAngleDark60in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/LoadingAngleDark96in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/LoadingAngleDark96in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/LoadingAngleDark96in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/LoadingAngleDark96in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/LoadingStraight108in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/LoadingStraight108in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/LoadingStraight108in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/LoadingStraight108in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/LoadingStraight36in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/LoadingStraight36in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/LoadingStraight36in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/LoadingStraight36in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/LoadingStraightDark108in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/LoadingStraightDark108in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/LoadingStraightDark108in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/LoadingStraightDark108in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/LoadingStraightDark10in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/LoadingStraightDark10in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/LoadingStraightDark10in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/LoadingStraightDark10in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/LoadingStraightDark13in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/LoadingStraightDark13in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/LoadingStraightDark13in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/LoadingStraightDark13in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/LoadingStraightDark21in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/LoadingStraightDark21in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/LoadingStraightDark21in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/LoadingStraightDark21in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/LoadingStraightDark36in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/LoadingStraightDark36in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/LoadingStraightDark36in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/LoadingStraightDark36in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/LoadingStraightDark48in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/LoadingStraightDark48in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/LoadingStraightDark48in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/LoadingStraightDark48in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/LoadingStraightDark60in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/LoadingStraightDark60in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/LoadingStraightDark60in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/LoadingStraightDark60in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/LoadingStraightDark84in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/LoadingStraightDark84in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/LoadingStraightDark84in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/LoadingStraightDark84in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/LoadingStraightDark9in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/LoadingStraightDark9in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/LoadingStraightDark9in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/LoadingStraightDark9in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/RocketBallStraightDark19in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/RocketBallStraightDark19in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/RocketBallStraightDark19in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/RocketBallStraightDark19in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/RocketBallStraightDark24in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/RocketBallStraightDark24in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/RocketBallStraightDark24in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/RocketBallStraightDark24in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/RocketBallStraightDark29in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/RocketBallStraightDark29in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/RocketBallStraightDark29in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/RocketBallStraightDark29in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/RocketBallStraightDark48in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/RocketBallStraightDark48in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/RocketBallStraightDark48in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/RocketBallStraightDark48in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/RocketPanelAngleDark48in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/RocketPanelAngleDark48in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/RocketPanelAngleDark48in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/RocketPanelAngleDark48in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/RocketPanelAngleDark60in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/RocketPanelAngleDark60in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/RocketPanelAngleDark60in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/RocketPanelAngleDark60in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/RocketPanelAngleDark84in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/RocketPanelAngleDark84in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/RocketPanelAngleDark84in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/RocketPanelAngleDark84in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/RocketPanelStraight48in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/RocketPanelStraight48in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/RocketPanelStraight48in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/RocketPanelStraight48in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/RocketPanelStraight84in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/RocketPanelStraight84in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/RocketPanelStraight84in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/RocketPanelStraight84in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark12in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark12in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark12in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark12in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark16in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark16in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark16in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark16in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark24in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark24in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark24in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark24in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark36in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark36in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark36in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark36in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark48in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark48in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark48in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark48in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark60in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark60in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark60in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark60in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark72in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark72in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark72in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark72in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark96in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark96in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark96in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/RocketPanelStraightDark96in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/RocketStraightDark96in.jpg b/photon-core/src/test/resources/testimages/2019/WPI/RocketStraightDark96in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/RocketStraightDark96in.jpg rename to photon-core/src/test/resources/testimages/2019/WPI/RocketStraightDark96in.jpg diff --git a/photon-server/src/test/resources/testimages/2019/WPI/info.txt b/photon-core/src/test/resources/testimages/2019/WPI/info.txt similarity index 100% rename from photon-server/src/test/resources/testimages/2019/WPI/info.txt rename to photon-core/src/test/resources/testimages/2019/WPI/info.txt diff --git a/photon-server/src/test/resources/testimages/2020/WPI/BlueGoal-060in-Center.jpg b/photon-core/src/test/resources/testimages/2020/WPI/BlueGoal-060in-Center.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2020/WPI/BlueGoal-060in-Center.jpg rename to photon-core/src/test/resources/testimages/2020/WPI/BlueGoal-060in-Center.jpg diff --git a/photon-server/src/test/resources/testimages/2020/WPI/BlueGoal-084in-Center-720p.jpg b/photon-core/src/test/resources/testimages/2020/WPI/BlueGoal-084in-Center-720p.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2020/WPI/BlueGoal-084in-Center-720p.jpg rename to photon-core/src/test/resources/testimages/2020/WPI/BlueGoal-084in-Center-720p.jpg diff --git a/photon-server/src/test/resources/testimages/2020/WPI/BlueGoal-084in-Center.jpg b/photon-core/src/test/resources/testimages/2020/WPI/BlueGoal-084in-Center.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2020/WPI/BlueGoal-084in-Center.jpg rename to photon-core/src/test/resources/testimages/2020/WPI/BlueGoal-084in-Center.jpg diff --git a/photon-server/src/test/resources/testimages/2020/WPI/BlueGoal-108in-Center.jpg b/photon-core/src/test/resources/testimages/2020/WPI/BlueGoal-108in-Center.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2020/WPI/BlueGoal-108in-Center.jpg rename to photon-core/src/test/resources/testimages/2020/WPI/BlueGoal-108in-Center.jpg diff --git a/photon-server/src/test/resources/testimages/2020/WPI/BlueGoal-132in-Center.jpg b/photon-core/src/test/resources/testimages/2020/WPI/BlueGoal-132in-Center.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2020/WPI/BlueGoal-132in-Center.jpg rename to photon-core/src/test/resources/testimages/2020/WPI/BlueGoal-132in-Center.jpg diff --git a/photon-server/src/test/resources/testimages/2020/WPI/BlueGoal-156in-Center.jpg b/photon-core/src/test/resources/testimages/2020/WPI/BlueGoal-156in-Center.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2020/WPI/BlueGoal-156in-Center.jpg rename to photon-core/src/test/resources/testimages/2020/WPI/BlueGoal-156in-Center.jpg diff --git a/photon-server/src/test/resources/testimages/2020/WPI/BlueGoal-156in-Left.jpg b/photon-core/src/test/resources/testimages/2020/WPI/BlueGoal-156in-Left.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2020/WPI/BlueGoal-156in-Left.jpg rename to photon-core/src/test/resources/testimages/2020/WPI/BlueGoal-156in-Left.jpg diff --git a/photon-server/src/test/resources/testimages/2020/WPI/BlueGoal-180in-Center.jpg b/photon-core/src/test/resources/testimages/2020/WPI/BlueGoal-180in-Center.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2020/WPI/BlueGoal-180in-Center.jpg rename to photon-core/src/test/resources/testimages/2020/WPI/BlueGoal-180in-Center.jpg diff --git a/photon-server/src/test/resources/testimages/2020/WPI/BlueGoal-224in-Left.jpg b/photon-core/src/test/resources/testimages/2020/WPI/BlueGoal-224in-Left.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2020/WPI/BlueGoal-224in-Left.jpg rename to photon-core/src/test/resources/testimages/2020/WPI/BlueGoal-224in-Left.jpg diff --git a/photon-server/src/test/resources/testimages/2020/WPI/BlueGoal-228in-ProtectedZone.jpg b/photon-core/src/test/resources/testimages/2020/WPI/BlueGoal-228in-ProtectedZone.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2020/WPI/BlueGoal-228in-ProtectedZone.jpg rename to photon-core/src/test/resources/testimages/2020/WPI/BlueGoal-228in-ProtectedZone.jpg diff --git a/photon-server/src/test/resources/testimages/2020/WPI/BlueGoal-330in-ProtectedZone.jpg b/photon-core/src/test/resources/testimages/2020/WPI/BlueGoal-330in-ProtectedZone.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2020/WPI/BlueGoal-330in-ProtectedZone.jpg rename to photon-core/src/test/resources/testimages/2020/WPI/BlueGoal-330in-ProtectedZone.jpg diff --git a/photon-server/src/test/resources/testimages/2020/WPI/BlueGoal-Far-ProtectedZone.jpg b/photon-core/src/test/resources/testimages/2020/WPI/BlueGoal-Far-ProtectedZone.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2020/WPI/BlueGoal-Far-ProtectedZone.jpg rename to photon-core/src/test/resources/testimages/2020/WPI/BlueGoal-Far-ProtectedZone.jpg diff --git a/photon-server/src/test/resources/testimages/2020/WPI/RedLoading-016in-Down.jpg b/photon-core/src/test/resources/testimages/2020/WPI/RedLoading-016in-Down.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2020/WPI/RedLoading-016in-Down.jpg rename to photon-core/src/test/resources/testimages/2020/WPI/RedLoading-016in-Down.jpg diff --git a/photon-server/src/test/resources/testimages/2020/WPI/RedLoading-030in-Down.jpg b/photon-core/src/test/resources/testimages/2020/WPI/RedLoading-030in-Down.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2020/WPI/RedLoading-030in-Down.jpg rename to photon-core/src/test/resources/testimages/2020/WPI/RedLoading-030in-Down.jpg diff --git a/photon-server/src/test/resources/testimages/2020/WPI/RedLoading-048in-Down.jpg b/photon-core/src/test/resources/testimages/2020/WPI/RedLoading-048in-Down.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2020/WPI/RedLoading-048in-Down.jpg rename to photon-core/src/test/resources/testimages/2020/WPI/RedLoading-048in-Down.jpg diff --git a/photon-server/src/test/resources/testimages/2020/WPI/RedLoading-048in.jpg b/photon-core/src/test/resources/testimages/2020/WPI/RedLoading-048in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2020/WPI/RedLoading-048in.jpg rename to photon-core/src/test/resources/testimages/2020/WPI/RedLoading-048in.jpg diff --git a/photon-server/src/test/resources/testimages/2020/WPI/RedLoading-060in.jpg b/photon-core/src/test/resources/testimages/2020/WPI/RedLoading-060in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2020/WPI/RedLoading-060in.jpg rename to photon-core/src/test/resources/testimages/2020/WPI/RedLoading-060in.jpg diff --git a/photon-server/src/test/resources/testimages/2020/WPI/RedLoading-084in.jpg b/photon-core/src/test/resources/testimages/2020/WPI/RedLoading-084in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2020/WPI/RedLoading-084in.jpg rename to photon-core/src/test/resources/testimages/2020/WPI/RedLoading-084in.jpg diff --git a/photon-server/src/test/resources/testimages/2020/WPI/RedLoading-108in.jpg b/photon-core/src/test/resources/testimages/2020/WPI/RedLoading-108in.jpg similarity index 100% rename from photon-server/src/test/resources/testimages/2020/WPI/RedLoading-108in.jpg rename to photon-core/src/test/resources/testimages/2020/WPI/RedLoading-108in.jpg diff --git a/photon-server/src/test/resources/testimages/2020/WPI/info.txt b/photon-core/src/test/resources/testimages/2020/WPI/info.txt similarity index 100% rename from photon-server/src/test/resources/testimages/2020/WPI/info.txt rename to photon-core/src/test/resources/testimages/2020/WPI/info.txt diff --git a/photon-server/src/test/resources/testimages/polygons/polygons.png b/photon-core/src/test/resources/testimages/polygons/polygons.png similarity index 100% rename from photon-server/src/test/resources/testimages/polygons/polygons.png rename to photon-core/src/test/resources/testimages/polygons/polygons.png diff --git a/photon-server/src/test/resources/testimages/polygons/polygons_2.png b/photon-core/src/test/resources/testimages/polygons/polygons_2.png similarity index 100% rename from photon-server/src/test/resources/testimages/polygons/polygons_2.png rename to photon-core/src/test/resources/testimages/polygons/polygons_2.png diff --git a/photon-server/src/test/resources/testimages/polygons/powercells/powercell_test_1.png b/photon-core/src/test/resources/testimages/polygons/powercells/powercell_test_1.png similarity index 100% rename from photon-server/src/test/resources/testimages/polygons/powercells/powercell_test_1.png rename to photon-core/src/test/resources/testimages/polygons/powercells/powercell_test_1.png diff --git a/photon-server/src/test/resources/testimages/polygons/powercells/powercell_test_2.png b/photon-core/src/test/resources/testimages/polygons/powercells/powercell_test_2.png similarity index 100% rename from photon-server/src/test/resources/testimages/polygons/powercells/powercell_test_2.png rename to photon-core/src/test/resources/testimages/polygons/powercells/powercell_test_2.png diff --git a/photon-server/src/test/resources/testimages/polygons/powercells/powercell_test_3.png b/photon-core/src/test/resources/testimages/polygons/powercells/powercell_test_3.png similarity index 100% rename from photon-server/src/test/resources/testimages/polygons/powercells/powercell_test_3.png rename to photon-core/src/test/resources/testimages/polygons/powercells/powercell_test_3.png diff --git a/photon-server/src/test/resources/testimages/polygons/powercells/powercell_test_4.png b/photon-core/src/test/resources/testimages/polygons/powercells/powercell_test_4.png similarity index 100% rename from photon-server/src/test/resources/testimages/polygons/powercells/powercell_test_4.png rename to photon-core/src/test/resources/testimages/polygons/powercells/powercell_test_4.png diff --git a/photon-server/src/test/resources/testimages/polygons/powercells/powercell_test_5.png b/photon-core/src/test/resources/testimages/polygons/powercells/powercell_test_5.png similarity index 100% rename from photon-server/src/test/resources/testimages/polygons/powercells/powercell_test_5.png rename to photon-core/src/test/resources/testimages/polygons/powercells/powercell_test_5.png diff --git a/photon-server/src/test/resources/testimages/polygons/powercells/powercell_test_6.png b/photon-core/src/test/resources/testimages/polygons/powercells/powercell_test_6.png similarity index 100% rename from photon-server/src/test/resources/testimages/polygons/powercells/powercell_test_6.png rename to photon-core/src/test/resources/testimages/polygons/powercells/powercell_test_6.png diff --git a/photon-server/versioningHelper.gradle b/photon-core/versioningHelper.gradle similarity index 100% rename from photon-server/versioningHelper.gradle rename to photon-core/versioningHelper.gradle diff --git a/photon-server/build.gradle b/photon-server/build.gradle index 166e35139..5ef591e91 100644 --- a/photon-server/build.gradle +++ b/photon-server/build.gradle @@ -1,103 +1,29 @@ plugins { - id 'java' id 'application' id 'com.github.johnrengelman.shadow' version '5.2.0' - id "com.diffplug.gradle.spotless" version "3.28.0" id 'org.hidetake.ssh' version '2.10.1' - id "jacoco" } -apply from: 'versioningHelper.gradle' +evaluationDependsOn(':photon-core') mainClassName = 'org.photonvision.Main' group 'org.photonvision' version versionString -sourceCompatibility = 11 - -repositories { - jcenter() - mavenCentral() - maven { - url = "https://maven.photonvision.org/repository/internal/" - } - maven { - url = 'https://frcmaven.wpi.edu:443/artifactory/development' - } -} - -ext { - wpilibVersion = '2020.3.2-99-g9f4de91' - joglVersion = '2.4.0-rc-20200307' - openCVVersion = '3.4.7-2' -} +apply from: '../common.gradle' dependencies { - implementation "io.javalin:javalin:3.7.0" + // photon core + implementation project(':photon-core') - implementation "com.fasterxml.jackson.core:jackson-annotations:2.10.0" - implementation "com.fasterxml.jackson.core:jackson-core:2.10.0" - implementation "com.fasterxml.jackson.core:jackson-databind:2.10.0" + implementation "io.javalin:javalin:3.7.0" implementation "org.msgpack:msgpack-core:0.8.20" implementation "org.msgpack:jackson-dataformat-msgpack:0.8.20" - implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.9' - implementation "org.apache.commons:commons-math3:3.6.1" - implementation group: 'commons-io', name: 'commons-io', version: '2.6' - implementation group: 'commons-cli', name: 'commons-cli', version: '1.4' - implementation "org.apache.commons:commons-collections4:4.4" - implementation "org.apache.commons:commons-exec:1.3" - - // JOGL stuff (currently we only distribute for aarch64, which is Pi 4) - implementation "org.jogamp.gluegen:gluegen-rt:$joglVersion" - implementation "org.jogamp.jogl:jogl-all:$joglVersion" - -// implementation "org.jogamp.gluegen:gluegen-rt:$joglVersion:natives-linux-amd64" -// implementation "org.jogamp.gluegen:gluegen-rt:$joglVersion:natives-linux-armv6hf" - implementation "org.jogamp.gluegen:gluegen-rt:$joglVersion:natives-linux-aarch64" -// implementation "org.jogamp.gluegen:gluegen-rt:$joglVersion:natives-macosx-universal" -// implementation "org.jogamp.gluegen:gluegen-rt:$joglVersion:natives-windows-amd64" - -// implementation "org.jogamp.jogl:jogl-all:$joglVersion:natives-linux-amd64" -// implementation "org.jogamp.jogl:jogl-all:$joglVersion:natives-linux-armv6hf" - implementation "org.jogamp.jogl:jogl-all:$joglVersion:natives-linux-aarch64" -// implementation "org.jogamp.jogl:jogl-all:$joglVersion:natives-macosx-universal" -// implementation "org.jogamp.jogl:jogl-all:$joglVersion:natives-windows-amd64" - - // WPILib stuff - implementation "edu.wpi.first.wpiutil:wpiutil-java:$wpilibVersion" - implementation "edu.wpi.first.cameraserver:cameraserver-java:$wpilibVersion" - - implementation "edu.wpi.first.cscore:cscore-java:$wpilibVersion" - compile "edu.wpi.first.cscore:cscore-jni:$wpilibVersion:linuxaarch64bionic" - compile "edu.wpi.first.cscore:cscore-jni:$wpilibVersion:linuxraspbian" - compile "edu.wpi.first.cscore:cscore-jni:$wpilibVersion:linuxx86-64" - compile "edu.wpi.first.cscore:cscore-jni:$wpilibVersion:osxx86-64" - compile "edu.wpi.first.cscore:cscore-jni:$wpilibVersion:windowsx86-64" - - implementation "edu.wpi.first.ntcore:ntcore-java:$wpilibVersion" - compile "edu.wpi.first.ntcore:ntcore-jni:$wpilibVersion:linuxaarch64bionic" - compile "edu.wpi.first.ntcore:ntcore-jni:$wpilibVersion:linuxraspbian" - compile "edu.wpi.first.ntcore:ntcore-jni:$wpilibVersion:linuxx86-64" - compile "edu.wpi.first.ntcore:ntcore-jni:$wpilibVersion:osxx86-64" - compile "edu.wpi.first.ntcore:ntcore-jni:$wpilibVersion:windowsx86-64" - - implementation "edu.wpi.first.thirdparty.frc2020.opencv:opencv-java:$openCVVersion" - compile "edu.wpi.first.thirdparty.frc2020.opencv:opencv-jni:$openCVVersion:linuxaarch64bionic" - compile "edu.wpi.first.thirdparty.frc2020.opencv:opencv-jni:$openCVVersion:linuxraspbian" - compile "edu.wpi.first.thirdparty.frc2020.opencv:opencv-jni:$openCVVersion:linuxx86-64" - compile "edu.wpi.first.thirdparty.frc2020.opencv:opencv-jni:$openCVVersion:osxx86-64" - compile "edu.wpi.first.thirdparty.frc2020.opencv:opencv-jni:$openCVVersion:windowsx86-64" - compile "org.slf4j:slf4j-simple:1.8.0-beta4" - // Zip - compile "org.zeroturnaround:zt-zip:1.14" - - // test stuff - testImplementation('org.junit.jupiter:junit-jupiter:5.6.0') } shadowJar { @@ -106,19 +32,6 @@ shadowJar { archiveFileName.set("photonvision-${project.version}.jar") } -test { - useJUnitPlatform() - testLogging { - events "passed", "skipped", "failed", "standardOut", "standardError" - } -} - -task testHeadless(type: Test) { - group = 'verification' - systemProperty("java.awt.headless", "true") - useJUnitPlatform() -} - task runNpmOnClient(type: Exec) { workingDir "${projectDir}/../photon-client" if (System.getProperty('os.name').toLowerCase(Locale.ROOT).contains('windows')) { @@ -139,28 +52,6 @@ buildAndCopyUI.dependsOn copyClientUIToResources copyClientUIToResources.dependsOn runNpmOnClient copyClientUIToResources.shouldRunAfter runNpmOnClient -task generateJavaDocs(type: Javadoc) { - source = sourceSets.main.allJava - classpath = sourceSets.main.compileClasspath - destinationDir = file("${projectDir}/build/docs") -} - -spotless { - java { - googleJavaFormat() - paddedCell() - indentWithTabs(2) - indentWithSpaces(4) - removeUnusedImports() - } - java { - target "src/*/java/org/**/*.java" - licenseHeaderFile "$rootDir/LicenseHeader.txt" - - targetExclude("src/main/java/org/photonvision/PhotonVersion.java") - } -} - run { if (project.hasProperty("profile")) { jvmArgs=[ @@ -173,22 +64,6 @@ run { } } -jacocoTestReport { - dependsOn test // Tests are required to run before generating the report - - reports { - xml.enabled true - } - - afterEvaluate { - classDirectories.setFrom(files(classDirectories.files.collect { - fileTree(dir: it, - exclude: 'edu/wpi/**' - ) - })) - } -} - remotes { pi { diff --git a/photon-server/netTest.json b/photon-server/netTest.json new file mode 100644 index 000000000..a28a23a86 --- /dev/null +++ b/photon-server/netTest.json @@ -0,0 +1 @@ +{"teamNumber":0,"connectionType":"DHCP","staticIp":"","hostname":"photonvision","runNTServer":false,"shouldManage":false} \ No newline at end of file diff --git a/photon-server/settings.gradle b/photon-server/settings.gradle index 94bb4b974..8771f3c13 100644 --- a/photon-server/settings.gradle +++ b/photon-server/settings.gradle @@ -1,2 +1,2 @@ -rootProject.name = 'PhotonServer' +rootProject.name = 'photon-server' diff --git a/photon-server/src/main/java/edu/wpi/first/wpilibj/LinearFilter.java b/photon-server/src/main/java/edu/wpi/first/wpilibj/LinearFilter.java deleted file mode 100644 index 4d20d2106..000000000 --- a/photon-server/src/main/java/edu/wpi/first/wpilibj/LinearFilter.java +++ /dev/null @@ -1,165 +0,0 @@ -/*----------------------------------------------------------------------------*/ -/* Copyright (c) 2015-2020 FIRST. All Rights Reserved. */ -/* Open Source Software - may be modified and shared by FRC teams. The code */ -/* must be accompanied by the FIRST BSD license file in the root directory of */ -/* the project. */ -/*----------------------------------------------------------------------------*/ - -package edu.wpi.first.wpilibj; - -import java.util.Arrays; - -import edu.wpi.first.wpiutil.CircularBuffer; - -/** - * This class implements a linear, digital filter. All types of FIR and IIR filters are supported. - * Static factory methods are provided to create commonly used types of filters. - * - *

Filters are of the form: y[n] = (b0*x[n] + b1*x[n-1] + ... + bP*x[n-P]) - (a0*y[n-1] + - * a2*y[n-2] + ... + aQ*y[n-Q]) - * - *

Where: y[n] is the output at time "n" x[n] is the input at time "n" y[n-1] is the output from - * the LAST time step ("n-1") x[n-1] is the input from the LAST time step ("n-1") b0...bP are the - * "feedforward" (FIR) gains a0...aQ are the "feedback" (IIR) gains IMPORTANT! Note the "-" sign in - * front of the feedback term! This is a common convention in signal processing. - * - *

What can linear filters do? Basically, they can filter, or diminish, the effects of - * undesirable input frequencies. High frequencies, or rapid changes, can be indicative of sensor - * noise or be otherwise undesirable. A "low pass" filter smooths out the signal, reducing the - * impact of these high frequency components. Likewise, a "high pass" filter gets rid of - * slow-moving signal components, letting you detect large changes more easily. - * - *

Example FRC applications of filters: - Getting rid of noise from an analog sensor input (note: - * the roboRIO's FPGA can do this faster in hardware) - Smoothing out joystick input to prevent the - * wheels from slipping or the robot from tipping - Smoothing motor commands so that unnecessary - * strain isn't put on electrical or mechanical components - If you use clever gains, you can make a - * PID controller out of this class! - * - *

For more on filters, we highly recommend the following articles:
- * https://en.wikipedia.org/wiki/Linear_filter
- * https://en.wikipedia.org/wiki/Iir_filter
- * https://en.wikipedia.org/wiki/Fir_filter
- * - *

Note 1: calculate() should be called by the user on a known, regular period. You can use a - * Notifier for this or do it "inline" with code in a periodic function. - * - *

Note 2: For ALL filters, gains are necessarily a function of frequency. If you make a filter - * that works well for you at, say, 100Hz, you will most definitely need to adjust the gains if you - * then want to run it at 200Hz! Combining this with Note 1 - the impetus is on YOU as a developer - * to make sure calculate() gets called at the desired, constant frequency! - */ -public class LinearFilter { - private final CircularBuffer m_inputs; - private final CircularBuffer m_outputs; - private final double[] m_inputGains; - private final double[] m_outputGains; - - /** - * Create a linear FIR or IIR filter. - * - * @param ffGains The "feed forward" or FIR gains. - * @param fbGains The "feed back" or IIR gains. - */ - public LinearFilter(double[] ffGains, double[] fbGains) { - m_inputs = new CircularBuffer(ffGains.length); - m_outputs = new CircularBuffer(fbGains.length); - m_inputGains = Arrays.copyOf(ffGains, ffGains.length); - m_outputGains = Arrays.copyOf(fbGains, fbGains.length); - - } - - /** - * Creates a one-pole IIR low-pass filter of the form: y[n] = (1-gain)*x[n] + gain*y[n-1] where - * gain = e^(-dt / T), T is the time constant in seconds. - * - *

This filter is stable for time constants greater than zero. - * - * @param timeConstant The discrete-time time constant in seconds. - * @param period The period in seconds between samples taken by the user. - */ - public static LinearFilter singlePoleIIR(double timeConstant, - double period) { - double gain = Math.exp(-period / timeConstant); - double[] ffGains = {1.0 - gain}; - double[] fbGains = {-gain}; - - return new LinearFilter(ffGains, fbGains); - } - - /** - * Creates a first-order high-pass filter of the form: y[n] = gain*x[n] + (-gain)*x[n-1] + - * gain*y[n-1] where gain = e^(-dt / T), T is the time constant in seconds. - * - *

This filter is stable for time constants greater than zero. - * - * @param timeConstant The discrete-time time constant in seconds. - * @param period The period in seconds between samples taken by the user. - */ - public static LinearFilter highPass(double timeConstant, - double period) { - double gain = Math.exp(-period / timeConstant); - double[] ffGains = {gain, -gain}; - double[] fbGains = {-gain}; - - return new LinearFilter(ffGains, fbGains); - } - - /** - * Creates a K-tap FIR moving average filter of the form: y[n] = 1/k * (x[k] + x[k-1] + ... + - * x[0]). - * - *

This filter is always stable. - * - * @param taps The number of samples to average over. Higher = smoother but slower. - * @throws IllegalArgumentException if number of taps is less than 1. - */ - public static LinearFilter movingAverage(int taps) { - if (taps <= 0) { - throw new IllegalArgumentException("Number of taps was not at least 1"); - } - - double[] ffGains = new double[taps]; - for (int i = 0; i < ffGains.length; i++) { - ffGains[i] = 1.0 / taps; - } - - double[] fbGains = new double[0]; - - return new LinearFilter(ffGains, fbGains); - } - - /** - * Reset the filter state. - */ - public void reset() { - m_inputs.clear(); - m_outputs.clear(); - } - - /** - * Calculates the next value of the filter. - * - * @param input Current input value. - * - * @return The filtered value at this step - */ - public double calculate(double input) { - double retVal = 0.0; - - // Rotate the inputs - m_inputs.addFirst(input); - - // Calculate the new value - for (int i = 0; i < m_inputGains.length; i++) { - retVal += m_inputs.get(i) * m_inputGains[i]; - } - for (int i = 0; i < m_outputGains.length; i++) { - retVal -= m_outputs.get(i) * m_outputGains[i]; - } - - // Rotate the outputs - m_outputs.addFirst(retVal); - - return retVal; - } -} diff --git a/photon-server/src/main/java/edu/wpi/first/wpilibj/geometry/Pose2d.java b/photon-server/src/main/java/edu/wpi/first/wpilibj/geometry/Pose2d.java deleted file mode 100644 index 70db0eccc..000000000 --- a/photon-server/src/main/java/edu/wpi/first/wpilibj/geometry/Pose2d.java +++ /dev/null @@ -1,240 +0,0 @@ -/*----------------------------------------------------------------------------*/ -/* Copyright (c) 2019-2020 FIRST. All Rights Reserved. */ -/* Open Source Software - may be modified and shared by FRC teams. The code */ -/* must be accompanied by the FIRST BSD license file in the root directory of */ -/* the project. */ -/*----------------------------------------------------------------------------*/ - -package edu.wpi.first.wpilibj.geometry; - -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.HashMap; -import java.util.Objects; - -/** Represents a 2d pose containing translational and rotational elements. */ -@JsonIgnoreProperties(ignoreUnknown = true) -@JsonAutoDetect(getterVisibility = JsonAutoDetect.Visibility.NONE) -public class Pose2d { - private final Translation2d m_translation; - private final Rotation2d m_rotation; - - /** - * Constructs a pose at the origin facing toward the positive X axis. (Translation2d{0, 0} and - * Rotation{0}) - */ - public Pose2d() { - m_translation = new Translation2d(); - m_rotation = new Rotation2d(); - } - - /** - * Constructs a pose with the specified translation and rotation. - * - * @param translation The translational component of the pose. - * @param rotation The rotational component of the pose. - */ - @JsonCreator - public Pose2d( - @JsonProperty(required = true, value = "translation") Translation2d translation, - @JsonProperty(required = true, value = "rotation") Rotation2d rotation) { - m_translation = translation; - m_rotation = rotation; - } - - /** - * Convenience constructors that takes in x and y values directly instead of having to construct a - * Translation2d. - * - * @param x The x component of the translational component of the pose. - * @param y The y component of the translational component of the pose. - * @param rotation The rotational component of the pose. - */ - @SuppressWarnings("ParameterName") - public Pose2d(double x, double y, Rotation2d rotation) { - m_translation = new Translation2d(x, y); - m_rotation = rotation; - } - - /** - * Transforms the pose by the given transformation and returns the new transformed pose. - * - *

The matrix multiplication is as follows [x_new] [cos, -sin, 0][transform.x] [y_new] += [sin, - * cos, 0][transform.y] [t_new] [0, 0, 1][transform.t] - * - * @param other The transform to transform the pose by. - * @return The transformed pose. - */ - public Pose2d plus(Transform2d other) { - return transformBy(other); - } - - /** - * Returns the Transform2d that maps the one pose to another. - * - * @param other The initial pose of the transformation. - * @return The transform that maps the other pose to the current pose. - */ - public Transform2d minus(Pose2d other) { - final var pose = this.relativeTo(other); - return new Transform2d(pose.getTranslation(), pose.getRotation()); - } - - /** - * Returns the translation component of the transformation. - * - * @return The translational component of the pose. - */ - @JsonProperty - public Translation2d getTranslation() { - return m_translation; - } - - /** - * Returns the rotational component of the transformation. - * - * @return The rotational component of the pose. - */ - @JsonProperty - public Rotation2d getRotation() { - return m_rotation; - } - - /** - * Transforms the pose by the given transformation and returns the new pose. See + operator for - * the matrix multiplication performed. - * - * @param other The transform to transform the pose by. - * @return The transformed pose. - */ - public Pose2d transformBy(Transform2d other) { - return new Pose2d( - m_translation.plus(other.getTranslation().rotateBy(m_rotation)), - m_rotation.plus(other.getRotation())); - } - - /** - * Returns the other pose relative to the current pose. - * - *

This function can often be used for trajectory tracking or pose stabilization algorithms to - * get the error between the reference and the current pose. - * - * @param other The pose that is the origin of the new coordinate frame that the current pose will - * be converted into. - * @return The current pose relative to the new origin pose. - */ - public Pose2d relativeTo(Pose2d other) { - var transform = new Transform2d(other, this); - return new Pose2d(transform.getTranslation(), transform.getRotation()); - } - - /** - * Obtain a new Pose2d from a (constant curvature) velocity. - * - *

See Controls Engineering in - * the FIRST Robotics Competition section on nonlinear pose estimation for derivation. - * - *

The twist is a change in pose in the robot's coordinate frame since the previous pose - * update. When the user runs exp() on the previous known field-relative pose with the argument - * being the twist, the user will receive the new field-relative pose. - * - *

"Exp" represents the pose exponential, which is solving a differential equation moving the - * pose forward in time. - * - * @param twist The change in pose in the robot's coordinate frame since the previous pose update. - * For example, if a non-holonomic robot moves forward 0.01 meters and changes angle by 0.5 - * degrees since the previous pose update, the twist would be Twist2d{0.01, 0.0, - * toRadians(0.5)} - * @return The new pose of the robot. - */ - @SuppressWarnings("LocalVariableName") - public Pose2d exp(Twist2d twist) { - double dx = twist.dx; - double dy = twist.dy; - double dtheta = twist.dtheta; - - double sinTheta = Math.sin(dtheta); - double cosTheta = Math.cos(dtheta); - - double s; - double c; - if (Math.abs(dtheta) < 1E-9) { - s = 1.0 - 1.0 / 6.0 * dtheta * dtheta; - c = 0.5 * dtheta; - } else { - s = sinTheta / dtheta; - c = (1 - cosTheta) / dtheta; - } - var transform = - new Transform2d( - new Translation2d(dx * s - dy * c, dx * c + dy * s), - new Rotation2d(cosTheta, sinTheta)); - - return this.plus(transform); - } - - /** - * Returns a Twist2d that maps this pose to the end pose. If c is the output of a.Log(b), then - * a.Exp(c) would yield b. - * - * @param end The end pose for the transformation. - * @return The twist that maps this to end. - */ - public Twist2d log(Pose2d end) { - final var transform = end.relativeTo(this); - final var dtheta = transform.getRotation().getRadians(); - final var halfDtheta = dtheta / 2.0; - - final var cosMinusOne = transform.getRotation().getCos() - 1; - - double halfThetaByTanOfHalfDtheta; - if (Math.abs(cosMinusOne) < 1E-9) { - halfThetaByTanOfHalfDtheta = 1.0 - 1.0 / 12.0 * dtheta * dtheta; - } else { - halfThetaByTanOfHalfDtheta = -(halfDtheta * transform.getRotation().getSin()) / cosMinusOne; - } - - Translation2d translationPart = - transform - .getTranslation() - .rotateBy(new Rotation2d(halfThetaByTanOfHalfDtheta, -halfDtheta)) - .times(Math.hypot(halfThetaByTanOfHalfDtheta, halfDtheta)); - - return new Twist2d(translationPart.getX(), translationPart.getY(), dtheta); - } - - @Override - public String toString() { - return String.format("Pose2d(%s, %s)", m_translation, m_rotation); - } - - /** - * Checks equality between this Pose2d and another object. - * - * @param obj The other object. - * @return Whether the two objects are equal or not. - */ - @Override - public boolean equals(Object obj) { - if (obj instanceof Pose2d) { - return ((Pose2d) obj).m_translation.equals(m_translation) - && ((Pose2d) obj).m_rotation.equals(m_rotation); - } - return false; - } - - @Override - public int hashCode() { - return Objects.hash(m_translation, m_rotation); - } - - public HashMap toHashMap() { - var ret = new HashMap(); - ret.put("x", getTranslation().getX()); - ret.put("y", getTranslation().getY()); - ret.put("rot", getRotation().getDegrees()); - return ret; - } -} diff --git a/photon-server/src/main/java/edu/wpi/first/wpilibj/geometry/Rotation2d.java b/photon-server/src/main/java/edu/wpi/first/wpilibj/geometry/Rotation2d.java deleted file mode 100644 index 39a4450ff..000000000 --- a/photon-server/src/main/java/edu/wpi/first/wpilibj/geometry/Rotation2d.java +++ /dev/null @@ -1,199 +0,0 @@ -/*----------------------------------------------------------------------------*/ -/* Copyright (c) 2019-2020 FIRST. All Rights Reserved. */ -/* Open Source Software - may be modified and shared by FRC teams. The code */ -/* must be accompanied by the FIRST BSD license file in the root directory of */ -/* the project. */ -/*----------------------------------------------------------------------------*/ - -package edu.wpi.first.wpilibj.geometry; - -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.Objects; - -/** A rotation in a 2d coordinate frame represented a point on the unit circle (cosine and sine). */ -@JsonIgnoreProperties(ignoreUnknown = true) -@JsonAutoDetect(getterVisibility = JsonAutoDetect.Visibility.NONE) -public class Rotation2d { - private final double m_value; - private final double m_cos; - private final double m_sin; - - /** Constructs a Rotation2d with a default angle of 0 degrees. */ - public Rotation2d() { - m_value = 0.0; - m_cos = 1.0; - m_sin = 0.0; - } - - /** - * Constructs a Rotation2d with the given radian value. The x and y don't have to be normalized. - * - * @param value The value of the angle in radians. - */ - @JsonCreator - public Rotation2d(@JsonProperty(required = true, value = "radians") double value) { - m_value = value; - m_cos = Math.cos(value); - m_sin = Math.sin(value); - } - - /** - * Constructs a Rotation2d with the given x and y (cosine and sine) components. - * - * @param x The x component or cosine of the rotation. - * @param y The y component or sine of the rotation. - */ - @SuppressWarnings("ParameterName") - public Rotation2d(double x, double y) { - double magnitude = Math.hypot(x, y); - if (magnitude > 1e-6) { - m_sin = y / magnitude; - m_cos = x / magnitude; - } else { - m_sin = 0.0; - m_cos = 1.0; - } - m_value = Math.atan2(m_sin, m_cos); - } - - /** - * Constructs and returns a Rotation2d with the given degree value. - * - * @param degrees The value of the angle in degrees. - * @return The rotation object with the desired angle value. - */ - public static Rotation2d fromDegrees(double degrees) { - return new Rotation2d(Math.toRadians(degrees)); - } - - /** - * Adds two rotations together, with the result being bounded between -pi and pi. - * - *

For example, Rotation2d.fromDegrees(30) + Rotation2d.fromDegrees(60) = Rotation2d{-pi/2} - * - * @param other The rotation to add. - * @return The sum of the two rotations. - */ - public Rotation2d plus(Rotation2d other) { - return rotateBy(other); - } - - /** - * Subtracts the new rotation from the current rotation and returns the new rotation. - * - *

For example, Rotation2d.fromDegrees(10) - Rotation2d.fromDegrees(100) = Rotation2d{-pi/2} - * - * @param other The rotation to subtract. - * @return The difference between the two rotations. - */ - public Rotation2d minus(Rotation2d other) { - return rotateBy(other.unaryMinus()); - } - - /** - * Takes the inverse of the current rotation. This is simply the negative of the current angular - * value. - * - * @return The inverse of the current rotation. - */ - public Rotation2d unaryMinus() { - return new Rotation2d(-m_value); - } - - /** - * Multiplies the current rotation by a scalar. - * - * @param scalar The scalar. - * @return The new scaled Rotation2d. - */ - public Rotation2d times(double scalar) { - return new Rotation2d(m_value * scalar); - } - - /** - * Adds the new rotation to the current rotation using a rotation matrix. - * - *

The matrix multiplication is as follows: [cos_new] [other.cos, -other.sin][cos] [sin_new] = - * [other.sin, other.cos][sin] value_new = atan2(cos_new, sin_new) - * - * @param other The rotation to rotate by. - * @return The new rotated Rotation2d. - */ - public Rotation2d rotateBy(Rotation2d other) { - return new Rotation2d( - m_cos * other.m_cos - m_sin * other.m_sin, m_cos * other.m_sin + m_sin * other.m_cos); - } - - /** - * Returns the radian value of the rotation. - * - * @return The radian value of the rotation. - */ - @JsonProperty - public double getRadians() { - return m_value; - } - - /** - * Returns the degree value of the rotation. - * - * @return The degree value of the rotation. - */ - public double getDegrees() { - return Math.toDegrees(m_value); - } - - /** - * Returns the cosine of the rotation. - * - * @return The cosine of the rotation. - */ - public double getCos() { - return m_cos; - } - - /** - * Returns the sine of the rotation. - * - * @return The sine of the rotation. - */ - public double getSin() { - return m_sin; - } - - /** - * Returns the tangent of the rotation. - * - * @return The tangent of the rotation. - */ - public double getTan() { - return m_sin / m_cos; - } - - @Override - public String toString() { - return String.format("Rotation2d(Rads: %.2f, Deg: %.2f)", m_value, Math.toDegrees(m_value)); - } - - /** - * Checks equality between this Rotation2d and another object. - * - * @param obj The other object. - * @return Whether the two objects are equal or not. - */ - @Override - public boolean equals(Object obj) { - if (obj instanceof Rotation2d) { - return Math.abs(((Rotation2d) obj).m_value - m_value) < 1E-9; - } - return false; - } - - @Override - public int hashCode() { - return Objects.hash(m_value); - } -} diff --git a/photon-server/src/main/java/edu/wpi/first/wpilibj/geometry/Transform2d.java b/photon-server/src/main/java/edu/wpi/first/wpilibj/geometry/Transform2d.java deleted file mode 100644 index ab33a1cc5..000000000 --- a/photon-server/src/main/java/edu/wpi/first/wpilibj/geometry/Transform2d.java +++ /dev/null @@ -1,127 +0,0 @@ -/*----------------------------------------------------------------------------*/ -/* Copyright (c) 2019-2020 FIRST. All Rights Reserved. */ -/* Open Source Software - may be modified and shared by FRC teams. The code */ -/* must be accompanied by the FIRST BSD license file in the root directory of */ -/* the project. */ -/*----------------------------------------------------------------------------*/ - -package edu.wpi.first.wpilibj.geometry; - -import java.util.HashMap; -import java.util.Objects; - -/** Represents a transformation for a Pose2d. */ -public class Transform2d { - private final Translation2d m_translation; - private final Rotation2d m_rotation; - - /** - * Constructs the transform that maps the initial pose to the final pose. - * - * @param initial The initial pose for the transformation. - * @param last The final pose for the transformation. - */ - public Transform2d(Pose2d initial, Pose2d last) { - // We are rotating the difference between the translations - // using a clockwise rotation matrix. This transforms the global - // delta into a local delta (relative to the initial pose). - m_translation = - last.getTranslation() - .minus(initial.getTranslation()) - .rotateBy(initial.getRotation().unaryMinus()); - - m_rotation = last.getRotation().minus(initial.getRotation()); - } - - /** - * Constructs a transform with the given translation and rotation components. - * - * @param translation Translational component of the transform. - * @param rotation Rotational component of the transform. - */ - public Transform2d(Translation2d translation, Rotation2d rotation) { - m_translation = translation; - m_rotation = rotation; - } - - /** Constructs the identity transform -- maps an initial pose to itself. */ - public Transform2d() { - m_translation = new Translation2d(); - m_rotation = new Rotation2d(); - } - - /** - * Scales the transform by the scalar. - * - * @param scalar The scalar. - * @return The scaled Transform2d. - */ - public Transform2d times(double scalar) { - return new Transform2d(m_translation.times(scalar), m_rotation.times(scalar)); - } - - /** - * Returns the translation component of the transformation. - * - * @return The translational component of the transform. - */ - public Translation2d getTranslation() { - return m_translation; - } - - /** - * Returns the rotational component of the transformation. - * - * @return Reference to the rotational component of the transform. - */ - public Rotation2d getRotation() { - return m_rotation; - } - - /** - * Invert the transformation. This is useful for undoing a transformation. - * - * @return The inverted transformation. - */ - public Transform2d inverse() { - // We are rotating the difference between the translations - // using a clockwise rotation matrix. This transforms the global - // delta into a local delta (relative to the initial pose). - return new Transform2d( - getTranslation().unaryMinus().rotateBy(getRotation().unaryMinus()), - getRotation().unaryMinus()); - } - - @Override - public String toString() { - return String.format("Transform2d(%s, %s)", m_translation, m_rotation); - } - - /** - * Checks equality between this Transform2d and another object. - * - * @param obj The other object. - * @return Whether the two objects are equal or not. - */ - @Override - public boolean equals(Object obj) { - if (obj instanceof Transform2d) { - return ((Transform2d) obj).m_translation.equals(m_translation) - && ((Transform2d) obj).m_rotation.equals(m_rotation); - } - return false; - } - - @Override - public int hashCode() { - return Objects.hash(m_translation, m_rotation); - } - - public HashMap toHashMap() { - var ret = new HashMap(); - ret.put("x", getTranslation().getX()); - ret.put("y", getTranslation().getY()); - ret.put("rot", getRotation().getDegrees()); - return ret; - } -} diff --git a/photon-server/src/main/java/edu/wpi/first/wpilibj/geometry/Translation2d.java b/photon-server/src/main/java/edu/wpi/first/wpilibj/geometry/Translation2d.java deleted file mode 100644 index a67412d85..000000000 --- a/photon-server/src/main/java/edu/wpi/first/wpilibj/geometry/Translation2d.java +++ /dev/null @@ -1,190 +0,0 @@ -/*----------------------------------------------------------------------------*/ -/* Copyright (c) 2019-2020 FIRST. All Rights Reserved. */ -/* Open Source Software - may be modified and shared by FRC teams. The code */ -/* must be accompanied by the FIRST BSD license file in the root directory of */ -/* the project. */ -/*----------------------------------------------------------------------------*/ - -package edu.wpi.first.wpilibj.geometry; - -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.Objects; - -/** -* Represents a translation in 2d space. This object can be used to represent a point or a vector. -* -*

This assumes that you are using conventional mathematical axes. When the robot is placed on -* the origin, facing toward the X direction, moving forward increases the X, whereas moving to the -* left increases the Y. -*/ -@SuppressWarnings({"ParameterName", "MemberName"}) -@JsonIgnoreProperties(ignoreUnknown = true) -@JsonAutoDetect(getterVisibility = JsonAutoDetect.Visibility.NONE) -public class Translation2d { - private final double m_x; - private final double m_y; - - /** Constructs a Translation2d with X and Y components equal to zero. */ - public Translation2d() { - this(0.0, 0.0); - } - - /** - * Constructs a Translation2d with the X and Y components equal to the provided values. - * - * @param x The x component of the translation. - * @param y The y component of the translation. - */ - @JsonCreator - public Translation2d( - @JsonProperty(required = true, value = "x") double x, - @JsonProperty(required = true, value = "y") double y) { - m_x = x; - m_y = y; - } - - /** - * Calculates the distance between two translations in 2d space. - * - *

This function uses the pythagorean theorem to calculate the distance. distance = sqrt((x2 - - * x1)^2 + (y2 - y1)^2) - * - * @param other The translation to compute the distance to. - * @return The distance between the two translations. - */ - public double getDistance(Translation2d other) { - return Math.hypot(other.m_x - m_x, other.m_y - m_y); - } - - /** - * Returns the X component of the translation. - * - * @return The x component of the translation. - */ - @JsonProperty - public double getX() { - return m_x; - } - - /** - * Returns the Y component of the translation. - * - * @return The y component of the translation. - */ - @JsonProperty - public double getY() { - return m_y; - } - - /** - * Returns the norm, or distance from the origin to the translation. - * - * @return The norm of the translation. - */ - public double getNorm() { - return Math.hypot(m_x, m_y); - } - - /** - * Applies a rotation to the translation in 2d space. - * - *

This multiplies the translation vector by a counterclockwise rotation matrix of the given - * angle. [x_new] [other.cos, -other.sin][x] [y_new] = [other.sin, other.cos][y] - * - *

For example, rotating a Translation2d of {2, 0} by 90 degrees will return a Translation2d of - * {0, 2}. - * - * @param other The rotation to rotate the translation by. - * @return The new rotated translation. - */ - public Translation2d rotateBy(Rotation2d other) { - return new Translation2d( - m_x * other.getCos() - m_y * other.getSin(), m_x * other.getSin() + m_y * other.getCos()); - } - - /** - * Adds two translations in 2d space and returns the sum. This is similar to vector addition. - * - *

For example, Translation2d{1.0, 2.5} + Translation2d{2.0, 5.5} = Translation2d{3.0, 8.0} - * - * @param other The translation to add. - * @return The sum of the translations. - */ - public Translation2d plus(Translation2d other) { - return new Translation2d(m_x + other.m_x, m_y + other.m_y); - } - - /** - * Subtracts the other translation from the other translation and returns the difference. - * - *

For example, Translation2d{5.0, 4.0} - Translation2d{1.0, 2.0} = Translation2d{4.0, 2.0} - * - * @param other The translation to subtract. - * @return The difference between the two translations. - */ - public Translation2d minus(Translation2d other) { - return new Translation2d(m_x - other.m_x, m_y - other.m_y); - } - - /** - * Returns the inverse of the current translation. This is equivalent to rotating by 180 degrees, - * flipping the point over both axes, or simply negating both components of the translation. - * - * @return The inverse of the current translation. - */ - public Translation2d unaryMinus() { - return new Translation2d(-m_x, -m_y); - } - - /** - * Multiplies the translation by a scalar and returns the new translation. - * - *

For example, Translation2d{2.0, 2.5} * 2 = Translation2d{4.0, 5.0} - * - * @param scalar The scalar to multiply by. - * @return The scaled translation. - */ - public Translation2d times(double scalar) { - return new Translation2d(m_x * scalar, m_y * scalar); - } - - /** - * Divides the translation by a scalar and returns the new translation. - * - *

For example, Translation2d{2.0, 2.5} / 2 = Translation2d{1.0, 1.25} - * - * @param scalar The scalar to multiply by. - * @return The reference to the new mutated object. - */ - public Translation2d div(double scalar) { - return new Translation2d(m_x / scalar, m_y / scalar); - } - - @Override - public String toString() { - return String.format("Translation2d(X: %.2f, Y: %.2f)", m_x, m_y); - } - - /** - * Checks equality between this Translation2d and another object. - * - * @param obj The other object. - * @return Whether the two objects are equal or not. - */ - @Override - public boolean equals(Object obj) { - if (obj instanceof Translation2d) { - return Math.abs(((Translation2d) obj).m_x - m_x) < 1E-9 - && Math.abs(((Translation2d) obj).m_y - m_y) < 1E-9; - } - return false; - } - - @Override - public int hashCode() { - return Objects.hash(m_x, m_y); - } -} diff --git a/photon-server/src/main/java/edu/wpi/first/wpilibj/geometry/Twist2d.java b/photon-server/src/main/java/edu/wpi/first/wpilibj/geometry/Twist2d.java deleted file mode 100644 index 3edc54d4e..000000000 --- a/photon-server/src/main/java/edu/wpi/first/wpilibj/geometry/Twist2d.java +++ /dev/null @@ -1,69 +0,0 @@ -/*----------------------------------------------------------------------------*/ -/* Copyright (c) 2019 FIRST. All Rights Reserved. */ -/* Open Source Software - may be modified and shared by FRC teams. The code */ -/* must be accompanied by the FIRST BSD license file in the root directory of */ -/* the project. */ -/*----------------------------------------------------------------------------*/ - -package edu.wpi.first.wpilibj.geometry; - -import java.util.Objects; - -/** -* A change in distance along arc since the last pose update. We can use ideas from differential -* calculus to create new Pose2ds from a Twist2d and vise versa. -* -*

A Twist can be used to represent a difference between two poses. -*/ -@SuppressWarnings("MemberName") -public class Twist2d { - /** Linear "dx" component. */ - public double dx; - - /** Linear "dy" component. */ - public double dy; - - /** Angular "dtheta" component (radians). */ - public double dtheta; - - public Twist2d() {} - - /** - * Constructs a Twist2d with the given values. - * - * @param dx Change in x direction relative to robot. - * @param dy Change in y direction relative to robot. - * @param dtheta Change in angle relative to robot. - */ - public Twist2d(double dx, double dy, double dtheta) { - this.dx = dx; - this.dy = dy; - this.dtheta = dtheta; - } - - @Override - public String toString() { - return String.format("Twist2d(dX: %.2f, dY: %.2f, dTheta: %.2f)", dx, dy, dtheta); - } - - /** - * Checks equality between this Twist2d and another object. - * - * @param obj The other object. - * @return Whether the two objects are equal or not. - */ - @Override - public boolean equals(Object obj) { - if (obj instanceof Twist2d) { - return Math.abs(((Twist2d) obj).dx - dx) < 1E-9 - && Math.abs(((Twist2d) obj).dy - dy) < 1E-9 - && Math.abs(((Twist2d) obj).dtheta - dtheta) < 1E-9; - } - return false; - } - - @Override - public int hashCode() { - return Objects.hash(dx, dy, dtheta); - } -} diff --git a/photon-server/src/main/java/edu/wpi/first/wpilibj/trajectory/Trajectory.java b/photon-server/src/main/java/edu/wpi/first/wpilibj/trajectory/Trajectory.java deleted file mode 100644 index 5e76c5079..000000000 --- a/photon-server/src/main/java/edu/wpi/first/wpilibj/trajectory/Trajectory.java +++ /dev/null @@ -1,27 +0,0 @@ -/*----------------------------------------------------------------------------*/ -/* Copyright (c) 2015-2020 FIRST. All Rights Reserved. */ -/* Open Source Software - may be modified and shared by FRC teams. The code */ -/* must be accompanied by the FIRST BSD license file in the root directory of */ -/* the project. */ -/*----------------------------------------------------------------------------*/ - -package edu.wpi.first.wpilibj.trajectory; - -// This is a stub from WPILib -public class Trajectory { - public static class State { - /** - * - * Linearly interpolates between two values. - * - * @param startValue The start value. - * @param endValue The end value. - * @param t The fraction for interpolation. - * @return The interpolated value. - */ - @SuppressWarnings("ParameterName") - public static double lerp(double startValue, double endValue, double t) { - return startValue + (endValue - startValue) * t; - } - } -} diff --git a/photon-server/src/main/java/edu/wpi/first/wpilibj/util/Units.java b/photon-server/src/main/java/edu/wpi/first/wpilibj/util/Units.java deleted file mode 100644 index 05b5acd4e..000000000 --- a/photon-server/src/main/java/edu/wpi/first/wpilibj/util/Units.java +++ /dev/null @@ -1,100 +0,0 @@ -/*----------------------------------------------------------------------------*/ -/* Copyright (c) 2019 FIRST. All Rights Reserved. */ -/* Open Source Software - may be modified and shared by FRC teams. The code */ -/* must be accompanied by the FIRST BSD license file in the root directory of */ -/* the project. */ -/*----------------------------------------------------------------------------*/ - -package edu.wpi.first.wpilibj.util; - -/** Utility class that converts between commonly used units in FRC. */ -public final class Units { - private static final double kInchesPerFoot = 12.0; - private static final double kMetersPerInch = 0.0254; - private static final double kSecondsPerMinute = 60; - - /** Utility class, so constructor is private. */ - private Units() { - throw new UnsupportedOperationException("This is a utility class!"); - } - - /** - * Converts given meters to feet. - * - * @param meters The meters to convert to feet. - * @return Feet converted from meters. - */ - public static double metersToFeet(double meters) { - return metersToInches(meters) / kInchesPerFoot; - } - - /** - * Converts given feet to meters. - * - * @param feet The feet to convert to meters. - * @return Meters converted from feet. - */ - public static double feetToMeters(double feet) { - return inchesToMeters(feet * kInchesPerFoot); - } - - /** - * Converts given meters to inches. - * - * @param meters The meters to convert to inches. - * @return Inches converted from meters. - */ - public static double metersToInches(double meters) { - return meters / kMetersPerInch; - } - - /** - * Converts given inches to meters. - * - * @param inches The inches to convert to meters. - * @return Meters converted from inches. - */ - public static double inchesToMeters(double inches) { - return inches * kMetersPerInch; - } - - /** - * Converts given degrees to radians. - * - * @param degrees The degrees to convert to radians. - * @return Radians converted from degrees. - */ - public static double degreesToRadians(double degrees) { - return Math.toRadians(degrees); - } - - /** - * Converts given radians to degrees. - * - * @param radians The radians to convert to degrees. - * @return Degrees converted from radians. - */ - public static double radiansToDegrees(double radians) { - return Math.toDegrees(radians); - } - - /** - * Converts rotations per minute to radians per second. - * - * @param rpm The rotations per minute to convert to radians per second. - * @return Radians per second converted from rotations per minute. - */ - public static double rotationsPerMinuteToRadiansPerSecond(double rpm) { - return rpm * Math.PI / (kSecondsPerMinute / 2); - } - - /** - * Converts radians per second to rotations per minute. - * - * @param radiansPerSecond The radians per second to convert to from rotations per minute. - * @return Rotations per minute converted from radians per second. - */ - public static double radiansPerSecondToRotationsPerMinute(double radiansPerSecond) { - return radiansPerSecond * (kSecondsPerMinute / 2) / Math.PI; - } -} diff --git a/photon-server/test.json b/photon-server/test.json new file mode 100644 index 000000000..10c0c2e72 --- /dev/null +++ b/photon-server/test.json @@ -0,0 +1 @@ +{"baseName":"aaaaaa","uniqueName":"aaaaaa","nickname":"aaaaaa","FOV":70.0,"path":"dev/vid","cameraType":"UsbCamera","currentPipelineIndex":0,"camPitch":{"radians":0.0},"calibrations":[], "cameraLEDs":[]} \ No newline at end of file diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 000000000..1ccfe01f5 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,2 @@ +include 'photon-core' +include 'photon-server' \ No newline at end of file