钛极OS(TiJOS)物联网操作系统之小试牛刀(1)——灯、按键
作者:crashMaker
说明
开发环境的搭建以及应用工程的创建方法在这里不再赘述,可参考笔者文章《钛极OS(TiJOS)物联网操作系统之初体验》或访问钛极OS(TiJOS)系统官方发布的教程☞钛极OS(TiJOS)应用开发环境搭建
功能实现
一个按键控制一个灯的亮灭,初始状态灯灭,按键一次灯亮,再按一次灯灭。
硬件准备
- TiKit-T600-ESP8266A 开发板
- TiLED灯模块(四灯一组)
- TiButton按键模块(四按键一组)
- 杜邦线若干
- USB线两条
硬件连接
TiKit开发板<——连接——>TiLED灯模块
PIN0 <——连接——>R(红色灯)
3.3V <——连接——>3.3V
===================================
TiKit开发板<——连接——>TiButton按键模块
PIN1 <——连接——>B1(S1按键)
GND <——连接——>GND
===================================
程序编写
在Eclipse中新建TiJOS Application工程,编写JAVA代码如下:
import java.io.IOException;
import tijos.framework.devicecenter.TiGPIO;
import tijos.framework.sensor.button.ITiButtonEventListener;
import tijos.framework.sensor.button.TiButton;
import tijos.framework.transducer.led.TiLED;
import tijos.util.Delay;
class ButtonEventListener implements ITiButtonEventListener {
private TiLED _led = null;
//构造方法,传入TiLED对象
public ButtonEventListener(TiLED led) {
this._led = led;
}
@Override
public void onPressed(TiButton button) {
//如果事件信号线是pin1
if(button.getSignalPinID() == 1) {
try {
this._led.turnOver();//状态翻转,亮灭交替
}
catch(IOException e) {
e.printStackTrace();
}
}
}
@Override
public void onReleased(TiButton button) {
//释放事件不做处理
}
}
/**
* 一个按键控制一个灯的亮灭,初始状态灯灭,按键一次灯亮,再按一次灯灭
* @author crashMaker
*
*/
public class LedandButton {
public static void main(String[] args) {
try {
//定义要用到的硬件资源,使用GPIO的port0,以及port0下的pin0和pin1
int gpioPort = 0;
int ledRPin = 0;
int buttonS1Pin = 1;
//硬件资源分配
TiGPIO gpio = TiGPIO.open(gpioPort, ledRPin, buttonS1Pin);
//资源与实例绑定,完成与硬件的映射
TiLED ledR = new TiLED(gpio, ledRPin);
TiButton buttonS1 = new TiButton(gpio, buttonS1Pin);
//创建按键事件监听对象,并设置按键监听者
ButtonEventListener lc = new ButtonEventListener(ledR);
buttonS1.setEventListener(lc);
//保证主线程不退出
while(true) {
//线程睡眠1秒
Delay.msDelay(1000);
}
}
catch(IOException e) {
e.printStackTrace();
}
}
}
功能演示
在Eclipse中执行“Run As TiJOS Application”,运行编写的应用程序,演示效果如下:
应用运行后,在Eclipse中打印日志如下: