LED背顯

前幾天在弄一個機子的背顯示,要求顯示找零
這裏寫圖片描述

Demo是這樣的

public class MainActivity extends Activity{

    private SerialPortOperaion serialPortOperaion = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         serialPortOperaion = new SerialPortOperaion(null, new SerialParam(2400, "/dev/ttyS3", 0));
        try {
            mSerialPortOperaion.StartSerial();
        } catch (Exception e) {
        }
        new WriteThread().start();

    }

    private class WriteThread extends Thread {
        public void run(){
            super.run();
            try{
                //12345678
                mSerialPortOperaion.WriteData(0X1B, 0X73, 0X31, 0X1B, 0X51, 0X41, 0X31, 0X32, 0X33, 0X34, 0X35, 0X36, 0X37, 0X38, 0X0D);
                MainActivity.this.sleep(1000);
                //找零
                serialPortOperaion .WriteData(0X1B, 0X73, 0X34);
                MainActivity.this.sleep(1000);
            }catch(Exception e){
            }
        }
    }

     private void sleep(int ms) {
        try {
            java.lang.Thread.sleep(ms);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

文檔:
這裏寫圖片描述

這裏寫圖片描述

具體的一些可以參考ASCII表

介於Demo,我看不太懂16進制的一些表達,我就將此改了下我們平時輸入的123456

一下這個是我更改後的

public class MainActivity extends Activity{

    private SerialPortOperaion serialPortOperaion = null;
    private EditText editText;
    private Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         serialPortOperaion = new SerialPortOperaion(null, new SerialParam(2400, "/dev/ttyS3", 0));
        try {
            mSerialPortOperaion.StartSerial();
        } catch (Exception e) {
        }

        editText = (EditText) findViewById(R.id.edittext);
        button = (Button) findViewById(R.id.edittext);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                serialPortOperaion .WriteData(0x0C);
                String s = editText.getText().toString();
                //這裏的寫法要參考文檔(十進制的寫法)
                mSerialPortOperaion.WriteData(27, 81, 65);
                mSerialPortOperaion.WriteData(input(s));
                mSerialPortOperaion.WriteData(13);
                //這裏顯示的是找零
                //如果要顯示單價,總計,收款這些,可以參考文檔替換最後的0X34
                serialPortOperaion .WriteData(0X1B, 0X73, 0X34);
            }
        });
    }

     public int [] TenToSix(String value) {
        String vs = value.trim();
        if (vs.length() < 1) return null;
        int[] v = new int[value.length()];
        for (int i = 0; i < vs.length(); i++) {
            char c = vs.charAt(i);
            int iv = 0;
            switch (c) {
                case '0': iv = 0X30;
                    break;
                case '1':iv = 0X31;
                    break;
                case '2':iv = 0X32;
                    break;
                case '3':iv = 0X33;
                    break;
                case '4':iv = 0X34;
                    break;
                case '5':iv = 0X35;
                    break;
                case '6':iv = 0X36;
                    break;
                case '7':iv = 0X37;
                    break;
                case '8':iv = 0X38;
                    break;
                case '9':iv = 0X39;
                    break;
            }
            v[i] = iv;
        }
        return v;
    }



    //這個根據自己的需要是否保留
    /* private void sleep(int ms) {
        try {
            java.lang.Thread.sleep(ms);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }*/

}

遇到的問題:
參照文檔更改Demo運行成功後,我將jar包移到項目,一直都是運行報錯的…

解決:
缺失了.so文件

在複製.so文件的時候要先查看你的gradle時候有指定目錄識別.so文件,如果有的話要放在對應的目錄,否則會識別不了

以下是gradle指定了目錄識別.so文件
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章