由于我们在示波器中必须用到多线程,所以我们在实现示波器的动态获取数据功能之前,中间插一篇有关processing多线程的探索内容。
虽然,表面上processing和arduino的封装差不多,一开始都是一个setup,但我们知道要在arduino中实现多线程几乎不可能,最常见的方法就是用中断,而arduino中的中断资源是有限的,比如串口通讯就使用了中断资源,而且效果也不是太好(当然也有一些第三方的类库表示可以模拟多线程,但毕竟在单片机上模拟效果也好不到哪里去)。
我们的processing毕竟是一个运行在PC端的东东,而且是java的地基,那么,实现多线程应该是不在话下的,但在processing的reference中一个thread的关键词都找不到,一度使我沮丧,但经过摸索最后我发现了 registerMethod函数,经过这个函数,我们可以在setup中注册一个名称为post的方法与draw函数并行的函数。
我们来看看它的具体应用:
int x=0;
void setup()
{
registerMethod("post", this);
}
void draw()
{
println("####here is draw function running :"+x);
}
void post()
{
++x;
println("*---------post1 running----------");
}
运行结果如下:
这充分说明,draw和post是并行运行的!我们了解我processing的线程调用了,后面的示波器的适时数据获取和显示就能够很好的实现了。