钛极OS(TiJOS)物联网操作系统之小试牛刀(1)——灯、按键

版权声明:本文为博主原创文章,如转载请注明出处和作者。 https://blog.csdn.net/crashMaker/article/details/78666687

钛极OS(TiJOS)物联网操作系统之小试牛刀(1)——灯、按键

作者:crashMaker

说明

开发环境的搭建以及应用工程的创建方法在这里不再赘述,可参考笔者文章《钛极OS(TiJOS)物联网操作系统之初体验》或访问钛极OS(TiJOS)系统官方发布的教程☞钛极OS(TiJOS)应用开发环境搭建

功能实现

一个按键控制一个灯的亮灭,初始状态灯灭,按键一次灯亮,再按一次灯灭。

硬件准备

  1. TiKit-T600-ESP8266A 开发板
  2. TiLED灯模块(四灯一组)
  3. TiButton按键模块(四按键一组)
  4. 杜邦线若干
  5. 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中打印日志如下:

这里写图片描述

猜你喜欢

转载自blog.csdn.net/crashMaker/article/details/78666687
今日推荐