• 大小: 1.31MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-29
  • 语言: 其他
  • 标签: 单片机  

资源简介

安卓蓝牙连接单片机蓝牙模块,获取蓝牙模块数据,根据数据进行绘图

资源截图

代码片段和文件信息

package com.cz.wisdomcity.entity;

import java.io.InputStream;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.util.Log;
import android.view.SurfaceView;
/**
 * 测试用 已无用
 * @author Dean
 *
 */
public class ClsWaveDiagram {

private boolean isRecording = false;// 线程控制标记
private InputStream btInput = null;// 蓝牙数据输入流
/**
 * X轴缩小的比例
 */
public int rateX = 1; 
/**
 * Y轴缩小的比例
 */
public int rateY = 1;
/**
 * Y轴基线
 */
public int baseLine = 0;

/**
 * 初始化
 */
public ClsWaveDiagram(InputStream btInput int rateX int rateY
int baseLine) {
this.btInput = btInput;
this.rateX = rateX;
this.rateY = rateY;
this.baseLine = baseLine;
}

/**
 * 开始
 * 
 * @param recBufSize
 *            AudioRecord的MinBufferSize
 */
public void Start(SurfaceView sfv Paint mPaint int wait) {
isRecording = true;
new DrawThread(sfv mPaint wait).start();// 开始绘制线程
}

/**
 * 停止
 */
public void Stop() {
isRecording = false;
}

/**
 * 负责绘制inBuf中的数据
 * 
 * @author GV
 * 
 */
class DrawThread extends Thread {

private int oldX = 0;// 上次绘制的X坐标
private int oldY = 0;// 上次绘制的Y坐标
private SurfaceView sfv;// 画板
private int X_index = 0;// 当前画图所在屏幕X轴的坐标
private Paint mPaint;// 画笔
private int wait = 50;// 线程等待时间

public DrawThread(SurfaceView sfv Paint mPaint int wait) {
this.sfv = sfv;
this.mPaint = mPaint;
this.wait = wait;
}

@Override
public void run() {
while (isRecording) {
try {

byte[] temp = new byte[1024];

int len = btInput.read(temp);
Log.e(“available“ String.valueOf(len));
if (len > 0) {
byte[] btBuf = new byte[len];
System.arraycopy(temp 0 btBuf 0 btBuf.length);
SimpleDraw(X_index btBuf rateX rateY baseLine);// 把缓冲区数据画出来
X_index = X_index + (btBuf.length/rateX) - 1;// 这里-1可以减少空隙
if (X_index > sfv.getHeight()) {
X_index = 0;
}
}
Thread.sleep(wait);// 延时一定时间缓冲数据
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}

/**
 * 绘制指定区域
 * 
 * @param start
 *            X轴开始的位置(全屏)
 * @param inputBuf
 *            缓冲区
 * @param rateX
 *            X轴数据缩小的比例
 * @param rateY
 *            Y轴数据缩小的比例
 * @param baseLine
 *            Y轴基线
 */
void SimpleDraw(int start byte[] inputBuf int rateX int rateY
int baseLine) {
if (start == 0)
oldX = 0;
// 根据需要缩小X轴比例
byte[] buffer = new byte[inputBuf.length / rateX];
for (int i = 0 ii = 0; i < buffer.length; i++ ii = i * rateX)
buffer[i] = inputBuf[ii];

Canvas canvas = sfv.getHolder().lockCanvas(
new Rect(0 start sfv.getWidth() start + buffer.length));// 关键:获取画布
canvas.drawColor(Color.BLACK);// 清除背景

for (int i = 0; i < buffer.le

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-09-03 04:59  bluetoothECG-master\
     文件         403  2013-09-03 04:59  bluetoothECG-master\.gitignore
     目录           0  2013-09-03 04:59  bluetoothECG-master\.settings\
     目录           0  2013-09-03 04:59  bluetoothECG-master\.settings\.svn\
     文件         246  2013-09-03 04:59  bluetoothECG-master\.settings\.svn\all-wcprops
     文件         402  2013-09-03 04:59  bluetoothECG-master\.settings\.svn\entries
     文件           2  2013-09-03 04:59  bluetoothECG-master\.settings\.svn\format
     目录           0  2013-09-03 04:59  bluetoothECG-master\.settings\.svn\text-base\
     文件         629  2013-09-03 04:59  bluetoothECG-master\.settings\.svn\text-base\org.eclipse.jdt.core.prefs.svn-base
     文件         629  2013-09-03 04:59  bluetoothECG-master\.settings\org.eclipse.jdt.core.prefs
     目录           0  2013-09-03 04:59  bluetoothECG-master\.svn\
     文件         797  2013-09-03 04:59  bluetoothECG-master\.svn\all-wcprops
     文件        1125  2013-09-03 04:59  bluetoothECG-master\.svn\entries
     文件           2  2013-09-03 04:59  bluetoothECG-master\.svn\format
     目录           0  2013-09-03 04:59  bluetoothECG-master\.svn\prop-base\
     文件          53  2013-09-03 04:59  bluetoothECG-master\.svn\prop-base\ic_launcher-web.png.svn-base
     目录           0  2013-09-03 04:59  bluetoothECG-master\.svn\text-base\
     文件         364  2013-09-03 04:59  bluetoothECG-master\.svn\text-base\.classpath.svn-base
     文件         846  2013-09-03 04:59  bluetoothECG-master\.svn\text-base\.project.svn-base
     文件        2604  2013-09-03 04:59  bluetoothECG-master\.svn\text-base\AndroidManifest.xml.svn-base
     文件       55743  2013-09-03 04:59  bluetoothECG-master\.svn\text-base\ic_launcher-web.png.svn-base
     文件         781  2013-09-03 04:59  bluetoothECG-master\.svn\text-base\proguard-project.txt.svn-base
     文件         563  2013-09-03 04:59  bluetoothECG-master\.svn\text-base\project.properties.svn-base
     文件        2604  2013-09-03 04:59  bluetoothECG-master\AndroidManifest.xml
     文件       10273  2013-09-03 04:59  bluetoothECG-master\LICENSE
     文件         231  2013-09-03 04:59  bluetoothECG-master\README.md
     目录           0  2013-09-03 04:59  bluetoothECG-master\assets\
     目录           0  2013-09-03 04:59  bluetoothECG-master\assets\.svn\
     文件          92  2013-09-03 04:59  bluetoothECG-master\assets\.svn\all-wcprops
     文件         256  2013-09-03 04:59  bluetoothECG-master\assets\.svn\entries
     文件           2  2013-09-03 04:59  bluetoothECG-master\assets\.svn\format
............此处省略317个文件信息

评论

共有 条评论