android 串口通讯2-对JNI封装JAVA的类,方便别人的调用

前面忘记最后在jni目录,执行ndk-build了,执行这个后就会有workspace/uart/libs/armeabi下得到libuart.so了。


今天的目标是在uart/src/com/android/uart建一个Uartjni.java封装类,

内容如下:

package com.android.uart;
import android.util.Log;
public class Uartjni {
    static
    {
        try
        {
            System.loadLibrary("uart");
            Log.i("JIN","Trying to load libuart.so");
        }
        catch(UnsatisfiedLinkError ule)
        {
            Log.e("JIN","WARNING:could not load libuart.so");
        }
    }


    //------------------------------------------------------------------------------------------------------------
    ///*
    // * Function:     // open命令函数
    // * Input:        // /dev/ttyS6,/dev/ttyS7, /dev/rfid_rc522_dev
    // * Output:       //
    // * Return:       // 大于0成功。小于0失败
    // * Others:       // 无
    // */
    // -----------------------------------------------------------------------------------------------------------
    public static native int openUart(String str);  


    //------------------------------------------------------------------------------------------------------------
    ///*
    // * Function:     // close命令函数
    // * Called By:    // 
    // * Input:        // 
    // * Output:       //
    // * Return:       // 
    // * Others:       // 无
    // */
    // -----------------------------------------------------------------------------------------------------------
    public static native void closeUart();
    


    //------------------------------------------------------------------------------------------------------------
    ///*
    // * Function:     // 设置波特率命令函数
    // * Called By:    // { "1200", "2400", "4800", "9600","19200","38400","57600","115200","230400","921600"};
    // * Input:        // 
    // * Output:       //
    // * Return:       // 返回大于0或者小于0的数据,小于0证明失败,这个时候JNI会自动close设备,如果需要打开则需要重新OPEN
    // * Others:       // 
    // */
    // -----------------------------------------------------------------------------------------------------------
    public static native int setUart(int baudrate);
    


    //------------------------------------------------------------------------------------------------------------
    ///*
    // * Function:     // 写命令函数
    // * Called By:    // 其中str为字符型数据
    // * Input:        // 
    // * Output:       //
    // * Return:       // 
    // * Others:       // 
    // */
    // -----------------------------------------------------------------------------------------------------------
    public static native int sendMsgUart(String str);
    
    


    //------------------------------------------------------------------------------------------------------------
    ///*
    // * Function:     // 读命令函数
    // * Called By:    // 
    // * Input:        // 
    // * Output:       //
    // * Return:       // NULL或者字符型数据 
    // * Others:       // 
    // */
    // -----------------------------------------------------------------------------------------------------------
    public static native String  receiveMsgUart();
    
    


    //------------------------------------------------------------------------------------------------------------
    ///*
    // * Function:     // 写16进制
    // * Called By:    //  
    // * Input:        // 
    // * Output:       //
    // * Return:       //
    // * Others:       // java中比如:int wfliao[] = new int[10]; 然后for(int i=0;i< 10; i++)  wfliao[i]=0x12 ........
    // */
    // -----------------------------------------------------------------------------------------------------------
    public static native int  sendHexUart(int[] arr);
    
    
    //------------------------------------------------------------------------------------------------------------
    ///*
    // * Function:     // 485 写16进制
    // * Called By:    // 
    // * Input:        // 
    // * Output:       //
    // * Return:       //
    // * Others:       // java中直接 传整形数,0----255的范围
    // */
    // -----------------------------------------------------------------------------------------------------------
    public static native int  send485HexUart(int number);
    


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值