sige 1 year ago
parent
commit
b1da263b30
  1. 3
      .gitignore
  2. BIN
      app.db
  3. 10
      src/main/java/com/iflytop/digester/DigesterApplicationRunner.java
  4. 14
      src/main/java/com/iflytop/digester/StartResetTaskThread.java
  5. 3
      src/main/java/com/iflytop/digester/camera/.vs/ProjectSettings.json
  6. 6
      src/main/java/com/iflytop/digester/camera/.vs/VSWorkspaceState.json
  7. BIN
      src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/FileContentIndex/003a4049-43a8-4685-b725-0ef981a63d09.vsidx
  8. BIN
      src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/FileContentIndex/06d79a3a-d78d-4a3e-bc83-a1d7e7c40658.vsidx
  9. BIN
      src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/FileContentIndex/0c5d8c00-190b-4149-adea-d196cfb732c1.vsidx
  10. BIN
      src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/FileContentIndex/1da9abc1-3b74-4d08-9644-e46adbdc5f76.vsidx
  11. BIN
      src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/FileContentIndex/e337247d-2ede-4c8b-8f3c-9dbe3ec766a2.vsidx
  12. BIN
      src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/v17/.suo
  13. BIN
      src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/v17/.wsuo
  14. BIN
      src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/v17/Browse.VC.db
  15. BIN
      src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/v17/Solution.VC.db
  16. BIN
      src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/v17/ipch/AutoPCH/1c2e8b4ea4fc1ccf/DICOMBASLERCAMERA.ipch
  17. BIN
      src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/v17/ipch/AutoPCH/9d6442ba4cb0f3c/DICOMBASLERCAMERA.ipch
  18. BIN
      src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/v17/ipch/AutoPCH/a8dcffdc33001a67/DICOMBASLERCAMERA.ipch
  19. BIN
      src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/v17/ipch/AutoPCH/c9f5a327283e5cbb/DICOMBASLERCAMERA.ipch
  20. BIN
      src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/v17/ipch/AutoPCH/f2cc47adfa9ba2d3/LOGGER.ipch
  21. BIN
      src/main/java/com/iflytop/digester/camera/.vs/slnx.sqlite
  22. 340
      src/main/java/com/iflytop/digester/camera/DiComBaslerCamera.cpp
  23. 31
      src/main/java/com/iflytop/digester/camera/baslerCamera.sln
  24. 133
      src/main/java/com/iflytop/digester/camera/baslerCamera.vcxproj
  25. 27
      src/main/java/com/iflytop/digester/camera/baslerCamera.vcxproj.filters
  26. 4
      src/main/java/com/iflytop/digester/camera/baslerCamera.vcxproj.user
  27. 6
      src/main/java/com/iflytop/digester/camera/build.sh
  28. 4
      src/main/java/com/iflytop/digester/deviceinstance/Camera.java
  29. 39
      src/main/resources/application-dev.yml
  30. 39
      src/main/resources/application-test.yml
  31. 37
      src/main/resources/application.yml

3
.gitignore

@ -31,3 +31,6 @@ build/
### VS Code ###
.vscode/
/src/main/java/com/iflytop/digester/camera/x64/Debug/
/src/main/java/com/iflytop/digester/camera/DiComBaslerCamera$GrabResult.class
/src/main/java/com/iflytop/digester/camera/DiComBaslerCamera.class

BIN
app.db

10
src/main/java/com/iflytop/digester/DigesterApplicationRunner.java

@ -1,6 +1,7 @@
package com.iflytop.digester;
import com.iflytop.digester.deviceinstance.Device;
import jakarta.annotation.Resource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.core.annotation.Order;
@ -10,9 +11,18 @@ import org.springframework.stereotype.Component;
public class DigesterApplicationRunner implements ApplicationRunner {
@Resource
private Device device;
@Value("${app.opencv-library-path}")
private String opencvLibraryPath;
@Value("${app.pylon-library-path}")
private String pylonLibraryPath;
@Value("${app.pylon-wrapper-path}")
private String pylonWrapperPath;
@Override
public void run(ApplicationArguments args) throws Exception {
System.load(this.opencvLibraryPath);
System.load(this.pylonLibraryPath);
System.load(this.pylonWrapperPath);
this.device.liquidAddition.setup();
}
}

14
src/main/java/com/iflytop/digester/StartResetTaskThread.java

@ -23,13 +23,13 @@ public class StartResetTaskThread extends Thread {
var device = Device.getInstance();
device.setStatus("preparing");
this.setProgressMessage("设备初始化...");
UfCmdSnippetExecutor.execute("StartResetInitDevices");
this.setupHeatingSlotCover();
this.setupPeristalticPump();
if ( this.isErrorTubeRackRequired ) {
this.setupErrorTubeRack();
}
//
// UfCmdSnippetExecutor.execute("StartResetInitDevices");
// this.setupHeatingSlotCover();
// this.setupPeristalticPump();
// if ( this.isErrorTubeRackRequired ) {
// this.setupErrorTubeRack();
// }
this.setProgressMessage("设备初始化 : 相机");
device.camera.enable();

3
src/main/java/com/iflytop/digester/camera/.vs/ProjectSettings.json

@ -0,0 +1,3 @@
{
"CurrentProjectSetting": "\u65E0\u914D\u7F6E"
}

6
src/main/java/com/iflytop/digester/camera/.vs/VSWorkspaceState.json

@ -0,0 +1,6 @@
{
"ExpandedNodes": [
""
],
"PreviewInSolutionExplorer": false
}

BIN
src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/FileContentIndex/003a4049-43a8-4685-b725-0ef981a63d09.vsidx

BIN
src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/FileContentIndex/06d79a3a-d78d-4a3e-bc83-a1d7e7c40658.vsidx

BIN
src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/FileContentIndex/0c5d8c00-190b-4149-adea-d196cfb732c1.vsidx

BIN
src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/FileContentIndex/1da9abc1-3b74-4d08-9644-e46adbdc5f76.vsidx

BIN
src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/FileContentIndex/e337247d-2ede-4c8b-8f3c-9dbe3ec766a2.vsidx

BIN
src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/v17/.suo

BIN
src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/v17/.wsuo

BIN
src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/v17/Browse.VC.db

BIN
src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/v17/Solution.VC.db

BIN
src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/v17/ipch/AutoPCH/1c2e8b4ea4fc1ccf/DICOMBASLERCAMERA.ipch

BIN
src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/v17/ipch/AutoPCH/9d6442ba4cb0f3c/DICOMBASLERCAMERA.ipch

BIN
src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/v17/ipch/AutoPCH/a8dcffdc33001a67/DICOMBASLERCAMERA.ipch

BIN
src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/v17/ipch/AutoPCH/c9f5a327283e5cbb/DICOMBASLERCAMERA.ipch

BIN
src/main/java/com/iflytop/digester/camera/.vs/baslerCamera/v17/ipch/AutoPCH/f2cc47adfa9ba2d3/LOGGER.ipch

BIN
src/main/java/com/iflytop/digester/camera/.vs/slnx.sqlite

340
src/main/java/com/iflytop/digester/camera/DiComBaslerCamera.cpp

@ -0,0 +1,340 @@
#include <jni.h>
#include <stdio.h>
#include <stdlib.h>
#include <pylonc/PylonC.h>
#include "com_iflytop_digester_camera_DiComBaslerCamera.h"
#define CAMERA(methodName) Java_com_iflytop_digester_camera_DiComBaslerCamera_##methodName
/**
* throw exception to java
*/
void throwException(JNIEnv * env, const char* message) {
jclass exceptionClass = env->FindClass("java/lang/Exception");
if (exceptionClass != nullptr) {
env->ThrowNew(exceptionClass, message);
}
}
/**
* throw exception to java by error code
*/
void throwExceptionByErrorCode(JNIEnv* env, GENAPIC_RESULT ret) {
char msg[128];
sprintf_s(msg, "error : %ld", ret);
throwException(env, msg);
}
/**
* initialize
*/
JNIEXPORT void JNICALL CAMERA(initialize) (JNIEnv* env, jobject) {
PylonInitialize();
}
/**
* enumerateDevices
*/
JNIEXPORT jint JNICALL CAMERA(enumerateDevices) (JNIEnv* env, jobject) {
size_t numDevices = 0;
GENAPIC_RESULT ret = PylonEnumerateDevices(&numDevices);
if (GENAPI_E_OK != ret) {
throwExceptionByErrorCode(env, ret);
return -1;
}
return (jint)numDevices;
}
/**
* terminate
*/
JNIEXPORT void JNICALL CAMERA(terminate)(JNIEnv*, jobject) {
PylonTerminate();
}
/**
* createDeviceByIndex
*/
JNIEXPORT jlong JNICALL CAMERA(createDeviceByIndex) (JNIEnv * env, jobject, jint index) {
/* Get a handle for the first device found. */
PYLON_DEVICE_HANDLE * hDev = (PYLON_DEVICE_HANDLE*)malloc(sizeof(PYLON_DEVICE_HANDLE));
GENAPIC_RESULT ret = PylonCreateDeviceByIndex(0, hDev);
if (GENAPI_E_OK != ret) {
throwExceptionByErrorCode(env, ret);
return -1;
}
return reinterpret_cast<jlong>(hDev);
}
/**
* createDeviceByIndex
*/
JNIEXPORT void JNICALL CAMERA(deviceOpen) (JNIEnv* env, jobject, jlong hDevAddr, jint accessMode) {
PYLON_DEVICE_HANDLE * hDev = reinterpret_cast<PYLON_DEVICE_HANDLE *>(hDevAddr);
GENAPIC_RESULT ret = PylonDeviceOpen(*hDev, accessMode);
if (GENAPI_E_OK != ret) {
throwExceptionByErrorCode(env, ret);
return ;
}
}
/*
* Class: com_my_graphiteDigesterBg_diframe_component_baslerCamera_DiComBaslerCamera
* Method: deviceFeatureIsReadable
* Signature: (JLjava/lang/String;)I
*/
JNIEXPORT jboolean JNICALL CAMERA(deviceFeatureIsReadable) (JNIEnv* env, jobject , jlong hDevAddr, jstring name) {
PYLON_DEVICE_HANDLE * hDev = reinterpret_cast<PYLON_DEVICE_HANDLE*>(hDevAddr);
const char* fName = env->GetStringUTFChars(name, NULL);
if (NULL == fName) {
throwException(env, "get string value from jstring failed.");
return JNI_FALSE;
}
bool isReadable = PylonDeviceFeatureIsReadable(*hDev, fName);
env->ReleaseStringUTFChars(name, fName);
return isReadable ? JNI_TRUE : JNI_FALSE;
}
/*
* Class: com_my_graphiteDigesterBg_diframe_component_baslerCamera_DiComBaslerCamera
* Method: deviceFeatureToString
* Signature: (JLjava/lang/String;I)Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL CAMERA(deviceFeatureToString) (JNIEnv* env, jobject, jlong hDevAddr, jstring name, jint size) {
PYLON_DEVICE_HANDLE* hDev = reinterpret_cast<PYLON_DEVICE_HANDLE*>(hDevAddr);
const char* fName = env->GetStringUTFChars(name, NULL);
if (NULL == fName) {
throwException(env, "get string value from jstring failed.");
return nullptr;
}
char * buf = (char *)malloc(size);
size_t bufSize = size;
GENAPIC_RESULT ret = PylonDeviceFeatureToString(*hDev, fName, buf, &bufSize);
if (GENAPI_E_OK != ret) {
throwExceptionByErrorCode(env, ret);
return nullptr;
}
env->ReleaseStringUTFChars(name, fName);
jstring value = env->NewStringUTF(buf);
free(buf);
return value;
}
/*
* Class: com_my_graphiteDigesterBg_diframe_component_baslerCamera_DiComBaslerCamera
* Method: deviceFeatureIsAvailable
* Signature: (JLjava/lang/String;)I
*/
JNIEXPORT jboolean JNICALL CAMERA(deviceFeatureIsAvailable) (JNIEnv* env, jobject, jlong hDevAddr, jstring name) {
PYLON_DEVICE_HANDLE* hDev = reinterpret_cast<PYLON_DEVICE_HANDLE*>(hDevAddr);
const char* fName = env->GetStringUTFChars(name, NULL);
if (NULL == fName) {
throwException(env, "get string value from jstring failed.");
return JNI_FALSE;
}
bool isAvail = PylonDeviceFeatureIsAvailable(*hDev, "EnumEntry_PixelFormat_Mono8");
env->ReleaseStringUTFChars(name, fName);
return isAvail;
}
/*
* Class: com_my_graphiteDigesterBg_diframe_component_baslerCamera_DiComBaslerCamera
* Method: deviceFeatureFromString
* Signature: (JLjava/lang/String;Ljava/lang/String;)V
*/
JNIEXPORT void JNICALL CAMERA(deviceFeatureFromString)(JNIEnv* env, jobject, jlong hDevAddr, jstring name, jstring value ) {
PYLON_DEVICE_HANDLE * hDev = reinterpret_cast<PYLON_DEVICE_HANDLE*>(hDevAddr);
const char* fName = env->GetStringUTFChars(name, NULL);
if (NULL == fName) {
throwException(env, "get string value from jstring failed.");
return;
}
const char* fValue = env->GetStringUTFChars(value, NULL);
if (NULL == fValue) {
throwException(env, "get string value from jstring failed.");
return;
}
GENAPIC_RESULT ret = PylonDeviceFeatureFromString(*hDev, fName, fValue);
env->ReleaseStringUTFChars(name, fName);
env->ReleaseStringUTFChars(value, fValue);
if (GENAPI_E_OK != ret) {
throwExceptionByErrorCode(env, ret);
return;
}
}
/*
* Class: com_my_graphiteDigesterBg_diframe_component_baslerCamera_DiComBaslerCamera
* Method: deviceFeatureIsWritable
* Signature: (JLjava/lang/String;)I
*/
JNIEXPORT jboolean JNICALL CAMERA(deviceFeatureIsWritable) (JNIEnv* env, jobject, jlong hDevAddr, jstring name) {
PYLON_DEVICE_HANDLE* hDev = reinterpret_cast<PYLON_DEVICE_HANDLE*>(hDevAddr);
const char* fName = env->GetStringUTFChars(name, NULL);
if (NULL == fName) {
throwException(env, "get string value from jstring failed.");
return JNI_FALSE;
}
bool isAvail = PylonDeviceFeatureIsWritable(*hDev, fName);
env->ReleaseStringUTFChars(name, fName);
return isAvail ? JNI_TRUE : JNI_FALSE;
}
/*
* Class: com_my_graphiteDigesterBg_diframe_component_baslerCamera_DiComBaslerCamera
* Method: deviceSetIntegerFeature
* Signature: (JLjava/lang/String;I)V
*/
JNIEXPORT void JNICALL CAMERA(deviceSetIntegerFeature) (JNIEnv* env, jobject, jlong hDevAddr, jstring name, jint value) {
PYLON_DEVICE_HANDLE* hDev = reinterpret_cast<PYLON_DEVICE_HANDLE*>(hDevAddr);
const char* fName = env->GetStringUTFChars(name, NULL);
if (NULL == fName) {
throwException(env, "get string value from jstring failed.");
return;
}
GENAPIC_RESULT ret = PylonDeviceSetIntegerFeature(*hDev, fName, value);
env->ReleaseStringUTFChars(name, fName);
if (GENAPI_E_OK != ret) {
throwExceptionByErrorCode(env, ret);
return;
}
}
/*
* Class: com_my_graphiteDigesterBg_diframe_component_baslerCamera_DiComBaslerCamera
* Method: deviceGetIntegerFeatureInt32
* Signature: (JLjava/lang/String;)I
*/
JNIEXPORT jint JNICALL CAMERA(deviceGetIntegerFeatureInt32) (JNIEnv* env, jobject , jlong hDevAddr, jstring name) {
PYLON_DEVICE_HANDLE* hDev = reinterpret_cast<PYLON_DEVICE_HANDLE*>(hDevAddr);
const char* fName = env->GetStringUTFChars(name, NULL);
if (NULL == fName) {
throwException(env, "get string value from jstring failed.");
return -1;
}
int32_t value;
GENAPIC_RESULT ret = PylonDeviceGetIntegerFeatureInt32(*hDev, fName, &value);
env->ReleaseStringUTFChars(name, fName);
if (GENAPI_E_OK != ret) {
throwExceptionByErrorCode(env, ret);
return -1;
}
return value;
}
/*
* Class: com_my_graphiteDigesterBg_diframe_component_baslerCamera_DiComBaslerCamera
* Method: deviceGrabSingleFrame
* Signature: (JI)[B
*/
JNIEXPORT jobject JNICALL CAMERA(deviceGrabSingleFrame)(JNIEnv* env, jobject, jlong hDevAddr, jint channel) {
PYLON_DEVICE_HANDLE* hDev = reinterpret_cast<PYLON_DEVICE_HANDLE*>(hDevAddr);
int32_t payloadSize = 0;
GENAPIC_RESULT ret = PylonDeviceGetIntegerFeatureInt32(*hDev, "PayloadSize", &payloadSize);
if (GENAPI_E_OK != ret) {
throwExceptionByErrorCode(env, ret);
return nullptr;
}
jclass javaGrabResultClass = env->FindClass("com/my/graphiteDigesterBg/diframe/component/baslerCamera/DiComBaslerCamera$GrabResult");
if (javaGrabResultClass == NULL) {
throwException(env, "unable to find java grab result class");
return NULL;
}
jmethodID javaGrabResultConstructor = env->GetMethodID(javaGrabResultClass, "<init>", "()V");
if (javaGrabResultConstructor == NULL) {
throwException(env, "unable to find java grab result class constructor method");
return NULL;
}
jobject javaGrabResult = env->NewObject(javaGrabResultClass, javaGrabResultConstructor);
if (javaGrabResult == NULL) {
throwException(env, "failed to create java grab result object");
return NULL;
}
unsigned char* imgBuf;
imgBuf = (unsigned char*)malloc(payloadSize);
if (NULL == imgBuf ) {
throwException(env, "failed to alloc memory for grabbing");
return NULL;
}
PylonGrabResult_t grabResult;
_Bool bufferReady;
ret = PylonDeviceGrabSingleFrame(*hDev, channel, imgBuf, payloadSize, &grabResult, &bufferReady, 500);
if (GENAPI_E_OK == ret && !bufferReady) {
free(imgBuf);
throwException(env, "failed to grab frame : timeout");
return NULL;
}
if (GENAPI_E_OK != ret) {
free(imgBuf);
throwExceptionByErrorCode(env, ret);
return NULL;
}
if (grabResult.Status == Failed) {
free(imgBuf);
throwException(env, "failed to grab grame");
return NULL;
}
jfieldID sizeXFieldID = env->GetFieldID(javaGrabResultClass, "sizeX", "I");
if (sizeXFieldID != NULL) {
env->SetIntField(javaGrabResult, sizeXFieldID, grabResult.SizeX);
}
jfieldID sizeYFieldId = env->GetFieldID(javaGrabResultClass, "sizeY", "I");
if (sizeYFieldId != NULL) {
env->SetIntField(javaGrabResult, sizeYFieldId, grabResult.SizeY);
}
jfieldID imageBufferFieldId = env->GetFieldID(javaGrabResultClass, "imageBuffer", "[B");
if (NULL != imageBufferFieldId) {
jbyteArray jImageBuffer = env->NewByteArray(payloadSize);
env->SetByteArrayRegion(jImageBuffer, 0, payloadSize, reinterpret_cast<const jbyte*>(imgBuf));
env->SetObjectField(javaGrabResult, imageBufferFieldId, jImageBuffer);
}
free(imgBuf);
return javaGrabResult;
}
/*
* Class: com_my_graphiteDigesterBg_diframe_component_baslerCamera_DiComBaslerCamera
* Method: deviceClose
* Signature: (J)V
*/
JNIEXPORT void JNICALL CAMERA(deviceClose)(JNIEnv* env, jobject, jlong hDevAddr) {
PYLON_DEVICE_HANDLE* hDev = reinterpret_cast<PYLON_DEVICE_HANDLE*>(hDevAddr);
GENAPIC_RESULT ret = PylonDeviceClose(*hDev);
if (GENAPI_E_OK != ret) {
throwExceptionByErrorCode(env, ret);
return;
}
}
/*
* Class: com_my_graphiteDigesterBg_diframe_component_baslerCamera_DiComBaslerCamera
* Method: destroyDevice
* Signature: (J)V
*/
JNIEXPORT void JNICALL CAMERA(destroyDevice)(JNIEnv* env, jobject, jlong hDevAddr) {
PYLON_DEVICE_HANDLE* hDev = reinterpret_cast<PYLON_DEVICE_HANDLE*>(hDevAddr);
GENAPIC_RESULT ret = PylonDeviceClose(*hDev);
if (GENAPI_E_OK != ret) {
throwExceptionByErrorCode(env, ret);
return;
}
}

31
src/main/java/com/iflytop/digester/camera/baslerCamera.sln

@ -0,0 +1,31 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.8.34330.188
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "baslerCamera", "baslerCamera.vcxproj", "{579EA782-ABF5-40DA-97B5-12E77CDBE26D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{579EA782-ABF5-40DA-97B5-12E77CDBE26D}.Debug|x64.ActiveCfg = Debug|x64
{579EA782-ABF5-40DA-97B5-12E77CDBE26D}.Debug|x64.Build.0 = Debug|x64
{579EA782-ABF5-40DA-97B5-12E77CDBE26D}.Debug|x86.ActiveCfg = Debug|Win32
{579EA782-ABF5-40DA-97B5-12E77CDBE26D}.Debug|x86.Build.0 = Debug|Win32
{579EA782-ABF5-40DA-97B5-12E77CDBE26D}.Release|x64.ActiveCfg = Release|x64
{579EA782-ABF5-40DA-97B5-12E77CDBE26D}.Release|x64.Build.0 = Release|x64
{579EA782-ABF5-40DA-97B5-12E77CDBE26D}.Release|x86.ActiveCfg = Release|Win32
{579EA782-ABF5-40DA-97B5-12E77CDBE26D}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {6EC7ECB7-DEAA-46D7-BDA3-506DF51E4859}
EndGlobalSection
EndGlobal

133
src/main/java/com/iflytop/digester/camera/baslerCamera.vcxproj

@ -0,0 +1,133 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>17.0</VCProjectVersion>
<ProjectGuid>{579EA782-ABF5-40DA-97B5-12E77CDBE26D}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<ExternalIncludePath>D:\ProgramFiles\Pylon5\Development\include;D:\ProgramFiles\JDK\18\include\win32;D:\ProgramFiles\JDK\18\include;$(ExternalIncludePath)</ExternalIncludePath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;BASLERCAMERA_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<WarningLevel>Level3</WarningLevel>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;BASLERCAMERA_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<WarningLevel>Level3</WarningLevel>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<AdditionalDependencies>PylonC.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>D:\ProgramFiles\Pylon5\Development\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;BASLERCAMERA_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<WarningLevel>Level3</WarningLevel>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;BASLERCAMERA_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<WarningLevel>Level3</WarningLevel>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="DiComBaslerCamera.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="com_my_graphiteDigesterBg_diframe_component_baslerCamera_DiComBaslerCamera.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

27
src/main/java/com/iflytop/digester/camera/baslerCamera.vcxproj.filters

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="DiComBaslerCamera.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="com_my_graphiteDigesterBg_diframe_component_baslerCamera_DiComBaslerCamera.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

4
src/main/java/com/iflytop/digester/camera/baslerCamera.vcxproj.user

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>

6
src/main/java/com/iflytop/digester/camera/build.sh

@ -0,0 +1,6 @@
#!/bin/bash
g++ -Wl,--gc-sections -std=c++11 -shared -fPIC -lstdc++ \
-o libalgo.so \
DiComBaslerCamera.cpp \
-I/app-java/jdk-18.0.2.1/include \
-I/app-java/jdk-18.0.2.1/include/linux

4
src/main/java/com/iflytop/digester/deviceinstance/Camera.java

@ -8,9 +8,9 @@ public class Camera {
// camera
private static DiComBaslerCamera pylon = null;
// index
protected Integer index;
protected Integer index = 0;
// channel
protected Integer channel;
protected Integer channel = 0;
// camera handle
private long cam = -1;

39
src/main/resources/application-dev.yml

@ -0,0 +1,39 @@
server :
port : 80
spring:
datasource:
url: jdbc:sqlite:D:/Sige5193/digester/app.db
username: 1
password: 1
driver-class-name: org.sqlite.JDBC
device:
snippet-execute-log-enable : false
connections:
- name : zcancmder
key : zcancmder
enable : true
type : ZcancmderWebsocket
uri: ws://192.168.8.10:19005
- name : modbus
key : modbus
enable : false
type : ModbusRTUOverTCP
host: 127.0.0.1
port: 502
mqtt-broker:
uri: tcp://broker.emqx.io:1883
username: admin
password: public
clientId: digester
my-topic : "stw-a80"
transbot-topic : "transbot"
app :
errorSlotIndex : 4
liquidPeristalticPumpPipeSetupEnable : true
opencv-library-path: D:/ProgramFiles/OpenCV/opencv/build/java/x64/opencv_java490.dll
pylon-library-path: D:/ProgramFiles/Pylon5/Runtime/x64/PylonC_v5_2.dll
pylon-wrapper-path: D:/Sige5193/digester/src/main/java/com/iflytop/digester/camera/x64/Debug/baslerCamera.dll

39
src/main/resources/application-test.yml

@ -0,0 +1,39 @@
server :
port : 80
spring:
datasource:
url: jdbc:sqlite:D:/Sige5193/digester/app.db
username: 1
password: 1
driver-class-name: org.sqlite.JDBC
device:
snippet-execute-log-enable : false
connections:
- name : zcancmder
key : zcancmder
enable : true
type : ZcancmderWebsocket
uri: ws://192.168.8.10:19005
- name : modbus
key : modbus
enable : false
type : ModbusRTUOverTCP
host: 127.0.0.1
port: 502
mqtt-broker:
uri: tcp://broker.emqx.io:1883
username: admin
password: public
clientId: digester
my-topic : "stw-a80"
transbot-topic : "transbot"
app :
errorSlotIndex : 4
liquidPeristalticPumpPipeSetupEnable : true
opencv-library-path: /userdata/rootfs_overlay/usr/lib/jni/libopencv_java420.so
pylon-library-path: /opt/pylon/lib/libpylonc.so.7.2
pylon-wrapper-path: /app/basler-camera-java-wrapper/libpylonc-wrapper.so

37
src/main/resources/application.yml

@ -1,36 +1,3 @@
server :
port : 80
spring:
datasource:
url: jdbc:sqlite:D:/Sige5193/digester/app.db
username: 1
password: 1
driver-class-name: org.sqlite.JDBC
device:
snippet-execute-log-enable : false
connections:
- name : zcancmder
key : zcancmder
enable : true
type : ZcancmderWebsocket
uri: ws://192.168.8.10:19005
- name : modbus
key : modbus
enable : false
type : ModbusRTUOverTCP
host: 127.0.0.1
port: 502
mqtt-broker:
uri: tcp://broker.emqx.io:1883
username: admin
password: public
clientId: digester
my-topic : "stw-a80"
transbot-topic : "transbot"
app :
errorSlotIndex : 4
liquidPeristalticPumpPipeSetupEnable : true
profiles:
active: dev
Loading…
Cancel
Save