diff --git a/SCBAXJ/app/.gitignore b/SCBAXJ/app/.gitignore
new file mode 100755
index 0000000..796b96d
--- /dev/null
+++ b/SCBAXJ/app/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/SCBAXJ/app/build.gradle b/SCBAXJ/app/build.gradle
new file mode 100755
index 0000000..00a1ee5
--- /dev/null
+++ b/SCBAXJ/app/build.gradle
@@ -0,0 +1,100 @@
+apply plugin: 'com.android.application'
+apply plugin: 'org.jetbrains.kotlin.android'
+
+android {
+ compileSdkVersion 33
+ buildToolsVersion "33.0.1"
+ defaultConfig {
+ applicationId "com.rehome.scbaxj"
+ minSdkVersion 26
+ targetSdkVersion 33
+ versionCode 1
+ versionName "1.0.0"
+ multiDexEnabled true
+ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+ //每个应用拥有不同的authorities,防止相同的在同一个手机上无法同时安装
+ resValue "string", "authorities", applicationId
+ resourceConfigurations += ['zh', 'en', 'hdpi']
+ }
+ buildFeatures {
+ viewBinding = true
+ }
+ /* keypassword:abc123123 alias key0*/
+ buildTypes {
+ release {
+ lintOptions {
+ checkReleaseBuilds false
+ abortOnError false
+ }
+ minifyEnabled false
+ zipAlignEnabled true // 对齐zip
+ debuggable false // 是否debug
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+ }
+ }
+ sourceSets {
+ main {
+ jniLibs.srcDirs = ['libs']
+ java.srcDirs = ['src/main/java']
+ }
+ }
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_11
+ targetCompatibility JavaVersion.VERSION_11
+ }
+ namespace 'com.rehome.scbaxj'
+}
+
+dependencies {
+ implementation fileTree(dir: 'libs', include: ['*.jar'])
+ implementation 'androidx.appcompat:appcompat:1.5.1'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
+ implementation 'com.zhy:autolayout:1.4.5'
+ //网络请求
+ implementation 'com.android.volley:volley:1.2.1'
+ implementation 'com.yolanda.nohttp:nohttp:1.0.5'
+ implementation 'com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.2'
+ implementation 'com.squareup.retrofit2:retrofit:2.9.0'
+ implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
+ implementation 'org.litepal.android:core:1.5.1'
+ implementation 'com.yanzhenjie:permission:2.0.3'
+ implementation 'com.github.huangyanbin:SmartTable:2.2.0'
+ implementation 'com.google.android.material:material:1.7.0'
+ implementation 'androidx.multidex:multidex:2.0.1'
+ implementation 'androidx.recyclerview:recyclerview:1.2.1'
+ implementation 'de.hdodenhof:circleimageview:3.1.0'
+ //第三方库图片选择器
+ // PictureSelector basic (Necessary)
+ implementation 'io.github.lucksiege:pictureselector:v3.10.7'
+ // image compress library (Not necessary)
+ implementation 'io.github.lucksiege:compress:v3.10.7'
+ // uCrop library (Not necessary)
+ implementation 'io.github.lucksiege:ucrop:v3.10.7'
+ // simple camerax library (Not necessary)
+ implementation 'io.github.lucksiege:camerax:v3.10.7'
+ //implementation 'com.azhon:appupdateX:2.9.0'
+ implementation 'io.github.azhon:appupdate:4.2.6'
+ implementation 'com.tencent.bugly:crashreport:3.2.1'
+ implementation 'com.github.xuexiangjys:XUI:1.1.5'
+ implementation files('libs/rinsunMT.jar')
+ implementation 'org.greenrobot:eventbus:3.0.0'
+ implementation 'com.github.bumptech.glide:glide:4.11.0'
+ implementation 'cn.hutool:hutool-all:5.8.5'
+
+ //mqtt
+ implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.4'
+ implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'
+ implementation 'org.bouncycastle:bcpkix-jdk15on:1.67'
+ implementation 'commons-codec:commons-codec:1.15'
+ //websocket
+ //implementation("com.squareup.okhttp3:okhttp")
+ implementation("com.squareup.okhttp3:okhttp:5.0.0-alpha.2")
+ //java websocket
+ implementation "org.java-websocket:Java-WebSocket:1.4.0"
+ testImplementation 'junit:junit:4.13.2'
+ androidTestImplementation 'androidx.test.ext:junit:1.1.4'
+ androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.0'
+ configurations {
+ all*.exclude group: 'com.google.code.gson'
+ }
+}
diff --git a/SCBAXJ/app/libs/AudioEngineSDK.jar b/SCBAXJ/app/libs/AudioEngineSDK.jar
new file mode 100644
index 0000000..f5d453f
Binary files /dev/null and b/SCBAXJ/app/libs/AudioEngineSDK.jar differ
diff --git a/SCBAXJ/app/libs/HCNetSDK.jar b/SCBAXJ/app/libs/HCNetSDK.jar
new file mode 100644
index 0000000..88a5fec
Binary files /dev/null and b/SCBAXJ/app/libs/HCNetSDK.jar differ
diff --git a/SCBAXJ/app/libs/HCNetSDK_E.jar b/SCBAXJ/app/libs/HCNetSDK_E.jar
new file mode 100644
index 0000000..889e608
Binary files /dev/null and b/SCBAXJ/app/libs/HCNetSDK_E.jar differ
diff --git a/SCBAXJ/app/libs/MiPush_SDK_Client_3_2_2.jar b/SCBAXJ/app/libs/MiPush_SDK_Client_3_2_2.jar
new file mode 100755
index 0000000..bd8562e
Binary files /dev/null and b/SCBAXJ/app/libs/MiPush_SDK_Client_3_2_2.jar differ
diff --git a/SCBAXJ/app/libs/PlayerSDK_hcnetsdk.jar b/SCBAXJ/app/libs/PlayerSDK_hcnetsdk.jar
new file mode 100644
index 0000000..97c6504
Binary files /dev/null and b/SCBAXJ/app/libs/PlayerSDK_hcnetsdk.jar differ
diff --git a/SCBAXJ/app/libs/SangforSDK.jar b/SCBAXJ/app/libs/SangforSDK.jar
new file mode 100755
index 0000000..56abdc0
Binary files /dev/null and b/SCBAXJ/app/libs/SangforSDK.jar differ
diff --git a/SCBAXJ/app/libs/ZSDK_API.jar b/SCBAXJ/app/libs/ZSDK_API.jar
new file mode 100755
index 0000000..bd0a7e6
Binary files /dev/null and b/SCBAXJ/app/libs/ZSDK_API.jar differ
diff --git a/SCBAXJ/app/libs/arm64-v8a/libAudioEngine.so b/SCBAXJ/app/libs/arm64-v8a/libAudioEngine.so
new file mode 100644
index 0000000..e20d235
Binary files /dev/null and b/SCBAXJ/app/libs/arm64-v8a/libAudioEngine.so differ
diff --git a/SCBAXJ/app/libs/arm64-v8a/libHCAlarm.so b/SCBAXJ/app/libs/arm64-v8a/libHCAlarm.so
new file mode 100644
index 0000000..080cc48
Binary files /dev/null and b/SCBAXJ/app/libs/arm64-v8a/libHCAlarm.so differ
diff --git a/SCBAXJ/app/libs/arm64-v8a/libHCCore.so b/SCBAXJ/app/libs/arm64-v8a/libHCCore.so
new file mode 100644
index 0000000..ff6b081
Binary files /dev/null and b/SCBAXJ/app/libs/arm64-v8a/libHCCore.so differ
diff --git a/SCBAXJ/app/libs/arm64-v8a/libHCCoreDevCfg.so b/SCBAXJ/app/libs/arm64-v8a/libHCCoreDevCfg.so
new file mode 100644
index 0000000..d199924
Binary files /dev/null and b/SCBAXJ/app/libs/arm64-v8a/libHCCoreDevCfg.so differ
diff --git a/SCBAXJ/app/libs/arm64-v8a/libHCDisplay.so b/SCBAXJ/app/libs/arm64-v8a/libHCDisplay.so
new file mode 100644
index 0000000..15b11db
Binary files /dev/null and b/SCBAXJ/app/libs/arm64-v8a/libHCDisplay.so differ
diff --git a/SCBAXJ/app/libs/arm64-v8a/libHCGeneralCfgMgr.so b/SCBAXJ/app/libs/arm64-v8a/libHCGeneralCfgMgr.so
new file mode 100644
index 0000000..f5b5f3a
Binary files /dev/null and b/SCBAXJ/app/libs/arm64-v8a/libHCGeneralCfgMgr.so differ
diff --git a/SCBAXJ/app/libs/arm64-v8a/libHCIndustry.so b/SCBAXJ/app/libs/arm64-v8a/libHCIndustry.so
new file mode 100644
index 0000000..3d012c7
Binary files /dev/null and b/SCBAXJ/app/libs/arm64-v8a/libHCIndustry.so differ
diff --git a/SCBAXJ/app/libs/arm64-v8a/libHCPlayBack.so b/SCBAXJ/app/libs/arm64-v8a/libHCPlayBack.so
new file mode 100644
index 0000000..de2ce92
Binary files /dev/null and b/SCBAXJ/app/libs/arm64-v8a/libHCPlayBack.so differ
diff --git a/SCBAXJ/app/libs/arm64-v8a/libHCPreview.so b/SCBAXJ/app/libs/arm64-v8a/libHCPreview.so
new file mode 100644
index 0000000..ea2d0b9
Binary files /dev/null and b/SCBAXJ/app/libs/arm64-v8a/libHCPreview.so differ
diff --git a/SCBAXJ/app/libs/arm64-v8a/libHCVoiceTalk.so b/SCBAXJ/app/libs/arm64-v8a/libHCVoiceTalk.so
new file mode 100644
index 0000000..93d8260
Binary files /dev/null and b/SCBAXJ/app/libs/arm64-v8a/libHCVoiceTalk.so differ
diff --git a/SCBAXJ/app/libs/arm64-v8a/libNPQos.so b/SCBAXJ/app/libs/arm64-v8a/libNPQos.so
new file mode 100644
index 0000000..901a077
Binary files /dev/null and b/SCBAXJ/app/libs/arm64-v8a/libNPQos.so differ
diff --git a/SCBAXJ/app/libs/arm64-v8a/libPlayCtrl.so b/SCBAXJ/app/libs/arm64-v8a/libPlayCtrl.so
new file mode 100644
index 0000000..3423347
Binary files /dev/null and b/SCBAXJ/app/libs/arm64-v8a/libPlayCtrl.so differ
diff --git a/SCBAXJ/app/libs/arm64-v8a/libPlayCtrl_L.so b/SCBAXJ/app/libs/arm64-v8a/libPlayCtrl_L.so
new file mode 100644
index 0000000..fc952f2
Binary files /dev/null and b/SCBAXJ/app/libs/arm64-v8a/libPlayCtrl_L.so differ
diff --git a/SCBAXJ/app/libs/arm64-v8a/libSystemTransform.so b/SCBAXJ/app/libs/arm64-v8a/libSystemTransform.so
new file mode 100644
index 0000000..9c4dd7b
Binary files /dev/null and b/SCBAXJ/app/libs/arm64-v8a/libSystemTransform.so differ
diff --git a/SCBAXJ/app/libs/arm64-v8a/libcryptoPrivate.so b/SCBAXJ/app/libs/arm64-v8a/libcryptoPrivate.so
new file mode 100644
index 0000000..8dc9c11
Binary files /dev/null and b/SCBAXJ/app/libs/arm64-v8a/libcryptoPrivate.so differ
diff --git a/SCBAXJ/app/libs/arm64-v8a/libhcnetsdk.so b/SCBAXJ/app/libs/arm64-v8a/libhcnetsdk.so
new file mode 100644
index 0000000..82dcd1c
Binary files /dev/null and b/SCBAXJ/app/libs/arm64-v8a/libhcnetsdk.so differ
diff --git a/SCBAXJ/app/libs/arm64-v8a/libjnidispatch.so b/SCBAXJ/app/libs/arm64-v8a/libjnidispatch.so
new file mode 100644
index 0000000..82a4f2d
Binary files /dev/null and b/SCBAXJ/app/libs/arm64-v8a/libjnidispatch.so differ
diff --git a/SCBAXJ/app/libs/arm64-v8a/librinsunMT-lib.so b/SCBAXJ/app/libs/arm64-v8a/librinsunMT-lib.so
new file mode 100644
index 0000000..87b7246
Binary files /dev/null and b/SCBAXJ/app/libs/arm64-v8a/librinsunMT-lib.so differ
diff --git a/SCBAXJ/app/libs/arm64-v8a/libsslPrivate.so b/SCBAXJ/app/libs/arm64-v8a/libsslPrivate.so
new file mode 100644
index 0000000..977b7e7
Binary files /dev/null and b/SCBAXJ/app/libs/arm64-v8a/libsslPrivate.so differ
diff --git a/SCBAXJ/app/libs/armeabi-v7a/libAudioEngine.so b/SCBAXJ/app/libs/armeabi-v7a/libAudioEngine.so
new file mode 100644
index 0000000..b81e726
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi-v7a/libAudioEngine.so differ
diff --git a/SCBAXJ/app/libs/armeabi-v7a/libHCAlarm.so b/SCBAXJ/app/libs/armeabi-v7a/libHCAlarm.so
new file mode 100644
index 0000000..ab8f9f0
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi-v7a/libHCAlarm.so differ
diff --git a/SCBAXJ/app/libs/armeabi-v7a/libHCCore.so b/SCBAXJ/app/libs/armeabi-v7a/libHCCore.so
new file mode 100644
index 0000000..c85a029
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi-v7a/libHCCore.so differ
diff --git a/SCBAXJ/app/libs/armeabi-v7a/libHCCoreDevCfg.so b/SCBAXJ/app/libs/armeabi-v7a/libHCCoreDevCfg.so
new file mode 100644
index 0000000..07a1796
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi-v7a/libHCCoreDevCfg.so differ
diff --git a/SCBAXJ/app/libs/armeabi-v7a/libHCDisplay.so b/SCBAXJ/app/libs/armeabi-v7a/libHCDisplay.so
new file mode 100644
index 0000000..ce10cab
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi-v7a/libHCDisplay.so differ
diff --git a/SCBAXJ/app/libs/armeabi-v7a/libHCGeneralCfgMgr.so b/SCBAXJ/app/libs/armeabi-v7a/libHCGeneralCfgMgr.so
new file mode 100644
index 0000000..ee96df0
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi-v7a/libHCGeneralCfgMgr.so differ
diff --git a/SCBAXJ/app/libs/armeabi-v7a/libHCIndustry.so b/SCBAXJ/app/libs/armeabi-v7a/libHCIndustry.so
new file mode 100644
index 0000000..3dc18c3
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi-v7a/libHCIndustry.so differ
diff --git a/SCBAXJ/app/libs/armeabi-v7a/libHCPlayBack.so b/SCBAXJ/app/libs/armeabi-v7a/libHCPlayBack.so
new file mode 100644
index 0000000..4f4254d
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi-v7a/libHCPlayBack.so differ
diff --git a/SCBAXJ/app/libs/armeabi-v7a/libHCPreview.so b/SCBAXJ/app/libs/armeabi-v7a/libHCPreview.so
new file mode 100644
index 0000000..8e065de
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi-v7a/libHCPreview.so differ
diff --git a/SCBAXJ/app/libs/armeabi-v7a/libHCVoiceTalk.so b/SCBAXJ/app/libs/armeabi-v7a/libHCVoiceTalk.so
new file mode 100644
index 0000000..eb2517f
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi-v7a/libHCVoiceTalk.so differ
diff --git a/SCBAXJ/app/libs/armeabi-v7a/libNPQos.so b/SCBAXJ/app/libs/armeabi-v7a/libNPQos.so
new file mode 100644
index 0000000..65a1a67
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi-v7a/libNPQos.so differ
diff --git a/SCBAXJ/app/libs/armeabi-v7a/libPlayCtrl.so b/SCBAXJ/app/libs/armeabi-v7a/libPlayCtrl.so
new file mode 100644
index 0000000..0635ee8
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi-v7a/libPlayCtrl.so differ
diff --git a/SCBAXJ/app/libs/armeabi-v7a/libPlayCtrl_L.so b/SCBAXJ/app/libs/armeabi-v7a/libPlayCtrl_L.so
new file mode 100644
index 0000000..7135239
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi-v7a/libPlayCtrl_L.so differ
diff --git a/SCBAXJ/app/libs/armeabi-v7a/libSystemTransform.so b/SCBAXJ/app/libs/armeabi-v7a/libSystemTransform.so
new file mode 100644
index 0000000..a169eab
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi-v7a/libSystemTransform.so differ
diff --git a/SCBAXJ/app/libs/armeabi-v7a/libcryptoPrivate.so b/SCBAXJ/app/libs/armeabi-v7a/libcryptoPrivate.so
new file mode 100644
index 0000000..2ce2974
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi-v7a/libcryptoPrivate.so differ
diff --git a/SCBAXJ/app/libs/armeabi-v7a/libgnustl_shared.so b/SCBAXJ/app/libs/armeabi-v7a/libgnustl_shared.so
new file mode 100644
index 0000000..bca5820
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi-v7a/libgnustl_shared.so differ
diff --git a/SCBAXJ/app/libs/armeabi-v7a/libhcnetsdk.so b/SCBAXJ/app/libs/armeabi-v7a/libhcnetsdk.so
new file mode 100644
index 0000000..9ac3033
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi-v7a/libhcnetsdk.so differ
diff --git a/SCBAXJ/app/libs/armeabi-v7a/libhpr.so b/SCBAXJ/app/libs/armeabi-v7a/libhpr.so
new file mode 100644
index 0000000..13e1fe4
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi-v7a/libhpr.so differ
diff --git a/SCBAXJ/app/libs/armeabi-v7a/libjnidispatch.so b/SCBAXJ/app/libs/armeabi-v7a/libjnidispatch.so
new file mode 100644
index 0000000..f1e2831
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi-v7a/libjnidispatch.so differ
diff --git a/SCBAXJ/app/libs/armeabi-v7a/libopensslwrap.so b/SCBAXJ/app/libs/armeabi-v7a/libopensslwrap.so
new file mode 100644
index 0000000..d67a685
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi-v7a/libopensslwrap.so differ
diff --git a/SCBAXJ/app/libs/armeabi-v7a/libsslPrivate.so b/SCBAXJ/app/libs/armeabi-v7a/libsslPrivate.so
new file mode 100644
index 0000000..541cf8d
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi-v7a/libsslPrivate.so differ
diff --git a/SCBAXJ/app/libs/armeabi/libAudioEngine.so b/SCBAXJ/app/libs/armeabi/libAudioEngine.so
new file mode 100644
index 0000000..b81e726
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi/libAudioEngine.so differ
diff --git a/SCBAXJ/app/libs/armeabi/libHCAlarm.so b/SCBAXJ/app/libs/armeabi/libHCAlarm.so
new file mode 100644
index 0000000..63395fb
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi/libHCAlarm.so differ
diff --git a/SCBAXJ/app/libs/armeabi/libHCCore.so b/SCBAXJ/app/libs/armeabi/libHCCore.so
new file mode 100644
index 0000000..880159f
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi/libHCCore.so differ
diff --git a/SCBAXJ/app/libs/armeabi/libHCCoreDevCfg.so b/SCBAXJ/app/libs/armeabi/libHCCoreDevCfg.so
new file mode 100644
index 0000000..b481e2a
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi/libHCCoreDevCfg.so differ
diff --git a/SCBAXJ/app/libs/armeabi/libHCDisplay.so b/SCBAXJ/app/libs/armeabi/libHCDisplay.so
new file mode 100644
index 0000000..cbef08d
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi/libHCDisplay.so differ
diff --git a/SCBAXJ/app/libs/armeabi/libHCGeneralCfgMgr.so b/SCBAXJ/app/libs/armeabi/libHCGeneralCfgMgr.so
new file mode 100644
index 0000000..51a8460
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi/libHCGeneralCfgMgr.so differ
diff --git a/SCBAXJ/app/libs/armeabi/libHCIndustry.so b/SCBAXJ/app/libs/armeabi/libHCIndustry.so
new file mode 100644
index 0000000..5f8b765
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi/libHCIndustry.so differ
diff --git a/SCBAXJ/app/libs/armeabi/libHCPlayBack.so b/SCBAXJ/app/libs/armeabi/libHCPlayBack.so
new file mode 100644
index 0000000..6357c6a
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi/libHCPlayBack.so differ
diff --git a/SCBAXJ/app/libs/armeabi/libHCPreview.so b/SCBAXJ/app/libs/armeabi/libHCPreview.so
new file mode 100644
index 0000000..829917c
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi/libHCPreview.so differ
diff --git a/SCBAXJ/app/libs/armeabi/libHCVoiceTalk.so b/SCBAXJ/app/libs/armeabi/libHCVoiceTalk.so
new file mode 100644
index 0000000..3b59c20
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi/libHCVoiceTalk.so differ
diff --git a/SCBAXJ/app/libs/armeabi/libNPQos.so b/SCBAXJ/app/libs/armeabi/libNPQos.so
new file mode 100644
index 0000000..bf9d39e
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi/libNPQos.so differ
diff --git a/SCBAXJ/app/libs/armeabi/libPlayCtrl.so b/SCBAXJ/app/libs/armeabi/libPlayCtrl.so
new file mode 100644
index 0000000..2ff1b71
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi/libPlayCtrl.so differ
diff --git a/SCBAXJ/app/libs/armeabi/libPlayCtrl_L.so b/SCBAXJ/app/libs/armeabi/libPlayCtrl_L.so
new file mode 100644
index 0000000..7135239
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi/libPlayCtrl_L.so differ
diff --git a/SCBAXJ/app/libs/armeabi/libSystemTransform.so b/SCBAXJ/app/libs/armeabi/libSystemTransform.so
new file mode 100644
index 0000000..c47a21b
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi/libSystemTransform.so differ
diff --git a/SCBAXJ/app/libs/armeabi/libcryptoPrivate.so b/SCBAXJ/app/libs/armeabi/libcryptoPrivate.so
new file mode 100644
index 0000000..2ce2974
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi/libcryptoPrivate.so differ
diff --git a/SCBAXJ/app/libs/armeabi/libgnustl_shared.so b/SCBAXJ/app/libs/armeabi/libgnustl_shared.so
new file mode 100644
index 0000000..bca5820
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi/libgnustl_shared.so differ
diff --git a/SCBAXJ/app/libs/armeabi/libhcnetsdk.so b/SCBAXJ/app/libs/armeabi/libhcnetsdk.so
new file mode 100644
index 0000000..6a88c2b
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi/libhcnetsdk.so differ
diff --git a/SCBAXJ/app/libs/armeabi/libhpr.so b/SCBAXJ/app/libs/armeabi/libhpr.so
new file mode 100644
index 0000000..13e1fe4
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi/libhpr.so differ
diff --git a/SCBAXJ/app/libs/armeabi/libjnidispatch.so b/SCBAXJ/app/libs/armeabi/libjnidispatch.so
new file mode 100644
index 0000000..24e4e7d
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi/libjnidispatch.so differ
diff --git a/SCBAXJ/app/libs/armeabi/libopensslwrap.so b/SCBAXJ/app/libs/armeabi/libopensslwrap.so
new file mode 100644
index 0000000..d67a685
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi/libopensslwrap.so differ
diff --git a/SCBAXJ/app/libs/armeabi/libsslPrivate.so b/SCBAXJ/app/libs/armeabi/libsslPrivate.so
new file mode 100644
index 0000000..541cf8d
Binary files /dev/null and b/SCBAXJ/app/libs/armeabi/libsslPrivate.so differ
diff --git a/SCBAXJ/app/libs/badgeview.jar b/SCBAXJ/app/libs/badgeview.jar
new file mode 100755
index 0000000..8190474
Binary files /dev/null and b/SCBAXJ/app/libs/badgeview.jar differ
diff --git a/SCBAXJ/app/libs/gson-2.7.jar b/SCBAXJ/app/libs/gson-2.7.jar
new file mode 100755
index 0000000..be5b59b
Binary files /dev/null and b/SCBAXJ/app/libs/gson-2.7.jar differ
diff --git a/SCBAXJ/app/libs/jna.jar b/SCBAXJ/app/libs/jna.jar
new file mode 100644
index 0000000..dff20f7
Binary files /dev/null and b/SCBAXJ/app/libs/jna.jar differ
diff --git a/SCBAXJ/app/libs/ksoap2-android-assembly-3.6.0-jar-with-dependencies.jar b/SCBAXJ/app/libs/ksoap2-android-assembly-3.6.0-jar-with-dependencies.jar
new file mode 100755
index 0000000..3a97971
Binary files /dev/null and b/SCBAXJ/app/libs/ksoap2-android-assembly-3.6.0-jar-with-dependencies.jar differ
diff --git a/SCBAXJ/app/libs/rinsunMT.jar b/SCBAXJ/app/libs/rinsunMT.jar
new file mode 100644
index 0000000..1761ddc
Binary files /dev/null and b/SCBAXJ/app/libs/rinsunMT.jar differ
diff --git a/SCBAXJ/app/libs/zxing.jar b/SCBAXJ/app/libs/zxing.jar
new file mode 100755
index 0000000..c069965
Binary files /dev/null and b/SCBAXJ/app/libs/zxing.jar differ
diff --git a/SCBAXJ/app/proguard-rules.pro b/SCBAXJ/app/proguard-rules.pro
new file mode 100755
index 0000000..476bc8c
--- /dev/null
+++ b/SCBAXJ/app/proguard-rules.pro
@@ -0,0 +1,25 @@
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in /Users/ruihong/Library/Android/sdk/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the proguardFiles
+# directive in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/SCBAXJ/app/release/output-metadata.json b/SCBAXJ/app/release/output-metadata.json
new file mode 100644
index 0000000..b765657
--- /dev/null
+++ b/SCBAXJ/app/release/output-metadata.json
@@ -0,0 +1,20 @@
+{
+ "version": 3,
+ "artifactType": {
+ "type": "APK",
+ "kind": "Directory"
+ },
+ "applicationId": "com.rehome.scbaxj",
+ "variantName": "release",
+ "elements": [
+ {
+ "type": "SINGLE",
+ "filters": [],
+ "attributes": [],
+ "versionCode": 1,
+ "versionName": "1.0.0",
+ "outputFile": "app-release.apk"
+ }
+ ],
+ "elementType": "File"
+}
\ No newline at end of file
diff --git a/SCBAXJ/app/src/androidTest/java/com/rehome/scbaxj/ExampleInstrumentedTest.java b/SCBAXJ/app/src/androidTest/java/com/rehome/scbaxj/ExampleInstrumentedTest.java
new file mode 100755
index 0000000..f92c855
--- /dev/null
+++ b/SCBAXJ/app/src/androidTest/java/com/rehome/scbaxj/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package com.rehome.scbaxj;
+
+import android.content.Context;
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumentation test, which will execute on an Android device.
+ *
+ * @see Testing documentation
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+ @Test
+ public void useAppContext() throws Exception {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getTargetContext();
+
+ assertEquals("com.rehome.bhdxj", appContext.getPackageName());
+ }
+}
diff --git a/SCBAXJ/app/src/main/AndroidManifest.xml b/SCBAXJ/app/src/main/AndroidManifest.xml
new file mode 100755
index 0000000..2401aec
--- /dev/null
+++ b/SCBAXJ/app/src/main/AndroidManifest.xml
@@ -0,0 +1,327 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SCBAXJ/app/src/main/assets/litepal.xml b/SCBAXJ/app/src/main/assets/litepal.xml
new file mode 100755
index 0000000..821202a
--- /dev/null
+++ b/SCBAXJ/app/src/main/assets/litepal.xml
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SCBAXJ/app/src/main/ic_launcher-playstore.png b/SCBAXJ/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..d053e2d
Binary files /dev/null and b/SCBAXJ/app/src/main/ic_launcher-playstore.png differ
diff --git a/SCBAXJ/app/src/main/java/com/hcnetsdk/jna/HCNetSDKByJNA.java b/SCBAXJ/app/src/main/java/com/hcnetsdk/jna/HCNetSDKByJNA.java
new file mode 100644
index 0000000..eac2a40
--- /dev/null
+++ b/SCBAXJ/app/src/main/java/com/hcnetsdk/jna/HCNetSDKByJNA.java
@@ -0,0 +1,6281 @@
+package com.hcnetsdk.jna;
+
+import java.util.Arrays;
+import java.util.List;
+
+import com.hikvision.netsdk.EAP_TTLS;
+import com.hikvision.netsdk.NET_DVR_RECORDDAY;
+import com.hikvision.netsdk.NET_DVR_RECORDSCHED;
+import com.sun.jna.Callback;
+import com.sun.jna.Library;
+import com.sun.jna.Pointer;
+import com.sun.jna.Structure;
+import com.sun.jna.Union;
+import com.sun.jna.ptr.ByteByReference;
+import com.sun.jna.ptr.IntByReference;
+
+public interface HCNetSDKByJNA extends Library {
+
+ // command begin
+ public static final int NET_DVR_SET_PTZPOS =292;
+ public static final int NET_DVR_GET_PTZPOS =293;
+
+ public static final int NET_DVR_GET_TIMECFG = 118;
+ public static final int NET_DVR_SET_TIMECFG = 119;
+ //public static final int NET_DVR_GET_NTPCFG = 224; //jni
+ //public static final int NET_DVR_SET_NTPCFG = 225; //jni/**Set network application parameters(NTP)*/
+ //public static final int NET_DVR_GET_DEVICECFG_V40 = 1100; //jni
+ //public static final int NET_DVR_SET_DEVICECFG_V40 = 1101; //jni
+ //public static final int NET_DVR_GET_NETCFG_V30 = 1000; //jni
+ //public static final int NET_DVR_SET_NETCFG_V30 = 1001; //jni
+ //public static final int NET_DVR_SET_WIFI_CFG = 306; //jni
+ //public static final int NET_DVR_GET_WIFI_CFG = 307; //jni
+ //public static final int NET_DVR_GET_AP_INFO_LIST = 305; //jni
+ //public static final int NET_DVR_GET_WIFI_STATUS = 310; //jni
+ public static final int NET_DVR_GET_RECORDCFG_V30 = 1004;
+ public static final int NET_DVR_SET_RECORDCFG_V30 = 1005;
+ public static final int NET_DVR_SET_ALARMIN_PARAM_V50 = 1200;
+ public static final int NET_DVR_GET_ALARMIN_PARAM_V50 = 1201;
+ public static final int NET_DVR_GET_WEEK_PLAN_CFG = 2100; //get week plan of door
+ public static final int NET_DVR_SET_WEEK_PLAN_CFG = 2101; //set week plan of door
+ public static final int NET_DVR_GET_ACS_WORK_STATUS = 2123;
+ public static final int NET_DVR_GET_VERIFY_WEEK_PLAN = 2124;
+ public static final int NET_DVR_SET_VERIFY_WEEK_PLAN = 2125;
+ public static final int NET_DVR_GET_CARD_RIGHT_WEEK_PLAN = 2126;
+ public static final int NET_DVR_SET_CARD_RIGHT_WEEK_PLAN = 2127;
+ public static final int NET_DVR_GET_CARD_RIGHT_WEEK_PLAN_V50 = 2304;
+ public static final int NET_DVR_SET_CARD_RIGHT_WEEK_PLAN_V50 = 2305;
+ public static final int NET_DVR_GET_DOOR_STATUS_HOLIDAY_PLAN = 2102;
+ public static final int NET_DVR_SET_DOOR_STATUS_HOLIDAY_PLAN = 2103;
+ public static final int NET_DVR_GET_VERIFY_HOLIDAY_PLAN = 2128;
+ public static final int NET_DVR_SET_VERIFY_HOLIDAY_PLAN = 2129;
+ public static final int NET_DVR_GET_CARD_RIGHT_HOLIDAY_PLAN = 2130;
+ public static final int NET_DVR_SET_CARD_RIGHT_HOLIDAY_PLAN = 2131;
+ public static final int NET_DVR_GET_ALARMIN_PARAM_LIST_V50 = 2237;
+ public static final int NET_DVR_GET_CARD_RIGHT_HOLIDAY_PLAN_V50 = 2310;
+ public static final int NET_DVR_SET_CARD_RIGHT_HOLIDAY_PLAN_V50 = 2311;
+ public static final int NET_DVR_GET_DOOR_STATUS_HOLIDAY_GROUP = 2104;
+ public static final int NET_DVR_SET_DOOR_STATUS_HOLIDAY_GROUP = 2105;
+ public static final int NET_DVR_GET_VERIFY_HOLIDAY_GROUP = 2132;
+ public static final int NET_DVR_SET_VERIFY_HOLIDAY_GROUP = 2133;
+ public static final int NET_DVR_GET_CARD_RIGHT_HOLIDAY_GROUP = 2134;
+ public static final int NET_DVR_SET_CARD_RIGHT_HOLIDAY_GROUP = 2135;
+ public static final int NET_DVR_GET_CARD_RIGHT_HOLIDAY_GROUP_V50 = 2316;
+ public static final int NET_DVR_SET_CARD_RIGHT_HOLIDAY_GROUP_V50 = 2317;
+ public static final int NET_DVR_GET_DOOR_STATUS_PLAN_TEMPLATE = 2106;
+ public static final int NET_DVR_SET_DOOR_STATUS_PLAN_TEMPLATE = 2107;
+ public static final int NET_DVR_GET_VERIFY_PLAN_TEMPLATE = 2136;
+ public static final int NET_DVR_SET_VERIFY_PLAN_TEMPLATE = 2137;
+ public static final int NET_DVR_GET_CARD_RIGHT_PLAN_TEMPLATE = 2138;
+ public static final int NET_DVR_SET_CARD_RIGHT_PLAN_TEMPLATE = 2139;
+ public static final int NET_DVR_GET_CARD_RIGHT_PLAN_TEMPLATE_V50 = 2322;
+ public static final int NET_DVR_SET_CARD_RIGHT_PLAN_TEMPLATE_V50 = 2323;
+ public static final int NET_DVR_GET_DOOR_CFG = 2108;
+ public static final int NET_DVR_SET_DOOR_CFG = 2109;
+ public static final int NET_DVR_GET_CARD_READER_CFG_V50 = 2505;
+ public static final int NET_DVR_SET_CARD_READER_CFG_V50 = 2506;
+ public static final int NET_DVR_GET_ACS_WORK_STATUS_V50 = 2180;
+ public static final int NET_DVR_SET_WIFI_WORKMODE = 308;
+ public static final int NET_DVR_GET_WIFI_WORKMODE = 309;
+ public static final int NET_DVR_CLEAR_ACS_PARAM = 2118;
+ public static final int NET_DVR_COMPLETE_RESTORE_CTRL = 3420;
+ public static final int NET_DVR_GET_CARD_CFG = 2116;
+
+ public static final int NET_DVR_VIDEO_CALL_SIGNAL_PROCESS = 16032;
+
+ public static final int NET_DVR_GET_ALARMHOSTSUBSYSTEM_CFG = 2001;
+ public static final int NET_DVR_SET_ALARMHOSTSUBSYSTEM_CFG = 2002;
+
+ public static final int NET_DVR_GET_ALARMHOST_OTHER_STATUS_V50 = 2228;
+ public static final int NET_DVR_GET_ALARMHOST_OTHER_STATUS_V51 = 2236;
+
+ public static final int NET_DVR_GET_MULTI_STREAM_COMPRESSIONCFG = 3216;
+ public static final int NET_DVR_SET_MULTI_STREAM_COMPRESSIONCFG = 3217;
+
+ public static final int NET_DVR_START_GET_INPUTVOLUME = 3370;
+
+ public static final int NET_DVR_GET_LOITERING_DETECTION = 3521;
+ public static final int NET_DVR_SET_LOITERING_DETECTION = 3522;
+
+ public static final int NET_DVR_GET_LED_AREA_INFO_LIST = 9295;
+
+ public static final int NET_DVR_MATRIX_GETWINSTATUS = 9009;
+
+ public static final int NET_SDK_GET_INPUTSTREAMCFG = 1551;
+
+ public static final int NET_DVR_GET_EZVIZ_ACCESS_CFG = 3398;
+ public static final int NET_DVR_SET_EZVIZ_ACCESS_CFG = 3399;
+
+
+ public static final int NET_SDK_GET_VIDEOWALLDISPLAYNO = 1553;
+
+ public static final int NET_SDK_GET_ALLSUBSYSTEM_BASIC_INFO =1554;
+
+ public static final int NET_SDK_SET_ALLSUBSYSTEM_BASIC_INFO = 1555;
+
+ public static final int NET_SDK_GET_AUDIO_INFO =1556;
+
+ public static final int NET_DVR_GET_VIDEOWALLDISPLAYNO = 1732;
+
+ public static final int NET_DVR_SET_VIDEOWALLDISPLAYPOSITION =1733;
+
+ public static final int NET_DVR_GET_VIDEOWALLDISPLAYPOSITION =1734;
+
+ public static final int NET_DVR_GET_CURTRIGGERMODE = 3130;
+
+ public static final int NET_ITC_GET_RS485_ACCESSINFO = 3117;
+
+ public static final int NET_ITC_SET_RS485_ACCESSINFO = 3118;
+
+ public static final int NET_DVR_GET_SHOWSTRING_V30 = 1030;
+
+ public static final int NET_DVR_SET_SHOWSTRING_V30 = 1031;
+
+ public static final int NET_ITS_GET_OVERLAP_CFG = 5072;
+
+ public static final int NET_ITS_SET_OVERLAP_CFG = 5073;
+
+ public static final int NET_ITC_GET_TRIGGERCFG = 3003;
+
+ public static final int NET_ITC_SET_TRIGGERCFG = 3004;
+
+ public static final int NET_DVR_GET_CCDPARAMCFG_EX = 3368;
+ public static final int NET_DVR_SET_CCDPARAMCFG_EX = 3369;
+
+ public static final int NET_DVR_FFC_MANUAL_CTRL = 3411;
+
+ public static final int NET_DVR_GET_THERMOMETRY_BASICPARAM_CAPABILITIES = 3620; //Get Thermometry Basic Param capabilities
+ public static final int NET_DVR_GET_THERMOMETRY_BASICPARAM = 3621;
+ public static final int NET_DVR_SET_THERMOMETRY_BASICPARAM = 3622;
+ public static final int NET_DVR_GET_THERMOMETRY_PRESETINFO = 3624; //Get Thermometry Preset Info
+ public static final int NET_DVR_SET_THERMOMETRY_PRESETINFO = 3625;
+
+ public static final int NET_DVR_GET_FACECONTRAST_TRIGGER = 3965;
+ public static final int NET_DVR_SET_FACECONTRAST_TRIGGER = 3966;
+
+ public static final int NET_DVR_GET_FACECONTRAST_SCHEDULE = 3968;
+ public static final int NET_DVR_SET_FACECONTRAST_SCHEDULE = 3969;
+
+ public static final int NET_DVR_GET_PICCFG_V40 = 6179;
+ public static final int NET_DVR_SET_PICCFG_V40 = 6180;
+
+ public static final int NET_DVR_GET_THERMAL_PIP = 6768;
+ public static final int NET_DVR_SET_THERMAL_PIP = 6769;
+
+ /*************************************************New ACS ***************************************************/
+ public static final int NET_DVR_GET_CARD_CFG_V50 = 2178;//Parameters to acquire new CARDS (V50)
+ public static final int NET_DVR_SET_CARD_CFG_V50 = 2179;//Setting up the new parameters (V50)
+
+ public static final int NET_DVR_SET_FACE_PARAM_CFG=2508;
+ public static final int NET_DVR_GET_FACE_PARAM_CFG=2507;
+
+ public static final int NET_DVR_GET_ACS_EVENT = 2514;
+
+ public static final int NET_DVR_CAPTURE_FACE_INFO =2510;
+
+ public static final int NET_DVR_DEL_FACE_PARAM_CFG = 2509; //del face param
+ /**********************************************************************************************************/
+
+
+ public static final int NET_DVR_GET_NETCFG_V50 = 1015; //Get network parameter configuration (V50)
+ public static final int NET_DVR_SET_NETCFG_V50 = 1016; //Set network parameter configuration (V50)
+
+ public static final int NET_DVR_GET_EVENT_CARD_LINKAGE_CFG_V51 = 2518; //Get event card number linkage configuration parameters (V51)
+ public static final int NET_DVR_SET_EVENT_CARD_LINKAGE_CFG_V51 = 2519; //Set up the event card number linkage configuration parameters (V51)
+
+ // command end
+
+ //alarm type
+ public static final int COMM_ALARM_RULE = 0x1102;
+ public static final int COMM_ALARM_PDC = 0x1103;
+ public static final int COMM_UPLOAD_FACESNAP_RESULT = 0x1112;
+ public static final int COMM_UPLOAD_PLATE_RESULT = 0x2800;
+ public static final int COMM_SNAP_MATCH_ALARM = 0x2902;
+ public static final int COMM_ITS_PLATE_RESULT = 0x3050;
+ public static final int COMM_VEHICLE_CONTROL_ALARM = 0x3059;
+ public static final int COMM_ALARM_V30 = 0x4000;
+ public static final int COMM_ALARM_V40 = 0x4007;
+ public static final int COMM_ALARM_FACE_DETECTION = 0x4010;
+ public static final int COMM_ALARM_TFS = 0x1113;
+ /****************************************New ACS*************************************/
+ public static final int COMM_ID_INFO_ALARM=0x5200;
+ /***********************************************************************************/
+
+ public static final int COMM_ALARM_ACS = 0x5002; //access card alarm
+ public static final int COMM_PASSNUM_INFO_ALARM = 0x5201; //pass number info alarm
+
+ public static final int COMM_THERMOMETRY_ALARM = 0x5212;
+ public static final int COMM_ISAPI_ALARM = 0x6009;
+ //alarm type end
+
+ public static final int NET_DVR_DEV_ADDRESS_MAX_LEN = 129;
+ public static final int NET_DVR_LOGIN_USERNAME_MAX_LEN = 64;
+ public static final int NET_DVR_LOGIN_PASSWD_MAX_LEN = 64;
+ public static final int NET_SDK_CALLBACK_TYPE_STATUS = 0;
+ public static final int NET_SDK_CALLBACK_TYPE_PROGRESS = 1;
+ public static final int NET_SDK_CALLBACK_TYPE_DATA = 2;
+
+ public static final int NET_SDK_CALLBACK_STATUS_SUCCESS = 1000;
+ public static final int NET_SDK_CALLBACK_STATUS_PROCESSING = 1001;
+ public static final int NET_SDK_CALLBACK_STATUS_FAILED = 1002;
+ public static final int NET_SDK_CALLBACK_STATUS_EXCEPTION = 1003;
+ public static final int NET_SDK_CALLBACK_STATUS_LANGUAGE_MISMATCH = 1004;
+ public static final int NET_SDK_CALLBACK_STATUS_DEV_TYPE_MISMATCH = 1005;
+ public static final int NET_DVR_CALLBACK_STATUS_SEND_WAIT = 1006;
+
+ public static final int NET_SDK_EMPLOYEE_NO_LEN = 32;
+ public static final int NET_SDK_UUID_LEN = 36;
+ public static final int NET_DEV_NAME_LEN = 64;
+ public static final int ACS_CARD_NO_LEN = 32;
+ public static final int CARD_PASSWORD_LEN = 8;
+ public static final int MAX_DOOR_NUM = 32;
+ public static final int MAX_CARD_RIGHT_PLAN_NUM = 4;
+
+ public static final int STREAM_ID_LEN = 32;
+ public static final int SERIALNO_LEN = 48;
+ public static final int NAME_LEN = 32;
+ public static final int MACADDR_LEN = 6;
+ public static final int MAX_DISKNUM_V30 = 33;
+ public static final int MAX_DISKNUM = 16;
+ public static final int MAX_LICENSE_LEN = 16;
+
+ public static final int MAX_HUMAN_BIRTHDATE_LEN = 10;
+
+ public static final int MAX_CHANNUM = 16;
+ public static final int MAX_ALARMIN = 16;
+ public static final int MAX_ALARMOUT = 4;
+
+ public static final int MAX_ANALOG_CHANNUM = 32;
+ public static final int MAX_ANALOG_ALARMOUT = 32;
+ public static final int MAX_ANALOG_ALARMIN = 32;
+ public static final int MAX_IP_DEVICE = 32;
+ public static final int MAX_IP_CHANNEL = 32;
+ public static final int MAX_IP_ALARMIN = 128;
+ public static final int MAX_IP_ALARMOUT = 64;
+ public static final int ALARMHOST_DETECTOR_SERIAL_LEN_V50 = 16;
+
+ public static final int MAX_CHANNUM_V30 = (MAX_ANALOG_CHANNUM + MAX_IP_CHANNEL);// 64
+ public static final int MAX_ALARMOUT_V30 = (MAX_ANALOG_ALARMOUT + MAX_IP_ALARMOUT);// 96
+ public static final int MAX_ALARMIN_V30 = (MAX_ANALOG_ALARMIN + MAX_IP_ALARMIN);// 160
+
+ public static final int VCA_MAX_POLYGON_POINT_NUM = 10;
+ public static final int MAX_REGION_NUM = 8;
+ public static final int MAX_NUM_OUTPUT_CHANNEL = 512;
+
+ public static final int MAX_DISPLAY_NUM = 512;
+
+ public static final int ALARMHOST_MAX_SIREN_NUM = 8;
+ public static final int MAX_DETECTOR_NUM = 128;
+ public static final int MAX_DETECTOR_NUM_V51 = 256;
+ public static final int MAX_REPEATER_NUM = 16;
+ public static final int MAX_OUTPUT_MODULE_NUM = 64;
+ public static final int ENUM_VCA_EVENT_TRAVERSE_PLANE = 1;
+ public static final int ENUM_VCA_EVENT_ENTER_AREA = 2;
+ public static final int ENUM_VCA_EVENT_EXIT_AREA = 3;
+ public static final int ENUM_VCA_EVENT_INTRUSION = 4;
+ public static final int ENUM_VCA_EVENT_LOITER = 5;
+ public static final int ENUM_VCA_EVENT_LEFT_TAKE = 6;
+ public static final int ENUM_VCA_EVENT_PARKING = 7;
+ public static final int ENUM_VCA_EVENT_RUN = 8;
+ public static final int ENUM_VCA_EVENT_HIGH_DENSITY = 9;
+ public static final int ENUM_VCA_EVENT_VIOLENT_MOTION = 10;
+ public static final int ENUM_VCA_EVENT_REACH_HIGHT = 11;
+ public static final int ENUM_VCA_EVENT_GET_UP = 12;
+ public static final int ENUM_VCA_EVENT_LEFT = 13;
+ public static final int ENUM_VCA_EVENT_TAKE = 14;
+ public static final int ENUM_VCA_EVENT_LEAVE_POSITION = 15;
+ public static final int ENUM_VCA_EVENT_TRAIL = 16;
+ public static final int ENUM_VCA_EVENT_KEY_PERSON_GET_UP = 17;
+ public static final int ENUM_VCA_EVENT_STANDUP = 18;
+ public static final int ENUM_VCA_EVENT_FALL_DOWN = 20;
+ public static final int ENUM_VCA_EVENT_AUDIO_ABNORMAL = 21;
+ public static final int ENUM_VCA_EVENT_ADV_REACH_HEIGHT = 22;
+ public static final int ENUM_VCA_EVENT_TOILET_TARRY = 23;
+ public static final int ENUM_VCA_EVENT_YARD_TARRY = 24;
+ public static final int ENUM_VCA_EVENT_ADV_TRAVERSE_PLANE = 25;
+ public static final int ENUM_VCA_EVENT_HUMAN_ENTER = 29;
+ public static final int ENUM_VCA_EVENT_OVER_TIME = 30;
+ public static final int ENUM_VCA_EVENT_STICK_UP = 31;
+ public static final int ENUM_VCA_EVENT_INSTALL_SCANNER = 32;
+ public static final int ENUM_VCA_EVENT_PEOPLENUM_CHANGE = 35;
+ public static final int ENUM_VCA_EVENT_SPACING_CHANGE = 36;
+ public static final int ENUM_VCA_EVENT_COMBINED_RULE = 37;
+ public static final int ENUM_VCA_EVENT_SIT_QUIETLY = 38;
+ public static final int ENUM_VCA_EVENT_HIGH_DENSITY_STATUS = 39;
+
+
+ public static final int MAX_SUBSYSTEM_ID_LEN = 16;
+ public static final int ACCOUNTNUM_LEN = 6;
+ public static final int ACCOUNTNUM_LEN_32 = 32;
+
+
+ public static final int EZVIZ_DEVICEID_LEN = 32;
+ public static final int EZVIZ_REQURL_LEN = 64;
+ public static final int EZVIZ_ACCESSTOKEN_LEN = 128;
+ public static final int EZVIZ_CLIENTTYPE_LEN = 32;
+ public static final int EZVIZ_FEATURECODE_LEN = 64;
+ public static final int EZVIZ_OSVERSION_LEN = 32;
+ public static final int EZVIZ_NETTYPE_LEN = 32;
+ public static final int EZVIZ_SDKVERSION_LEN = 32;
+ public static final int EZVIZ_APPID_LEN = 64;
+
+ public static final int MAX_DOMAIN_NAME = 64;
+ public static final int PASSWD_LEN = 16;
+ public static final int MAX_CARDNO_LEN = 48;
+
+ public static final int NET_SDK_MAX_VERIFICATION_CODE_LEN = 32;
+
+ public static final int NET_SDK_MAX_FDID_LEN = 256;
+ public static final int MAX_UPLOADFILE_URL_LEN = 260;
+ public static final int NET_SDK_MAX_PICID_LEN = 256;
+
+ public static final int ENUM_DVR_VEHICLE_CHECK = 1;
+ public static final int ENUM_MSC_SEND_DATA = 2;
+ public static final int ENUM_ACS_SEND_DATA =3;
+ public static final int ENUM_TME_CARD_SEND_DATA = 4;
+ public static final int ENUM_TME_VEHICLE_SEND_DATA = 5;
+ public static final int ENUM_DVR_DEBUG_CMD = 6;
+ public static final int ENUM_DVR_SCREEN_CTRL_CMD =7;
+ public static final int ENUM_CVR_PASSBACK_SEND_DATA = 8;
+
+ public static final int ISAPI_DATA_LEN = 10*1024*1024;
+ public static final int ISAPI_STATUS_LEN = 4*4096;
+ public static final int BYTE_ARRAY_LEN = 1024;
+
+ public static final int MAX_MAX_ALARMIN_NUM = 64;
+ public static final int MAX_DAYS = 7;
+ public static final int MAX_TIMESEGMENT_V30 = 8;
+ public static final int MAX_TIMESEGMENT = 4;
+ public static final int HOLIDAY_GROUP_NAME_LEN = 32;
+ public static final int MAX_HOLIDAY_PLAN_NUM = 16;
+ public static final int TEMPLATE_NAME_LEN = 32;
+ public static final int MAX_HOLIDAY_GROUP_NUM = 16;
+ public static final int DEV_TYPE_NAME_LEN = 64;
+ public static final int DOOR_NAME_LEN = 32;
+ public static final int STRESS_PASSWORD_LEN = 8;
+ public static final int SUPER_PASSWORD_LEN = 8;
+ public static final int UNLOCK_PASSWORD_LEN = 8;
+ public static final int CARD_READER_DESCRIPTION = 32;
+ public static final int MAX_DOOR_NUM_256 = 256;
+ public static final int MAX_CASE_SENSOR_NUM = 8;
+ public static final int MAX_CARD_READER_NUM = 64;
+ public static final int MAX_CARD_READER_NUM_512 = 512;
+ public static final int MAX_ALARMHOST_ALARMOUT_NUM = 512;
+ public static final int MAX_ALARMHOST_ALARMIN_NUM = 512;
+ public static final int ALARMHOST_DETECTOR_SERIAL_LEN = 9;
+
+ public static final int PICTURE_NAME_LEN = 64;
+ public static final int MAX_FACE_PIC_NUM = 30;
+ public static final int CARDNUM_LEN_V30 = 40;
+ public static final int MAX_ITC_LANE_NUM = 6;
+ public static final int MAX_CHJC_NUM = 3;
+ public static final int MAX_IOOUT_NUM = 4;
+ public static final int MAX_LANEAREA_NUM = 2;
+ public static final int MAX_INTERVAL_NUM = 4;
+ public static final int ITC_MAX_POLYGON_POINT_NUM = 20;
+ public static final int MAX_OVERLAP_ITEM_NUM = 50;
+ public static final int MAX_STRINGNUM_V30 = 8;
+ public static final int NET_DVR_FILE_SUCCESS = 1000;
+ public static final int NET_DVR_FILE_NOFIND = 1001;
+ public static final int NET_DVR_ISFINDING = 1002;
+ public static final int NET_DVR_NOMOREFILE = 1003;
+ public static final int NET_DVR_FILE_EXCEPTION = 1004;
+ public static final int MAX_SUBSYSTEM_NUM_V40 = 120;
+
+ public static final int MONITORSITE_ID_LEN = 48;
+ public static final int DEVICE_ID_LEN = 48;
+
+ public static final int MAX_SHELTERNUM = 4;
+ public static final int MAX_ALARMOUT_V40 = 4128;
+ public static final int MAX_CHANNUM_V40 = 512;
+ public static final int MAX_MULTI_AREA_NUM = 24;
+ public static final int MAX_THERMOMETRY_REGION_NUM = 40;
+
+ public static final int MAX_CATEGORY_LEN = 8;
+ public static final int MAX_LICENSE_LEN_EX = 32;
+
+
+ /* Commands for playing file*/
+ public static final int NET_DVR_PLAYSTART = 1;//Start play
+ public static final int NET_DVR_PLAYSTOP = 2;//Stop play
+ public static final int NET_DVR_PLAYPAUSE = 3;//Pause
+ public static final int NET_DVR_PLAYRESTART = 4;//Restore
+ public static final int NET_DVR_PLAYFAST = 5;//Play Faster
+ public static final int NET_DVR_PLAYSLOW = 6;//Play Slower
+ public static final int NET_DVR_PLAYNORMAL = 7;//Normal Speed
+ public static final int NET_DVR_PLAYSTARTAUDIO = 9;//Open Audio
+ public static final int NET_DVR_PLAYSTOPAUDIO = 10;//Close Audio
+ public static final int NET_DVR_PLAYSETPOS = 12;//Change playing progress
+ public static final int NET_DVR_RESETBUFFER =37 ;//reset matrix decode buffer(remote playback file)
+
+ /*********************************************New ACS**********************************************/
+ /*ID Card*/
+ public static class NET_DVR_ID_CARD_INFO_ALARM extends Structure {
+ public int dwSize;
+ public NET_DVR_ID_CARD_INFO struIDCardCfg = new NET_DVR_ID_CARD_INFO();
+ public int dwMajor;
+ public int dwMinor;
+ public NET_DVR_TIME_V30 struSwipeTime = new NET_DVR_TIME_V30();
+ public byte byNetUser[] = new byte[16];
+ public NET_DVR_IPADDR struRemoteHostAddr = new NET_DVR_IPADDR();
+ public int dwCardReaderNo;
+ public int dwDoorNo;
+ public int dwPicDataLen;
+ public Pointer pPicData;
+ public byte byCardType;
+ public byte byDeviceNo;
+ public byte byMask;
+ public byte byRes2;
+ public int dwFingerPrintDataLen;
+ public Pointer pFingerPrintData;
+ public int dwCapturePicDataLen;
+ public Pointer pCapturePicData;
+ public int dwCertificatePicDataLen;
+ public Pointer pCertificatePicData;
+ public byte byCardReaderKind;
+ public byte byRes3[] = new byte[2];
+ public byte byIDCardInfoExtend;
+ public Pointer pIDCardInfoExtend;
+ public byte byRes[] = new byte[172];
+
+ public NET_DVR_ID_CARD_INFO_ALARM(Pointer p){
+ super(p);
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ return Arrays.asList("dwSize", "struIDCardCfg", "dwMajor",
+ "dwMinor", "struSwipeTime", "byNetUser",
+ "struRemoteHostAddr", "dwCardReaderNo", "dwDoorNo",
+ "dwPicDataLen", "pPicData", "byCardType", "byDeviceNo",
+ "byMask", "byRes2", "dwFingerPrintDataLen", "pFingerPrintData",
+ "dwCapturePicDataLen", "pCapturePicData", "dwCertificatePicDataLen", "pCertificatePicData",
+ "byCardReaderKind", "byRes3", "byIDCardInfoExtend",
+ "pIDCardInfoExtend", "byRes");
+ }
+ }
+
+ public static class NET_DVR_ID_CARD_INFO_EXTEND extends Structure
+ {
+ public byte byRemoteCheck; //是否需要远程核验(0-无效,1-不需要(默认),2-需要)
+ public byte byThermometryUnit; //测温单位(0-摄氏度(默认),1-华氏度,2-开尔文)
+ public byte byIsAbnomalTemperature; //人脸抓拍测温是否温度异常:1-是,0-否
+ public byte byRes2;
+ public float fCurrTemperature; //人脸温度(精确到小数点后一位)
+ public NET_VCA_POINT struRegionCoordinates = new NET_VCA_POINT(); //人脸温度坐标
+ public int dwQRCodeInfoLen; //二维码信息长度,不为0是表示后面带数据
+ public int dwVisibleLightDataLen; //热成像相机可见光图片长度,不为0是表示后面带数据
+ public int dwThermalDataLen; //热成像图片长度,不为0是表示后面带数据
+ public Pointer pQRCodeInfo; //二维码信息指针
+ public Pointer pVisibleLightData; //热成像相机可见光图片指针
+ public Pointer pThermalData; //热成像图片指针
+ public byte[] byRes = new byte[1024];
+
+ public NET_DVR_ID_CARD_INFO_EXTEND(Pointer p){
+ super(p);
+ }
+
+ @Override
+ protected List getFieldOrder(){
+ return Arrays.asList("byRemoteCheck","byThermometryUnit","byIsAbnomalTemperature","byRes2",
+ "fCurrTemperature","struRegionCoordinates","dwQRCodeInfoLen","dwVisibleLightDataLen",
+ "dwThermalDataLen","pQRCodeInfo","pVisibleLightData","pThermalData","byRes");
+ }
+ }
+
+ public static class NET_DVR_ID_CARD_INFO extends Structure {
+ public int dwSize;
+ public byte byName[] = new byte[128];
+ public NET_DVR_DATE struBirth = new NET_DVR_DATE();
+ public byte byAddr[] = new byte[280];
+ public byte byIDNum[] = new byte[32];
+ public byte byIssuingAuthority[] = new byte[128];
+ public NET_DVR_DATE struStartDate = new NET_DVR_DATE();
+ public NET_DVR_DATE struEndDate = new NET_DVR_DATE();
+ public byte byTermOfValidity;
+ public byte bySex;
+ public byte byNation;
+ public byte byRes[] = new byte[101];
+
+ @Override
+ protected List getFieldOrder() {
+ return Arrays.asList("dwSize", "byName", "struBirth", "byAddr",
+ "byIDNum", "byIssuingAuthority", "struStartDate",
+ "struEndDate", "byTermOfValidity", "bySex", "byNation",
+ "byRes");
+ }
+ }
+
+ public static class NET_DVR_FACE_PARAM_STATUS extends Structure {
+ public int dwSize;
+ public byte byCardNo[] = new byte[32];
+ public byte byCardReaderRecvStatus[] = new byte[512];
+ public byte byErrorMsg[] = new byte[32];
+ public int dwCardReaderNo;
+ public byte byTotalStatus;
+ public byte byFaceID;
+ public byte byRes[] = new byte[130];
+
+ @Override
+ protected List getFieldOrder() {
+ return Arrays.asList("dwSize", "byCardNo",
+ "byCardReaderRecvStatus", "byErrorMsg", "dwCardReaderNo",
+ "byTotalStatus", "byFaceID", "byRes");
+ }
+ public NET_DVR_FACE_PARAM_STATUS(Pointer p) {
+ super(p);
+ }
+ }
+
+
+
+ /*门禁事件类型*/
+ public static class NET_DVR_ACS_EVENT_COND extends Structure {
+ public int dwSize;
+ public int dwMajor;
+ public int dwMinor;
+ public NET_DVR_TIME struStartTime = new NET_DVR_TIME();
+ public NET_DVR_TIME struEndTime = new NET_DVR_TIME();
+ public byte byCardNo[] = new byte[32];
+ public byte byName[] = new byte[32];
+ public byte byPicEnable;
+ public byte byRes2[] = new byte[3];
+ public int dwBeginSerialNo;
+ public int dwEndSerialNo;
+ public byte byRes[] = new byte[244];
+
+ @Override
+ protected List getFieldOrder() {
+ return Arrays.asList("dwSize", "dwMajor", "dwMinor",
+ "struStartTime", "struEndTime", "byCardNo", "byName",
+ "byPicEnable", "byRes2", "dwBeginSerialNo",
+ "dwEndSerialNo", "byRes");
+ }
+ }
+
+ /*人脸采集*/
+ public static class NET_DVR_CAPTURE_FACE_COND extends Structure {
+ public int dwSize;
+ public byte byRes[] = new byte[128];
+
+ @Override
+ protected List getFieldOrder() {
+ return Arrays.asList("dwSize", "byRes");
+ }
+ }
+
+
+ /*人脸参数*/
+ public static class NET_DVR_FACE_PARAM_COND extends Structure {
+ public int dwSize;
+ public byte byCardNo[] = new byte[32];
+ public byte byEnableCardReader[] = new byte[512];
+ public int dwFaceNum;
+ public byte byFaceID;
+ public byte byRes[] = new byte[127];
+
+ @Override
+ protected List getFieldOrder() {
+ return Arrays.asList("dwSize", "byCardNo", "byEnableCardReader",
+ "dwFaceNum", "byFaceID", "byRes");
+ }
+ }
+
+ public static class NET_DVR_CARD_CFG_V50 extends Structure {
+ public static class short_arr_1 extends Structure {
+ public short byKeyInfo[] = new short[256];
+
+ @Override
+ protected List getFieldOrder() {
+ return Arrays.asList("byKeyInfo");
+ }
+ }
+
+ public int dwSize;
+ public int dwModifyParamType;
+ public byte byCardNo[] = new byte[32];
+ public byte byCardValid;
+ public byte byCardType;
+ public byte byLeaderCard;
+ public byte byRes1;
+ public byte byDoorRight[] = new byte[256];
+ public NET_DVR_VALID_PERIOD_CFG struValid = new NET_DVR_VALID_PERIOD_CFG();
+ public byte byBelongGroup[] = new byte[128];
+ public byte byCardPassword[] = new byte[8];
+ public short_arr_1 wCardRightPlan[] = (short_arr_1[]) new short_arr_1()
+ .toArray(4);
+ public int dwMaxSwipeTime;
+ public int dwSwipeTime;
+ public short wRoomNumber;
+ public short wFloorNumber;
+ public int dwEmployeeNo;
+ public byte byName[] = new byte[32];
+ public short wDepartmentNo;
+ public short wSchedulePlanNo;
+ public byte bySchedulePlanType;
+ public byte byRightType;
+ public byte byRes2[] = new byte[2];
+ public int dwLockID;
+ public byte byLockCode[] = new byte[8];
+ public byte byRoomCode[] = new byte[8];
+ public int dwCardRight;
+ public int dwPlanTemplate;
+ public int dwCardUserId;
+ public byte byCardModelType;
+ public byte byRes3[] = new byte[51];
+ public byte bySIMNum[] = new byte[32];
+
+ @Override
+ protected List getFieldOrder() {
+ return Arrays.asList("dwSize", "dwModifyParamType", "byCardNo",
+ "byCardValid", "byCardType", "byLeaderCard", "byRes1",
+ "byDoorRight", "struValid", "byBelongGroup",
+ "byCardPassword", "wCardRightPlan", "dwMaxSwipeTime",
+ "dwSwipeTime", "wRoomNumber", "wFloorNumber",
+ "dwEmployeeNo", "byName", "wDepartmentNo",
+ "wSchedulePlanNo", "bySchedulePlanType", "byRightType",
+ "byRes2", "dwLockID", "byLockCode", "byRoomCode",
+ "dwCardRight", "dwPlanTemplate", "dwCardUserId",
+ "byCardModelType", "byRes3", "bySIMNum");
+ }
+
+ public NET_DVR_CARD_CFG_V50(Pointer p) {
+ super(p);
+ }
+ }
+
+
+ /*删除人脸*/
+ public static class NET_DVR_FACE_PARAM_CTRL extends Structure {
+ public int dwSize;
+ public byte byMode;
+ public byte byRes1[] = new byte[3];
+ public NET_DVR_DEL_FACE_PARAM_MODE struProcessMode = new NET_DVR_DEL_FACE_PARAM_MODE();
+ public byte byRes[] = new byte[64];
+
+ @Override
+ protected List getFieldOrder() {
+ return Arrays.asList("dwSize", "byMode", "byRes1",
+ "struProcessMode", "byRes");
+ }
+ }
+
+ public static class NET_DVR_DEL_FACE_PARAM_MODE extends Union {
+ public byte uLen[] = new byte[588];
+ public NET_DVR_FACE_PARAM_BYCARD struByCard = new NET_DVR_FACE_PARAM_BYCARD();
+ public NET_DVR_FACE_PARAM_BYREADER struByReader = new NET_DVR_FACE_PARAM_BYREADER();
+
+// protected List getFieldOrder() {
+// return Arrays.asList("uLen", "struByCard", "struByReader");
+// }
+ }
+
+ public static class NET_DVR_FACE_PARAM_BYCARD extends Structure {
+ public byte byCardNo[] = new byte[32];
+ public byte byEnableCardReader[] = new byte[512];
+ public byte byFaceID[] = new byte[2];
+ public byte byRes1[] = new byte[42];
+
+ @Override
+ protected List getFieldOrder() {
+ return Arrays.asList("byCardNo", "byEnableCardReader", "byFaceID",
+ "byRes1");
+ }
+ }
+
+ public static class NET_DVR_FACE_PARAM_BYREADER extends Structure {
+ public int dwCardReaderNo;
+ public byte byClearAllCard;
+ public byte byRes1[] = new byte[3];
+ public byte byCardNo[] = new byte[32];
+ public byte byRes[] = new byte[548];
+
+ @Override
+ protected List getFieldOrder() {
+ return Arrays.asList("dwCardReaderNo", "byClearAllCard", "byRes1",
+ "byCardNo", "byRes");
+ }
+ }
+
+
+ /*************************************************************************************************/
+
+ public class NET_SDK_LOCAL_CFG_TYPE {
+ public static final int NET_SDK_LOCAL_CFG_TYPE_TCP_PORT_BIND = 0;
+ public static final int NET_SDK_LOCAL_CFG_TYPE_UDP_PORT_BIND = 1;
+ public static final int NET_SDK_LOCAL_CFG_TYPE_MEM_POOL = 2;
+ public static final int NET_SDK_LOCAL_CFG_TYPE_MODULE_RECV_TIMEOUT = 3;
+ public static final int NET_SDK_LOCAL_CFG_TYPE_ABILITY_PARSE = 4;
+ public static final int NET_SDK_LOCAL_CFG_TYPE_TALK_MODE = 5;
+ public static final int NET_SDK_LOCAL_CFG_TYPE_PROTECT_KEY = 6;
+ public static final int NET_SDK_LOCAL_CFG_TYPE_CFG_VERSION = 7;
+ public static final int NET_SDK_LOCAL_CFG_TYPE_RTSP_PARAMS = 8;
+ public static final int NET_SDK_LOCAL_CFG_TYPE_SIMXML_LOGIN = 9;
+ public static final int NET_SDK_LOCAL_CFG_TYPE_CHECK_DEV = 10;
+ public static final int NET_SDK_LOCAL_CFG_TYPE_SECURITY = 11;
+ public static final int NET_SDK_LOCAL_CFG_TYPE_EZVIZLIB_PATH = 12;
+ public static final int NET_SDK_LOCAL_CFG_TYPE_CHAR_ENCODE = 13;
+ public static final int NET_SDK_LOCAL_CFG_TYPE_PROXYS = 14;
+ public static final int NET_DVR_LOCAL_CFG_TYPE_LOG = 15;
+ public static final int NET_DVR_LOCAL_CFG_TYPE_STREAM_CALLBACK = 16;
+ public static final int NET_DVR_LOCAL_CFG_TYPE_GENERAL = 17;
+ public static final int NET_DVR_LOCAL_CFG_TYPE_PTZ = 18;
+ }
+
+ public static class NET_DVR_TIME_V30 extends Structure{
+ public short wYear;
+ public byte byMonth;
+ public byte byDay;
+ public byte byHour;
+ public byte byMinute;
+ public byte bySecond;
+ public byte byRes;
+ public short wMilliSec;
+ public byte cTimeDifferenceH;
+ public byte cTimeDifferenceM;
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("wYear", "byMonth", "byDay", "byHour","byMinute", "bySecond","byRes", "wMilliSec", "cTimeDifferenceH","cTimeDifferenceM");
+ }
+ }
+
+ public static class NET_DVR_IPADDR extends Structure {
+ public byte[] sIpV4 = new byte[16];
+ public byte[] byRes = new byte[128];
+
+ public String toString() {
+ return "NET_DVR_IPADDR.sIpV4: " + new String(sIpV4) + "\n"
+ + "NET_DVR_IPADDR.byRes: " + new String(byRes) + "\n";
+ }
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("sIpV4", "byRes");
+ }
+ }
+
+ public static class NET_VCA_POINT extends Structure{
+ public float fX;
+ public float fY;
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("fX", "fY");
+ }
+ }
+
+ public static class NET_VCA_LINE extends Structure{
+ public NET_VCA_POINT struStart = new NET_VCA_POINT();
+ public NET_VCA_POINT struEnd = new NET_VCA_POINT();
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struStart", "struEnd");
+ }
+ }
+
+ public static class NET_VCA_POLYGON extends Structure {
+
+ public int dwPointNum;
+ public NET_VCA_POINT[] struPos = (NET_VCA_POINT[]) new NET_VCA_POINT().toArray(10);
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwPointNum", "struPos");
+ }
+ }
+
+
+ public static class NET_DVR_MULTI_ALARMIN_COND extends Structure {
+ public int dwSize;
+ public int[] iZoneNo = new int[MAX_MAX_ALARMIN_NUM]; //zone numner start with 0,invalid < 0
+ public byte[] byRes = new byte[256];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "iZoneNo","byRes");
+ }
+ }
+
+ public static class NET_DVR_SINGLE_ALARMIN_PARAM extends Structure {
+ public int dwSize;
+ public short wZoneNo; //readonly
+ public byte byJointSubSystem; //readonly
+ public byte byType; //type 0:real time ,1-24 hours,2-delay ,3-innter闁挎冻鎷�4-key 5-fire alarm 6-boundary 7-24 hours without sound 8-24 hours support 闁挎冻鎷�9-24 hours shake 0xff-no
+ public byte[] byName = new byte[NAME_LEN];
+ public short wDetectorType; // DETECTOR_TYPE
+ public short wInDelay;
+ public short wOutDelay;
+ public byte byAlarmType;
+ public byte byZoneSignalType;
+ public byte[] byDetectorSerialNo = new byte[ALARMHOST_DETECTOR_SERIAL_LEN];
+ public byte byDisableDetectorTypeCfg;
+ public byte[] byRes2 = new byte[118];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "wZoneNo", "byJointSubSystem", "byType",
+ "byName", "wDetectorType", "wInDelay", "wOutDelay", "byAlarmType",
+ "byZoneSignalType", "byDetectorSerialNo", "byDisableDetectorTypeCfg", "byRes2");
+ }
+ }
+
+ public static class NET_DVR_ALARMIN_PARAM_LIST extends Structure {
+ public int dwSize;
+ public NET_DVR_SINGLE_ALARMIN_PARAM[] struSingleAlarmInParam = (NET_DVR_SINGLE_ALARMIN_PARAM[]) new NET_DVR_SINGLE_ALARMIN_PARAM().toArray(MAX_MAX_ALARMIN_NUM);
+ public byte[] byRes = new byte[128];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "struSingleAlarmInParam", "byRes");
+ }
+ }
+
+ public static class NET_DVR_SINGLE_ALARMIN_PARAM_V50 extends Structure {
+ public int dwSize;
+ public short wZoneNo; //readonly
+ public byte byJointSubSystem; //readonly
+ public byte byType; //type 0:real time ,1-24 hours,2-delay ,3-innter闁挎冻鎷�4-key 5-fire alarm 6-boundary 7-24 hours without sound 8-24 hours support 闁挎冻鎷�9-24 hours shake 0xff-no
+ public byte[] byName = new byte[NAME_LEN];
+ public short wDetectorType; // DETECTOR_TYPE
+ public short wInDelay;
+ public short wOutDelay;
+ public byte byAlarmType;
+ public byte byZoneSignalType;
+ public byte[] byDetectorSerialNo = new byte[ALARMHOST_DETECTOR_SERIAL_LEN];
+ public byte byDisableDetectorTypeCfg;
+ public byte byTimeOutRange;
+ public byte byDetectorSignalIntensity;
+ public short wTimeOut;
+ public byte byTimeOutMethod;
+ public byte byAssociateFlashLamp;
+ public byte byStayAwayEnabled;
+ public byte bySilentModeEnabled;
+ public byte[] byRes3 = new byte[2];
+ public byte[] byAssociateAlarmOut = new byte[MAX_ALARMHOST_ALARMOUT_NUM];
+ public byte[] byRes2 = new byte[128];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "wZoneNo", "byJointSubSystem", "byType","byName", "wDetectorType", "wInDelay", "wOutDelay", "byAlarmType", "byZoneSignalType", "byDetectorSerialNo", "byDisableDetectorTypeCfg", "byTimeOutRange", "byDetectorSignalIntensity", "wTimeOut", "byTimeOutMethod", "byAssociateFlashLamp", "byStayAwayEnabled", "bySilentModeEnabled", "byRes3", "byAssociateAlarmOut", "byRes2");
+ }
+ }
+
+ public static class NET_DVR_ALARMIN_PARAM_LIST_V50 extends Structure {
+ public int dwSize;
+ public NET_DVR_SINGLE_ALARMIN_PARAM_V50[] struSingleAlarmInParam = (NET_DVR_SINGLE_ALARMIN_PARAM_V50[]) new NET_DVR_SINGLE_ALARMIN_PARAM_V50().toArray(MAX_MAX_ALARMIN_NUM);
+ public byte[] byRes = new byte[128];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "struSingleAlarmInParam", "byRes");
+ }
+ }
+
+ public static class NET_DVR_ALARMIN_PARAM_V50 extends Structure {
+ public int dwSize;
+ public byte[] byName = new byte[NAME_LEN];
+ public short wDetectorType; //see to DETECTOR_TYPE
+ public byte byType;
+ public byte byUploadAlarmRecoveryReport;
+ public int dwParam;
+ public NET_DVR_SCHEDTIME_DAYS[] struAlarmTime = (NET_DVR_SCHEDTIME_DAYS[])new NET_DVR_SCHEDTIME_DAYS().toArray(MAX_TIMESEGMENT);
+ public byte[] byAssociateAlarmOut = new byte[MAX_ALARMHOST_ALARMOUT_NUM];
+ public byte[] byAssociateSirenOut = new byte[8];
+ public byte bySensitivityParam;
+ public byte byArrayBypass;
+ public byte byJointSubSystem;
+ public byte byModuleStatus;
+ public short wModuleAddress;
+ public byte byModuleChan;
+ public byte byModuleType;
+ public short wZoneIndex;
+ public short wInDelay;
+ public short wOutDelay;
+ public byte byAlarmType;
+ public byte byZoneResistor;
+ public float fZoneResistorManual;
+ public byte[] byDetectorSerialNo = new byte[ALARMHOST_DETECTOR_SERIAL_LEN_V50];
+ public byte byZoneSignalType;
+ public byte byDisableDetectorTypeCfg;
+ public short wTimeOut;
+ public byte[] byAssociateLampOut = new byte[8];
+ public byte[] byVoiceFileName = new byte[32];
+ public byte byTimeOutRange;
+ public byte byDetectorSignalIntensity;
+ public byte byTimeOutMethod;
+ public byte byAssociateFlashLamp;
+ public byte byStayAwayEnabled;
+ public byte bySilentModeEnabled;
+ public byte[] byRes3 = new byte[506];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "byName", "wDetectorType", "byType", "byUploadAlarmRecoveryReport", "dwParam", "struAlarmTime", "byAssociateAlarmOut", "byAssociateSirenOut", "bySensitivityParam", "byArrayBypass", "byJointSubSystem", "byModuleStatus", "wModuleAddress", "byModuleChan", "byModuleType", "wZoneIndex", "wInDelay", "wOutDelay", "byAlarmType", "byZoneResistor", "fZoneResistorManual", "byDetectorSerialNo", "byZoneSignalType", "byDisableDetectorTypeCfg", "wTimeOut", "byAssociateLampOut", "byVoiceFileName", "byTimeOutRange", "byDetectorSignalIntensity", "byTimeOutMethod", "byAssociateFlashLamp", "byStayAwayEnabled", "bySilentModeEnabled", "byRes3");
+ }
+ }
+
+ public static class NET_DVR_STD_CONFIG extends Structure {
+ public Pointer lpCondBuffer;
+ public int dwCondSize;
+ public Pointer lpInBuffer;
+ public int dwInSize;
+ public Pointer lpOutBuffer;
+ public int dwOutSize;
+ public Pointer lpStatusBuffer;
+ public int dwStatusSize;
+ public Pointer lpXmlBuffer;
+ public int dwXmlSize;
+ public byte byDataType;
+ public byte[] byRes = new byte[23];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("lpCondBuffer", "dwCondSize",
+ "lpInBuffer", "dwInSize", "lpOutBuffer", "dwOutSize",
+ "lpStatusBuffer", "dwStatusSize", "lpXmlBuffer",
+ "dwXmlSize", "byDataType", "byRes");
+ }
+ }
+
+ public static class NET_DVR_STD_ABILITY extends Structure {
+ public Pointer lpCondBuffer;
+ public int dwCondSize;
+ public Pointer lpOutBuffer;
+ public int dwOutSize;
+ public Pointer lpStatusBuffer;
+ public int dwStatusSize;
+ public int dwRetSize;
+ public byte[] byRes = new byte[32];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("lpCondBuffer", "dwCondSize",
+ "lpOutBuffer", "dwOutSize", "lpStatusBuffer",
+ "dwStatusSize", "dwRetSize", "byRes");
+ }
+ }
+
+ public static class NET_VCA_RECT extends Structure {
+ public float fX;
+ public float fY;
+ public float fWidth;
+ public float fHeight;
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays
+ .asList("fX", "fY", "fWidth", "fHeight");
+ }
+ }
+
+ public static class NET_DVR_ALARMINFO extends Structure {
+ public int dwAlarmType;
+ public int dwAlarmInputNumber;
+ public int[] dwAlarmOutputNumber = new int[MAX_ALARMOUT];
+ public int[] dwAlarmRelateChannel = new int[MAX_CHANNUM];
+ public int[] dwChannel = new int[MAX_CHANNUM];
+ public int[] dwDiskNumber = new int[MAX_DISKNUM];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwAlarmType",
+ "dwAlarmInputNumber", "dwAlarmOutputNumber",
+ "dwAlarmRelateChannel", "dwChannel", "dwDiskNumber");
+ }
+ }
+
+ public static class NET_DVR_TIME extends Structure {
+ public int dwYear;
+ public int dwMonth;
+ public int dwDay;
+ public int dwHour;
+ public int dwMinute;
+ public int dwSecond;
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwYear", "dwMonth", "dwDay",
+ "dwHour", "dwMinute", "dwSecond");
+ }
+ }
+
+
+ //public static class NET_DVR_NTPPARA extends Structure {
+ // public byte[] sNTPServer = new byte[64]; /* Domain Name or IP addr of NTP server */
+ // public short wInterval; /* adjust time interval(hours) */
+ // public byte byEnableNTP; /* enable NTP client 0-no,1-yes*/
+ // public byte cTimeDifferenceH; /* UTC -12 ... +13 */
+ // public byte cTimeDifferenceM; /* UTC minutes 0, 30, 45*/
+ // public byte res1;
+ // public short wNtpPort; /* ntp server port 9000 default 123*/
+ // public byte[] res2 = new byte[8];
+ // @Override
+ // protected List getFieldOrder() {
+ // // TODO Auto-generated method stub
+ // return Arrays.asList("sNTPServer", "wInterval", "byEnableNTP",
+ // "cTimeDifferenceH", "cTimeDifferenceM", "res1", "wNtpPort", "res2");
+ // }
+ //}
+
+ public static class NET_DVR_SIMPLE_DAYTIME extends Structure {
+ public byte byHour;
+ public byte byMinute;
+ public byte bySecond;
+ public byte byRes;
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byHour", "byMinute", "bySecond",
+ "byRes");
+ }
+ }
+
+ public static class NET_DVR_TIME_SEGMENT extends Structure {
+ public NET_DVR_SIMPLE_DAYTIME struBeginTime = new NET_DVR_SIMPLE_DAYTIME();
+ public NET_DVR_SIMPLE_DAYTIME struEndTime = new NET_DVR_SIMPLE_DAYTIME();
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struBeginTime", "struEndTime");
+ }
+ }
+
+ public static class NET_DVR_SINGLE_PLAN_SEGMENT extends Structure {
+ public byte byEnable;
+ public byte byDoorStatus; //0-invalid,1-dormant,2-alawys open,3-alawys closed
+ public byte byVerifyMode; //0-invalid,1-dormant,2-card+password 3-card ,4-card or password闁挎冻鎷�5-fingerprint闁挎冻鎷�6-fingerprint and password闁挎冻鎷�7-fingerprint or card闁挎冻鎷�8-fingerprint and card闁挎冻鎷�9-fingerprint and card and password
+ public byte[] byRes = new byte[5];
+ public NET_DVR_TIME_SEGMENT struTimeSegment = new NET_DVR_TIME_SEGMENT();
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byEnable", "byDoorStatus", "byVerifyMode", "byRes",
+ "struTimeSegment");
+ }
+ }
+
+ public static class NET_DVR_DATE extends Structure{
+ public short wYear;
+ public byte byMonth;
+ public byte byDay;
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("wYear", "byMonth", "byDay");
+ }
+ }
+
+ //2-dimen array
+ public static class arrayStruPlanCfg extends Structure {
+ public NET_DVR_SINGLE_PLAN_SEGMENT[] struDaysPlanCfg = (NET_DVR_SINGLE_PLAN_SEGMENT[])new NET_DVR_SINGLE_PLAN_SEGMENT().toArray(MAX_TIMESEGMENT_V30);
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struDaysPlanCfg");
+ }
+ }
+
+ public static class NET_DVR_WEEK_PLAN_CFG extends Structure {
+ public int dwSize;
+ public byte byEnable; //0-no,1-enabled
+ public byte[] byRes1 = new byte[3];
+ public arrayStruPlanCfg[] struPlanCfg = (arrayStruPlanCfg[])new arrayStruPlanCfg().toArray(MAX_DAYS);
+ public byte[] byRes2 = new byte[16];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "byEnable", "byRes1", "struPlanCfg",
+ "byRes2");
+ }
+ }
+
+ public static class NET_DVR_WEEK_PLAN_COND extends Structure {
+ public int dwSize;
+ public int dwWeekPlanNumber; //no.
+ public short wLocalControllerID; //in [1,64]
+ public byte[] byRes = new byte[106];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "dwWeekPlanNumber", "wLocalControllerID", "byRes");
+ }
+ }
+
+ public static class NET_DVR_HOLIDAY_PLAN_CFG extends Structure {
+ public int dwSize;
+ public byte byEnable; //0-no,1-enabled
+ public byte[] byRes1 = new byte[3];
+ public NET_DVR_DATE struBeginDate = new NET_DVR_DATE();
+ public NET_DVR_DATE struEndDate = new NET_DVR_DATE();
+ public NET_DVR_SINGLE_PLAN_SEGMENT[] struPlanCfg = (NET_DVR_SINGLE_PLAN_SEGMENT[])new NET_DVR_SINGLE_PLAN_SEGMENT().toArray(MAX_TIMESEGMENT_V30);
+ public byte[] byRes2 = new byte[16];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "byEnable", "byRes1", "struBeginDate",
+ "struEndDate", "struPlanCfg", "byRes2");
+ }
+ }
+
+ public static class NET_DVR_HOLIDAY_PLAN_COND extends Structure {
+ public int dwSize;
+ public int dwHolidayPlanNumber;
+ public short wLocalControllerID; //[1,64]
+ public byte[] byRes = new byte[106];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "dwHolidayPlanNumber", "wLocalControllerID", "byRes");
+ }
+ }
+
+ public static class NET_DVR_HOLIDAY_GROUP_CFG extends Structure {
+ public int dwSize;
+ public byte byEnable; //0-no,1-enabled
+ public byte[] byRes1 = new byte[3];
+ public byte[] byGroupName = new byte[HOLIDAY_GROUP_NAME_LEN];
+ public int[] dwHolidayPlanNo = new int[MAX_HOLIDAY_PLAN_NUM]; //0 invalid
+ public byte[] byRes2 = new byte[32];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "byEnable", "byRes1", "byGroupName",
+ "dwHolidayPlanNo", "byRes2");
+ }
+ }
+
+ public static class NET_DVR_HOLIDAY_GROUP_COND extends Structure {
+ public int dwSize;
+ public int dwHolidayGroupNumber;
+ public short wLocalControllerID; //[1,64]
+ public byte[] byRes = new byte[106];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "dwHolidayGroupNumber", "wLocalControllerID", "byRes");
+ }
+ }
+
+ public static class NET_DVR_PLAN_TEMPLATE extends Structure {
+ public int dwSize;
+ public byte byEnable;
+ public byte[] byRes1= new byte[3];
+ public byte[] byTemplateName = new byte[TEMPLATE_NAME_LEN];
+ public int dwWeekPlanNo; //闁告稏鍔忛鎼佸礆閹烘梻妞介柛娆忓殩缁憋拷0濞戞挾鍎ゅΛ銈夊极閿燂拷
+ public int[] dwHolidayGroupNo = new int[MAX_HOLIDAY_GROUP_NUM];
+ public byte[] byRes2 = new byte[32];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "byEnable", "byRes1", "byTemplateName",
+ "dwWeekPlanNo", "dwHolidayGroupNo", "byRes2");
+ }
+ }
+
+ public static class NET_DVR_PLAN_TEMPLATE_COND extends Structure {
+ public int dwSize;
+ public int dwPlanTemplateNumber;
+ public short wLocalControllerID; //[1,64]
+ public byte[] byRes = new byte[106];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "dwPlanTemplateNumber", "wLocalControllerID", "byRes");
+ }
+ }
+
+ public static class NET_DVR_DEVICECFG_V40 extends Structure {
+ public int dwSize;
+ public byte[] sDVRName = new byte[NAME_LEN]; //DVR name
+ public int dwDVRID; //DVR ID,//V1.4(0-99), V1.5(0-255)
+ public int dwRecycleRecord; //1-yes 0-no
+ //readonly
+ public byte[] sSerialNumber = new byte[SERIALNO_LEN];
+ public int dwSoftwareVersion; //high 16 bit major,minor low 16 bit
+ public int dwSoftwareBuildDate; //0xYYYYMMDD
+ public int dwDSPSoftwareVersion; //DSP high 16 bit major,minor low 16 bit
+ public int dwDSPSoftwareBuildDate; //DSP 0xYYYYMMDD
+ public int dwPanelVersion; ////high 16 bit major,minor low 16 bit
+ public int dwHardwareVersion; ////16 MSBmajor,minor LSB 16
+ public byte byAlarmInPortNum;
+ public byte byAlarmOutPortNum;
+ public byte byRS232Num;
+ public byte byRS485Num;
+ public byte byNetworkPortNum;
+ public byte byDiskCtrlNum;
+ public byte byDiskNum;
+ public byte byDVRType; //DVR type, 1:DVR 2:ATM DVR 3:DVS ......
+ public byte byChanNum;
+ public byte byStartChan; //DVS-1,DVR - 1
+ public byte byDecordChans;
+ public byte byVGANum; //VGA
+ public byte byUSBNum; //USB
+ public byte byAuxoutNum;
+ public byte byAudioNum;
+ public byte byIPChanNum; //low 8,high 8 see byHighIPChanNum
+ public byte byZeroChanNum;
+ public byte bySupport; //0-not support,1-support
+ //bySupport & 0x1, intelligent search
+ //bySupport & 0x2, backup
+ //bySupport & 0x4, compressinfo config
+ //bySupport & 0x8, multi netcard
+ //bySupport & 0x10, SADP
+ //bySupport & 0x20, Raid card
+ //bySupport & 0x40, IPSAN search
+ //bySupport & 0x80, rtp over rtsp
+ public byte byEsataUseage; //Esata ,0-backup,1-record
+ public byte byIPCPlug; //0-close ,1-open
+ public byte byStorageMode; //0-HDD group,1-quota, 2-frame extract
+ public byte bySupport1; //0-not support,1-support
+ //bySupport1 & 0x1, snmp v30
+ //bySupport1 & 0x2, playback or download
+ //bySupport1 & 0x4, alarm priority
+ //bySupport1 & 0x8, set alarm time extend
+ //bySupport1 & 0x10, multi HDD(over 33)
+ //bySupport1 & 0x20, rtsp over http
+ public short wDevType;
+ public byte[] byDevTypeName = new byte[DEV_TYPE_NAME_LEN];
+ public byte bySupport2;
+ //bySupport2 & 0x1, OSD extra
+ public byte byAnalogAlarmInPortNum;
+ public byte byStartAlarmInNo;
+ public byte byStartAlarmOutNo;
+ public byte byStartIPAlarmInNo;
+ public byte byStartIPAlarmOutNo;
+ public byte byHighIPChanNum;
+ public byte[] byRes2= new byte[9]; //reserved
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "sDVRName", "dwDVRID", "dwRecycleRecord",
+ "sSerialNumber", "dwSoftwareVersion", "dwSoftwareBuildDate", "dwDSPSoftwareVersion",
+ "dwDSPSoftwareBuildDate", "dwPanelVersion", "dwHardwareVersion", "byAlarmInPortNum",
+ "byAlarmOutPortNum", "byRS232Num", "byRS485Num", "byNetworkPortNum", "byDiskCtrlNum",
+ "byDiskNum", "byDVRType", "byChanNum", "byStartChan", "byDecordChans", "byVGANum",
+ "byUSBNum", "byAuxoutNum", "byAudioNum", "byIPChanNum", "byZeroChanNum", "bySupport",
+ "byEsataUseage", "byIPCPlug", "byStorageMode", "bySupport1", "wDevType", "byDevTypeName",
+ "bySupport2", "byAnalogAlarmInPortNum", "byStartAlarmInNo", "byStartAlarmOutNo",
+ "byStartIPAlarmInNo", "byStartIPAlarmOutNo", "byHighIPChanNum", "byRes2");
+ }
+ }
+
+ public static class NET_DVR_DOOR_CFG extends Structure {
+ public int dwSize;
+ public byte[] byDoorName = new byte[DOOR_NAME_LEN];
+ public byte byMagneticType;
+ public byte byOpenButtonType;
+ public byte byOpenDuration;
+ public byte byDisabledOpenDuration;
+ public byte byMagneticAlarmTimeout;
+ public byte byEnableDoorLock;
+ public byte byEnableLeaderCard;
+ public byte byLeaderCardMode;
+ public int dwLeaderCardOpenDuration;
+ public byte[] byStressPassword = new byte[STRESS_PASSWORD_LEN];
+ public byte[] bySuperPassword = new byte[SUPER_PASSWORD_LEN];
+ public byte[] byUnlockPassword = new byte[UNLOCK_PASSWORD_LEN];
+ public byte byUseLocalController;
+ public byte byRes1;
+ public short wLocalControllerID;
+ public short wLocalControllerDoorNumber;
+ public short wLocalControllerStatus;
+ public byte byLockInputCheck;
+ public byte byLockInputType;
+ public byte byDoorTerminalMode;
+ public byte byOpenButton;
+ public byte byLadderControlDelayTime;
+ public byte[] byRes2 = new byte[43];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "byDoorName", "byMagneticType", "byOpenButtonType",
+ "byOpenDuration", "byDisabledOpenDuration", "byMagneticAlarmTimeout", "byEnableDoorLock",
+ "byEnableLeaderCard", "byLeaderCardMode", "dwLeaderCardOpenDuration", "byStressPassword",
+ "bySuperPassword", "byUnlockPassword", "byUseLocalController", "byRes1", "wLocalControllerID",
+ "wLocalControllerDoorNumber", "wLocalControllerStatus", "byLockInputCheck", "byLockInputType",
+ "byDoorTerminalMode", "byOpenButton", "byLadderControlDelayTime", "byRes2");
+ }
+ }
+
+ public static class NET_DVR_CARD_READER_CFG_V50 extends Structure {
+ public int dwSize;
+ public byte byEnable;
+ public byte byCardReaderType; //,1-DS-K110XM/MK/C/CK,2-DS-K192AM/AMP,3-DS-K192BM/BMP闁挎冻鎷�4-DS-K182AM/AMP闁挎冻鎷�5-DS-K182BM/BMP闁挎冻鎷�6-DS-K182AMF/ACF闁挎冻鎷�7-闂傚闄勯悧鎾箣閿燂拷485濞戞挸绉村﹢顏嗙棯閸栵紕绀�8- DS-K1101M/MK闁挎冻鎷�9- DS-K1101C/CK闁挎冻鎷�10- DS-K1102M/MK/M-A闁挎冻鎷�11- DS-K1102C/CK闁挎冻鎷�12- DS-K1103M/MK闁挎冻鎷�13- DS-K1103C/CK闁挎冻鎷�14- DS-K1104M/MK闁挎冻鎷�15- DS-K1104C/CK闁挎冻鎷�16- DS-K1102S/SK/S-A闁挎冻鎷�17- DS-K1102G/GK闁挎冻鎷�18- DS-K1100S-B闁挎冻鎷�19- DS-K1102EM/EMK闁挎冻鎷�20- DS-K1102E/EK闁挎冻鎷�21- DS-K1200EF闁挎冻鎷�22- DS-K1200MF闁挎冻鎷�23- DS-K1200CF闁挎冻鎷�24- DS-K1300EF闁挎冻鎷�25- DS-K1300MF闁挎冻鎷�26- DS-K1300CF闁挎冻鎷�27- DS-K1105E闁挎冻鎷�28- DS-K1105M闁挎冻鎷�29- DS-K1105C闁挎冻鎷�30- DS-K182AMF闁挎冻鎷�31- DS-K196AMF闁挎冻鎷�32-DS-K194AMP闁挎冻鎷�33-DS-K1T200EF/EF-C/MF/MF-C/CF/CF-C,34-DS-K1T300EF/EF-C/MF/MF-C/CF/CF-C闁挎冻鎷�35-DS-K1T105E/E-C/M/M-C/C/C-C,36-DS-K1T803F/F-M/F-S/F-E,37-DS-K1A801F/F-M/F-S/F-E,38-DS-K1107M/MK,39-DS-K1107E/EK,40-DS-K1107S/SK,41-DS-K1108M/MK,42-DS-K1108E/EK,43-DS-K1108S/SK,44-DS-K1200F,45-DS-K1S110-I,46-DS-K1T200M-PG/PGC,47-DS-K1T200M-PZ/PZC,48-DS-K1109H
+ public byte byOkLedPolarity;
+ public byte byErrorLedPolarity;
+ public byte byBuzzerPolarity;
+ public byte bySwipeInterval;
+ public byte byPressTimeout;
+ public byte byEnableFailAlarm;
+ public byte byMaxReadCardFailNum;
+ public byte byEnableTamperCheck;
+ public byte byOfflineCheckTime;
+ public byte byFingerPrintCheckLevel;
+ public byte byUseLocalController;
+ public byte byRes1;
+ public short wLocalControllerID;
+ public short wLocalControllerReaderID;
+ public short wCardReaderChannel;
+ public byte byFingerPrintImageQuality;
+ public byte byFingerPrintContrastTimeOut;
+ public byte byFingerPrintRecogizeInterval;
+ public byte byFingerPrintMatchFastMode;
+ public byte byFingerPrintModuleSensitive;
+ public byte byFingerPrintModuleLightCondition;
+ public byte byFaceMatchThresholdN;
+ public byte byFaceQuality;
+ public byte byFaceRecogizeTimeOut;
+ public byte byFaceRecogizeInterval;
+ public short wCardReaderFunction;
+ public byte[] byCardReaderDescription = new byte[CARD_READER_DESCRIPTION];
+ public short wFaceImageSensitometry;
+ public byte byLivingBodyDetect;
+ public byte byFaceMatchThreshold1;
+ public byte[] byRes = new byte[256];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "byEnable", "byCardReaderType", "byOkLedPolarity",
+ "byErrorLedPolarity", "byBuzzerPolarity", "bySwipeInterval", "byPressTimeout",
+ "byEnableFailAlarm", "byMaxReadCardFailNum", "byEnableTamperCheck", "byOfflineCheckTime",
+ "byFingerPrintCheckLevel", "byUseLocalController", "byRes1", "wLocalControllerID", "wLocalControllerReaderID",
+ "wCardReaderChannel", "byFingerPrintImageQuality", "byFingerPrintContrastTimeOut", "byFingerPrintRecogizeInterval", "byFingerPrintMatchFastMode",
+ "byFingerPrintModuleSensitive", "byFingerPrintModuleLightCondition", "byFaceMatchThresholdN",
+ "byFaceQuality", "byFaceRecogizeTimeOut", "byFaceRecogizeInterval", "wCardReaderFunction",
+ "byCardReaderDescription", "wFaceImageSensitometry", "byLivingBodyDetect", "byFaceMatchThreshold1", "byRes");
+ }
+ }
+
+ public static class NET_DVR_ACS_WORK_STATUS extends Structure
+ {
+ public int dwSize;
+ public byte[] byDoorLockStatus = new byte[MAX_DOOR_NUM];
+ public byte[] byDoorStatus = new byte[MAX_DOOR_NUM];
+ public byte[] byMagneticStatus = new byte[MAX_DOOR_NUM];
+ public byte[] byCaseStatus = new byte[MAX_CASE_SENSOR_NUM];
+ public short wBatteryVoltage;
+ public byte byBatteryLowVoltage;
+ public byte byPowerSupplyStatus;
+ public byte byMultiDoorInterlockStatus;
+ public byte byAntiSneakStatus;
+ public byte byHostAntiDismantleStatus;
+ public byte byIndicatorLightStatus;
+ public byte[] byCardReaderOnlineStatus = new byte[MAX_CARD_READER_NUM];
+ public byte[] byCardReaderAntiDismantleStatus = new byte[MAX_CARD_READER_NUM];
+ public byte[] byCardReaderVerifyMode = new byte[MAX_CARD_READER_NUM];
+ public byte[] bySetupAlarmStatus = new byte[MAX_ALARMHOST_ALARMIN_NUM];
+ public byte[] byAlarmInStatus = new byte[MAX_ALARMHOST_ALARMIN_NUM];
+ public byte[] byAlarmOutStatus = new byte[MAX_ALARMHOST_ALARMOUT_NUM];
+ public int dwCardNum;
+ public byte[] byRes2 = new byte[32];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize","byDoorLockStatus","byDoorStatus","byMagneticStatus","byCaseStatus","wBatteryVoltage","byBatteryLowVoltage",
+ "byPowerSupplyStatus","byMultiDoorInterlockStatus","byAntiSneakStatus","byHostAntiDismantleStatus","byIndicatorLightStatus",
+ "byCardReaderOnlineStatus","byCardReaderAntiDismantleStatus","byCardReaderVerifyMode","bySetupAlarmStatus","byAlarmInStatus",
+ "byAlarmOutStatus","dwCardNum","byRes2");
+ }
+ }
+
+ public static class NET_DVR_ACS_WORK_STATUS_V50 extends Structure {
+ public int dwSize;
+ public byte[] byDoorLockStatus = new byte[MAX_DOOR_NUM_256];
+ public byte[] byDoorStatus = new byte[MAX_DOOR_NUM_256];
+ public byte[] byMagneticStatus = new byte[MAX_DOOR_NUM_256];
+ public byte[] byCaseStatus = new byte[MAX_CASE_SENSOR_NUM];
+ public short wBatteryVoltage;
+ public byte byBatteryLowVoltage;
+ public byte byPowerSupplyStatus;
+ public byte byMultiDoorInterlockStatus;
+ public byte byAntiSneakStatus;
+ public byte byHostAntiDismantleStatus;
+ public byte byIndicatorLightStatus;
+ public byte[] byCardReaderOnlineStatus = new byte[MAX_CARD_READER_NUM_512];
+ public byte[] byCardReaderAntiDismantleStatus = new byte[MAX_CARD_READER_NUM_512];
+ public byte[] byCardReaderVerifyMode = new byte[MAX_CARD_READER_NUM_512];
+ public byte[] bySetupAlarmStatus = new byte[MAX_ALARMHOST_ALARMIN_NUM];
+ public byte[] byAlarmInStatus = new byte[MAX_ALARMHOST_ALARMIN_NUM];
+ public byte[] byAlarmOutStatus = new byte[MAX_ALARMHOST_ALARMOUT_NUM];
+ public int dwCardNum;
+ public byte byFireAlarmStatus;
+ public byte[] byRes2 = new byte[123];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "byDoorLockStatus", "byDoorStatus", "byMagneticStatus",
+ "byCaseStatus", "wBatteryVoltage", "byBatteryLowVoltage", "byPowerSupplyStatus", "byMultiDoorInterlockStatus",
+ "byAntiSneakStatus", "byHostAntiDismantleStatus", "byIndicatorLightStatus", "byCardReaderOnlineStatus",
+ "byCardReaderAntiDismantleStatus", "byCardReaderVerifyMode", "bySetupAlarmStatus", "byAlarmInStatus", "byAlarmOutStatus",
+ "dwCardNum", "byFireAlarmStatus", "byRes2");
+ }
+ }
+
+ public static class NET_DVR_ACS_PARAM_TYPE extends Structure {
+ public int dwSize;
+ public int dwParamType;
+ public byte[] byRes = new byte[32];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "dwParamType", "byRes");
+ }
+ }
+
+ public static class NET_DVR_WIFI_WORKMODE extends Structure {
+ public int dwSize;
+ public int dwNetworkInterfaceMode;
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "dwNetworkInterfaceMode");
+ }
+ }
+
+ public static class NET_DVR_COMPLETE_RESTORE_INFO extends Structure {
+ public int dwSize ;
+ public int dwChannel;
+ public byte[] byRes = new byte[64];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "dwChannel", "byRes");
+ }
+ }
+
+ public static class NET_DVR_XML_CONFIG_INPUT extends Structure
+ {
+ public int dwSize;
+ public Pointer lpRequestUrl;
+ public int dwRequestUrlLen;
+ public Pointer lpInBuffer;
+ public int dwInBufferSize;
+ public int dwRecvTimeOut;
+ public byte[] byRes = new byte[32];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "lpRequestUrl", "dwRequestUrlLen", "lpInBuffer", "dwInBufferSize",
+ "dwRecvTimeOut", "byRes");
+ }
+ }
+
+ public static class NET_DVR_XML_CONFIG_OUTPUT extends Structure {
+ public int dwSize;
+ public Pointer lpOutBuffer;
+ public int dwOutBufferSize;
+ public int dwReturnedXMLSize;
+ public Pointer lpStatusBuffer;
+ public int dwStatusSize;
+ public byte[] byRes = new byte[32];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "lpOutBuffer",
+ "dwOutBufferSize", "dwReturnedXMLSize", "lpStatusBuffer",
+ "dwStatusSize", "byRes");
+ }
+ }
+
+ public static class NET_DVR_CALL_ROOM_CFG extends Structure {
+ public int dwSize;
+ public short nFloorNumber;
+ public short wRoomNumber;
+ public byte byManageCenter;
+ public byte[] byRes = new byte[127];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "nFloorNumber", "wRoomNumber", "byManageCenter", "byRes");
+ }
+ }
+
+ public static class NET_DVR_ALARMER extends Structure {
+ public byte byUserIDValid;
+ public byte bySerialValid;
+ public byte byVersionValid;
+ public byte byDeviceNameValid;
+ public byte byMacAddrValid;
+ public byte byLinkPortValid;
+ public byte byDeviceIPValid;
+ public byte bySocketIPValid;
+ public int lUserID;
+ public byte[] sSerialNumber = new byte[SERIALNO_LEN];
+ public int dwDeviceVersion;
+ public byte[] sDeviceName = new byte[NAME_LEN];
+ public byte[] byMacAddr = new byte[MACADDR_LEN];
+ public short wLinkPort;
+ public byte[] sDeviceIP = new byte[128];
+ public byte[] sSocketIP = new byte[128];
+ public byte byIpProtocol;
+ public byte[] byRes2 = new byte[11];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byUserIDValid",
+ "bySerialValid", "byVersionValid", "byDeviceNameValid",
+ "byMacAddrValid", "byLinkPortValid", "byDeviceIPValid",
+ "bySocketIPValid", "lUserID", "sSerialNumber",
+ "dwDeviceVersion", "sDeviceName", "byMacAddr", "wLinkPort",
+ "sDeviceIP", "sSocketIP", "byIpProtocol", "byRes2");
+ }
+ }
+
+ public static class NET_DVR_ALARMINFO_V30 extends Structure {
+ public int dwAlarmType;
+ public int dwAlarmInputNumber;
+ public byte[] byAlarmOutputNumber = new byte[MAX_ALARMOUT_V30];
+ public byte[] byAlarmRelateChannel = new byte[MAX_CHANNUM_V30];
+ public byte[] byChannel = new byte[MAX_CHANNUM_V30];
+ public byte[] byDiskNumber = new byte[MAX_DISKNUM_V30];
+
+ public NET_DVR_ALARMINFO_V30(Pointer p) {
+ super(p);
+ }
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwAlarmType",
+ "dwAlarmInputNumber", "byAlarmOutputNumber",
+ "byAlarmRelateChannel", "byChannel", "byDiskNumber");
+ }
+ }
+
+ public static class struIOAlarm extends Structure{
+ public int dwAlarmInputNo;
+ public int dwTrigerAlarmOutNum;
+ public int dwTrigerRecordChanNum;
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwAlarmInputNo","dwTrigerAlarmOutNum", "dwTrigerRecordChanNum");
+ }
+ }
+
+ public static class NET_DVR_TIME_EX extends Structure{
+ public short wYear;
+ public byte byMonth;
+ public byte byDay;
+ public byte byHour;
+ public byte byMinute;
+ public byte bySecond;
+ public byte byRes;
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("wYear","byMonth", "byDay", "byHour","byMinute", "bySecond", "byRes");
+ }
+ }
+
+ public static class NET_VCA_DEV_INFO extends Structure{
+ public NET_DVR_IPADDR struDevIP = new NET_DVR_IPADDR();
+ public short wPort;
+ public byte byChannel;
+ public byte byIvmsChannel;
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struDevIP", "wPort", "byChannel", "byIvmsChannel");
+ }
+ }
+
+ public static class struRecordingHost extends Structure{
+ public byte bySubAlarmType;
+ public byte[] byRes1 = new byte[3];
+ public NET_DVR_TIME_EX struRecordEndTime = new NET_DVR_TIME_EX();
+ public byte[] byRes = new byte[116];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("bySubAlarmType", "byRes1", "struRecordEndTime", "byRes");
+ }
+ }
+
+ public static class struAlarmHardDisk extends Structure{
+ public int dwAlarmHardDiskNum;
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwAlarmHardDiskNum");
+ }
+ }
+
+ public static class struAlarmChannel extends Structure{
+ public int dwAlarmChanNum;
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwAlarmChanNum");
+ }
+ }
+
+ public static class uStruAlarm extends Union
+ {
+ public byte[] byUnionLen = new byte[128];
+ public struIOAlarm struioAlarm = new struIOAlarm();
+ public struAlarmHardDisk strualarmHardDisk = new struAlarmHardDisk();
+ public struAlarmChannel sstrualarmChannel = new struAlarmChannel();
+ public struRecordingHost strurecordingHost = new struRecordingHost();
+ }
+
+ public static class NET_DVR_ALRAM_FIXED_HEADER extends Structure{
+ public int dwAlarmType;
+ public NET_DVR_TIME_EX struAlarmTime = new NET_DVR_TIME_EX();
+ public uStruAlarm ustruAlarm = new uStruAlarm();
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwAlarmType", "struAlarmTime", "ustruAlarm");
+ }
+ }
+
+ public static class NET_DVR_ALARMINFO_V40 extends Structure {
+ public NET_DVR_ALRAM_FIXED_HEADER struAlarmFixedHeader = new NET_DVR_ALRAM_FIXED_HEADER();
+ public Pointer pAlarmData;
+ public NET_DVR_ALARMINFO_V40(Pointer p){
+ super(p);
+ }
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struAlarmFixedHeader", "pAlarmData");
+ }
+ }
+
+ public static class NET_DVR_PLATE_INFO extends Structure{
+ public byte byPlateType;
+ public byte byColor;
+ public byte byBright;
+ public byte byLicenseLen;
+ public byte byEntireBelieve;
+ public byte byRegion;
+ public byte byCountry;
+ public byte[] byRes = new byte[33];
+ public NET_VCA_RECT struPlateRect = new NET_VCA_RECT();
+ public byte[] sLicense = new byte[MAX_LICENSE_LEN];
+ public byte[] byBelieve = new byte[MAX_LICENSE_LEN];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byPlateType", "byColor", "byBright", "byLicenseLen", "byEntireBelieve", "byRegion",
+ "byCountry", "byRes", "struPlateRect", "sLicense", "byBelieve");
+ }
+
+ }
+
+ public static class NET_DVR_VEHICLE_INFO extends Structure{
+ public int dwIndex;
+ public byte byVehicleType;
+ public byte byColorDepth;
+ public byte byColor;
+ public byte byRadarState;
+ public short wSpeed;
+ public short wLength;
+ public byte byIllegalType;
+ public byte byVehicleLogoRecog;
+ public byte byVehicleSubLogoRecog;
+ public byte byVehicleModel;
+ public byte[] byCustomInfo = new byte[16];
+ public short wVehicleLogoRecog;
+ public byte byIsParking;
+ public byte byRes;
+ public int dwParkingTime; //Parking time, unit: s
+ public byte byBelieve; //byIllegalType believe,1-100
+ public byte byCurrentWorkerNumber;//Current Operating Number
+ public byte byCurrentGoodsLoadingRate;//Current cargo loading rate 0-empty 1-less 2-medium 3-more 4-full
+ public byte byDoorsStatus;//Door status 0 - Door closure 1 - Door opening
+ public byte[] byRes3 = new byte[4];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwIndex", "byVehicleType", "byColorDepth", "byColor", "byRadarState", "wSpeed",
+ "wLength", "byIllegalType", "byVehicleLogoRecog", "byVehicleSubLogoRecog", "byVehicleModel",
+ "byCustomInfo", "wVehicleLogoRecog", "byIsParking","byRes","dwParkingTime","byBelieve","byCurrentWorkerNumber","byCurrentGoodsLoadingRate","byDoorsStatus","byRes3");
+ }
+ }
+
+ public static class NET_DVR_PLATE_RESULT extends Structure{
+ public int dwSize;
+ public byte byResultType;
+ public byte byChanIndex;
+ public short wAlarmRecordID;
+ public int dwRelativeTime;
+ public byte[] byAbsTime = new byte[32];
+ public int dwPicLen;
+ public int dwPicPlateLen;
+ public int dwVideoLen;
+ public byte byTrafficLight;
+ public byte byPicNum;
+ public byte byDriveChan;
+ public byte byVehicleType;
+ public int dwBinPicLen;
+ public int dwCarPicLen;
+ public int dwFarCarPicLen;
+ public ByteByReference pBuffer3;
+ public ByteByReference pBuffer4;
+ public ByteByReference pBuffer5;
+
+ public byte byRelaLaneDirectionType;
+ public byte byCarDirectionType;
+ public byte[] byRes3 = new byte[6];
+ public NET_DVR_PLATE_INFO struPlateInfo = new NET_DVR_PLATE_INFO();
+ public NET_DVR_VEHICLE_INFO struVehicleInfo = new NET_DVR_VEHICLE_INFO();
+ public ByteByReference pBuffer1;
+ public ByteByReference pBuffer2;
+
+ public NET_DVR_PLATE_RESULT(){
+ super();
+ }
+ public NET_DVR_PLATE_RESULT(Pointer p){
+ super(p);
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "byResultType", "byChanIndex", "wAlarmRecordID", "dwRelativeTime", "byAbsTime",
+ "dwPicLen", "dwPicPlateLen", "dwVideoLen", "byTrafficLight", "byPicNum", "byDriveChan", "byVehicleType",
+ "dwBinPicLen", "dwCarPicLen", "dwFarCarPicLen", "pBuffer3", "pBuffer4", "pBuffer5", "byRelaLaneDirectionType","byCarDirectionType",
+ "byRes3", "struPlateInfo", "struVehicleInfo", "pBuffer1", "pBuffer2");
+ }
+ }
+
+ public static class NET_ITS_PICTURE_INFO extends Structure{
+ public int dwDataLen;
+ public byte byType;
+ public byte byDataType;
+ public byte byCloseUpType;
+ public byte byPicRecogMode;
+ public int dwRedLightTime;
+ public byte[] byAbsTime = new byte[32];
+ public NET_VCA_RECT struPlateRect;
+ public NET_VCA_RECT struPlateRecgRect;
+ public ByteByReference pBuffer;
+ public int dwUTCTime;
+ public byte byCompatibleAblity;
+ public byte[] byRes2 = new byte[7];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwDataLen", "byType", "byDataType", "byCloseUpType", "byPicRecogMode", "dwRedLightTime",
+ "byAbsTime", "struPlateRect", "struPlateRecgRect", "pBuffer", "dwUTCTime", "byCompatibleAblity", "byRes2");
+ }
+ }
+
+ public static class NET_ITS_PLATE_RESULT extends Structure{
+ public int dwSize;
+ public int dwMatchNo;
+ public byte byGroupNum;
+ public byte byPicNo;
+ public byte bySecondCam;
+ public byte byFeaturePicNo;
+ public byte byDriveChan;
+ public byte byVehicleType;
+ public byte byDetSceneID;
+ public byte byVehicleAttribute;
+ public short wIllegalType;
+ public byte[] byIllegalSubType = new byte[8];
+ public byte byPostPicNo;
+ public byte byChanIndex;
+ public short wSpeedLimit;
+ public byte[] byRes2 = new byte[2];
+ public NET_DVR_PLATE_INFO struPlateInfo = new NET_DVR_PLATE_INFO();
+ public NET_DVR_VEHICLE_INFO struVehicleInfo = new NET_DVR_VEHICLE_INFO();
+ public byte[] byMonitoringSiteID = new byte[48];
+ public byte[] byDeviceID = new byte[48];
+ public byte byDir;
+ public byte byDetectType;
+ public byte byRelaLaneDirectionType;
+ public byte byCarDirectionType;
+ public int dwCustomIllegalType;
+ public ByteByReference pIllegalInfoBuf;
+ public byte byIllegalFromatType;
+ public byte byPendant;
+ public byte byDataAnalysis;
+ public byte byYellowLabelCar;
+ public byte byDangerousVehicles;
+ public byte byPilotSafebelt;
+ public byte byCopilotSafebelt;
+ public byte byPilotSunVisor;
+ public byte byCopilotSunVisor;
+ public byte byPilotCall;
+ public byte byBarrierGateCtrlType;
+ public byte byAlarmDataType;
+ public NET_DVR_TIME_V30 struSnapFirstPicTime = new NET_DVR_TIME_V30();
+ public int dwIllegalTime;
+ public int dwPicNum;
+ public NET_ITS_PICTURE_INFO[] struPicInfo = (NET_ITS_PICTURE_INFO[])new NET_ITS_PICTURE_INFO().toArray(6);
+
+ public NET_ITS_PLATE_RESULT(Pointer p){
+ super(p);
+ }
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "dwMatchNo", "byGroupNum", "byPicNo", "bySecondCam", "byFeaturePicNo","byDriveChan",
+ "byVehicleType", "byDetSceneID", "byVehicleAttribute", "wIllegalType", "byIllegalSubType", "byPostPicNo",
+ "byChanIndex", "wSpeedLimit", "byRes2", "struPlateInfo", "struVehicleInfo", "byMonitoringSiteID", "byDeviceID",
+ "byDir", "byDetectType", "byRelaLaneDirectionType", "byCarDirectionType", "dwCustomIllegalType",
+ "pIllegalInfoBuf","byIllegalFromatType", "byPendant", "byDataAnalysis", "byYellowLabelCar", "byDangerousVehicles", "byPilotSafebelt",
+ "byCopilotSafebelt", "byPilotSunVisor", "byCopilotSunVisor", "byPilotCall", "byBarrierGateCtrlType", "byAlarmDataType",
+ "struSnapFirstPicTime", "dwIllegalTime", "dwPicNum", "struPicInfo");
+ }
+ }
+
+ public static class NET_VCA_TARGET_INFO extends Structure {
+ public int dwID;
+ public NET_VCA_RECT struRect = new NET_VCA_RECT();
+ public byte[] byRes = new byte[4];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwID", "struRect", "byRes");
+ }
+
+ }
+
+ public static class NET_VCA_TRAVERSE_PLANE extends Structure {
+ public NET_VCA_LINE struPlaneBottom = new NET_VCA_LINE();
+ public int dwCrossDirection;
+ public byte bySensitivity;
+ public byte byPlaneHeight;
+ public byte byDetectionTarget;
+ public byte[] byRes2 = new byte[37];
+
+ public NET_VCA_TRAVERSE_PLANE(Pointer pointer){
+ super(pointer);
+ }
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struPlaneBottom", "dwCrossDirection", "bySensitivity", "byPlaneHeight", "byDetectionTarget", "byRes2");
+ }
+ }
+
+ public static class NET_VCA_AREA extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public byte byDetectionTarget;
+ public byte[] byRes = new byte[7];
+
+ public NET_VCA_AREA(Pointer pointer) {
+ // TODO Auto-generated constructor stub
+ super(pointer);
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "byDetectionTarget", "byRes");
+ }
+ }
+
+ public static class NET_VCA_INTRUSION extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public short wDuration;
+ public byte bySensitivity;
+ public byte byRate;
+ public byte byDetectionTarget;
+ public byte[] byRes = new byte[3];
+
+ public NET_VCA_INTRUSION(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "wDuration", "bySensitivity", "byRate", "byDetectionTarget", "byRes");
+ }
+ }
+
+ public static class NET_VCA_LOITER extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public short wDuration;
+ public byte[] byRes = new byte[6];
+
+
+ public NET_VCA_LOITER(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "wDuration", "byRes");
+ }
+ }
+
+ public static class NET_VCA_TAKE_LEFT extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public short wDuration;
+ public byte[] byRes = new byte[6];
+
+
+ public NET_VCA_TAKE_LEFT(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "wDuration", "byRes");
+ }
+ }
+
+ public static class NET_VCA_PARKING extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public short wDuration;
+ public byte[] byRes = new byte[6];
+
+ public NET_VCA_PARKING(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "wDuration", "byRes");
+ }
+ }
+
+ public static class NET_VCA_RUN extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public float fRunDistance;
+ public byte bySensitivity;
+ public byte byMode;
+ public byte byDetectionTarget;
+ public byte byRes;
+
+ public NET_VCA_RUN(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "fRunDistance", "bySensitivity", "byMode", "byDetectionTarget", "byRes");
+ }
+ }
+
+ public static class NET_VCA_HIGH_DENSITY extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public float fDensity;
+ public byte bySensitivity;
+ public byte byRes;
+ public short wDuration;
+
+ public NET_VCA_HIGH_DENSITY(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "fDensity", "bySensitivity", "byRes", "wDuration");
+ }
+ }
+
+ public static class NET_VCA_VIOLENT_MOTION extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public short wDuration;
+ public byte bySensitivity;
+ public byte byMode;
+ public byte[] byRes = new byte[4];
+
+ public NET_VCA_VIOLENT_MOTION(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "wDuration", "bySensitivity", "byMode", "byRes");
+ }
+ }
+
+ public static class NET_VCA_REACH_HIGHT extends Structure {
+ public NET_VCA_LINE struVcaLine = new NET_VCA_LINE();
+ public short wDuration;
+ public byte[] byRes = new byte[6];
+
+ public NET_VCA_REACH_HIGHT(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struVcaLine", "wDuration", "byRes");
+ }
+ }
+
+ public static class NET_VCA_GET_UP extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public short wDuration;
+ public byte byMode;
+ public byte bySensitivity;
+ public byte[] byRes = new byte[4];
+
+ public NET_VCA_GET_UP(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "wDuration", "byMode", "bySensitivity", "byRes");
+ }
+ }
+
+ public static class NET_VCA_LEFT extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public short wDuration;
+ public byte bySensitivity;
+ public byte[] byRes = new byte[5];
+
+ public NET_VCA_LEFT(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "wDuration", "bySensitivity", "byRes");
+ }
+ }
+
+ public static class NET_VCA_TAKE extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public short wDuration;
+ public byte bySensitivity;
+ public byte[] byRes = new byte[5];
+
+ public NET_VCA_TAKE(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "wDuration", "bySensitivity", "byRes");
+ }
+ }
+
+ public static class NET_VCA_HUMAN_ENTER extends Structure {
+ public int[] dwRes = new int[23];
+
+ public NET_VCA_HUMAN_ENTER(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwRes");
+ }
+ }
+
+ public static class NET_VCA_OVER_TIME extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public short wDuration;
+ public byte[] byRes = new byte[6];
+
+ public NET_VCA_OVER_TIME(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "wDuration", "byRes");
+ }
+ }
+
+ public static class NET_VCA_STICK_UP extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public short wDuration;
+ public byte bySensitivity;
+ public byte[] byRes = new byte[5];
+
+ public NET_VCA_STICK_UP(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "wDuration", "bySensitivity", "byRes");
+ }
+ }
+
+ public static class NET_VCA_SCANNER extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public short wDuration;
+ public byte bySensitivity;
+ public byte[] byRes = new byte[5];
+
+ public NET_VCA_SCANNER(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "wDuration", "bySensitivity", "byRes");
+ }
+ }
+
+ public static class NET_VCA_LEAVE_POSITION extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public short wLeaveDelay;
+ public short wStaticDelay;
+ public byte byMode;
+ public byte byPersonType;
+ public byte[] byRes = new byte[2];
+
+ public NET_VCA_LEAVE_POSITION(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "wLeaveDelay", "wStaticDelay", "byMode", "byPersonType", "byRes");
+ }
+ }
+
+ public static class NET_VCA_TRAIL extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public short wRes;
+ public byte bySensitivity;
+ public byte[] byRes = new byte[5];
+
+ public NET_VCA_TRAIL(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "wRes", "bySensitivity", "byRes");
+ }
+ }
+
+ public static class NET_VCA_FALL_DOWN extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public short wDuration;
+ public byte bySensitivity;
+ public byte byHeightThreshold;
+ public byte[] byRes = new byte[4];
+
+ public NET_VCA_FALL_DOWN(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "wDuration", "bySensitivity", "byHeightThreshold", "byRes");
+ }
+ }
+
+ public static class NET_VCA_AUDIO_ABNORMAL extends Structure {
+ public short wDecibel;
+ public byte bySensitivity;
+ public byte byAudioMode;
+ public byte byEnable;
+ public byte byThreshold;
+ public byte[] byRes = new byte[54];
+
+ public NET_VCA_AUDIO_ABNORMAL(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("wDecibel", "bySensitivity", "byAudioMode", "byEnable", "byThreshold", "byRes");
+ }
+ }
+
+ public static class NET_VCA_ADV_REACH_HEIGHT extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public int dwCrossDirection;
+ public byte[] byRes = new byte[4];
+
+ public NET_VCA_ADV_REACH_HEIGHT(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "dwCrossDirection", "byRes");
+ }
+ }
+
+ public static class NET_VCA_TOILET_TARRY extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public short wDelay;
+ public byte[] byRes = new byte[6];
+
+ public NET_VCA_TOILET_TARRY(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "wDelay", "byRes");
+ }
+ }
+
+ public static class NET_VCA_YARD_TARRY extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public short wDelay;
+ public byte[] byRes = new byte[6];
+
+ public NET_VCA_YARD_TARRY(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "wDelay", "byRes");
+ }
+ }
+
+ public static class NET_VCA_ADV_TRAVERSE_PLANE extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public int dwCrossDirection;
+ public byte bySensitivity;
+ public byte[] byRes = new byte[3];
+
+ public NET_VCA_ADV_TRAVERSE_PLANE(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "dwCrossDirection", "bySensitivity", "byRes");
+ }
+ }
+
+ public static class NET_VCA_STANDUP extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public byte bySensitivity;
+ public byte byHeightThreshold;
+ public short wDuration;
+ public byte[] byRes = new byte[4];
+
+ public NET_VCA_STANDUP(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "bySensitivity", "byHeightThreshold", "wDuration", "byRes");
+ }
+ }
+
+ public static class NET_VCA_PEOPLENUM_CHANGE extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public byte bySensitivity;
+ public byte byPeopleNumThreshold;
+ public byte byDetectMode;
+ public byte byNoneStateEffective;
+ public short wDuration;
+ public byte[] byRes = new byte[2];
+
+ public NET_VCA_PEOPLENUM_CHANGE(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "bySensitivity", "byPeopleNumThreshold", "byDetectMode", "byNoneStateEffective", "wDuration", "byRes");
+ }
+ }
+
+ public static class NET_VCA_SPACING_CHANGE extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public float fSpacingThreshold;
+ public byte bySensitivity;
+ public byte byDetectMode;
+ public short wDuration;
+
+ public NET_VCA_SPACING_CHANGE(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "fSpacingThreshold", "bySensitivity", "byDetectMode", "wDuration");
+ }
+ }
+
+ public static class NET_VCA_RELATE_RULE_PARAM extends Structure {
+ public byte byRuleID;
+ public byte byRes;
+ public short wEventType;
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byRuleID", "byRes", "wEventType");
+ }
+ }
+
+ public static class NET_VCA_COMBINED_RULE extends Structure {
+ public byte byRuleSequence;
+ public byte[] byRes = new byte[7];
+ public int dwMinInterval;
+ public int dwMaxInterval;
+ public NET_VCA_RELATE_RULE_PARAM struRule1Raram = new NET_VCA_RELATE_RULE_PARAM();
+ public NET_VCA_RELATE_RULE_PARAM struRule2Raram = new NET_VCA_RELATE_RULE_PARAM();
+ public byte[] byRes1 = new byte[36];
+
+ public NET_VCA_COMBINED_RULE(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byRuleSequence", "byRes", "dwMinInterval", "dwMaxInterval", "struRule1Raram", "struRule2Raram", "byRes1");
+ }
+ }
+
+ public static class NET_VCA_SIT_QUIETLY extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public int dwDuration;
+ public byte[] byRes = new byte[4];
+
+ public NET_VCA_SIT_QUIETLY(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "dwDuration", "byRes");
+ }
+ }
+
+ public static class NET_VCA_HIGH_DENSITY_STATUS extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public float fDensity;
+ public byte bySensitivity;
+ public byte[] byRes = new byte[3];
+
+ public NET_VCA_HIGH_DENSITY_STATUS(Pointer p) {
+ super(p);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "fDensity", "bySensitivity", "byRes");
+ }
+ }
+
+ public static class NET_VCA_EVENT_UNION extends Union
+ {
+ public int[] uLen = new int[23];
+ //not list all the event structure,it's too slow,see COMM_ALARM_RULE in JNATest
+ }
+
+ public static class NET_VCA_RULE_INFO extends Structure {
+ public byte byRuleID;
+ public byte byRes;
+ public short wEventTypeEx;
+ public byte[] byRuleName = new byte[NAME_LEN];
+ public int dwEventType;
+ public NET_VCA_EVENT_UNION uEventParam = new NET_VCA_EVENT_UNION();
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byRuleID", "byRes", "wEventTypeEx", "byRuleName", "dwEventType", "uEventParam");
+ }
+ }
+
+ public static class NET_VCA_RULE_ALARM extends Structure {
+ public int dwSize;
+ public int dwRelativeTime;
+ public int dwAbsTime;
+ public NET_VCA_RULE_INFO struRuleInfo = new NET_VCA_RULE_INFO();
+ public NET_VCA_TARGET_INFO struTargetInfo = new NET_VCA_TARGET_INFO();
+ public NET_VCA_DEV_INFO struDevInfo = new NET_VCA_DEV_INFO();
+ public int dwPicDataLen;
+ public byte byPicType;
+ public byte byRelAlarmPicNum;
+ public byte bySmart;
+ public byte byRes;
+ public int dwAlarmID;
+ public byte[] byRes2 = new byte[8];
+ public ByteByReference pImage;
+
+ public NET_VCA_RULE_ALARM(Pointer p){
+ super(p);
+ }
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "dwRelativeTime", "dwAbsTime", "struRuleInfo", "struTargetInfo", "struDevInfo",
+ "dwPicDataLen", "byPicType", "byRelAlarmPicNum", "bySmart", "byRes", "dwAlarmID", "byRes2", "pImage");
+ }
+ }
+
+ public static class NET_DVR_STREAM_INFO extends Structure {
+ public int dwSize;
+ public byte[] byID = new byte[STREAM_ID_LEN];
+ public int dwChannel;
+ public byte[] byRes = new byte[32];
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "byID", "dwChannel",
+ "byRes");
+ }
+ }
+
+ public static class NET_DVR_MULTI_STREAM_COMPRESSIONCFG_COND extends
+ Structure {
+ public int dwSize;
+ public NET_DVR_STREAM_INFO struStreamInfo = new NET_DVR_STREAM_INFO();
+ public int dwStreamType;
+ public byte byRes[] = new byte[32];
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "struStreamInfo",
+ "dwStreamType", "byRes");
+ }
+ }
+
+ public static class NET_DVR_COMPRESSION_INFO_V30 extends Structure {
+ public byte byStreamType;
+ public byte byResolution;
+ public byte byBitrateType;
+ public byte byPicQuality;
+ public int dwVideoBitrate;
+ public int dwVideoFrameRate;
+ public short wIntervalFrameI;
+ public byte byIntervalBPFrame;
+ public byte byENumber;
+ public byte byVideoEncType;
+ public byte byAudioEncType;
+ public byte[] byres = new byte[10];
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byStreamType", "byResolution",
+ "byBitrateType", "byPicQuality", "dwVideoBitrate",
+ "dwVideoFrameRate", "wIntervalFrameI", "byIntervalBPFrame",
+ "byENumber", "byVideoEncType", "byAudioEncType", "byres");
+ }
+ }
+
+ public static class NET_DVR_MULTI_STREAM_COMPRESSIONCFG extends Structure {
+ public int dwSize;
+ public int dwStreamType;
+ public NET_DVR_COMPRESSION_INFO_V30 struStreamPara = new NET_DVR_COMPRESSION_INFO_V30();
+ public byte[] byRes = new byte[80];
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "dwStreamType",
+ "struStreamPara", "byRes");
+ }
+ }
+
+ public static class INT_ARRAY extends Structure {
+ public int[] iValue;
+
+ public INT_ARRAY(int iLen) {
+ iValue = new int[iLen];
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("iValue");
+ }
+ }
+
+ public static class BYTE_ARRAY extends Structure {
+ public byte[] byValue;
+
+ public BYTE_ARRAY(int iLen) {
+ byValue = new byte[iLen];
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byValue");
+ }
+ }
+
+
+
+ public static class NET_DVR_LOITERING_REGION extends Structure {
+ public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
+ public byte bySensitivity;
+ public byte byTimeThreshold;
+ public byte[] byRes = new byte[62];
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRegion", "bySensitivity",
+ "byTimeThreshold", "byRes");
+ }
+ }
+
+ public static class NET_DVR_LOITERING_DETECTION extends Structure {
+ public int dwSize;
+ public byte byEnabled;
+ public byte[] byRes1 = new byte[3];
+ public NET_DVR_LOITERING_REGION[] struRegion = (NET_DVR_LOITERING_REGION[]) new NET_DVR_LOITERING_REGION()
+ .toArray(MAX_REGION_NUM);
+ public byte[] byRes2 = new byte[128];
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "byEnabled",
+ "byRes1", "struRegion", "byRes2");
+ }
+ }
+
+ public static class NET_DVR_SMART_REGION_COND extends Structure {
+ public int dwSize;
+ public int dwChannel;
+ public int dwRegion;
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "dwChannel",
+ "dwRegion");
+ }
+ }
+
+ public static class NET_DVR_INPUTVOLUME extends Structure {
+ public int dwSize;
+ public byte byAudioInputChan;
+ public byte[] byRes = new byte[63];
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "byAudioInputChan",
+ "byRes");
+ }
+ }
+
+ public static class NET_DVR_CARD_CFG_COND extends Structure {
+ public int dwSize;
+ public int dwCardNum;
+ public byte byCheckCardNo;
+ public byte[] byRes1 = new byte[3];
+ public short wLocalControllerID;
+ public byte[] byRes2 = new byte[2];
+ public int dwLockID;
+ public byte[] byRes3 = new byte[20];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "dwCardNum", "byCheckCardNo", "byRes1",
+ "wLocalControllerID", "byRes2", "dwLockID", "byRes3");
+ }
+ }
+
+ public static class NET_DVR_VALID_PERIOD_CFG extends Structure {
+ public byte byEnable;
+ public byte[] byRes1 = new byte[3];
+ public NET_DVR_TIME_EX struBeginTime = new NET_DVR_TIME_EX();
+ public NET_DVR_TIME_EX struEndTime = new NET_DVR_TIME_EX();
+ public byte[] byRes2 = new byte[32];
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byEnable", "byRes1",
+ "struBeginTime", "struEndTime", "byRes2");
+ }
+ }
+
+ public static class arrayCardRightPlan extends Structure {
+ public byte[] byDoorRightPlan = new byte[MAX_CARD_RIGHT_PLAN_NUM];
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byDoorRightPlan");
+ }
+ }
+
+ public static class NET_DVR_CARD_CFG extends Structure {
+ public int dwSize;
+ public int dwModifyParamType;
+ public byte[] byCardNo = new byte[ACS_CARD_NO_LEN];
+ public byte byCardValid;
+ public byte byCardType;
+ public byte byLeaderCard;
+ public byte byRes1;
+ public int dwDoorRight;
+ public NET_DVR_VALID_PERIOD_CFG struValid = new NET_DVR_VALID_PERIOD_CFG();
+ public int dwBelongGroup;
+ public byte[] byCardPassword = new byte[CARD_PASSWORD_LEN];
+ public arrayCardRightPlan[] byCardRightPlan = new arrayCardRightPlan[MAX_DOOR_NUM];
+ public int dwMaxSwipeTime;
+ public int dwSwipeTime;
+ public short wRoomNumber;
+ public short wFloorNumber;
+ public byte[] byRes2 = new byte[20];
+
+ public NET_DVR_CARD_CFG(Pointer p) {
+ super(p);
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "dwModifyParamType",
+ "byCardNo", "byCardValid", "byCardType", "byLeaderCard",
+ "byRes1", "dwDoorRight", "struValid", "dwBelongGroup",
+ "byCardPassword", "byCardRightPlan", "dwMaxSwipeTime",
+ "dwSwipeTime", "wRoomNumber", "wFloorNumber", "byRes2");
+ }
+ }
+
+ public static class NET_DVR_LED_AREA_COND extends Structure
+ {
+ public int dwSize;
+ public int dwVideoWallNo;
+ public int dwLEDAreaNo;
+ public byte[] byRes = new byte[32];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize","dwVideoWallNo",
+ "dwLEDAreaNo","byRes");
+ }
+ }
+
+ public static class NET_DVR_RECTCFG_EX extends Structure
+ {
+ public int dwXCoordinate;
+ public int dwYCoordinate;
+ public int dwWidth;
+ public int dwHeight;
+ public byte [] byRes= new byte[4];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwXCoordinate","dwYCoordinate",
+ "dwWidth","dwHeight","byRes");
+ }
+ }
+
+ public static class NET_DVR_LED_AREA_INFO extends Structure
+ {
+ public int dwSize;
+ public int dwLEDAreaNo;
+ public NET_DVR_RECTCFG_EX struRect = new NET_DVR_RECTCFG_EX();
+ public int []dwaOutputNo= new int[MAX_NUM_OUTPUT_CHANNEL];
+ public byte byAreaType;
+ public byte [] byRes= new byte[31];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize","dwLEDAreaNo","struRect",
+ "dwaOutputNo","byAreaType", "byRes");
+ }
+ }
+
+ public static class NET_DVR_LED_AREA_INFO_LIST extends Structure
+ {
+ public int dwSize;
+ public int dwLEDAreaNum;
+ public Pointer lpstruBuffer;
+ public int dwBufferSize;
+ public byte [] byRes= new byte[32];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize","dwLEDAreaNum","lpstruBuffer",
+ "dwBufferSize","byRes");
+ }
+ }
+
+ public static class NET_DVR_MATRIX_PASSIVEMODE extends Structure
+ {
+ public short wTransProtol;
+ public short wPassivePort;
+ public NET_DVR_IPADDR struMcastIP = new NET_DVR_IPADDR();
+ public byte byStreamType;
+ public byte[] byRes= new byte[7];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("wTransProtol","wPassivePort",
+ "struMcastIP","byStreamType","byRes");
+ }
+ }
+
+ public static class NET_DVR_ALARMHOST_OTHER_STATUS_V50 extends Structure
+ {
+ public int dwSize;
+ public byte[] bySirenStatus = new byte[ALARMHOST_MAX_SIREN_NUM];
+ public byte[] byDetetorPower = new byte[MAX_DETECTOR_NUM];
+ public byte[] byDetetorConnection = new byte[MAX_DETECTOR_NUM];
+ public byte[] byRes= new byte[1024];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize","bySirenStatus","byDetetorPower","byDetetorConnection","byRes");
+ }
+ }
+
+ public static class NET_DVR_ALARMHOST_OTHER_STATUS_V51 extends Structure
+ {
+ public int dwSize;
+ public byte[] bySirenStatus = new byte[ALARMHOST_MAX_SIREN_NUM];
+ public byte[] byDetetorPower = new byte[MAX_DETECTOR_NUM_V51];
+ public byte[] byDetetorConnection = new byte[MAX_DETECTOR_NUM_V51];
+ public byte[] bySirenPower = new byte[ALARMHOST_MAX_SIREN_NUM];
+ public byte[] bySirenTamperStatus = new byte[ALARMHOST_MAX_SIREN_NUM];
+ public byte[] byPowerStausEnabled = new byte[MAX_DETECTOR_NUM_V51 / 8];
+ public byte[] byDetetorPowerStatus = new byte[MAX_DETECTOR_NUM_V51 / 8];
+ public byte byDetetorPowerType;
+ public byte[] byRes2 = new byte[3];
+ public byte[] byRepeaterStatus = new byte[MAX_REPEATER_NUM];
+ public byte[] byRepeaterTamperStatus = new byte[MAX_REPEATER_NUM / 8];
+ public byte[] byAlarmOutTamperStatus = new byte[MAX_ALARMHOST_ALARMOUT_NUM / 8];
+ public byte[] byOutputModuleTamperStatus = new byte[MAX_OUTPUT_MODULE_NUM / 8];
+ public byte[] byRes = new byte[338];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "bySirenStatus", "byDetetorPower", "byDetetorConnection", "bySirenPower", "bySirenTamperStatus", "byPowerStausEnabled", "byDetetorPowerStatus", "byDetetorPowerType", "byRes2", "byRepeaterStatus", "byRepeaterTamperStatus", "byAlarmOutTamperStatus", "byOutputModuleTamperStatus", "byRes");
+ }
+ }
+
+ public static class NET_DVR_NOAMAL_SUB_SYSTEM extends Structure
+ {
+ public int dwBeJoinedSubSystem;
+ public byte[] byRes= new byte[16];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwBeJoinedSubSystem","byRes");
+ }
+ }
+
+ public static class NET_DVR_PUBLIC_SUB_SYSTEM extends Structure
+ {
+ public int dwJointSubSystem;
+ public byte[] byRes= new byte[16];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwJointSubSystem","byRes");
+ }
+ }
+
+ public static class NET_DVR_JOINT_SUB_SYSTEM extends Union
+ {
+ public NET_DVR_NOAMAL_SUB_SYSTEM struNormalSubSystem = new NET_DVR_NOAMAL_SUB_SYSTEM();
+ public NET_DVR_PUBLIC_SUB_SYSTEM struPublicSubSystem = new NET_DVR_PUBLIC_SUB_SYSTEM();
+ public byte[] byRes= new byte[20];
+// @Override
+// protected List getFieldOrder() {
+// // TODO Auto-generated method stub
+// return Arrays.asList("struNormalSubSystem","struPublicSubSystem","byRes");
+// }
+ }
+
+ public static class NET_DVR_ALARMSUBSYSTEMPARAM extends Structure
+ {
+ public int dwSize;
+ public short wEnterDelay;
+ public short wExitDelay;
+ public byte byHostageReport;
+ public byte bySubsystemEnable;
+ public byte byKeyToneOfArmOrDisarm;
+ public byte byKeyToneOfManualTestReport;
+ public short wDelayTime;
+ public byte byEnableAlarmInDelay;
+ public byte byPublicAttributeEnable;
+ public NET_DVR_JOINT_SUB_SYSTEM struJointSubSystem = new NET_DVR_JOINT_SUB_SYSTEM();
+ public byte byKeyZoneArm;
+ public byte byKeyZoneArmReport;
+ public byte byKeyZoneDisarm;
+ public byte byKeyZoneDisarmReport;
+ public byte[] bySubSystemID = new byte[MAX_SUBSYSTEM_ID_LEN];
+ public byte byKeyZoneArmReportEnable;
+ public byte byKeyZoneArmEnable;
+ public byte byOneKeySetupAlarmEnable;
+ public byte bySingleZoneSetupAlarmEnable;
+ public byte byCenterType;
+ public byte[] sCenterAccount = new byte[ACCOUNTNUM_LEN];
+ public byte[] sCenterAccountV40 = new byte[ACCOUNTNUM_LEN_32];
+ public byte[] byRes2 = new byte[565];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize","wEnterDelay","wExitDelay","byHostageReport","bySubsystemEnable"
+ ,"byKeyToneOfArmOrDisarm","byKeyToneOfManualTestReport","wDelayTime","byEnableAlarmInDelay","byPublicAttributeEnable"
+ ,"struJointSubSystem","byKeyZoneArm","byKeyZoneArmReport","byKeyZoneDisarm","byKeyZoneDisarmReport"
+ ,"bySubSystemID","byKeyZoneArmReportEnable","byKeyZoneArmEnable","byOneKeySetupAlarmEnable","bySingleZoneSetupAlarmEnable"
+ ,"byCenterType","sCenterAccount","sCenterAccountV40","byRes2");
+ }
+ }
+
+ public static class NET_DVR_WALLWIN_INFO extends Structure
+ {
+ public int dwSize;
+ public int dwWinNum;
+ public int dwSubWinNum;
+ public int dwWallNo;
+ public byte[] byRes = new byte[12];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize","dwWinNum","dwSubWinNum","dwWallNo","byRes");
+ }
+ }
+
+ public static class NET_DVR_WALL_WIN_STATUS extends Structure
+ {
+ public int dwSize;
+ public byte byDecodeStatus;
+ public byte byStreamType;
+ public byte byPacketType;
+ public byte byFpsDecV;
+ public byte byFpsDecA;
+ public byte[] byRes1 = new byte[7];
+ public int dwDecodedV;
+ public int dwDecodedA;
+ public short wImgW;
+ public short wImgH;
+ public byte byStreamMode;
+ public byte[] byRes2 = new byte[31];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize","byDecodeStatus","byStreamType","byPacketType","byFpsDecV",
+ "byFpsDecA","byRes1","dwDecodedV","dwDecodedA","wImgW",
+ "wImgH","byStreamMode","byRes2");
+ }
+ }
+ public static class NET_DVR_SETUPALARM_PARAM extends Structure
+ {
+ public int dwSize;
+ public byte byLevel;
+ public byte byAlarmInfoType;
+ public byte byRetAlarmTypeV40;
+ public byte byRetDevInfoVersion;
+ public byte byRetVQDAlarmType;
+ public byte byFaceAlarmDetection;
+ public byte bySupport;
+ public byte byBrokenNetHttp;
+ public short wTaskNo;
+ public byte[] byRes1 = new byte[6];
+
+ protected List getFieldOrder(){
+ return Arrays.asList("dwSize", "byLevel", "byAlarmInfoType",
+ "byRetAlarmTypeV40", "byRetDevInfoVersion", "byRetVQDAlarmType",
+ "byFaceAlarmDetection", "bySupport", "byBrokenNetHttp", "wTaskNo", "byRes1");
+ }
+ }
+
+ public static class NET_DVR_DEVICEINFO_V30 extends Structure
+ {
+ public byte[] sSerialNumber = new byte[SERIALNO_LEN];
+ public byte byAlarmInPortNum;
+ public byte byAlarmOutPortNum;
+ public byte byDiskNum;
+ public byte byDVRType;
+ public byte byChanNum;
+ public byte byStartChan;
+ public byte byAudioChanNum;
+ public byte byIPChanNum;
+ public byte byZeroChanNum;
+ public byte byMainProto;
+ public byte bySubProto;
+ public byte bySupport;
+ public byte bySupport1;
+ public byte bySupport2;
+ public short wDevType;
+ public byte bySupport3;
+ public byte byMultiStreamProto;
+ public byte byStartDChan;
+ public byte byStartDTalkChan;
+ public byte byHighDChanNum;
+ public byte bySupport4;
+ public byte byLanguageType;
+ public byte byVoiceInChanNum;
+ public byte byStartVoiceInChanNo;
+ public byte[] byRes3=new byte[2];
+ public byte byMirrorChanNum;
+ public short wStartMirrorChanNo;
+ public byte[] byRes2=new byte[2];
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("sSerialNumber", "byAlarmInPortNum", "byAlarmOutPortNum", "byDiskNum",
+ "byDVRType", "byChanNum", "byStartChan", "byAudioChanNum",
+ "byIPChanNum", "byZeroChanNum","byMainProto", "bySubProto",
+ "bySupport", "bySupport1","bySupport2", "wDevType",
+ "bySupport3", "byMultiStreamProto","byStartDChan", "byStartDTalkChan",
+ "byHighDChanNum", "bySupport4","byLanguageType", "byVoiceInChanNum",
+ "byStartVoiceInChanNo", "byRes3","byMirrorChanNum", "wStartMirrorChanNo", "byRes2");
+ }
+ }
+
+ public static class NET_DVR_DEVICEINFO_V40 extends Structure
+ {
+ public NET_DVR_DEVICEINFO_V30 struDeviceV30 = new NET_DVR_DEVICEINFO_V30();
+ public byte bySupportLock;
+ public byte byRetryLoginTime;
+ public byte byPasswordLevel;
+ public byte byProxyType;
+ public int dwSurplusLockTime;
+ public byte byCharEncodeType;
+ public byte bySupportDev5;
+ public byte byLoginMode;
+ public byte[] byRes2 = new byte[253];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struDeviceV30", "bySupportLock", "byRetryLoginTime",
+ "byPasswordLevel", "byProxyType", "dwSurplusLockTime", "byCharEncodeType",
+ "bySupportDev5", "byLoginMode", "byRes2");
+ }
+ }
+
+
+ public static class NET_DVR_USER_LOGIN_INFO extends Structure
+ {
+ public byte[] sDeviceAddress = new byte[NET_DVR_DEV_ADDRESS_MAX_LEN];
+ public byte byUseTransport;
+ public short wPort;
+ public byte[] sUserName = new byte[NET_DVR_LOGIN_USERNAME_MAX_LEN];
+ public byte[] sPassword = new byte[NET_DVR_LOGIN_PASSWD_MAX_LEN];
+ public FLoginResultCallBack cbLoginResult;
+ public Pointer pUser;
+ public boolean bUseAsynLogin;
+ public byte byProxyType;
+ public byte byUseUTCTime;
+ public byte byLoginMode;
+ public byte byHttps;
+ public int iProxyID;
+ public byte[] byRes3 = new byte[120];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("sDeviceAddress", "byUseTransport", "wPort", "sUserName", "sPassword",
+ "cbLoginResult", "pUser", "bUseAsynLogin", "byProxyType",
+ "byUseUTCTime", "byLoginMode", "byHttps", "iProxyID", "byRes3");
+ }
+ }
+
+
+ public static class NET_DVR_OPEN_EZVIZ_USER_LOGIN_INFO extends Structure
+ {
+ public byte[] sEzvizServerAddress = new byte[NET_DVR_DEV_ADDRESS_MAX_LEN];
+ public byte[] byRes1 = new byte[3];
+ public short wPort;
+ public byte[] byRes2 = new byte[2];
+ public byte[] sUrl = new byte[EZVIZ_REQURL_LEN];
+ public byte[] sAccessToken = new byte[EZVIZ_ACCESSTOKEN_LEN];
+ public byte[] sDeviceID = new byte[EZVIZ_DEVICEID_LEN];
+ public byte[] sClientType = new byte[EZVIZ_CLIENTTYPE_LEN];
+ public byte[] sFeatureCode = new byte[EZVIZ_FEATURECODE_LEN];
+ public byte[] sOsVersion = new byte[EZVIZ_OSVERSION_LEN];
+ public byte[] sNetType = new byte[EZVIZ_NETTYPE_LEN];
+ public byte[] sSdkVersion = new byte[EZVIZ_SDKVERSION_LEN];
+ public byte[] sAppID = new byte[EZVIZ_APPID_LEN];
+ public byte[] byRes3 = new byte[512];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("sEzvizServerAddress", "byRes1", "wPort", "byRes2", "sUrl",
+ "sAccessToken", "sDeviceID", "sClientType", "sFeatureCode",
+ "sOsVersion", "sNetType", "sSdkVersion", "sAppID", "byRes3");
+ }
+ }
+
+ public static class NET_DVR_VIDEO_CALL_COND extends Structure
+ {
+ public int dwSize;
+ public byte[] byRes = new byte[128];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "byRes");
+ }
+ }
+
+ public static class NET_DVR_VIDEO_CALL_PARAM extends Structure
+ {
+ public int dwSize;
+ public int dwCmdType;
+ public byte[] byRes = new byte[128];
+
+ public NET_DVR_VIDEO_CALL_PARAM()
+ {
+ super();
+ }
+ public NET_DVR_VIDEO_CALL_PARAM(Pointer p) {
+ super(p);
+ }
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "dwCmdType", "byRes");
+ }
+ }
+
+ public class NET_DVR_DEV_CHAN_INFO extends Structure {
+ /** DVR IP address */
+ public NET_DVR_IPADDR struIP = new NET_DVR_IPADDR();
+ /** DVR PORT */
+ public short wDVRPort;
+ /** Channel */
+ public byte byChannel;
+ /** Transmit protocol:0-TCP, 1-UDP */
+ public byte byTransProtocol;
+ /** Stream mode: 0-main stream, 1-sub stream */
+ public byte byTransMode;
+ /** IPC factory type */
+ public byte byFactoryType;
+ /** Device type(Used by videoplatfom VCA card),
+ * 1-decoder(use decode channel No. or display channel depends on byVcaSupportChanMode in video platform ability structure),
+ * 2-coder
+ */
+ public byte byDeviceType;
+ /** Display channel No. used by VCA configuration */
+ public byte byDispChan;
+ /** Display sub channel No. used by VCA configuration */
+ public byte bySubDispChan;
+ /** Resolution: 1-CIF 2-4CIF 3-720P 4-1080P 5-500w used by big screen controler */
+ public byte byResolution;
+ /** reserved */
+ public byte[] byRes = new byte[2];
+ /** Device domain name */
+ public byte[] sDomain = new byte[MAX_DOMAIN_NAME];
+ /** Remote device user name */
+ public byte[] sUserName = new byte[NAME_LEN];
+ /** Remote device password */
+ public byte[] sPassword = new byte[PASSWD_LEN];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struIP", "wDVRPort", "byChannel", "byTransProtocol", "byTransMode",
+ "byFactoryType", "byDeviceType", "byDispChan", "bySubDispChan",
+ "byResolution", "byRes", "sDomain", "sUserName", "sPassword");
+ }
+ }
+
+
+ public static class NET_DVR_SUBSYSTEM_BASIC_INFO extends Structure
+ {
+ public int dwSize;
+ public byte bySubSystemType;
+ public byte bySubSystemNo ;
+ public byte [] byRes1 = new byte[2];
+ public int dwChan;
+ public NET_DVR_IPADDR struSubSystemIP;
+ public NET_DVR_IPADDR struSubSystemIPMask;
+ public NET_DVR_IPADDR struGatewayIpAddr;
+ public short wSubSystemPort;
+ public byte []byRes2 = new byte[6];
+ public byte []sSerialNumber = new byte[SERIALNO_LEN];
+ public byte byBelongBoard;
+ public byte [] byRes3 = new byte[3];
+ public byte []byDeviceName = new byte[20];
+ public int dwStartChanNo;
+ public byte byDevNo;
+ public byte [] byRes4 = new byte[63];
+
+ public NET_DVR_SUBSYSTEM_BASIC_INFO(Pointer p) {
+ super(p);
+ }
+
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "bySubSystemType", "bySubSystemNo", "byRes1", "dwChan",
+ "struSubSystemIP", "struSubSystemIPMask", "struGatewayIpAddr", "wSubSystemPort", "byRes2",
+ "sSerialNumber", "byBelongBoard", "byRes3", "byDeviceName", "dwStartChanNo",
+ "byDevNo", "byRes4");
+ }
+ }
+
+ public class NET_DVR_STREAM_MEDIA_SERVER_CFG extends Structure {
+ /** Is enable */
+ public byte byValid;
+ /** reserved1 */
+ public byte[] byRes1 = new byte[3];
+ /** stream server IP */
+ public NET_DVR_IPADDR struDevIP = new NET_DVR_IPADDR();
+ /** stream server Port */
+ public short wDevPort;
+ /** Protocol: 0-TCP, 1-UDP */
+ public byte byTransmitType;
+ /** reserved2 */
+ public byte[] byRes2 = new byte[69];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byValid", "byRes1", "struDevIP", "wDevPort", "byTransmitType", "byRes2");
+ }
+ }
+
+ public class NET_DVR_PU_STREAM_CFG extends Structure {
+ public int dwSize;
+ public NET_DVR_STREAM_MEDIA_SERVER_CFG struStreamMediaSvrCfg = new NET_DVR_STREAM_MEDIA_SERVER_CFG();
+ public NET_DVR_DEV_CHAN_INFO struDevChanInfo = new NET_DVR_DEV_CHAN_INFO();
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "struStreamMediaSvrCfg", "struDevChanInfo");
+ }
+ }
+
+ public class NET_DVR_VIDEOEFFECT extends Structure {
+ public byte byBrightnessLevel; /*0- 100*/
+ public byte byContrastLevel; /*0- 100*/
+ public byte bySharpnessLevel; /*0- 100*/
+ public byte bySaturationLevel; /*0- 100*/
+ public byte byHueLevel; /*0- 100, (Reserved) */
+ public byte byEnableFunc; //enable,bit0-SMART IR,bit1-illumination,bit2-light inhibit,0-no,1-yes
+ public byte byLightInhibitLevel; //light inhibit level,[1-3]
+ public byte byGrayLevel; //gray level,0-[0-255],1-[16-235]
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byBrightnessLevel", "byContrastLevel", "bySharpnessLevel", "bySaturationLevel", "byHueLevel",
+ "byEnableFunc", "byLightInhibitLevel", "byGrayLevel");
+ }
+ }
+
+ public static class NET_DVR_INPUTSTREAMCFG_V40 extends Structure
+ {
+ public int dwSize;
+ /** 0-invalid, !0-valid */
+ public byte byValid;
+ /** reference to NET_DVR_CAM_MODE */
+ public byte byCamMode;
+ /** input signal No. */
+ public short wInputNo;
+ /** signal name */
+ public byte[] sCamName = new byte[NAME_LEN];
+ /** video effect parameters */
+ public NET_DVR_VIDEOEFFECT struVideoEffect = new NET_DVR_VIDEOEFFECT();
+ /** IP signal configurations */
+ public NET_DVR_PU_STREAM_CFG struPuStream = new NET_DVR_PU_STREAM_CFG();
+ /** sub board No., read only */
+ public short wBoardNum;
+ /** index of signal in sub board, read only */
+ public short wInputIdxOnBoard;
+ /** resolution */
+ public int dwResolution;
+ /** video format, reference to VIDEO_STANDARD */
+ public byte byVideoFormat;
+ /** signal status,0-invalid, 1-signal normal, 2-no signal, 3-exception */
+ public byte byStatus;
+ /** signal group name */
+ public byte[] sGroupName = new byte[NAME_LEN];
+ /** relate matrix, 0-not related, 1-related,
+ * valid when signal type is NET_DVR_CAM_BNC or NET_DVR_CAM_VGA or NET_DVR_CAM_DVI or NET_DVR_CAM_HDMI
+ */
+ public byte byJointMatrix;
+ /** joint No., read only */
+ public byte byJointNo;
+ /** color mode, 0-self define, 1-sharp, 2-normal,
+ * 3-soft,struVideoEffect is valid when color mode is self define
+ */
+ public byte byColorMode;
+
+ public byte byScreenServer;
+ public byte byRes1[]= new byte[2];
+ public int dwInputSignalNo;
+
+ /** reserved */
+ public byte[] byRes = new byte[120];
+
+ public NET_DVR_INPUTSTREAMCFG_V40() {
+
+ }
+
+ public NET_DVR_INPUTSTREAMCFG_V40(Pointer p) {
+ super(p);
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "byValid", "byCamMode", "wInputNo", "sCamName", "struVideoEffect",
+ "struPuStream", "wBoardNum", "wInputIdxOnBoard", "dwResolution", "byVideoFormat", "byStatus",
+ "sGroupName", "byJointMatrix", "byJointNo", "byColorMode", "byScreenServer", "byRes1",
+ "dwInputSignalNo", "byRes");
+ }
+ }
+
+ public static class NET_DVR_INPUT_SIGNAL_LIST extends Structure
+ {
+ public int dwSize;
+ public int dwInputSignalNums;
+ public Pointer pBuffer;
+ public byte byRes1[] = new byte[3];
+ public int dwBufLen;
+ public byte byRes2[] = new byte[64];
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "dwInputSignalNums", "pBuffer", "byRes1", "dwBufLen", "byRes2");
+ }
+ }
+
+ class NET_DVR_ALLSUBSYSTEMINFO_V40 extends Structure {
+ public int dwSize;
+ public NET_DVR_SUBSYSTEMINFO_V40[] struSubSystemInfo = new NET_DVR_SUBSYSTEMINFO_V40[MAX_SUBSYSTEM_NUM_V40];
+ public byte[] byRes = new byte[8];
+
+ @Override
+ protected List getFieldOrder() {
+ return Arrays.asList("dwSize", "struSubSystemInfo", "byRes");
+ }
+ }
+
+ class NET_DVR_SUBSYSTEMINFO_V40 extends Structure {
+ public byte bySubSystemType;
+ //subsystem channel number, for distributor subsystem, it means 485 serial number (just for get)
+ public byte byChan;
+ public byte byLoginType;//Login type, 1-direction 2-DNS, 3-peanuthull
+ public byte bySlotNum;//slot number, (just for getting)
+ public byte[] byRes1 = new byte[4];
+ public NET_DVR_IPADDR struSubSystemIP; /*IPaddress (can change)*/
+ public NET_DVR_IPADDR struSubSystemIPMask;//subnet mask
+ public NET_DVR_IPADDR struGatewayIpAddr; /* gateway address*/
+ public short wSubSystemPort; //subsystem port (can change)
+ public byte[] byRes2 = new byte[6];
+ public byte[] sUserName = new byte[NAME_LEN]; /*username (just for getting)*/
+ public byte[] sPassword = new byte[PASSWD_LEN]; /*password (can change)*/
+ public byte[] sDomainName = new byte[MAX_DOMAIN_NAME];//domain name (can change)
+ public byte[] sDnsAddress = new byte[MAX_DOMAIN_NAME];/*domain name or ip address*/
+ public byte[] sSerialNumber = new byte[SERIALNO_LEN];//serial number (just for getting)
+ public byte byBelongBoard;//belong board, from 1 to start, 0xff means invaild
+ public byte byInterfaceType;//interface type,0-none, 1-BNC,2-VGA,3-HDMI,4-DVI,5-SDI, 6-FIBER, 7-RGB, 8-YPrPb, 9-VGA/HDMI/DVI adapter,10-3GSDI,11-VGA/DVI adapter,12-HDTVI,13-HDBaseT,14-DP,15-DVIT,16-TVI,17-VSCREEN,0xff-invaild
+ public byte byInterfaceNums;//interface number,0xff means invaild
+ public byte byInterfaceStartNum;//interface number to start,0xff means invaild
+ public byte[] byDeviceName = new byte[20];//subsystem name
+ public byte byAudioChanNums; //audio channel number
+ public byte byAudioChanStartNum; //the start of audio channel
+ public byte byAudioChanType; //audio channel type, 0-invalid, 1-audio in, 2-audio out
+ public byte[] byRes3 = new byte[33];
+
+ @Override
+ protected List getFieldOrder() {
+ return Arrays.asList("bySubSystemType", "byChan", "byLoginType", "bySlotNum", "byRes1", "struSubSystemIP",
+ "struSubSystemIPMask", "struGatewayIpAddr", "wSubSystemPort", "byRes2", "sUserName", "sPassword", "sDomainName", "sDnsAddress",
+ "sSerialNumber", "byBelongBoard", "byInterfaceType", "byInterfaceNums", "byInterfaceStartNum", "byDeviceName", "byAudioChanNums", "byAudioChanStartNum",
+ "byAudioChanType", "byRes3");
+ }
+ }
+
+ public static class NET_DVR_VEHICLE_CONTROL_ALARM extends Structure
+ {
+ public int dwSize;
+ public byte byListType;
+ public byte byPlateType;
+ public byte byPlateColor;
+ public byte byRes1;
+ public byte[] sLicense = new byte[MAX_LICENSE_LEN];
+ public byte[] sCardNo = new byte[MAX_CARDNO_LEN];
+ public NET_DVR_TIME_V30 struAlarmTime = new NET_DVR_TIME_V30();
+ public int dwChannel;
+ public int dwPicDataLen;
+ public byte byPicType;
+ public byte byRes3[] = new byte[3];
+ public ByteByReference pPicData;
+ public byte byRes2[] = new byte[48];
+ public NET_DVR_VEHICLE_CONTROL_ALARM(Pointer p){
+ super(p);
+ }
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "byListType", "byPlateType", "byPlateColor", "byRes1", "sLicense",
+ "sCardNo","struAlarmTime", "dwChannel", "dwPicDataLen", "byPicType", "byRes3","pPicData","byRes2");
+ }
+ }
+
+ public static class NET_VCA_HUMAN_FEATURE extends Structure
+ {
+ public byte byAgeGroup;
+ public byte bySex;
+ public byte byEyeGlass;
+ public byte byAge;
+ public byte byAgeDeviation;
+ public byte byEthnic;
+ public byte byMask;
+ public byte bySmile;
+ public byte byFaceExpression;
+ public byte byBeard;
+ public byte byRace;
+ public byte byHat;
+ public byte[] byRes = new byte[4];
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byAgeGroup", "bySex", "byEyeGlass", "byAge", "byAgeDeviation", "byEthnic", "byMask", "bySmile", "byFaceExpression", "byBeard", "byRace", "byHat", "byRes");
+ }
+ }
+
+ public static class NET_DVR_FACE_DETECTION extends Structure
+ {
+ public int dwSize;
+ public int dwRelativeTime;
+ public int dwAbsTime;
+ public int dwBackgroundPicLen;
+ public NET_VCA_DEV_INFO struDevInfo = new NET_VCA_DEV_INFO();
+ public NET_VCA_RECT[] struFacePic = (NET_VCA_RECT[])new NET_VCA_RECT().toArray(MAX_FACE_PIC_NUM);
+ public byte byFacePicNum;
+ public byte byRes1;
+ public short wDevInfoIvmsChannelEx;
+ public byte[] byRes = new byte[252];
+ public ByteByReference pBackgroundPicpBuffer;
+ public NET_DVR_FACE_DETECTION(Pointer p){
+ super(p);
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "dwRelativeTime", "dwAbsTime", "dwBackgroundPicLen", "struDevInfo", "struFacePic",
+ "byFacePicNum","byRes1", "wDevInfoIvmsChannelEx", "byRes", "pBackgroundPicpBuffer");
+ }
+ }
+
+ public static class NET_PTZ_INFO extends Structure
+ {
+ public float fPan;
+ public float fTilt;
+ public float fZoom;
+ public int dwFocus;
+ public byte[] byRes = new byte[4];
+ public NET_PTZ_INFO(Pointer p){
+ super(p);
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("fPan", "fTilt", "fZoom", "dwFocus", "byRes");
+ }
+ }
+
+ public static class NET_DVR_THERMOMETRY_ALARM extends Structure
+ {
+ public int dwSize;
+ public int dwChannel;
+ public byte byRuleID;
+ public byte byThermometryUnit;
+ public short wPresetNo;
+ public NET_PTZ_INFO struPtzInfo;
+ public byte byAlarmLevel;
+ public byte byAlarmType;
+ public byte byAlarmRule;
+ public byte byRuleCalibType;
+ public NET_VCA_POINT struPoint;
+ public NET_VCA_POLYGON struRegion;
+ public float fRuleTemperature;
+ public float fCurrTemperature;
+ public int dwPicLen;
+ public int dwThermalPicLen;
+ public int dwThermalInfoLen;
+ public ByteByReference pPicBuff;
+ public ByteByReference pThermalPicBuff;
+ public ByteByReference pThermalInfoBuff;
+ public NET_VCA_POINT struHighestPoint;
+ public float fToleranceTemperature;
+ public int dwAlertFilteringTime;
+ public int dwAlarmFilteringTime;
+ public int dwTemperatureSuddenChangeCycle;
+ public float fTemperatureSuddenChangeValue;
+ public byte byPicTransType;
+ public byte[] byRes = new byte[39];
+ public NET_DVR_THERMOMETRY_ALARM(Pointer p){
+ super(p);
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "dwChannel", "byRuleID", "byThermometryUnit", "wPresetNo", "struPtzInfo", "byAlarmLevel",
+ "byAlarmType", "byAlarmRule", "byRuleCalibType", "struPoint", "struRegion", "fRuleTemperature", "fCurrTemperature",
+ "dwPicLen", "dwThermalPicLen", "dwThermalInfoLen", "pPicBuff", "pThermalPicBuff", "pThermalInfoBuff", "struHighestPoint",
+ "fToleranceTemperature", "dwAlertFilteringTime", "dwAlarmFilteringTime", "dwTemperatureSuddenChangeCycle", "fTemperatureSuddenChangeValue", "byPicTransType", "byRes");
+ }
+ }
+
+ public static class NET_VCA_FACESNAP_ADDINFO extends Structure
+ {
+ public NET_VCA_RECT struFacePicRect;
+ public int iSwingAngle;
+ public int iTiltAngle;
+ public int dwPupilDistance;
+ public byte byBlockingState;
+ public byte byRes1;
+ public byte byIsAbnomalTemperature;
+ public byte byThermometryUnit;
+ public NET_DVR_TIME_EX struEnterTime;
+ public NET_DVR_TIME_EX struExitTime;
+ public float fFaceTemperature;
+ public float fAlarmTemperature;
+ public byte[] byRes = new byte[472];
+ public NET_VCA_FACESNAP_ADDINFO(Pointer p){
+ super(p);
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struFacePicRect", "iSwingAngle", "iTiltAngle", "dwPupilDistance", "byBlockingState", "byRes1",
+ "byIsAbnomalTemperature","byThermometryUnit", "struEnterTime", "struExitTime", "fFaceTemperature", "fAlarmTemperature","byRes");
+ }
+ }
+
+
+ public static class NET_VCA_FACESNAP_RESULT extends Structure
+ {
+ public int dwSize;
+ public int dwRelativeTime;
+ public int dwAbsTime;
+ public int dwFacePicID;
+ public int dwFaceScore;
+ public NET_VCA_TARGET_INFO struTargetInfo = new NET_VCA_TARGET_INFO();
+ public NET_VCA_RECT struRect = new NET_VCA_RECT();
+ public NET_VCA_DEV_INFO struDevInfo = new NET_VCA_DEV_INFO();
+ public int dwFacePicLen;
+ public int dwBackgroundPicLen;
+ public byte bySmart;
+ public byte byAlarmEndMark;
+ public byte byRepeatTimes;
+ public byte byUploadEventDataType;
+ public NET_VCA_HUMAN_FEATURE struFeature = new NET_VCA_HUMAN_FEATURE();
+ public float fStayDuration;
+ public byte[] sStorageIP = new byte[16];
+ public short wStoragePort;
+ public short wDevInfoIvmsChannelEx;
+ public byte byFacePicQuality;
+ public byte byUIDLen;
+ public byte byLivenessDetectionStatus;
+ public byte byAddInfo;
+ public ByteByReference pUIDBuffer;
+ public ByteByReference pAddInfoBuffer;
+ public byte byTimeDiffFlag;
+ public byte cTimeDifferenceH;
+ public byte cTimeDifferenceM;
+ public byte byBrokenNetHttp;
+ public ByteByReference pBuffer1;
+ public ByteByReference pBuffer2;
+ public NET_VCA_FACESNAP_RESULT(Pointer p){
+ super(p);
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "dwRelativeTime", "dwAbsTime", "dwFacePicID", "dwFaceScore", "struTargetInfo",
+ "struRect","struDevInfo", "dwFacePicLen", "dwBackgroundPicLen", "bySmart", "byAlarmEndMark", "byRepeatTimes",
+ "byUploadEventDataType", "struFeature", "fStayDuration", "sStorageIP", "wStoragePort",
+ "wDevInfoIvmsChannelEx", "byFacePicQuality", "byUIDLen", "byLivenessDetectionStatus", "byAddInfo",
+ "pUIDBuffer", "pAddInfoBuffer", "byTimeDiffFlag", "cTimeDifferenceH", "cTimeDifferenceM", "byBrokenNetHttp", "pBuffer1", "pBuffer2");
+ }
+ }
+
+ public static class NET_VCA_FACESNAP_INFO_ALARM extends Structure
+ {
+ public int dwRelativeTime;
+ public int dwAbsTime;
+ public int dwSnapFacePicID;
+ public int dwSnapFacePicLen;
+ public NET_VCA_DEV_INFO struDevInfo = new NET_VCA_DEV_INFO();
+ public byte byFaceScore;
+ public byte bySex;
+ public byte byGlasses;
+ public byte byAge;
+ public byte byAgeDeviation;
+ public byte[] byRes1 = new byte[3];
+ public int dwUIDLen;
+ public ByteByReference pUIDBuffer;
+ public byte[] byRes = new byte[4];
+ public ByteByReference pBuffer1;
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwRelativeTime", "dwAbsTime", "dwSnapFacePicID", "dwSnapFacePicLen", "struDevInfo", "byFaceScore",
+ "bySex","byGlasses", "byAge", "byAgeDeviation", "byRes1","dwUIDLen","pUIDBuffer","byRes","pBuffer1");
+ }
+ }
+
+ public static class NET_DVR_AREAINFOCFG extends Structure
+ {
+ public short wNationalityID;
+ public short wProvinceID;
+ public short wCityID;
+ public short wCountyID;
+ public int dwCode;
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("wNationalityID", "wProvinceID", "wCityID", "wCountyID", "dwCode");
+ }
+ }
+
+ public static class NET_VCA_HUMAN_ATTRIBUTE extends Structure
+ {
+ public byte bySex;
+ public byte byCertificateType;
+ public byte[] byBirthDate = new byte[MAX_HUMAN_BIRTHDATE_LEN];
+ public byte[] byName = new byte[NAME_LEN];
+ public NET_DVR_AREAINFOCFG struNativePlace = new NET_DVR_AREAINFOCFG();
+ public byte[] byCertificateNumber = new byte[NAME_LEN];
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("bySex", "byCertificateType", "byBirthDate", "byName", "struNativePlace", "byCertificateNumber");
+ }
+ }
+
+ public static class NET_VCA_BLACKLIST_INFO extends Structure
+ {
+ public int dwSize;
+ public int dwRegisterID;
+ public int dwGroupNo;
+ public byte byType;
+ public byte byLevel;
+ public byte[] byRes1 = new byte[2];
+ public NET_VCA_HUMAN_ATTRIBUTE struAttribute = new NET_VCA_HUMAN_ATTRIBUTE();
+ public byte[] byRemark = new byte[NAME_LEN];
+ public int dwFDDescriptionLen;
+ public ByteByReference pFDDescriptionBuffer;
+ public int dwFCAdditionInfoLen;
+ public ByteByReference pFCAdditionInfoBuffer;
+ public byte[] byRes2 = new byte[4];
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "dwRegisterID", "dwGroupNo", "byType", "byLevel", "byRes1",
+ "struAttribute","byRemark", "dwFDDescriptionLen", "pFDDescriptionBuffer", "dwFCAdditionInfoLen", "pFCAdditionInfoBuffer", "byRes2");
+ }
+ }
+
+ public static class NET_VCA_BLACKLIST_INFO_ALARM extends Structure
+ {
+ public NET_VCA_BLACKLIST_INFO struBlackListInfo = new NET_VCA_BLACKLIST_INFO();
+ public int dwBlackListPicLen;
+ public int dwFDIDLen;
+ public ByteByReference pFDID;
+ public int dwPIDLen;
+ public ByteByReference pPID;
+ public short wThresholdValue;
+ public byte[] byRes = new byte[2];
+ public ByteByReference pBuffer1;
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struBlackListInfo", "dwBlackListPicLen", "dwFDIDLen", "pFDID", "dwPIDLen", "pPID",
+ "wThresholdValue","byRes", "pBuffer1");
+ }
+ }
+
+ public static class NET_VCA_FACESNAP_MATCH_ALARM extends Structure
+ {
+ public int dwSize;
+ public float fSimilarity;
+ public NET_VCA_FACESNAP_INFO_ALARM struSnapInfo = new NET_VCA_FACESNAP_INFO_ALARM();
+ public NET_VCA_BLACKLIST_INFO_ALARM struBlackListInfo = new NET_VCA_BLACKLIST_INFO_ALARM();
+ public byte[] sStorageIP = new byte[16];
+ public short wStoragePort;
+ public byte byMatchPicNum;
+ public byte byPicTransType;
+ public int dwSnapPicLen;
+ public ByteByReference pSnapPicBuffer;
+ public NET_VCA_RECT struRegion = new NET_VCA_RECT();
+ public int dwModelDataLen;
+ public ByteByReference pModelDataBuffer;
+ public byte[] byRes = new byte[8];
+ public NET_VCA_FACESNAP_MATCH_ALARM(Pointer p){
+ super(p);
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "fSimilarity", "struSnapInfo", "struBlackListInfo", "sStorageIP", "wStoragePort",
+ "byMatchPicNum","byPicTransType", "dwSnapPicLen", "pSnapPicBuffer","struRegion","dwModelDataLen",
+ "pModelDataBuffer","byRes");
+ }
+ }
+
+ public static class struStartFrame extends Structure{
+ public int dwRelativeTime;
+ public int dwAbsTime;
+ public byte[] byRes = new byte[92];
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwRelativeTime","dwAbsTime", "byRes");
+ }
+ }
+
+ public static class struStartTime extends Structure{
+ public NET_DVR_TIME tmStart = new NET_DVR_TIME();
+ public NET_DVR_TIME tmEnd = new NET_DVR_TIME();
+ public byte[] byRes = new byte[92];
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("tmStart","tmEnd", "byRes");
+ }
+ }
+
+ public static class unionStartModeParam extends Union{
+ public struStartFrame struStartFrame = new struStartFrame();
+ public struStartTime struStartTime = new struStartTime();
+ }
+
+ public static class NET_DVR_PDC_ALRAM_INFO extends Structure
+ {
+ public int dwSize;
+ public byte byMode;
+ public byte byChannel;
+ public byte bySmart;
+ public byte byRes1;
+ public NET_VCA_DEV_INFO struDevInfo = new NET_VCA_DEV_INFO();
+ public unionStartModeParam unionStartModeParam= new unionStartModeParam();
+ public int dwLeaveNum;
+ public int dwEnterNum;
+ public byte byBrokenNetHttp;
+ public byte byRes3;
+ public short wDevInfoIvmsChannelEx;
+ public int dwPassingNum;
+ public byte[] byRes = new byte[32];
+ public NET_DVR_PDC_ALRAM_INFO(Pointer p){
+ super(p);
+ }
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "byMode", "byChannel", "bySmart", "byRes1", "struDevInfo","unionStartModeParam",
+ "dwLeaveNum","dwEnterNum", "byBrokenNetHttp", "byRes3", "wDevInfoIvmsChannelEx","dwPassingNum","byRes");
+ }
+
+ }
+
+ public static class NET_DVR_FACELIB_COND extends Structure
+ {
+ public int dwSize;
+ public byte[] szFDID = new byte[NET_SDK_MAX_FDID_LEN];
+ public byte byConcurrent;
+ public byte[] byRes = new byte[127];
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "szFDID", "byConcurrent", "byRes");
+ }
+ }
+
+ public class NET_SDK_UPLOAD_TYPE {
+ public static final int UPGRADE_CERT_FILE = 0;
+ public static final int UPLOAD_CERT_FILE = 1;
+ public static final int TRIAL_CERT_FILE = 2;
+ public static final int CONFIGURATION_FILE = 3;
+ public static final int UPLOAD_RECORD_FILE = 4 ;
+ public static final int SCENE_CONFIGURATION_FILE = 5;
+ public static final int UPLOAD_PICTURE_FILE = 6;
+ public static final int UPLOAD_VIOLATION_FILE = 7;
+ public static final int UPLOAD_TG_FILE = 8;
+ public static final int UPLOAD_DATA_TO_DB = 9;
+ public static final int UPLOAD_BACKGROUND_PIC = 10;
+ public static final int UPLOAD_CALIBRATION_FILE = 11;
+ public static final int UPLOAD_TME_FILE = 12;
+ public static final int UPLOAD_VEHICLE_BLACKWHITELST_FILE = 13;
+ public static final int UPLOAD_PICTURE_TO_CLOUD = 15;
+ public static final int UPLOAD_VIDEO_FILE = 16;
+ public static final int UPLOAD_SCREEN_FILE = 17;
+ public static final int UPLOAD_PUBLISH_MATERIAL = 18;
+ public static final int UPLOAD_PUBLISH_UPGRADE_FILE = 19;
+ public static final int UPLOAD_RING_FILE = 20;
+ public static final int UPLOAD_ENCRYPT_CERT = 21;
+ public static final int UPLOAD_THERMOMETRIC_FILE = 22;
+ public static final int UPLOAD_SUBBRAND_FILE = 23;
+ public static final int UPLOAD_LED_CHECK_FILE = 24;
+ public static final int BATCH_UPLOAD_PICTURE_FILE = 25;
+ public static final int UPLOAD_EDID_CFG_FILE = 26;
+ public static final int UPLOAD_PANORAMIC_STITCH = 27;
+ public static final int UPLOAD_BINOCULAR_COUNTING = 28;
+ public static final int UPLOAD_AUDIO_FILE = 29;
+ public static final int UPLOAD_PUBLISH_THIRD_PARTY_FILE = 30;
+ public static final int UPLOAD_DEEPEYES_BINOCULAR = 31;
+ public static final int UPLOAD_CERTIFICATE_BLACK_LIST = 32;
+ public static final int UPLOAD_HD_CAMERA_CORRECT_TABLE = 33;
+ public static final int UPLOAD_FD_DATA = 35;
+ public static final int UPLOAD_FACE_DATA = 36;
+ public static final int UPLOAD_FACE_ANALYSIS_DATA = 37;
+ public static final int UPLOAD_FILEVOLUME_DATA = 38;
+ public static final int IMPORT_DATA_TO_FACELIB = 39;
+ public static final int UPLOAD_LEFTEYE_4K_CALIBFILE = 40;
+ public static final int UPLOAD_SECURITY_CFG_FILE = 41;
+ public static final int UPLOAD_RIGHT_CONTROLLER_AUDIO = 42;
+ public static final int UPLOAD_MODBUS_CFG_FILE = 43;
+ public static final int UPLOAD_NOTICE_VIDEO_DATA = 44;
+ public static final int UPLOAD_RS485_PROTOCOL_DLL_FILE = 45;
+ public static final int UPLOAD_PIC_BY_BUF = 46;
+ public static final int UPLOAD_CLIENT_CALIBFILE = 47;
+ public static final int UPLOAD_HD_CAMERA_CORRECT_TABLE_3200W = 48;
+ public static final int UPLOAD_DOOR_CONTENT = 49;
+ public static final int UPLOAD_ASR_CONTROL_FILE = 50;
+ public static final int UPLOAD_APP_FILE = 51;
+ public static final int UPLOAD_AI_ALGORITHM_MODEL = 52;
+ public static final int UPLOAD_PUBLISH_PROGRAM_THUMBNAIL = 53;
+ public static final int UPLOAD_PUBLISH_TEMPLATE_THUMBNAIL = 54;
+ }
+
+ public class NET_SDK_DOWNLOAD_TYPE {
+ public static final int NET_SDK_DOWNLOAD_CERT = 0;
+ public static final int NET_SDK_DOWNLOAD_IPC_CFG_FILE = 1;
+ public static final int NET_SDK_DOWNLOAD_BASELINE_SCENE_PIC = 2;
+ public static final int NET_SDK_DOWNLOAD_VQD_ALARM_PIC = 3;
+ public static final int NET_SDK_DOWNLOAD_CONFIGURATION_FILE = 4;
+ public static final int NET_SDK_DOWNLOAD_SCENE_CONFIGURATION_FILE = 5;
+ public static final int NET_SDK_DOWNLOAD_FILE_FORM_DB = 6;
+ public static final int NET_SDK_DOWNLOAD_TME_FILE = 7;
+ public static final int NET_SDK_DOWNLOAD_VEHICLE_BLACKWHITELST_FILE = 8;
+ public static final int NET_SDK_DOWNLOAD_GUID_FILE = 9;
+ public static final int NET_SDK_DOWNLOAD_FILE_FORM_CLOUD = 10;
+ public static final int NET_SDK_DOWNLOAD_PICTURE = 11;
+ public static final int NET_SDK_DOWNLOAD_VIDEO = 12;
+ public static final int NET_DVR_DOWNLOAD_SCREEN_FILE = 13;
+ public static final int NET_SDK_DOWNLOAD_PUBLISH_MATERIAL = 14;
+ public static final int NET_SDK_DOWNLOAD_THERMOMETRIC_FILE = 15;
+ public static final int NET_SDK_DOWNLOAD_LED_CHECK_FILE = 16;
+ public static final int NET_SDK_DOWNLOAD_VEHICLE_INFORMATION = 17;
+ public static final int NET_SDK_DOWNLOAD_CERTIFICATE_BLACK_LIST_TEMPLET = 18;
+ public static final int NET_SDK_DOWNLOAD_LOG_FILE = 19;
+ public static final int NET_SDK_DOWNLOAD_FILEVOLUME_DATA = 20;
+ public static final int NET_SDK_DOWNLOAD_FD_DATA = 21;
+ public static final int NET_SDK_DOWNLOAD_SECURITY_CFG_FILE = 22;
+ public static final int NET_SDK_DOWNLOAD_PUBLISH_SCHEDULE = 23;
+ public static final int NET_SDK_DOWNLOAD_RIGHT_CONTROLLER_AUDIO = 24;
+ public static final int NET_SDK_DOWNLOAD_MODBUS_CFG_FILE = 25;
+ public static final int NET_SDK_DOWNLOAD_RS485_PROTOCOL_DLL_FILE = 26;
+ public static final int NET_SDK_DOWNLOAD_CLUSTER_MAINTENANCE_LOG = 27;
+ public static final int NET_SDK_DOWNLOAD_SQL_ARCHIVE_FILE = 28;
+ public static final int NET_SDK_DOWNLOAD_SUBWIND_STREAM = 29;
+ public static final int NET_SDK_DOWNLOAD_DEVTYPE_CALIBFILE = 30;
+ public static final int NET_SDK_DOWNLOAD_HD_CAMERA_CORRECT_TABLE = 31;
+ public static final int NET_SDK_DOWNLOAD_CLIENT_CALIBFILE = 32;
+ public static final int NET_SDK_DOWNLOAD_FOUE_CAMERAS_PICTURES = 33;
+ public static final int NET_SDK_DOWNLOAD_DOOR_CONTENT = 34;
+ public static final int NET_SDK_DOWNLOAD_PUBLISH_MATERIAL_THUMBNAIL = 35;
+ public static final int NET_SDK_DOWNLOAD_PUBLISH_PROGRAM_THUMBNAIL = 36;
+ public static final int NET_SDK_DOWNLOAD_PUBLISH_TEMPLATE_THUMBNAIL = 37;
+ }
+
+ public static class NET_DVR_SEND_PARAM_IN extends Structure
+ {
+ public Pointer pSendData;
+ public int dwSendDataLen;
+ public NET_DVR_TIME_V30 struTime;
+ public byte byPicType;
+ public byte[] byRes1 = new byte[3];
+ public int dwPicManageNo;
+ public byte[] sPicName = new byte[NAME_LEN];
+ public int dwPicDisplayTime;
+ public Pointer pSendAppendData;
+ public int dwSendAppendDataLen;
+ public byte[] byRes = new byte[192];
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("pSendData", "dwSendDataLen", "struTime", "byPicType", "byRes1", "dwPicManageNo",
+ "sPicName","dwPicDisplayTime", "pSendAppendData", "dwSendAppendDataLen", "byRes");
+ }
+ }
+
+ public static class NET_DVR_UPLOAD_FACE_DATA_OUT extends Structure
+ {
+ public byte[] szPicID = new byte[NET_SDK_MAX_PICID_LEN];
+ public byte[] byRes = new byte[128];
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("szPicID", "byRes");
+ }
+ }
+
+ public static class NET_DVR_UPLOAD_FILE_RET extends Structure
+ {
+ public byte[] sUrl = new byte[MAX_UPLOADFILE_URL_LEN];
+ public byte[] byRes = new byte[260];
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("sUrl", "byRes");
+ }
+ }
+
+ public static class NET_DVR_EZVIZ_ACCESS_CFG extends Structure
+ {
+ public int dwSize;
+ public byte byEnable;
+ public byte byDeviceStatus;
+ public byte byAllowRedirect;
+ public byte[] byDomainName = new byte[MAX_DOMAIN_NAME];
+ public byte byRes1;
+ public byte[] byVerificationCode = new byte[NET_SDK_MAX_VERIFICATION_CODE_LEN];
+ public byte byNetMode;
+ public byte[] byRes = new byte[411];
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "byEnable", "byDeviceStatus", "byAllowRedirect", "byDomainName", "byRes1",
+ "byVerificationCode","byNetMode", "byRes");
+ }
+ }
+
+
+ public static class NET_DVR_SUBSYSTEM_BASIC_INFO_RESPONSE extends Structure
+ {
+ public int dwSize;
+ public int dwErrorCode;
+ public byte byDevNo;
+ public byte bySubSystemNo ;
+ public byte [] byRes = new byte[30];
+
+ public NET_DVR_SUBSYSTEM_BASIC_INFO_RESPONSE(Pointer p){
+ super(p);
+ }
+
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "dwErrorCode", "byDevNo", "bySubSystemNo", "byRes");
+ }
+ }
+
+
+ public static class NET_DVR_AUDIO_INFO extends Structure
+ {
+ public int dwSize;
+ public byte byAudioChanType;
+ public byte [] byRes1 = new byte[3];
+ public int dwAudioNo;
+ public byte []byRes2= new byte[16];
+
+ public NET_DVR_AUDIO_INFO(Pointer p){
+ super(p);
+ }
+
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "byAudioChanType", "byRes1", "dwAudioNo", "byRes2");
+ }
+ }
+
+ public static class NET_DVR_DISPLAYPARAM extends Structure
+ {
+ public int dwDisplayNo;
+ public byte byDispChanType;
+ public byte byRes[] = new byte[11];
+
+ public NET_DVR_DISPLAYPARAM(Pointer p){
+ super(p);
+ }
+
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwDisplayNo", "byDispChanType", "byRes");
+ }
+ }
+
+
+
+ public static class NET_DVR_DISPLAYCFG extends Structure
+ {
+ public int dwSize ;
+ public NET_DVR_DISPLAYPARAM []struDisplayParam = new NET_DVR_DISPLAYPARAM[MAX_DISPLAY_NUM] ;
+ public byte []byRes = new byte[128];
+
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "struDisplayParam", "byRes");
+ }
+ }
+
+
+ public static class NET_DVR_VIDEOWALLDISPLAYPOSITION extends Structure
+ {
+ public int dwSize ;
+ public byte byEnable ;
+ public byte []byRes1 = new byte[3] ;
+ public int dwVideoWallNo ;
+ public int dwDisplayNo;
+ public NET_DVR_RECTCFG_EX struRectCfg = new NET_DVR_RECTCFG_EX();
+ public byte []byRes2 = new byte[64];
+
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "byEnable", "byRes1","dwVideoWallNo", "dwDisplayNo", "struRectCfg", "byRes2");
+ }
+ }
+
+ public static class NET_DVR_MATRIX_DECCHAN_CONTROL extends Structure
+ {
+ public int dwSize;
+ public byte byDecChanScaleStatus;
+ public byte byDecodeDelay;
+ public byte byEnableSpartan;
+ public byte byLowLight;
+ public byte byNoiseReduction;
+ public byte byDefog;
+ public byte byEnableVcaDec;
+ public byte byEnableAudio;
+ public int dwAllCtrlType;
+ public byte []byRes = new byte[56];
+
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "byDecChanScaleStatus", "byDecodeDelay","byEnableSpartan", "byLowLight", "byNoiseReduction", "byDefog",
+ "byEnableVcaDec", "byEnableAudio", "dwAllCtrlType", "byRes");
+ }
+ }
+
+ public static class NET_DVR_CURTRIGGERMODE extends Structure{
+ public int dwSize;
+ public int dwTriggerType;
+ public byte[] byRes = new byte[24];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "dwTriggerType", "byRes");
+ }
+ }
+
+ public static class NET_ITC_RS485_ACCESS_INFO_COND extends Structure{
+ public int dwSize;
+ public int dwChannel;
+ public int dwTriggerModeType;
+ public byte byAssociateRS485No;
+ public byte[] byRes = new byte[15];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "dwChannel", "dwTriggerModeType", "byAssociateRS485No", "byRes");
+ }
+ }
+
+ public static class NET_ITC_RADAR_PARAM extends Structure{
+ public byte byRadarType;
+ public byte byLevelAngle;
+ public short wRadarSensitivity;
+ public short wRadarSpeedValidTime;
+ public byte[] byRes1 = new byte[2];
+ public float fLineCorrectParam;
+ public int iConstCorrectParam;
+ public byte[] byRes2 = new byte[8];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byRadarType", "byLevelAngle", "wRadarSensitivity", "wRadarSpeedValidTime", "byRes1", "fLineCorrectParam", "iConstCorrectParam", "byRes2");
+ }
+ }
+
+ public static class NET_ITC_RADAR_INFO_PARAM extends Structure{
+ public NET_ITC_RADAR_PARAM struRadarParam = new NET_ITC_RADAR_PARAM();
+ public byte byAssociateLaneNo;
+ public byte[] byRes = new byte[103];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struRadarParam", "byAssociateLaneNo", "byRes");
+ }
+ }
+
+ public static class NET_ITC_ACCESS_DEVINFO_PARAM_UNION extends Union
+ {
+ public byte[] uLen = new byte[128];
+ public NET_ITC_RADAR_INFO_PARAM struRadarInfoParam = new NET_ITC_RADAR_INFO_PARAM();
+ }
+
+ public static class NET_ITC_RS485_ACCESS_CFG extends Structure{
+ public int dwSize;
+ public byte byModeType;
+ public byte[] byRes = new byte[3];
+ public NET_ITC_ACCESS_DEVINFO_PARAM_UNION uITCAccessDevinfoParam = new NET_ITC_ACCESS_DEVINFO_PARAM_UNION();
+ public byte[] byRes1 = new byte[12];
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "byModeType", "byRes", "uITCAccessDevinfoParam", "byRes1");
+ }
+ }
+
+ public static class NET_ITC_PLATE_RECOG_PARAM extends Structure{
+ public byte[] byDefaultCHN = new byte[MAX_CHJC_NUM];
+ public byte byEnable;
+ public int dwRecogMode;
+ public byte byVehicleLogoRecog;
+ public byte byProvince;
+ public byte byRegion;
+ public byte byRes1;
+ public short wPlatePixelWidthMin;
+ public short wPlatePixelWidthMax;
+ public byte[] byRes = new byte[24];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byDefaultCHN", "byEnable", "dwRecogMode", "byVehicleLogoRecog", "byProvince", "byRegion", "byRes1", "wPlatePixelWidthMin", "wPlatePixelWidthMax", "byRes");
+ }
+ }
+
+ public static class NET_ITC_INTERVAL_PARAM extends Structure{
+ public byte byIntervalType;
+ public byte[] byRes1 = new byte[3];
+ public short[] wInterval = new short[MAX_INTERVAL_NUM];
+ public byte[] byRes = new byte[8];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byIntervalType", "byRes1", "wInterval", "byRes");
+ }
+ }
+
+ public static class NET_ITC_POLYGON extends Structure{
+ public int dwPointNum;
+ public NET_VCA_POINT[] struPos = (NET_VCA_POINT[])new NET_VCA_POINT().toArray(ITC_MAX_POLYGON_POINT_NUM);
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwPointNum", "struPos");
+ }
+ }
+
+ public static class unionRegion extends Union{
+ public NET_VCA_RECT struRect = new NET_VCA_RECT();
+ public NET_ITC_POLYGON struPolygon = new NET_ITC_POLYGON();
+ }
+
+ public static class NET_ITC_PLATE_RECOG_REGION_PARAM extends Structure{
+ public byte byMode;
+ public byte[] byRes1 = new byte[3];
+ public unionRegion uRegion = new unionRegion();
+ public byte[] byRes = new byte[16];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byMode", "byRes1", "uRegion", "byRes");
+ }
+ }
+
+ public static class NET_ITC_LANE_PARAM extends Structure{
+ public byte byEnable;
+ public byte byRelatedDriveWay;
+ public short wDistance;
+ public short wTrigDelayTime;
+ public byte byTrigDelayDistance;
+ public byte bySpeedCapEn;
+ public byte bySignSpeed;
+ public byte bySpeedLimit;
+ public byte bySnapTimes;
+ public byte byOverlayDriveWay;
+ public NET_ITC_INTERVAL_PARAM struInterval = new NET_ITC_INTERVAL_PARAM();
+ public byte[] byRelatedIOOut = new byte[MAX_IOOUT_NUM];
+ public byte byFlashMode;
+ public byte byCartSignSpeed;
+ public byte byCartSpeedLimit;
+ public byte byRelatedIOOutEx;
+ public NET_ITC_PLATE_RECOG_REGION_PARAM[] struPlateRecog = (NET_ITC_PLATE_RECOG_REGION_PARAM[])new NET_ITC_PLATE_RECOG_REGION_PARAM().toArray(MAX_LANEAREA_NUM);
+ public byte byLaneType;
+ public byte byUseageType;
+ public byte byRelaLaneDirectionType;
+ public byte byLowSpeedLimit;
+ public byte byBigCarLowSpeedLimit;
+ public byte byLowSpeedCapEn;
+ public byte byEmergencyCapEn;
+ public byte[] byRes = new byte[9];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byEnable", "byRelatedDriveWay", "wDistance", "wTrigDelayTime", "byTrigDelayDistance", "bySpeedCapEn", "bySignSpeed", "bySpeedLimit", "bySnapTimes", "byOverlayDriveWay", "struInterval", "byRelatedIOOut", "byFlashMode", "byCartSignSpeed", "byCartSpeedLimit", "byRelatedIOOutEx", "struPlateRecog", "byLaneType", "byUseageType", "byRelaLaneDirectionType", "byLowSpeedLimit", "byBigCarLowSpeedLimit", "byLowSpeedCapEn", "byEmergencyCapEn", "byRes");
+ }
+ }
+
+ public static class NET_ITC_POST_RS485_RADAR_PARAM extends Structure{
+ public byte byRelatedLaneNum;
+ public byte[] byRes1 = new byte[3];
+ public NET_ITC_PLATE_RECOG_PARAM struPlateRecog = new NET_ITC_PLATE_RECOG_PARAM();
+ public NET_ITC_LANE_PARAM[] struLane = (NET_ITC_LANE_PARAM[])new NET_ITC_LANE_PARAM().toArray(MAX_ITC_LANE_NUM);
+ public NET_ITC_RADAR_PARAM struRadar = new NET_ITC_RADAR_PARAM();
+ public byte[] byRes = new byte[32];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byRelatedLaneNum", "byRes1", "struPlateRecog", "struLane", "struRadar", "byRes");
+ }
+ }
+
+ public static class NET_ITC_TRIGGER_PARAM_UNION extends Union{
+ public int[] uLen = new int[1070];
+ public NET_ITC_POST_RS485_RADAR_PARAM struPostRadar = new NET_ITC_POST_RS485_RADAR_PARAM();
+ }
+
+ public static class NET_ITC_SINGLE_TRIGGERCFG extends Structure{
+ public byte byEnable;
+ public byte[] byRes1 = new byte[3];
+ public int dwTriggerType;
+ public NET_ITC_TRIGGER_PARAM_UNION uTriggerParam = new NET_ITC_TRIGGER_PARAM_UNION();
+ public byte[] byRes = new byte[64];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byEnable", "byRes1", "dwTriggerType", "uTriggerParam", "byRes");
+ }
+ }
+
+ public static class NET_ITC_TRIGGERCFG extends Structure{
+ public int dwSize;
+ public NET_ITC_SINGLE_TRIGGERCFG struTriggerParam = new NET_ITC_SINGLE_TRIGGERCFG();
+ public byte[] byRes = new byte[32];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "struTriggerParam", "byRes");
+ }
+ }
+
+ public static class NET_DVR_SHOWSTRINGINFO extends Structure{
+ public short wShowString;
+ public short wStringSize;
+ public short wShowStringTopLeftX;
+ public short wShowStringTopLeftY;
+ public byte[] sString = new byte[44];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("wShowString", "wStringSize", "wShowStringTopLeftX", "wShowStringTopLeftY", "sString");
+ }
+ }
+
+ public static class NET_DVR_SHOWSTRING_V30 extends Structure{
+ public int dwSize;
+ public NET_DVR_SHOWSTRINGINFO[] struStringInfo = (NET_DVR_SHOWSTRINGINFO[])new NET_DVR_SHOWSTRINGINFO().toArray(MAX_STRINGNUM_V30);
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "struStringInfo");
+ }
+ }
+
+ public static class NET_DVR_HANDLEEXCEPTION_V41 extends Structure{
+ public int dwHandleType;
+ public byte[] byRes = new byte[16580];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwHandleType", "byRes");
+ }
+ }
+
+ public static class NET_DVR_EVENT_TRIGGER extends Structure{
+ public int dwSize;
+ public NET_DVR_HANDLEEXCEPTION_V41 struHandleException = new NET_DVR_HANDLEEXCEPTION_V41();
+ public byte[] byRes = new byte[14592];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "struHandleException", "byRes");
+ }
+ }
+
+ public static class NET_DVR_SCHEDTIME extends Structure{
+ public byte byStartHour;
+ public byte byStartMin;
+ public byte byStopHour;
+ public byte byStopMin;
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byStartHour", "byStartMin", "byStopHour", "byStopMin");
+ }
+ }
+
+ public static class NET_DVR_SCHEDTIME_DAYS extends Structure{
+ public NET_DVR_SCHEDTIME[] struSchedTimeDays = (NET_DVR_SCHEDTIME[])new NET_DVR_SCHEDTIME().toArray(MAX_DAYS);
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struSchedTimeDays");
+ }
+ }
+
+ public static class NET_DVR_EVENT_SCHEDULE extends Structure{
+ public int dwSize;
+ public NET_DVR_SCHEDTIME_DAYS[] struAlarmTime = (NET_DVR_SCHEDTIME_DAYS[])new NET_DVR_SCHEDTIME_DAYS().toArray(MAX_TIMESEGMENT_V30);
+ public byte[] byRes = new byte[160];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "struHandleException", "byRes");
+ }
+ }
+
+ public static class NET_DVR_FIND_PICTURE_PARAM extends Structure{
+ public int dwSize;
+ public int lChannel;
+ public byte byFileType;
+ public byte byNeedCard;
+ public byte byProvince;
+ public byte byRes1;
+ public byte[] sCardNum = new byte[CARDNUM_LEN_V30];
+ public NET_DVR_TIME struStartTime = new NET_DVR_TIME();
+ public NET_DVR_TIME struStopTime = new NET_DVR_TIME();
+ public int dwTrafficType;
+ public int dwVehicleType;
+ public int dwIllegalType;
+ public byte byLaneNo;
+ public byte bySubHvtType;
+ public byte[] byRes2 = new byte[2];
+ public byte[] sLicense = new byte[MAX_LICENSE_LEN];
+ public byte byRegion;
+ public byte byCountry;
+ public byte[] byRes3 = new byte[6];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "lChannel", "byFileType", "byNeedCard", "byProvince", "byRes1", "sCardNum", "struStartTime", "struStopTime", "dwTrafficType", "dwVehicleType", "dwIllegalType", "byLaneNo", "bySubHvtType", "byRes2", "sLicense", "byRegion", "byCountry", "byRes3");
+ }
+ }
+
+ public static class NET_DVR_FACE_EXTRA_INFO extends Structure{
+ public NET_VCA_RECT[] struVcaRect = (NET_VCA_RECT[])new NET_VCA_RECT().toArray(MAX_FACE_PIC_NUM);
+ public byte[] byRes = new byte[64];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struVcaRect", "byRes");
+ }
+ }
+
+ public static class NET_DVR_PIC_EXTRA_INFO_UNION extends Union{
+ public byte[] byUnionLen = new byte[544];
+ public NET_DVR_FACE_EXTRA_INFO struFaceExtraInfo = new NET_DVR_FACE_EXTRA_INFO();
+ }
+
+ public static class NET_DVR_FIND_PICTURE_V40 extends Structure{
+ public byte[] sFileName = new byte[PICTURE_NAME_LEN];
+ public NET_DVR_TIME struTime = new NET_DVR_TIME();
+ public int dwFileSize;
+ public byte[] sCardNum = new byte[CARDNUM_LEN_V30];
+ public byte byPlateColor;
+ public byte byVehicleLogo;
+ public byte byFileType;
+ public byte byRecogResult ;
+ public byte[] sLicense = new byte[MAX_LICENSE_LEN];
+ public byte byEventSearchStatus;
+ public byte[] byRes = new byte[75];
+ public NET_DVR_PIC_EXTRA_INFO_UNION uPicExtraInfo = new NET_DVR_PIC_EXTRA_INFO_UNION();
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("sFileName", "struTime", "dwFileSize", "sCardNum","byPlateColor", "byVehicleLogo","byFileType", "byRecogResult", "sLicense", "byEventSearchStatus", "byRes", "uPicExtraInfo");
+ }
+ }
+
+ public static class NET_DVR_DEVICE_RUN_STATUS extends Structure{
+ public int dwSize;
+ public int dwMemoryTotal;
+ public int dwMemoryUsage;
+ public byte byCPUUsage;
+ public byte byMainFrameTemp;
+ public byte byBackPanelTemp;
+ public byte byRes1;
+ public byte[] byLeftDecResource = new byte[32];
+ public float fNetworkFlow;
+ public byte[] byRes2 = new byte[88];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "dwMemoryTotal", "dwMemoryUsage", "byCPUUsage","byMainFrameTemp",
+ "byBackPanelTemp","byRes1", "byLeftDecResource", "fNetworkFlow", "byRes2");
+ }
+ }
+
+ public static class NET_DVR_LOCAL_TCP_PORT_BIND_CFG extends Structure{
+ public short wLocalBindTcpMinPort;
+ public short wLocalBindTcpMaxPort;
+ public byte[] byRes = new byte[60];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("wLocalBindTcpMinPort", "wLocalBindTcpMaxPort", "byRes");
+ }
+ }
+
+ public static class NET_DVR_LOCAL_UDP_PORT_BIND_CFG extends Structure{
+ public short wLocalBindUdpMinPort;
+ public short wLocalBindUdpMaxPort;
+ public byte[] byRes = new byte[60];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("wLocalBindUdpMinPort", "wLocalBindUdpMaxPort", "byRes");
+ }
+ }
+
+ public static class NET_DVR_LOCAL_MEM_POOL_CFG extends Structure{
+ public int dwAlarmMaxBlockNum;
+ public int dwAlarmReleaseInterval;
+ public int dwObjectReleaseInterval;
+ public byte[] byRes = new byte[508];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwAlarmMaxBlockNum", "dwAlarmReleaseInterval", "dwObjectReleaseInterval", "byRes");
+ }
+ }
+
+ public static class NET_DVR_LOCAL_MODULE_RECV_TIMEOUT_CFG extends Structure{
+ public int dwPreviewTime;
+ public int dwAlarmTime;
+ public int dwVodTime;
+ public int dwElse;
+ public byte[] byRes = new byte[512];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwPreviewTime", "dwAlarmTime", "dwVodTime", "dwElse", "byRes");
+ }
+ }
+
+ public static class NET_DVR_LOCAL_ABILITY_PARSE_CFG extends Structure{
+ public byte byEnableAbilityParse;
+ public byte[] byRes = new byte[127];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byEnableAbilityParse", "byRes");
+ }
+ }
+
+ public static class NET_DVR_LOCAL_TALK_MODE_CFG extends Structure{
+ public byte byTalkMode;
+ public byte[] byRes = new byte[127];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byTalkMode", "byRes");
+ }
+ }
+
+ public static class NET_DVR_LOCAL_PROTECT_KEY_CFG extends Structure{
+ public byte[] byProtectKey = new byte[128];
+ public byte[] byRes = new byte[128];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byProtectKey", "byRes");
+ }
+ }
+
+ public static class NET_DVR_LOCAL_CFG_VERSION extends Structure{
+ public byte byVersion;
+ public byte[] byRes = new byte[63];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byVersion", "byRes");
+ }
+ }
+
+ public static class NET_DVR_RTSP_PARAMS_CFG extends Structure{
+ public int dwMaxBuffRoomNum;
+ public byte byUseSort;
+ public byte[] byRes = new byte[123];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwMaxBuffRoomNum", "byUseSort", "byRes");
+ }
+ }
+
+ public static class NET_DVR_SIMXML_LOGIN extends Structure{
+ public byte byLoginWithSimXml;
+ public byte[] byRes = new byte[127];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byLoginWithSimXml", "byRes");
+ }
+ }
+
+ public static class NET_DVR_LOCAL_CHECK_DEV extends Structure{
+ public int dwCheckOnlineTimeout;
+ public int dwCheckOnlineNetFailMax;
+ public byte[] byRes = new byte[256];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwCheckOnlineTimeout", "dwCheckOnlineNetFailMax", "byRes");
+ }
+ }
+
+ public static class NET_DVR_LOCAL_SECURITY extends Structure{
+ public byte bySecurityLevel;
+ public byte[] byRes = new byte[255];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("bySecurityLevel", "byRes");
+ }
+ }
+
+ public interface CHAR_ENCODE_CONVERT extends Callback {
+ public void invoke(Pointer pInput, int dwInputLen,
+ int dwInEncodeType, String pOutput, int dwOutputLen, int dwOutEncodeType);
+ }
+
+ public static class NET_DVR_LOCAL_BYTE_ENCODE_CONVERT extends Structure{
+ public CHAR_ENCODE_CONVERT fnCharConvertCallBack;
+ public byte[] byRes = new byte[256];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("fnCharConvertCallBack", "byRes");
+ }
+ }
+
+ public static class NET_DVR_SOCKS_PROXY_PARA extends Structure{
+ public byte[] byIP = new byte[129];
+ public byte byAuthType;
+ public short wPort;
+ public byte[] byRes2 = new byte[64];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byIP", "byAuthType", "wPort", "byRes2");
+ }
+ }
+
+ public static class NET_DVR_SOCKS_PROXYS extends Structure{
+ public NET_DVR_SOCKS_PROXY_PARA[] struProxy = new NET_DVR_SOCKS_PROXY_PARA[32];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struProxy");
+ }
+ }
+
+ public static class NET_DVR_LOCAL_LOG_CFG extends Structure{
+ public short wSDKLogNum;
+ public byte[] byRes = new byte[254];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("wSDKLogNum", "byRes");
+ }
+ }
+
+ public static class NET_DVR_LOCAL_STREAM_CALLBACK_CFG extends Structure{
+ public byte byPlayBackEndFlag;
+ public byte[] byRes = new byte[255];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byPlayBackEndFlag", "byRes");
+ }
+ }
+
+ public static class NET_DVR_LOCAL_GENERAL_CFG extends Structure{
+ public byte byExceptionCbDirectly;
+ public byte byNotSplitRecordFile;
+ public byte byResumeUpgradeEnable;
+ public byte[] byRes = new byte[5];
+ public long i64FileSize;
+ public int dwResumeUpgradeTimeout;
+ public byte[] byRes1 = new byte[236];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byExceptionCbDirectly", "byNotSplitRecordFile", "byResumeUpgradeEnable", "byRes", "i64FileSize", "dwResumeUpgradeTimeout", "byRes1");
+ }
+ }
+
+ public static class NET_DVR_LOCAL_PTZ_CFG extends Structure{
+ public byte byWithoutRecv;
+ public byte[] byRes = new byte[63];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byWithoutRecv", "byRes");
+ }
+ }
+
+
+ public static class NET_DVR_PTZPOS extends Structure
+ {
+ public short wAction;
+ public short wPanPos;
+ public short wTiltPos;
+ public short wZoomPos;
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("wAction", "wPanPos", "wTiltPos", "wZoomPos");
+ }
+ }
+
+ public static class NET_DVR_SCENE_INFO extends Structure {
+ public int dwSceneID;
+ public byte[] bySceneName = new byte[NAME_LEN];
+ public byte byDirection;
+ public byte[] byRes1 = new byte[3];
+ public NET_DVR_PTZPOS struPtzPos = new NET_DVR_PTZPOS();
+ public byte[] byRes2 = new byte[64] ;
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSceneID", "bySceneName", "byDirection", "byRes1",
+ "struPtzPos", "byRes2");
+ }
+ }
+
+ public static class NET_DVR_DIRECTION extends Structure {
+
+ public NET_DVR_PTZPOS struStartPoint = new NET_DVR_PTZPOS();
+ public NET_DVR_PTZPOS struEndPoint = new NET_DVR_PTZPOS();
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struStartPoint", "struEndPoint");
+ }
+ }
+
+
+ public static class NET_DVR_AID_INFO extends Structure {
+ public byte byRuleID;
+ public byte[] byRes1 = new byte[3];
+ public byte[] byRuleName = new byte[NAME_LEN];
+ public int dwAIDType;
+ public NET_DVR_DIRECTION struDirect = new NET_DVR_DIRECTION();
+ public byte bySpeedLimit;
+ public byte byCurrentSpeed;
+ public byte byVehicleEnterState;
+ public byte[] byRes2 = new byte[37];
+
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byRuleID", "byRes1", "byRuleName", "dwAIDType",
+ "struDirect", "bySpeedLimit", "byCurrentSpeed", "byVehicleEnterState", "byRes2");
+ }
+ }
+
+ public static class NET_DVR_TFS_ALARM extends Structure {
+ public int dwSize;
+ public int dwRelativeTime;
+ public int dwAbsTime;
+ public int dwIllegalType;
+ public int dwIllegalDuration;
+ public byte[] byMonitoringSiteID = new byte[MONITORSITE_ID_LEN];
+ public byte[] byDeviceID = new byte[DEVICE_ID_LEN];
+ public NET_VCA_DEV_INFO struDevInfo = new NET_VCA_DEV_INFO();
+ public NET_DVR_SCENE_INFO struSceneInfo = new NET_DVR_SCENE_INFO();
+ public NET_DVR_TIME_EX struBeginRecTime = new NET_DVR_TIME_EX();
+ public NET_DVR_TIME_EX struEndRecTime = new NET_DVR_TIME_EX();
+ public NET_DVR_AID_INFO struAIDInfo = new NET_DVR_AID_INFO();
+ public NET_DVR_PLATE_INFO struPlateInfo = new NET_DVR_PLATE_INFO();
+ public NET_DVR_VEHICLE_INFO struVehicleInfo = new NET_DVR_VEHICLE_INFO();
+ public int dwPicNum;
+ public NET_ITS_PICTURE_INFO[] struPicInfo = (NET_ITS_PICTURE_INFO[])new NET_ITS_PICTURE_INFO().toArray(8);
+ public byte bySpecificVehicleType;
+ public byte byLaneNo;
+ public byte[] byRes1 = new byte[2];
+ public NET_DVR_TIME_V30 struTime = new NET_DVR_TIME_V30();
+ public int dwSerialNo;
+ public byte byVehicleAttribute;
+ public byte byPilotSafebelt;
+ public byte byCopilotSafebelt;
+ public byte byPilotSunVisor;
+ public byte byCopilotSunVisor;
+ public byte byPilotCall;
+ public byte[] byRes2 = new byte[2];
+ public byte[] byIllegalCode = new byte[MONITORSITE_ID_LEN];
+ public byte[] byRes = new byte[68];
+ public NET_DVR_TFS_ALARM(Pointer p){
+ super(p);
+ }
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "dwRelativeTime", "dwAbsTime", "dwIllegalType",
+ "dwIllegalDuration", "byMonitoringSiteID", "byDeviceID", "struDevInfo", "struSceneInfo",
+ "struBeginRecTime", "struEndRecTime", "struAIDInfo", "struPlateInfo",
+ "struVehicleInfo", "dwPicNum", "struPicInfo", "bySpecificVehicleType",
+ "byLaneNo", "byRes1", "struTime", "dwSerialNo",
+ "byVehicleAttribute", "byPilotSafebelt", "byCopilotSafebelt", "byPilotSunVisor",
+ "byCopilotSunVisor", "byPilotCall", "byRes2", "byIllegalCode",
+ "byRes");
+ }
+ }
+
+ public static class NET_DVR_PICCFG_V40 extends Structure
+ {
+ public int dwSize;
+ public byte[] sChanName = new byte[NAME_LEN];
+ public int dwVideoFormat;
+ public NET_DVR_VICOLOR struViColor;
+ public int dwShowChanName;
+ public short wShowNameTopLeftX;
+ public short wShowNameTopLeftY;
+ public int dwEnableHide;
+ public NET_DVR_SHELTER[] struShelter = new NET_DVR_SHELTER[MAX_SHELTERNUM];
+ public int dwShowOsd;
+ public short wOSDTopLeftX;
+ public short wOSDTopLeftY;
+ public byte byOSDType;
+ public byte byDispWeek;
+ public byte byOSDAttrib;
+ public byte byHourOSDType;
+ public byte byFontSize;
+ public byte byOSDColorType;
+ public byte byAlignment;
+ public byte byOSDMilliSecondEnable;
+ public NET_DVR_VILOST_V40 struVILost;
+ public NET_DVR_VILOST_V40 struAULost;
+ public NET_DVR_MOTION_V40 struMotion;
+ public NET_DVR_HIDEALARM_V40 struHideAlarm;
+ public NET_DVR_RGB_COLOR struOsdColor;
+ public int dwBoundary;
+ public NET_DVR_RGB_COLOR struOsdBkColor;
+ public byte byOSDBkColorMode;
+ public byte[] byRes = new byte[115];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwSize", "sChanName", "dwVideoFormat", "struViColor", "dwShowChanName",
+ "wShowNameTopLeftX", "wShowNameTopLeftY", "dwEnableHide", "struShelter",
+ "dwShowOsd", "wOSDTopLeftX", "wOSDTopLeftY", "byOSDType", "byDispWeek",
+ "byOSDAttrib", "byHourOSDType", "byFontSize", "byOSDColorType", "byAlignment",
+ "byOSDMilliSecondEnable", "struVILost", "struAULost", "struMotion", "struHideAlarm",
+ "struOsdColor", "dwBoundary", "struOsdBkColor", "byOSDBkColorMode", "byRes");
+ }
+ }
+
+ public static class NET_DVR_VICOLOR extends Structure
+ {
+ public NET_DVR_COLOR[] struShelter = new NET_DVR_COLOR[MAX_TIMESEGMENT_V30];
+ public NET_DVR_SCHEDTIME[] struHandleTime = new NET_DVR_SCHEDTIME[MAX_TIMESEGMENT_V30];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struShelter", "struHandleTime");
+ }
+ }
+
+ public static class NET_DVR_COLOR extends Structure
+ {
+ public byte byBrightness;
+ public byte byContrast;
+ public byte bySaturation;
+ public byte byHue;
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byBrightness", "byContrast", "bySaturation", "byHue");
+ }
+ }
+
+ public static class NET_DVR_SHELTER extends Structure
+ {
+ public short wHideAreaTopLeftX;
+ public short wHideAreaTopLeftY;
+ public short wHideAreaWidth;
+ public short wHideAreaHeight;
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("wHideAreaTopLeftX", "wHideAreaTopLeftY", "wHideAreaWidth", "wHideAreaHeight");
+ }
+ }
+
+ public static class NET_DVR_VILOST_V40 extends Structure
+ {
+ public int dwEnableVILostAlarm;
+ public int dwHandleType;
+ public int dwMaxRelAlarmOutChanNum;
+ public int[] dwRelAlarmOut = new int[MAX_ALARMOUT_V40];
+ public NET_DVR_SCHEDTIMEWEEK[] struAlarmTime = new NET_DVR_SCHEDTIMEWEEK[MAX_DAYS];
+ public byte byVILostAlarmThreshold;
+ public byte[] byRes = new byte[63];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwEnableVILostAlarm", "dwHandleType", "dwMaxRelAlarmOutChanNum",
+ "dwRelAlarmOut", "struAlarmTime", "byVILostAlarmThreshold", "byRes");
+ }
+ }
+
+ public static class NET_DVR_SCHEDTIMEWEEK extends Structure
+ {
+ public NET_DVR_SCHEDTIME[] struAlarmTime = new NET_DVR_SCHEDTIME[MAX_TIMESEGMENT_V30];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struAlarmTime");
+ }
+ }
+
+ public static class NET_DVR_MOTION_V40 extends Structure
+ {
+ public NET_DVR_MOTION_MODE_PARAM struMotionMode;
+ public byte byEnableHandleMotion;
+ public byte byEnableDisplay;
+ public byte byConfigurationMode;
+ public byte byKeyingEnable;
+ public int dwHandleType;
+ public int dwMaxRelAlarmOutChanNum;
+ public int[] dwRelAlarmOut = new int[MAX_ALARMOUT_V40];
+ public NET_DVR_SCHEDTIMEWEEK[] struAlarmTime = new NET_DVR_SCHEDTIMEWEEK[MAX_DAYS];
+ public int dwMaxRecordChanNum;
+ public int[] dwRelRecordChan = new int[MAX_CHANNUM_V40];
+ public byte byDiscardFalseAlarm;
+ public byte[] byRes = new byte[127];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struMotionMode", "byEnableHandleMotion", "byEnableDisplay", "byConfigurationMode",
+ "byKeyingEnable", "dwHandleType", "dwMaxRelAlarmOutChanNum", "dwRelAlarmOut",
+ "struAlarmTime", "dwMaxRecordChanNum", "dwRelRecordChan", "byDiscardFalseAlarm", "byRes");
+ }
+ }
+
+ public static class NET_DVR_MOTION_MODE_PARAM extends Structure
+ {
+ public NET_DVR_MOTION_SINGLE_AREA struMotionSingleArea;
+ public NET_DVR_MOTION_MULTI_AREA struMotionMultiArea;
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struMotionSingleArea", "struMotionMultiArea");
+ }
+ }
+
+ public static class NET_DVR_MOTION_SINGLE_AREA extends Structure
+ {
+ public NET_DVR_MOTIONSCOPE[] byMotionScope = new NET_DVR_MOTIONSCOPE[64];
+ public byte byMotionSensitive;
+ public byte[] byRes = new byte[3];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byMotionScope", "byMotionSensitive", "byRes");
+ }
+ }
+
+ public static class NET_DVR_MOTIONSCOPE extends Structure
+ {
+ public byte[] byMotionScope = new byte[96];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byMotionScope");
+ }
+ }
+
+ public static class NET_DVR_MOTION_MULTI_AREA extends Structure
+ {
+ public byte byDayNightCtrl;
+ public byte byAllMotionSensitive;
+ public byte[] byRes = new byte[2];
+ public NET_DVR_SCHEDULE_DAYTIME struScheduleTime;
+ public NET_DVR_MOTION_MULTI_AREAPARAM[] struMotionMultiAreaParam = new NET_DVR_MOTION_MULTI_AREAPARAM[MAX_MULTI_AREA_NUM];
+ public byte[] byRes1 = new byte[60];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byDayNightCtrl", "byAllMotionSensitive", "byRes",
+ "struScheduleTime", "struMotionMultiAreaParam", "byRes1");
+ }
+ }
+
+ public static class NET_DVR_SCHEDULE_DAYTIME extends Structure
+ {
+ public NET_DVR_DAYTIME struStartTime;
+ public NET_DVR_DAYTIME struStopTime;
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("struStartTime", "struStopTime");
+ }
+ }
+
+ public static class NET_DVR_DAYTIME extends Structure
+ {
+ public byte byHour;
+ public byte byMinute;
+ public byte bySecond;
+ public byte byRes;
+ public short wMilliSecond;
+ public byte[] byRes1 = new byte[2];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byHour", "byMinute", "bySecond", "byRes", "wMilliSecond",
+ "byRes1");
+ }
+ }
+
+ public static class NET_DVR_MOTION_MULTI_AREAPARAM extends Structure
+ {
+ public byte byAreaNo;
+ public byte[] byRes = new byte[3];
+ public NET_VCA_RECT struRect;
+ public NET_DVR_DNMODE struDayNightDisable;
+ public NET_DVR_DNMODE struDayModeParam;
+ public NET_DVR_DNMODE struNightModeParam;
+ public byte[] byRes1 = new byte[8];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byAreaNo", "byRes", "struRect", "struDayNightDisable",
+ "struDayModeParam", "struNightModeParam", "byRes1");
+ }
+ }
+
+ public static class NET_DVR_DNMODE extends Structure
+ {
+ public byte byObjectSize;
+ public byte byMotionSensitive;
+ public byte[] byRes = new byte[6];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byObjectSize", "byMotionSensitive", "byRes");
+ }
+ }
+
+ public static class NET_DVR_HIDEALARM_V40 extends Structure
+ {
+ public int dwEnableHideAlarm;
+ public short wHideAlarmAreaTopLeftX;
+ public short wHideAlarmAreaTopLeftY;
+ public short wHideAlarmAreaWidth;
+ public short wHideAlarmAreaHeight;
+ public int dwHandleType;
+ public int dwMaxRelAlarmOutChanNum;
+ public int[] dwRelAlarmOut = new int[MAX_ALARMOUT_V40];
+ public NET_DVR_SCHEDTIMEWEEK[] struAlarmTime = new NET_DVR_SCHEDTIMEWEEK[MAX_DAYS];
+ public byte[] byRes = new byte[64];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwEnableHideAlarm", "wHideAlarmAreaTopLeftX", "wHideAlarmAreaTopLeftY", "wHideAlarmAreaWidth",
+ "wHideAlarmAreaHeight", "dwHandleType", "dwMaxRelAlarmOutChanNum", "dwRelAlarmOut",
+ "struAlarmTime", "byRes");
+ }
+ }
+
+ public static class NET_DVR_RGB_COLOR extends Structure
+ {
+ public byte byRed;
+ public byte byGreen;
+ public byte byBlue;
+ public byte byRes;
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byRed", "byGreen", "byBlue", "byRes");
+ }
+ }
+
+ public static class NET_DVR_TEMPERATURE_COLOR extends Structure
+ {
+ public byte byType;
+ public byte[] byRes1 = new byte[3];
+ public int iHighTemperature;
+ public int iLowTemperature;
+ public byte[] byRes = new byte[8];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byType", "byRes1", "iHighTemperature", "iLowTemperature", "byRes");
+ }
+ }
+
+ public static class NET_DVR_THERMOMETRY_BASICPARAM extends Structure
+ {
+ public int dwsize;
+ public byte byEnabled;
+ public byte byStreamOverlay;
+ public byte byPictureOverlay;
+ public byte byThermometryRange;
+ public byte byThermometryUnit;
+ public byte byThermometryCurve;
+ public byte byFireImageModea;
+ public byte byShowTempStripEnable;
+ public float fEmissivity;
+ public byte byDistanceUnit;
+ public byte byEnviroHumidity;
+ public byte[] byRes2 = new byte[2];
+ public NET_DVR_TEMPERATURE_COLOR struTempColor;
+ public int iEnviroTemperature;
+ public int iCorrectionVolume;
+ public byte bySpecialPointThermType;
+ public byte byReflectiveEnabled;
+ public short wDistance;
+ public float fReflectiveTemperature;
+ public float fAlert;
+ public float fAlarm;
+ public float fThermalOpticalTransmittance;
+ public float fExternalOpticsWindowCorrection;
+ public byte byDisplayMaxTemperatureEnabled;
+ public byte byDisplayMinTemperatureEnabled;
+ public byte byDisplayAverageTemperatureEnabled;
+ public byte byThermometryInfoDisplayposition;
+ public int dwAlertFilteringTime;
+ public int dwAlarmFilteringTime;
+ public byte byemissivityMode;
+ public byte bydisplayTemperatureInOpticalChannelEnabled;
+ public byte byDisplayCentreTemperatureEnabled;
+ public byte[] byRes = new byte[49];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwsize", "byEnabled", "byStreamOverlay", "byPictureOverlay", "byThermometryRange", "byThermometryUnit",
+ "byThermometryCurve", "byFireImageModea", "byShowTempStripEnable", "fEmissivity", "byDistanceUnit", "byEnviroHumidity",
+ "byRes2", "struTempColor", "iEnviroTemperature", "iCorrectionVolume", "bySpecialPointThermType", "byReflectiveEnabled",
+ "wDistance", "fReflectiveTemperature", "fAlert", "fAlarm", "fThermalOpticalTransmittance", "fExternalOpticsWindowCorrection",
+ "byDisplayMaxTemperatureEnabled","byDisplayMinTemperatureEnabled","byDisplayAverageTemperatureEnabled",
+ "byThermometryInfoDisplayposition","dwAlertFilteringTime","dwAlarmFilteringTime","byemissivityMode","bydisplayTemperatureInOpticalChannelEnabled",
+ "byDisplayCentreTemperatureEnabled","byRes");
+ }
+ }
+
+ public static class NET_DVR_THERMOMETRY_COND extends Structure
+ {
+ public int dwsize;
+ public int dwChannel;
+ public short wPresetNo;
+ public byte[] byRes = new byte[62];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwsize", "dwChannel", "wPresetNo", "byRes");
+ }
+ }
+
+ public static class NET_DVR_THERMOMETRY_PRESETINFO_PARAM extends Structure
+ {
+ public byte byEnabled;
+ public byte byRuleID;
+ public short wDistance;
+ public float fEmissivity;
+ public byte[] byRes = new byte[3];
+ public byte byReflectiveEnabled;
+ public float fReflectiveTemperature;
+ public byte[] szRuleName = new byte[NAME_LEN];
+ public byte[] byRes1 = new byte[63];
+ public byte byRuleCalibType;
+ public NET_VCA_POINT struPoint;
+ public NET_VCA_POLYGON struRegion;
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("byEnabled", "byRuleID", "wDistance", "fEmissivity", "byRes", "byReflectiveEnabled", "fReflectiveTemperature",
+ "szRuleName", "byRes1", "byRuleCalibType", "struPoint", "struRegion");
+ }
+ }
+
+
+ public static class NET_DVR_THERMOMETRY_PRESETINFO extends Structure
+ {
+ public int dwsize;
+ public short wPresetNo;
+ public byte[] byRes = new byte[2];
+ public NET_DVR_THERMOMETRY_PRESETINFO_PARAM[] struPresetInfo = new NET_DVR_THERMOMETRY_PRESETINFO_PARAM[MAX_THERMOMETRY_REGION_NUM];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwsize", "wPresetNo", "byRes", "struPresetInfo");
+ }
+ }
+
+
+ public static class NET_DVR_THERMAL_PIP extends Structure
+ {
+ public int dwsize;
+ public byte byEnable;
+ public byte byPipMode;
+ public byte byOverlapType;
+ public byte byTransparency;
+ public NET_VCA_POLYGON struPipRegion=new NET_VCA_POLYGON();
+ public byte[] byRes = new byte[640];
+ @Override
+ protected List getFieldOrder() {
+ // TODO Auto-generated method stub
+ return Arrays.asList("dwsize", "byEnable", "byPipMode", "byOverlapType", "byTransparency", "struPipRegion", "byRes");
+ }
+ }
+
+ public static class NET_DVR_CAMERAPARAMCFG_EX extends Structure
+ {
+ public int dwSize;
+ public NET_DVR_VIDEOEFFECT struVideoEffect=new NET_DVR_VIDEOEFFECT();
+ public NET_DVR_GAIN struGain=new NET_DVR_GAIN();
+ public NET_DVR_WHITEBALANCE struWhiteBalance=new NET_DVR_WHITEBALANCE();
+ public NET_DVR_EXPOSURE struExposure=new NET_DVR_EXPOSURE();
+ public NET_DVR_GAMMACORRECT struGammaCorrect=new NET_DVR_GAMMACORRECT();
+ public NET_DVR_WDR struWdr=new NET_DVR_WDR();
+ public NET_DVR_DAYNIGHT struDayNight=new NET_DVR_DAYNIGHT();
+ public NET_DVR_BACKLIGHT struBackLight=new NET_DVR_BACKLIGHT();
+ public NET_DVR_NOISEREMOVE struNoiseRemove=new NET_DVR_NOISEREMOVE();
+ public byte byPowerLineFrequencyMode;
+ public byte byIrisMode;
+ public byte byMirror ;
+ public byte byDigitalZoom;
+ public byte byDeadPixelDetect;
+ public byte byBlackPwl;
+ public byte byEptzGate;
+ public byte byLocalOutputGate;
+ public byte byCoderOutputMode;
+ public byte byLineCoding;
+ public byte byDimmerMode;
+ public byte byPaletteMode;
+ public byte byEnhancedMode;
+ public byte byDynamicContrastEN;
+ public byte byDynamicContrast;
+ public byte byJPEGQuality;
+ public NET_DVR_CMOSMODECFG struCmosModeCfg=new NET_DVR_CMOSMODECFG();
+ public byte byFilterSwitch;
+ public byte byFocusSpeed;
+ public byte byAutoCompensationInterval;
+ public byte bySceneMode;
+ public NET_DVR_DEFOGCFG struDefogCfg=new NET_DVR_DEFOGCFG();
+ public NET_DVR_ELECTRONICSTABILIZATION struElectronicStabilization=new NET_DVR_ELECTRONICSTABILIZATION();
+ public NET_DVR_CORRIDOR_MODE_CCD struCorridorMode=new NET_DVR_CORRIDOR_MODE_CCD();
+ public byte byExposureSegmentEnable;
+ public byte byBrightCompensate;
+ public byte byCaptureModeN;
+ public byte byCaptureModeP;
+ public NET_DVR_SMARTIR_PARAM struSmartIRParam=new NET_DVR_SMARTIR_PARAM();
+ public NET_DVR_PIRIS_PARAM struPIrisParam=new NET_DVR_PIRIS_PARAM();
+ public NET_DVR_LASER_PARAM_CFG struLaserParam=new NET_DVR_LASER_PARAM_CFG();
+ public NET_DVR_FFC_PARAM struFFCParam=new NET_DVR_FFC_PARAM();
+ public NET_DVR_DDE_PARAM struDDEParam=new NET_DVR_DDE_PARAM();
+ public NET_DVR_AGC_PARAM struAGCParam=new NET_DVR_AGC_PARAM();
+ public byte byLensDistortionCorrection;
+ public byte byDistortionCorrectionLevel;
+ public byte byCalibrationAccurateLevel;
+ public byte byZoomedInDistantViewLevel;
+ public NET_DVR_SNAP_CAMERAPARAMCFG struSnapCCD=new NET_DVR_SNAP_CAMERAPARAMCFG();
+ public NET_DVR_OPTICAL_DEHAZE struOpticalDehaze=new NET_DVR_OPTICAL_DEHAZE();
+ public NET_DVR_THERMOMETRY_AGC struThermAGC=new NET_DVR_THERMOMETRY_AGC();
+ public byte byFusionMode;
+ public byte byHorizontalFOV;
+ public byte byVerticalFOV;
+ public byte byBrightnessSuddenChangeSuppression;
+ public byte byGPSEnabled;
+ public byte[] byRes2 = new byte[155];
+
+ @Override
+ protected List getFieldOrder(){
+ return Arrays.asList("dwSize","struVideoEffect","struGain","struWhiteBalance","struExposure","struGammaCorrect","struWdr","struDayNight","struBackLight","struNoiseRemove","byPowerLineFrequencyMode","byIrisMode","byMirror","byDigitalZoom","byDeadPixelDetect","byBlackPwl","byEptzGate","byLocalOutputGate","byCoderOutputMode","byLineCoding","byDimmerMode","byPaletteMode","byEnhancedMode","byDynamicContrastEN","byDynamicContrast","byJPEGQuality","struCmosModeCfg","byFilterSwitch","byFocusSpeed","byAutoCompensationInterval","bySceneMode","struDefogCfg","struElectronicStabilization","struCorridorMode","byExposureSegmentEnable","byBrightCompensate","byCaptureModeN","byCaptureModeP","struSmartIRParam","struPIrisParam","struLaserParam","struFFCParam","struDDEParam","struAGCParam","byLensDistortionCorrection","byDistortionCorrectionLevel","byCalibrationAccurateLevel","byZoomedInDistantViewLevel","struSnapCCD","struOpticalDehaze","struThermAGC","byFusionMode","byHorizontalFOV","byVerticalFOV","byBrightnessSuddenChangeSuppression","byGPSEnabled","byRes2");
+ }
+ }
+
+ public static class NET_DVR_GAIN extends Structure
+ {
+ public byte byGainLevel;
+ public byte byGainUserSet;
+ public byte[] byRes = new byte[2];
+ public int dwMaxGainValue;
+
+ @Override
+ protected List getFieldOrder(){
+ return Arrays.asList("byGainLevel","byGainUserSet","byRes","dwMaxGainValue");
+ }
+ }
+
+ public static class NET_DVR_WHITEBALANCE extends Structure
+ {
+ public byte byWhiteBalanceMode;
+ public byte byWhiteBalanceModeRGain;
+ public byte byWhiteBalanceModeBGain;
+ public byte[] byRes = new byte[5];
+
+ @Override
+ protected List getFieldOrder(){
+ return Arrays.asList("byWhiteBalanceMode","byWhiteBalanceModeRGain","byWhiteBalanceModeBGain","byRes");
+ }
+ }
+
+ public static class NET_DVR_EXPOSURE extends Structure
+ {
+ public byte byExposureMode;
+ public byte byAutoApertureLevel;
+ public byte[] byRes = new byte[2];
+ public int dwVideoExposureSet;
+ public int dwExposureUserSet;
+ public int dwRes;
+
+ @Override
+ protected List getFieldOrder(){
+ return Arrays.asList("byExposureMode","byAutoApertureLevel","byRes","dwVideoExposureSet","dwExposureUserSet","dwRes");
+ }
+ }
+
+ public static class NET_DVR_GAMMACORRECT extends Structure
+ {
+ public byte byGammaCorrectionEnabled;
+ public byte byGammaCorrectionLevel;
+ public byte[] byRes = new byte[6];
+
+ @Override
+ protected List getFieldOrder(){
+ return Arrays.asList("byGammaCorrectionEnabled","byGammaCorrectionLevel","byRes");
+ }
+ }
+
+ public static class NET_DVR_WDR extends Structure
+ {
+ public byte byWDREnabled;
+ public byte byWDRLevel1;
+ public byte byWDRLevel2;
+ public byte byWDRContrastLevel;
+ public byte[] byRes = new byte[16];
+
+ @Override
+ protected List getFieldOrder(){
+ return Arrays.asList("byWDREnabled","byWDRLevel1","byWDRLevel2","byWDRContrastLevel","byRes");
+ }
+ }
+
+ public static class NET_DVR_DAYNIGHT extends Structure
+ {
+ public byte byDayNightFilterType;
+ public byte bySwitchScheduleEnabled;
+ public byte byBeginTime;
+ public byte byEndTime;
+ public byte byDayToNightFilterLevel;
+ public byte byNightToDayFilterLevel;
+ public byte byDayNightFilterTime;
+ public byte byBeginTimeMin;
+ public byte byBeginTimeSec;
+ public byte byEndTimeMin;
+ public byte byEndTimeSec;
+ public byte byAlarmTrigState;
+
+ @Override
+ protected List getFieldOrder(){
+ return Arrays.asList("byDayNightFilterType","bySwitchScheduleEnabled","byBeginTime","byEndTime","byDayToNightFilterLevel","byNightToDayFilterLevel","byDayNightFilterTime","byBeginTimeMin","byBeginTimeSec","byEndTimeMin","byEndTimeSec","byAlarmTrigState");
+ }
+ }
+
+ public static class NET_DVR_BACKLIGHT extends Structure
+ {
+ public byte byBacklightMode;
+ public byte byBacklightLevel;
+ public byte[] byRes1 = new byte[2];
+ public int dwPositionX1;
+ public int dwPositionY1;
+ public int dwPositionX2;
+ public int dwPositionY2;
+ public byte[] byRes2 = new byte[4];
+
+ @Override
+ protected List getFieldOrder(){
+ return Arrays.asList("byBacklightMode","byBacklightLevel","byRes1","dwPositionX1","dwPositionY1","dwPositionX2","dwPositionY2","byRes2");
+ }
+ }
+
+ public static class NET_DVR_NOISEREMOVE extends Structure
+ {
+ public byte byDigitalNoiseRemoveEnable;
+ public byte byDigitalNoiseRemoveLevel;
+ public byte bySpectralLevel;
+ public byte byTemporalLevel;
+ public byte byDigitalNoiseRemove2DEnable;
+ public byte byDigitalNoiseRemove2DLevel;
+ public byte[] byRes = new byte[2];
+
+ @Override
+ protected List getFieldOrder(){
+ return Arrays.asList("byDigitalNoiseRemoveEnable","byDigitalNoiseRemoveLevel","bySpectralLevel","byTemporalLevel","byDigitalNoiseRemove2DEnable","byDigitalNoiseRemove2DLevel","byRes");
+ }
+ }
+
+ public static class NET_DVR_CMOSMODECFG extends Structure
+ {
+ public byte byCaptureMod;
+ public byte byBrightnessGate;
+ public byte byCaptureGain1;
+ public byte byCaptureGain2;
+ public int dwCaptureShutterSpeed1;
+ public int dwCaptureShutterSpeed2;
+ public byte[] byRes = new byte[4];
+
+ @Override
+ protected List getFieldOrder(){
+ return Arrays.asList("byCaptureMod","byBrightnessGate","byCaptureGain1","byCaptureGain2","dwCaptureShutterSpeed1","dwCaptureShutterSpeed2","byRes");
+ }
+ }
+
+ public static class NET_DVR_DEFOGCFG extends Structure
+ {
+ public byte byMode;
+ public byte byLevel;
+ public byte[] byRes = new byte[6];
+
+ @Override
+ protected List getFieldOrder(){
+ return Arrays.asList("byMode","byLevel","byRes");
+ }
+ }
+
+ public static class NET_DVR_ELECTRONICSTABILIZATION extends Structure
+ {
+ public byte byEnable;
+ public byte byLevel;
+ public byte[] byRes = new byte[6];
+
+ @Override
+ protected List getFieldOrder(){
+ return Arrays.asList("byEnable","byLevel","byRes");
+ }
+ }
+
+ public static class NET_DVR_CORRIDOR_MODE_CCD extends Structure
+ {
+ public byte byEnableCorridorMode;
+ public byte[] byRes = new byte[11];
+
+ @Override
+ protected List getFieldOrder(){
+ return Arrays.asList("byEnableCorridorMode","byRes");
+ }
+ }
+
+ public static class NET_DVR_SMARTIR_PARAM extends Structure
+ {
+ public byte byMode;
+ public byte byIRDistance;
+ public byte byShortIRDistance;
+ public byte byLongIRDistance;
+
+ @Override
+ protected List getFieldOrder(){
+ return Arrays.asList("byMode","byIRDistance","byShortIRDistance","byLongIRDistance");
+ }
+ }
+
+ public static class NET_DVR_PIRIS_PARAM extends Structure
+ {
+ public byte byMode;
+ public byte byPIrisAperture;
+ public byte[] byRes = new byte[6];
+
+ @Override
+ protected List getFieldOrder(){
+ return Arrays.asList("byMode","byPIrisAperture","byRes");
+ }
+ }
+
+ public static class NET_DVR_LASER_PARAM_CFG extends Structure
+ {
+ public byte byControlMode;
+ public byte bySensitivity;
+ public byte byTriggerMode;
+ public byte byBrightness;
+ public byte byAngle;
+ public byte byLimitBrightness;
+ public byte byEnabled ;
+ public byte byIllumination;
+ public byte byLightAngle;
+ public byte[] byRes = new byte[7];
+
+ @Override
+ protected List getFieldOrder(){
+ return Arrays.asList("byControlMode","bySensitivity","byTriggerMode","byBrightness","byAngle","byLimitBrightness","byEnabled","byIllumination","byLightAngle","byRes");
+ }
+ }
+
+ public static class NET_DVR_FFC_PARAM extends Structure
+ {
+ public byte byMode;
+ public byte byRes1;
+ public short wCompensateTime;
+ public byte[] byRes2 = new byte[4];
+
+ @Override
+ protected List getFieldOrder(){
+ return Arrays.asList("byMode","byRes1","wCompensateTime","byRes2");
+ }
+ }
+
+ public static class NET_DVR_DDE_PARAM extends Structure
+ {
+ public byte byMode;
+ public byte byNormalLevel;
+ public byte byExpertLevel;
+ public byte[] byRes = new byte[5];
+
+ @Override
+ protected List