资源简介
安卓蓝牙连接单片机蓝牙模块,获取蓝牙模块数据,根据数据进行绘图
代码片段和文件信息
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-ba
文件 629 2013-09-03 04:59 bluetoothECG-master\.settings\.svn\text-ba
文件 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-ba
文件 53 2013-09-03 04:59 bluetoothECG-master\.svn\prop-ba
目录 0 2013-09-03 04:59 bluetoothECG-master\.svn\text-ba
文件 364 2013-09-03 04:59 bluetoothECG-master\.svn\text-ba
文件 846 2013-09-03 04:59 bluetoothECG-master\.svn\text-ba
文件 2604 2013-09-03 04:59 bluetoothECG-master\.svn\text-ba
文件 55743 2013-09-03 04:59 bluetoothECG-master\.svn\text-ba
文件 781 2013-09-03 04:59 bluetoothECG-master\.svn\text-ba
文件 563 2013-09-03 04:59 bluetoothECG-master\.svn\text-ba
文件 2604 2013-09-03 04:59 bluetoothECG-master\AndroidManifest.xm
文件 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个文件信息
相关资源
- AVR单片机驱动OV7670摄像头源代码-堪称
- 蓝牙控制单片机开关
- 原创代码,stm32f103单片机modbus485通讯
- 51单片机 PROTUES仿真大全
- MC9S12XS单片机原理及嵌入式系统开发资
- 课程设计基于单片机的八路抢答器.
- STM32F103C8T6-LED例程
- stm32解析GPS模块数据流
- avr单片机例程@天祥电子
- stm32单片机+串口通信+温度采集
- 蓝牙hc程序实现APP与单片机STM32F103的通
- 0023、基于51单片机的数字频率计设计
- 基于51单片机的自动窗帘程序和PCB
- 单片机外围电路设计攻略全
- 51单片机智能电表全部解决方案ad原理
- PID算法电机转速控制仿真截图
- STC89C52 开发板PCB电路图与配套程
- 基于DS18B20的单片机温度控制系统
- 基于单片机汇编的带时钟显示的计算
- 多功能智能小车原理图及PCB文件
- 基于51单片机160种例程
- 51系列单片机设计_楼然苗李光飞 第二
- stm32单片机实现心电图采样以及显示
- FPGA单片机4线spi方式驱动OLED有机屏幕
- 51单片机常用辅助开发软件合集
- 基于51单片机的高敏度电子秤设计
- 51单片机制作电压电流表
- STM32F103单片机基于RS485总线的MODBUS通讯
- 辉光管时钟全套开源资料 PCB 源码 5
- 单片机交直流电压表的设计
评论
共有 条评论