极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 622|回复: 1

求助:自定义通信协议不懂,求大神帮忙

[复制链接]
发表于 2020-7-19 08:16:27 | 显示全部楼层 |阅读模式
import processing.serial.*;
Serial port;
public static final char HEADER = 'h';
public static final short LF = 10;
float vol;
float offset = 100;
float scaleVal = 35;
float angleInc = PI/60;
float angle = 0;
float dx = 0;
float under;
float high = 200;
//String[] com;
//String[] data;

void setup()
{
  //println(Serial.list());
  //com = Serial.list();
  port = new Serial(this,"com3",9600);
  port.bufferUntil('\n');
  size(600,200);
  noStroke();
  frameRate(60);
}

void draw()
{
  scaleVal = map(vol,under,high,0,90);
  print(scaleVal);
  background(204);
  fill(255,0,0);
  rect(20,20,20,20);
  fill(0);
  for (int posx=0;posx<=width;posx++)
  {
    float posy = offset+sin(angle-dx)*scaleVal;
    rect(posx,posy,1,1);
    angle+=angleInc;
  }
  dx+=0.05;
  angle = 0;
}

void serialEvent(Serial port)
{
  String message = port.readStringUntil(LF);
  if (message != null)
  {
    //print(message);
    String [] data = message.split(",");
    //println(data[0].charAt(0));
    if (data[0].charAt(0) == HEADER)
    {
      print("hello");
      if(data.length >1)
      {
        vol = Integer.parseInt(data[1]);
        print(vol);
        if (high < vol)
        {
          vol = high;
        }
        if (under > vol)
        {
          vol = under;
        }
      }
    }
  }
}

void mouseClicked()
{
  if (mouseX<40&&mouseX>20)
  {
    if (mouseY<40&&mouseY>20)
    {
      under = vol;
    }
  }
}

碰到的问题:h是自定义的起始位置,那为什么接收到的数据会有h呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊 ( 浙ICP备09023225号 )

GMT+8, 2020-9-30 07:51 , Processed in 0.045600 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表