From 65a094bd57829118503802220b7125053c643c41 Mon Sep 17 00:00:00 2001 From: qvyuanxin <qvyuanxin@454eff88-639b-444f-9e54-f578c98de674> Date: 星期二, 04 七月 2017 18:58:25 +0800 Subject: [PATCH] --- VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp | 92 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 91 insertions(+), 1 deletions(-) diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp b/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp index 6aa67c6..902077f 100644 --- a/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp +++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp @@ -17,7 +17,7 @@ #include <stdlib.h> #include "DebugNetwork.h" - +#include "serial.h" //#include <mediastreamer2/include/mediastreamer2/msjava.h> std::stringstream logss; @@ -691,3 +691,93 @@ } } + + +void Delay(unsigned int nDelay) +{ + unsigned int i,j,k; + for ( i=0;i<nDelay;i++ ) + for ( j=0;j<6144;j++ ) + k++; +} + +void callNum(int fd,char phone) +{ + switch ( phone) + { + case '1': + serialWriteString(fd,"DA");//1 + break; + case '2': + serialWriteString(fd,"DB");//2 + break; + case '3': + serialWriteString(fd,"DC");//3 + break; + case '4': + serialWriteString(fd,"DD");//4 + break; + case '5': + serialWriteString(fd,"DE");//5 + break; + case '6': + serialWriteString(fd,"DF");//6 + break; + case '7': + serialWriteString(fd,"DG");//7 + break; + case '8': + serialWriteString(fd,"DH");//8 + break; + case '9': + serialWriteString(fd,"DI");//9 + break; + case '0': + serialWriteString(fd,"DJ");//0 + break; + } +} + +void call(const char * phone) +{ + int fd = serialOpen("/dev/ttyS1",2400); + serialWriteString(fd,"AA"); + Delay(10000); + while (*phone) + { + Delay(10000); + callNum(fd,*(phone++)); + } +} + + +char* jstringTostring(JNIEnv* env, jstring jstr) +{ +char* rtn = NULL; +jclass clsstring = env->FindClass("java/lang/String"); +jstring strencode = env->NewStringUTF("utf-8"); +jmethodID mid = env->GetMethodID(clsstring, "getBytes", "(Ljava/lang/String;)[B"); +jbyteArray barr= (jbyteArray)env->CallObjectMethod(jstr, mid, strencode); +jsize alen = env->GetArrayLength(barr); +jbyte* ba = env->GetByteArrayElements(barr, JNI_FALSE); +if (alen > 0) +{ +rtn = (char*)malloc(alen + 1); + +memcpy(rtn, ba, alen); +rtn[alen] = 0; +} +env->ReleaseByteArrayElements(barr, ba, 0); +return rtn; +} + +void Java_cn_com_basic_face_util_RtspFaceNative_telCall(JNIEnv* env, jclass clazz,jstring phone) + { + call(jstringTostring(phone)); + } + + void Java_cn_com_basic_face_util_RtspFaceNative_Hang(JNIEnv* env, jclass clazz) + { + int fd = serialOpen("/dev/ttyS1",2400); + serialWriteString(fd,"BA"); + } \ No newline at end of file -- Gitblit v1.8.0