/*
* Copyright 2009 Cedric Priscal
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android_serialport_api.sample;
import java.io.IOException;
import java.util.Arrays;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener;
import android_serialport_api.Nfc;
public class ConsoleActivity extends SerialPortActivity {
EditText mReception;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.console);
// setTitle("Loopback test");
mReception = (EditText) findViewById(R.id.EditTextReception);
EditText Emission = (EditText) findViewById(R.id.EditTextEmission);
Emission.setOnEditorActionListener(new OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
int i;
CharSequence t = v.getText();
char[] text = new char[t.length()];
for (i=0; i<t.length(); i++) {
text[i] = t.charAt(i);
}
try {
mOutputStream.write(new String(text).getBytes());
mOutputStream.write('\n');
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
});
}
@Override
protected void onDataReceived(final byte[] buffer, final int size) {
int cardtype,check;
int[] cardnumber;
Nfc nfc=new Nfc();
byte[] frameHeader=new byte[2];
System.arraycopy(buffer, 0, frameHeader, 0, 2);
nfc.setFrameHeader(bytesToHexString(frameHeader));
byte[] CardTypes=new byte[1];
System.arraycopy(buffer, 2, CardTypes, 0, 1);
cardtype=CardTypes[0] & 0xFF;
nfc.setCardType(bytesToHexString(CardTypes));
byte[] CardNumbers=new byte[size-4];
System.arraycopy(buffer, 3, CardNumbers, 0, size-4);
cardnumber=bytetoInteger(CardNumbers);
nfc.setCardNumber(bytesToHexString(CardNumbers));
byte[] checkStr=new byte[1];
System.arraycopy(buffer, size-1, checkStr, 0, 1);
check=checkStr[0] & 0xFF;
nfc.setCheckStr(bytesToHexString(checkStr));
boolean f=xor(cardtype,cardnumber,check);
final String bb="帧头:"+nfc.getFrameHeader()+"卡类型:"+nfc.getCardType()+"卡号:"+nfc.getCardNumber()+"校验字节"+nfc.getCheckStr()+"是否校验成功:"+f;
runOnUiThread(new Runnable() {
public void run() {
if (mReception != null) {
mReception.append(bb);
}
}
});
}
/**
* 校验 异或 运算
* @param cardType 卡类型
* @param cardNumber 卡号
* @param check 校验
* @return
*/
public boolean xor(int cardType,int[] cardNumber,int check){
System.out.println("=====cardType======="+cardType);
for(int i=0;i<cardNumber.length;i++){
cardType=cardType^cardNumber[i];
}
if(check==cardType){
return true;
}
return false;
}
public int[] bytetoInteger(byte[] src){
int[] ints=new int[src.length];
if (src == null || src.length <= 0) {
return null;
}
for (int i = 0; i < src.length; i++) {
int v = src[i] & 0xFF;
ints[i]=v;
}
return ints;
}
public String bytesToHexString(byte[] src){
StringBuilder stringBuilder = new StringBuilder();
if (src == null || src.length <= 0) {
return null;
}
for (int i = 0; i < src.length; i++) {
int v = src[i] & 0xFF;
String hv = Integer.toHexString(v);
if (hv.length() < 2) {
stringBuilder.append(0);
}
stringBuilder.append(hv);
}
return stringBuilder.toString();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
serialPortApiSample_Demo.rar (84个子文件)
Serial Port API Sample 1.1.apk 43KB
MainMenu
.project 844B
project.properties 563B
src
android_serialport_api
Nfc.java 767B
SerialPort.java 2KB
sample
Sending01010101Activity.java 2KB
SerialPortPreferences.java 2KB
MainMenu.java 3KB
Application.java 2KB
ConsoleActivity.java 4KB
SerialPortActivity.java 3KB
LoopbackActivity.java 3KB
SerialPortFinder.java 3KB
AndroidManifest.xml 1KB
res
drawable-ldpi
xml
serial_port_preferences.xml 471B
drawable-hdpi
drawable
icon.png 5KB
drawable-mdpi
layout
sending01010101.xml 430B
loopback.xml 3KB
console.xml 846B
main.xml 2KB
drawable-xhdpi
values
baudrates.xml 2KB
strings.xml 1KB
.settings
org.eclipse.jdt.core.prefs 177B
assets
jni
Application.mk 35B
SerialPort.h 745B
SerialPort.c 4KB
gen_SerialPort_h.sh 90B
Android.mk 786B
gen
android_serialport_api
sample
BuildConfig.java 171B
R.java 3KB
libs
armeabi-v7a
libserial_port.so 13KB
x86
libserial_port.so 5KB
armeabi
libserial_port.so 13KB
obj
local
armeabi-v7a
objs
serial_port
SerialPort.o 32KB
SerialPort.o.d 15KB
libserial_port.so 63KB
x86
objs
serial_port
SerialPort.o 32KB
SerialPort.o.d 16KB
libserial_port.so 28KB
armeabi
objs
serial_port
SerialPort.o 32KB
SerialPort.o.d 15KB
libserial_port.so 65KB
.classpath 475B
bin
resources.ap_ 13KB
classes
android_serialport_api
SerialPortFinder$Driver.class 2KB
SerialPort.class 2KB
sample
R$layout.class 529B
MainMenu.class 2KB
SerialPortPreferences$1.class 1KB
R$array.class 473B
LoopbackActivity$SendingThread.class 2KB
LoopbackActivity$SendingThread$1.class 1KB
SerialPortPreferences$2.class 1KB
BuildConfig.class 367B
R$drawable.class 433B
R$attr.class 373B
MainMenu$1.class 1023B
Sending01010101Activity.class 1KB
ConsoleActivity.class 4KB
MainMenu$2.class 1017B
ConsoleActivity$1.class 2KB
R$xml.class 437B
Application.class 2KB
SerialPortActivity.class 3KB
SerialPortActivity$ReadThread.class 1KB
R$id.class 1KB
LoopbackActivity.class 2KB
MainMenu$3.class 1018B
ConsoleActivity$2.class 960B
R.class 722B
Sending01010101Activity$SendingThread.class 1KB
R$string.class 582B
MainMenu$4.class 1KB
SerialPortActivity$1.class 960B
SerialPortPreferences.class 2KB
MainMenu$5.class 1KB
MainMenu$6.class 830B
Nfc.class 1KB
SerialPortFinder.class 4KB
AndroidManifest.xml 1KB
dexedLibs
res
crunch
drawable
icon.png 5KB
MainMenu.apk 42KB
classes.dex 23KB
run_emulator.sh 120B
共 84 条
- 1
追逐1987
- 粉丝: 4
- 资源: 28
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
- C语言实现直接插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序、计数排序,并带图详解.zip
- 常用工具集参考用于图像等数据处理
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页