diff --git a/jni/com_shxy_xymanager_service_interaction_Cma.h b/jni/com_shxy_xymanager_service_interaction_Cma.h new file mode 100644 index 0000000..3d0caa7 --- /dev/null +++ b/jni/com_shxy_xymanager_service_interaction_Cma.h @@ -0,0 +1,181 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include +/* Header for class com_shxy_xymanager_service_interaction_Cma */ + +#ifndef _Included_com_shxy_xymanager_service_interaction_Cma +#define _Included_com_shxy_xymanager_service_interaction_Cma +#ifdef __cplusplus +extern "C" { +#endif +/* + * Class: com_shxy_xymanager_service_interaction_Cma + * Method: initCmaEnv + * Signature: ()Z + */ +JNIEXPORT jboolean JNICALL Java_com_shxy_xymanager_1service_interaction_Cma_initCmaEnv + (JNIEnv *, jclass); + +/* + * Class: com_shxy_xymanager_service_interaction_Cma + * Method: initCma + * Signature: (Ljava/lang/String;I)J + */ +JNIEXPORT jlong JNICALL Java_com_shxy_xymanager_1service_interaction_Cma_initCma + (JNIEnv *, jobject, jstring, jint); + +/* + * Class: com_shxy_xymanager_service_interaction_Cma + * Method: releaseCma + * Signature: (J)V + */ +JNIEXPORT void JNICALL Java_com_shxy_xymanager_1service_interaction_Cma_releaseCma + (JNIEnv *, jobject, jlong); + +/* + * Class: com_shxy_xymanager_service_interaction_Cma + * Method: requestCapture + * Signature: (Ljava/lang/String;SSS)Z + */ +JNIEXPORT jboolean JNICALL Java_com_shxy_xymanager_1service_interaction_Cma_requestCapture + (JNIEnv *, jobject, jstring, jshort, jshort, jshort); + +/* + * Class: com_shxy_xymanager_service_interaction_Cma + * Method: upgrade + * Signature: (Ljava/lang/String;Ljava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_com_shxy_xymanager_1service_interaction_Cma_upgrade + (JNIEnv *, jobject, jstring, jstring); + +/* + * Class: com_shxy_xymanager_service_interaction_Cma + * Method: updateSchedule + * Signature: (Ljava/lang/String;SBBBBS)Z + */ +JNIEXPORT jboolean JNICALL Java_com_shxy_xymanager_1service_interaction_Cma_updateSchedule + (JNIEnv *, jobject, jstring, jshort, jbyte, jbyte, jbyte, jbyte, jshort); + +/* + * Class: com_shxy_xymanager_service_interaction_Cma + * Method: requestSchedule + * Signature: (Ljava/lang/String;S)Z + */ +JNIEXPORT jboolean JNICALL Java_com_shxy_xymanager_1service_interaction_Cma_requestSchedule + (JNIEnv *, jobject, jstring, jshort); + +/* + * Class: com_shxy_xymanager_service_interaction_Cma + * Method: updateSamplingParam + * Signature: (Ljava/lang/String;S)Z + */ +JNIEXPORT jboolean JNICALL Java_com_shxy_xymanager_1service_interaction_Cma_updateSamplingParam + (JNIEnv *, jobject, jstring, jshort); + +/* + * Class: com_shxy_xymanager_service_interaction_Cma + * Method: requestSamplingParam + * Signature: (Ljava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_com_shxy_xymanager_1service_interaction_Cma_requestSamplingParam + (JNIEnv *, jobject, jstring); + +/* + * Class: com_shxy_xymanager_service_interaction_Cma + * Method: updateCma + * Signature: (Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_com_shxy_xymanager_1service_interaction_Cma_updateCma + (JNIEnv *, jobject, jstring, jstring, jint, jstring); + +/* + * Class: com_shxy_xymanager_service_interaction_Cma + * Method: updateTermId + * Signature: (Ljava/lang/String;Ljava/lang/String;I)Z + */ +JNIEXPORT jboolean JNICALL Java_com_shxy_xymanager_1service_interaction_Cma_updateTermId + (JNIEnv *, jobject, jstring, jstring, jint); + +/* + * Class: com_shxy_xymanager_service_interaction_Cma + * Method: reset + * Signature: (Ljava/lang/String;S)Z + */ +JNIEXPORT jboolean JNICALL Java_com_shxy_xymanager_1service_interaction_Cma_reset + (JNIEnv *, jobject, jstring, jshort); + +/* + * Class: com_shxy_xymanager_service_interaction_Cma + * Method: updateImageParams + * Signature: (Ljava/lang/String;BBBBB)Z + */ +JNIEXPORT jboolean JNICALL Java_com_shxy_xymanager_1service_interaction_Cma_updateImageParams + (JNIEnv *, jobject, jstring, jbyte, jbyte, jbyte, jbyte, jbyte); + +/* + * Class: com_shxy_xymanager_service_interaction_Cma + * Method: turnOnGps + * Signature: (Ljava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_com_shxy_xymanager_1service_interaction_Cma_turnOnGps + (JNIEnv *, jobject, jstring); + +/* + * Class: com_shxy_xymanager_service_interaction_Cma + * Method: turnOffGps + * Signature: (Ljava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_com_shxy_xymanager_1service_interaction_Cma_turnOffGps + (JNIEnv *, jobject, jstring); + +/* + * Class: com_shxy_xymanager_service_interaction_Cma + * Method: requestGpsInfo + * Signature: (Ljava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_com_shxy_xymanager_1service_interaction_Cma_requestGpsInfo + (JNIEnv *, jobject, jstring); + +/* + * Class: com_shxy_xymanager_service_interaction_Cma + * Method: requestRunningStatus + * Signature: (Ljava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_com_shxy_xymanager_1service_interaction_Cma_requestRunningStatus + (JNIEnv *, jobject, jstring); + +/* + * Class: com_shxy_xymanager_service_interaction_Cma + * Method: turnOnVideo + * Signature: (Ljava/lang/String;SI)Z + */ +JNIEXPORT jboolean JNICALL Java_com_shxy_xymanager_1service_interaction_Cma_turnOnVideo + (JNIEnv *, jobject, jstring, jshort, jint); + +/* + * Class: com_shxy_xymanager_service_interaction_Cma + * Method: turnOffVideo + * Signature: (Ljava/lang/String;SI)Z + */ +JNIEXPORT jboolean JNICALL Java_com_shxy_xymanager_1service_interaction_Cma_turnOffVideo + (JNIEnv *, jobject, jstring, jshort, jint); + +/* + * Class: com_shxy_xymanager_service_interaction_Cma + * Method: updateVideoParams + * Signature: (Ljava/lang/String;SSBS)Z + */ +JNIEXPORT jboolean JNICALL Java_com_shxy_xymanager_1service_interaction_Cma_updateVideoParams + (JNIEnv *, jobject, jstring, jshort, jshort, jbyte, jshort); + +/* + * Class: com_shxy_xymanager_service_interaction_Cma + * Method: requestVideoParams + * Signature: (Ljava/lang/String;SS)Z + */ +JNIEXPORT jboolean JNICALL Java_com_shxy_xymanager_1service_interaction_Cma_requestVideoParams + (JNIEnv *, jobject, jstring, jshort, jshort); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/libs/xympj.dll b/libs/xympj.dll new file mode 100644 index 0000000..b01628b Binary files /dev/null and b/libs/xympj.dll differ diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/interaction/Cma.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/interaction/Cma.java new file mode 100644 index 0000000..aab5275 --- /dev/null +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/interaction/Cma.java @@ -0,0 +1,80 @@ +package com.shxy.xymanager_service.interaction; + +public class Cma { + + static { + System.setProperty("java.library.path", "./libs") + System.loadLibrary("xympj"); + initCmaEnv(); + } + + public static byte CAPTURE_TYPE_PHOTO = 0; + public static byte CAPTURE_TYPE_VIDEO = 1; + public static byte CAPTURE_TYPE_LOG = 2; + + public Cma(String server, int port) { + mCma = initCma(server, port); + } + + @Override + protected void finalize() { + if (mCma != 0) { + releaseCma(mCma); + } + } + + private static native boolean initCmaEnv(); + + public native long initCma(String server, int port); + public native void releaseCma(long cma); + + // act=capture [0xCB] --cmdid=[CMD_ID] --channel=[Channel No] --preset=[Preset No 255 by default] --type=[Media Type, 0: image, 1: video, 2: Log File] + public native boolean requestCapture(String cmdid, short channel, short preset, short captureType); + + public native boolean upgrade(String cmdid, String filePath); + +// act=upgrade [0xA9] --cmdid=[CMD_ID] --file=[File Path] +// act=httpupgrade [0xA6] --cmdid=[CMD_ID] type=[0: Program Package, 1: System Package, 2: Patch] --url=[HTTP Url] + + public native boolean updateSchedule(String cmdid, short channel, byte startHour, byte startMinute, byte endHour, byte endMinute, short cycle); + public native boolean requestSchedule(String cmdid, short channel); + // 0xA4 + public native boolean updateSamplingParam(String cmdid, short heartbeatTime); + public native boolean requestSamplingParam(String cmdid); + + // 0xA7 + public native boolean updateCma(String cmdid, String cmaIp, int cmaPort, String domain); + + // act=termid [0xAC] --cmdid=[CMD_ID] --newcmdid=[New CMD ID] --compid=[Component Id] --orgid=[Original Id] + public native boolean updateTermId(String cmdid, String componentId, int originalId); + + + // act=reset [0xAD] --cmdid=[CMD_ID] --mode=[Reset Mode: 0/1/2/3 Refer to SPEC doc] + public native boolean reset(String cmdid, short mode); + + // act=wakeup [0xAE] --cmdid=[CMD_ID] --ref=[Reference_Revival_Time] --cycle=[Revival_Cycle in second] --duration=[Duration_Time in second] +// act=imgparams [0xC9] --cmdid=[CMD_ID] --color=[Color Select: 0, 1] --resolution=[Resolution: 1-15 255] --luminance=[Luminance: 1-100] --contrast=[Contrast: 1-100] --saturation=[Saturation: 1-100] + public native boolean updateImageParams(String cmdid, byte color, byte resolution/*1-15, or -1=255*/, byte luminance, byte contrast, byte saturation); + + // act=gpsctrl [0XB9] --cmdid=[CMD_ID] --ctrl=[0: OFF 1: ON] + public native boolean turnOnGps(String cmdid); + public native boolean turnOffGps(String cmdid); + + + // act=gpsinfo [0XBA] --cmdid=[CMD_ID] + public native boolean requestGpsInfo(String cmdid); + + // act=runningstatus [0xEA] --cmdid=[CMD_ID] + public native boolean requestRunningStatus(String cmdid); + + // act=video [0xD1] --cmdid=[CMD_ID] --channel=[Channel No] --port=[Port] ctrl=[0: off, 1: on] + public native boolean turnOnVideo(String cmdid, short channel, int videoPort); + public native boolean turnOffVideo(String cmdid, short channel, int videoPort); + + // act=videoparams [0xD5] --cmdid=[CMD_ID] --channel=[Channel No] --preset=[Preset No] --query=[Request Set Flag: 0, 1] format=[Video Format: 1 QVGA 2 VGA 3 480p 4 720P 5 1080P] time=[seconds] + public native boolean updateVideoParams(String cmdid, short channel, short preset, byte format, short time); + public native boolean requestVideoParams(String cmdid, short channel, short preset); + + private long mCma; + +}