From 73a8d2ffbdf2a85d9616c6aef18b499654173a18 Mon Sep 17 00:00:00 2001 From: JOETION <1322874562@qq.com> Date: Mon, 25 Jan 2021 10:59:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=8B=8F=E5=87=80zk-r322a?= =?UTF-8?q?=E7=9A=84=E5=BA=95=E5=B1=82=E9=A9=B1=E5=8A=A8=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/encodings.xml | 6 + app/build.gradle | 2 +- app/jni/Android.mk | 2 +- app/jni/Application.mk | 1 + app/jni/SerialPort.c | 197 ++++-------------- app/jni/SerialPort.h | 29 +++ app/jni/gen_SerialPort_h.sh | 3 + app/libs/armeabi/libserial_port.so | Bin 12316 -> 37888 bytes .../android_serialport_api/SerialPort.java | 12 +- .../com/device/zk_r322a/ZKR322AControl.java | 28 +-- .../jiebao/h518/scan/NewScanControler.java | 2 +- .../main/java/com/util/GlobalApplication.java | 31 --- 12 files changed, 94 insertions(+), 219 deletions(-) create mode 100644 app/jni/Application.mk create mode 100644 app/jni/SerialPort.h create mode 100644 app/jni/gen_SerialPort_h.sh delete mode 100644 app/src/main/java/com/util/GlobalApplication.java diff --git a/.idea/encodings.xml b/.idea/encodings.xml index b94aa26..deccba8 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -1,6 +1,12 @@ + + + + + + diff --git a/app/build.gradle b/app/build.gradle index 85c6167..3b97bc1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -42,5 +42,5 @@ android { dependencies { //加载jar包 - compile fileTree(dir: 'libs', include: ['*.jar']) + implementation fileTree(dir: 'libs', include: ['*.jar']) } \ No newline at end of file diff --git a/app/jni/Android.mk b/app/jni/Android.mk index 1fd95e8..f4ce1c3 100644 --- a/app/jni/Android.mk +++ b/app/jni/Android.mk @@ -18,7 +18,7 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) -TARGET_PLATFORM := android-8 +TARGET_PLATFORM := android-3 LOCAL_MODULE := serial_port LOCAL_SRC_FILES := SerialPort.c LOCAL_LDLIBS := -llog diff --git a/app/jni/Application.mk b/app/jni/Application.mk new file mode 100644 index 0000000..7866257 --- /dev/null +++ b/app/jni/Application.mk @@ -0,0 +1 @@ +APP_ABI := armeabi armeabi-v7a x86 diff --git a/app/jni/SerialPort.c b/app/jni/SerialPort.c index b4926b3..84748a7 100644 --- a/app/jni/SerialPort.c +++ b/app/jni/SerialPort.c @@ -1,5 +1,5 @@ /* - * Copyright 2009 Cedric Priscal + * Copyright 2009-2011 Cedric Priscal * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,52 +22,14 @@ #include #include +#include "SerialPort.h" + #include "android/log.h" static const char *TAG="serial_port"; #define LOGI(fmt, args...) __android_log_print(ANDROID_LOG_INFO, TAG, fmt, ##args) #define LOGD(fmt, args...) __android_log_print(ANDROID_LOG_DEBUG, TAG, fmt, ##args) #define LOGE(fmt, args...) __android_log_print(ANDROID_LOG_ERROR, TAG, fmt, ##args) - -#ifdef __cplusplus -extern "C" { -#endif -/* - * Class: com_android_barcode_SerialPort - * Method: open - * Signature: (Ljava/lang/String;I)I - */ -JNIEXPORT jint JNICALL Java_com_android_barcode_SerialPort_open - (JNIEnv *, jclass, jstring, jint); - -/* - * Class: com_android_barcode_SerialPort - * Method: write - * Signature: (ILjava/lang/String;I)I - */ -JNIEXPORT jint JNICALL Java_com_android_barcode_SerialPort_write - (JNIEnv *, jobject, jint, jstring, jint); - -/* - * Class: com_android_barcode_SerialPort - * Method: read - * Signature: (II)[B - */ -JNIEXPORT jbyteArray JNICALL Java_com_android_barcode_SerialPort_read - (JNIEnv *, jobject, jint, jint); - -/* - * Class: com_android_barcode_SerialPort - * Method: close - * Signature: (I)V - */ -JNIEXPORT void JNICALL Java_com_android_barcode_SerialPort_close - (JNIEnv *, jobject, jint); - -#ifdef __cplusplus -} -#endif - static speed_t getBaudrate(jint baudrate) { switch(baudrate) { @@ -107,15 +69,16 @@ static speed_t getBaudrate(jint baudrate) } /* - * Class: cedric_serial_SerialPort + * Class: android_serialport_SerialPort * Method: open - * Signature: (Ljava/lang/String;)V + * Signature: (Ljava/lang/String;II)Ljava/io/FileDescriptor; */ -JNIEXPORT jint JNICALL Java_com_android_barcode_SerialPort_open - (JNIEnv *env, jobject thiz, jstring path, jint baudrate) +JNIEXPORT jobject JNICALL Java_android_1serialport_1api_SerialPort_open + (JNIEnv *env, jclass thiz, jstring path, jint baudrate, jint flags) { int fd; speed_t speed; + jobject mFileDescriptor; /* Check arguments */ { @@ -123,6 +86,7 @@ JNIEXPORT jint JNICALL Java_com_android_barcode_SerialPort_open if (speed == -1) { /* TODO: throw an exception */ LOGE("Invalid baudrate"); + return NULL; } } @@ -130,8 +94,8 @@ JNIEXPORT jint JNICALL Java_com_android_barcode_SerialPort_open { jboolean iscopy; const char *path_utf = (*env)->GetStringUTFChars(env, path, &iscopy); - LOGD("Opening serial port %s", path_utf); - fd = open(path_utf, O_RDWR | O_SYNC); + LOGD("Opening serial port %s with flags 0x%x", path_utf, O_RDWR | flags); + fd = open(path_utf, O_RDWR | flags); LOGD("open() fd = %d", fd); (*env)->ReleaseStringUTFChars(env, path, path_utf); if (fd == -1) @@ -139,6 +103,7 @@ JNIEXPORT jint JNICALL Java_com_android_barcode_SerialPort_open /* Throw an exception */ LOGE("Cannot open port"); /* TODO: throw an exception */ + return NULL; } } @@ -151,136 +116,52 @@ JNIEXPORT jint JNICALL Java_com_android_barcode_SerialPort_open LOGE("tcgetattr() failed"); close(fd); /* TODO: throw an exception */ + return NULL; } cfmakeraw(&cfg); cfsetispeed(&cfg, speed); cfsetospeed(&cfg, speed); - /*******************************/ - cfg.c_cflag &= ~CSIZE; - cfg.c_lflag &= ~(ICANON|ECHO|ECHOE|ISIG); - cfg.c_oflag &= ~OPOST; - //'8' bit - cfg.c_cflag |= CS8; - //'N' PARENB - cfg.c_cflag &= ~PARENB; - cfg.c_iflag &= ~INPCK; - //'1' STOP - cfg.c_cflag &= ~CSTOPB; - - cfg.c_cc[VTIME] = 15; - cfg.c_cc[VMIN] = 0; - tcflush(fd, TCIFLUSH); - /*********************************/ if (tcsetattr(fd, TCSANOW, &cfg)) { LOGE("tcsetattr() failed"); close(fd); /* TODO: throw an exception */ - } - } - - - return fd; -} -/* - * Class: cedric_serial_SerialPort - * Method: write - * Signature: ()V - */ - -JNIEXPORT jint JNICALL Java_com_android_barcode_SerialPort_write - (JNIEnv *env, jobject obj, jint fd, jstring str, jint len) -{ - jboolean iscopy; - const char *buff_utf = (*env)->GetStringUTFChars(env, str, &iscopy); - int wlen = 0; - wlen = write(fd, buff_utf, len); - if(wlen > 0) - { - LOGD("Write serial port %s\n", buff_utf); - } - else - { - LOGE("Write failed\n"); - } - (*env)->ReleaseStringUTFChars(env, str, buff_utf); - LOGD("Write finish!\n"); - return wlen; -} -/* - * Class: cedric_serial_SerialPort - * Method: read - * Signature: ()V - */ - -JNIEXPORT jbyteArray JNICALL Java_com_android_barcode_SerialPort_read - (JNIEnv *env, jobject obj, jint fd, jint len) -{ - int reval; - int nread = 0; - char buff[len]; - char result[len]; - struct timeval tv; - jbyteArray jba; - fd_set rfds; - - while(1) - { - FD_ZERO(&rfds); - FD_SET(fd, &rfds); - tv.tv_sec = 0; - tv.tv_usec = 100000; - if ((reval = select(1 + fd, &rfds, NULL, NULL, &tv)) > 0) - { - if(FD_ISSET(fd, &rfds)) - { - int temp = read(fd, buff + nread, len); - nread += temp; - LOGD("%i us is used", 100000 - tv.tv_usec); - LOGD("wo have data %d\n", temp); - } - } - else if(reval == 0 && nread != 0) //timeout means - { -// int ffd; - buff[nread]=0; -// ffd = open("/data/ndk", O_WRONLY | O_TRUNC); -// write(ffd, buff, nread); -// close(ffd); - int i, j; - for(i = 0, j = 0; i < nread; i++) - { - if(buff[i] != 0) - { - result[j] = buff[i]; - j++; - } - // LOGD("0x%2x ", buff[i]); - } - //LOGD("\n"); - //result[j] = 0; - jba = (*env)->NewByteArray(env, j); - (*env)->SetByteArrayRegion(env, jba, 0, j, result); -/* jba = (*env)->NewByteArray(env, nread); - (*env)->SetByteArrayRegion(env, jba, 0, nread, buff);*/ - LOGD("readlength=%d\n, reallength=%d\n, all data received!\n", nread, j); - return jba; - } - else - { return NULL; } } + + /* Create a corresponding file descriptor */ + { + jclass cFileDescriptor = (*env)->FindClass(env, "java/io/FileDescriptor"); + jmethodID iFileDescriptor = (*env)->GetMethodID(env, cFileDescriptor, "", "()V"); + jfieldID descriptorID = (*env)->GetFieldID(env, cFileDescriptor, "descriptor", "I"); + mFileDescriptor = (*env)->NewObject(env, cFileDescriptor, iFileDescriptor); + (*env)->SetIntField(env, mFileDescriptor, descriptorID, (jint)fd); + } + + return mFileDescriptor; } + /* * Class: cedric_serial_SerialPort * Method: close * Signature: ()V */ -JNIEXPORT void JNICALL Java_com_android_barcode_SerialPort_close - (JNIEnv *env, jobject obj, jint fd) +JNIEXPORT void JNICALL Java_android_1serialport_1api_SerialPort_close + (JNIEnv *env, jobject thiz) { - close(fd); + jclass SerialPortClass = (*env)->GetObjectClass(env, thiz); + jclass FileDescriptorClass = (*env)->FindClass(env, "java/io/FileDescriptor"); + + jfieldID mFdID = (*env)->GetFieldID(env, SerialPortClass, "mFd", "Ljava/io/FileDescriptor;"); + jfieldID descriptorID = (*env)->GetFieldID(env, FileDescriptorClass, "descriptor", "I"); + + jobject mFd = (*env)->GetObjectField(env, thiz, mFdID); + jint descriptor = (*env)->GetIntField(env, mFd, descriptorID); + + LOGD("close(fd = %d)", descriptor); + close(descriptor); } + diff --git a/app/jni/SerialPort.h b/app/jni/SerialPort.h new file mode 100644 index 0000000..61f1fb2 --- /dev/null +++ b/app/jni/SerialPort.h @@ -0,0 +1,29 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include +/* Header for class android_serialport_api_SerialPort */ + +#ifndef _Included_android_serialport_api_SerialPort +#define _Included_android_serialport_api_SerialPort +#ifdef __cplusplus +extern "C" { +#endif +/* + * Class: android_serialport_api_SerialPort + * Method: open + * Signature: (Ljava/lang/String;II)Ljava/io/FileDescriptor; + */ +JNIEXPORT jobject JNICALL Java_android_1serialport_1api_SerialPort_open + (JNIEnv *, jclass, jstring, jint, jint); + +/* + * Class: android_serialport_api_SerialPort + * Method: close + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_android_1serialport_1api_SerialPort_close + (JNIEnv *, jobject); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/app/jni/gen_SerialPort_h.sh b/app/jni/gen_SerialPort_h.sh new file mode 100644 index 0000000..1998186 --- /dev/null +++ b/app/jni/gen_SerialPort_h.sh @@ -0,0 +1,3 @@ +#!/bin/sh +javah -o SerialPort.h -jni -classpath ../src android_serialport_api.SerialPort + diff --git a/app/libs/armeabi/libserial_port.so b/app/libs/armeabi/libserial_port.so index 3ea9b569b11bec3bc74c6a814a5b15c9bcc7efa0..d1c36226a95d7dfba25aeff07af5decab2effedc 100644 GIT binary patch literal 37888 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 o934>uhjYR z`jFB-C}Ryb`h{j1AQw;wC;_YiI05$n+5x)&PXZ1CUI!cpgaBWSDm;SV0muau0!jdD z08YR?fOfzxz>|Q3fY$-X0U^LwL74~F9=O2m0z3&g7`Q+-aP1=608auAigFtZ!q%C{ zG4NkH?54BVBgm(=;DEFOdj*ZV6wT2qpn2~5XskWqyS|Tx?+Jg3vtXh=27ZX+he0CExZ<#gE3IAcjT#rP)f?YmDVv5sLa)*{U}$Co1h`XmGYro?8^+Uk(_ z^!R%LI$Jrujh!NV7x3lo_NS4T6YutPmcjlqLgUUOZ&zZiB=a9gxN`>$tRqbKR_gl( zeJgO+rFv|+vcJ+g@xu3FPdN5O{H*;p=mOXqm`x1ftciRn-}AEGM>*Yw^@epe753nq zAJStDFk6rG4s@b2^<^l1)E-1Tt)>+W@3-@3fYA- zhz|D!8_UL>)NM5QJ6O8E2k$<_hy^@Gtt{-vnj*bu{XGU-NXZ2piYWnJVcljNj}Nd*u;njvdJIF zk0Uvq$p5y^F!`+t{N($nUkv$;Idab027mt#a#H(`JHkYpXa|jX4>r7*pi?P$P;SeB z?kw~m|=sC zd}o;Wrsi*#-soxA zjL#}2jAy>O2A9w2^R*HKSu*aUb@(o0QrpVrd!0?5dcM}VxxUrua}m$D1@aG|%=!!L zM9+@;sok$ZIqdW`$mdw zI|AJOx7fBp;8`QFZ8XTLV4s5f75uS+FDN+uRGhwd5`GAEl5>FY3kHAX8L9^+V3I@a zzezsm-!dAf|10owvk&cks<_{P*WhT)3#5 z4U9D__v3vZ!@3;*Mipn>7UFfK4}G7jKHq@vKLhgkAO7wiYbZ(0-~Wf!hR^%iH>53fMQ2|C?@I21>pUz%#UJ)fMO|8F2xKvU!|kiB2eil zK1nXo6#$4gwW;xO1ZDLhIs)8V#_8x=TlpJwY((lqH1y!!BhwWDpUjWLd{ue05gk=a z6ij*>p)3KG#`vT1!~KNlz1x8kziEei3yHtM}%s*9%ZtX=;UwM zL3d241IcvcmrVebAFWv%HtZEdpghEnpcO!L>eCIn8`TQ1+V?Y*A(N&+eqI9|M2|lz Rohno9_#AXQ)e5jm_kSLxUzz{_ diff --git a/app/src/main/java/android_serialport_api/SerialPort.java b/app/src/main/java/android_serialport_api/SerialPort.java index 1721f76..7cafe72 100644 --- a/app/src/main/java/android_serialport_api/SerialPort.java +++ b/app/src/main/java/android_serialport_api/SerialPort.java @@ -1,21 +1,19 @@ package android_serialport_api; -import android.app.Application; import android.util.Log; import com.util.DialogUtil; -import com.util.GlobalApplication; import map.baidu.com.BMapManagerUtil; import java.io.*; -public class SerialPort { +public class SerialPort{ private static final String TAG = "SerialPort"; private FileDescriptor mFd; private FileInputStream mFileInputStream; private FileOutputStream mFileOutputStream; - public SerialPort(File device, int baudrate, int bits, char event, int stop, int flags) throws SecurityException, + public SerialPort(File device, int baudrate, int flags) throws SecurityException, IOException { if (!device.canRead() || !device.canWrite()) { @@ -35,7 +33,7 @@ public class SerialPort { throw new SecurityException(); } } - mFd = open(device.getAbsolutePath(), baudrate, bits, event, stop, flags); + mFd = open(device.getAbsolutePath(), baudrate, flags); Log.i("info", "open device!!"); if (mFd == null) { Log.e(TAG, "native open returns null"); @@ -57,12 +55,12 @@ public class SerialPort { return mFileOutputStream; } - private native static FileDescriptor open(String path, int baudrate, int bits, char event, int stop, int flags); + private native static FileDescriptor open(String path, int baudrate, int flags); public native void close(); static { - System.loadLibrary("serialport"); + System.loadLibrary("serial_port"); } } diff --git a/app/src/main/java/com/device/zk_r322a/ZKR322AControl.java b/app/src/main/java/com/device/zk_r322a/ZKR322AControl.java index 58b9d03..383f21d 100644 --- a/app/src/main/java/com/device/zk_r322a/ZKR322AControl.java +++ b/app/src/main/java/com/device/zk_r322a/ZKR322AControl.java @@ -1,24 +1,18 @@ package com.device.zk_r322a; +import android_serialport_api.SerialPort; + import java.io.File; import java.io.IOException; import java.io.InputStream; -import java.io.OutputStream; - -import android.gpio.GpioJNI; -import android.util.Log; -import android_serialport_api.SerialPort; public class ZKR322AControl { private SerialPort mSerialPort = null; - private OutputStream mOutputStream = null; private InputStream mInputStream = null; - private boolean readVal = false; public ZKR322AControl() throws SecurityException, IOException { - mSerialPort = new SerialPort(new File("/dev/ttyS4"), 115200, 8, 'N', 1,0); - mOutputStream = mSerialPort.getOutputStream(); - mInputStream = mSerialPort.getInputStream(); + mSerialPort = new SerialPort(new File("/dev/ttyS1"), 115200,0); + mInputStream = mSerialPort.getInputStream(); } public String getData() { @@ -37,17 +31,11 @@ public class ZKR322AControl { } public void start() { - readVal = true; - GpioJNI.gpio_switch_scan_trig(1); +// GpioJNI.gpio_switch_scan_trig(1); } public void stop() { - readVal = false; - GpioJNI.gpio_switch_scan_trig(0); - } - - public boolean isRead() { - return readVal; +// GpioJNI.gpio_switch_scan_trig(0); } public void close() { @@ -58,7 +46,7 @@ public class ZKR322AControl { public void initScan() { - GpioJNI.gpio_switch_scan_rf_ired(0); - GpioJNI.gpio_switch_scan_power(1); +// GpioJNI.gpio_switch_scan_rf_ired(0); +// GpioJNI.gpio_switch_scan_power(1); } } diff --git a/app/src/main/java/com/jiebao/h518/scan/NewScanControler.java b/app/src/main/java/com/jiebao/h518/scan/NewScanControler.java index 0b80745..533615e 100644 --- a/app/src/main/java/com/jiebao/h518/scan/NewScanControler.java +++ b/app/src/main/java/com/jiebao/h518/scan/NewScanControler.java @@ -15,7 +15,7 @@ public class NewScanControler { private InputStream mInputStream; public NewScanControler() throws SecurityException, IOException { - mSerialPort = new SerialPort(new File("/dev/ttySAC1"), 9600, 8, 'N', 1, + mSerialPort = new SerialPort(new File("/dev/ttySAC1"), 9600, 0); mOutputStream = mSerialPort.getOutputStream(); mInputStream = mSerialPort.getInputStream(); diff --git a/app/src/main/java/com/util/GlobalApplication.java b/app/src/main/java/com/util/GlobalApplication.java deleted file mode 100644 index 868790a..0000000 --- a/app/src/main/java/com/util/GlobalApplication.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.util; - -/* - ********************************************** - * DATE PERSON REASON - * 2021-01-15 FXY Created - ********************************************** - */ - - -import android.app.Application; -import android.content.Context; - -/** - * 全局上下文,可以用来弹出无依赖的对话框等 - */ -public class GlobalApplication extends Application { - - private static Context context;//全局上下文 - - @Override - public void onCreate() { - super.onCreate(); - context = getApplicationContext(); - } - - //获取全局的上下文 - public static Context getContext() { - return context; - } -} \ No newline at end of file