物联网- Android-校园门闸控制系统

校门门闸控制系统

前沿:

本次程序是基于新大陆提供的jar包进行开发,如有冒犯。
	可联系作者进行删除:oldthank7@gmail.com

任务需求:

1. 按住前进按钮,推杆能够前进,松开即停止
2. 按住后退按钮,推杆能够后退,松开即停止
3. 显示当前状态可以根据推杆的状态实时变化,包括前进、后退、停止。

常见问题:

socket failed: EACCES (Permission denied);
1、网络权限没权限。
2、其他设备正在连接串口服务器。

failed to connect to /172.16.3.15 (port 6001): connect failed: EHOSTUNREACH (No route to host);
移动终端-串口服务器是否在同一个局域网
可以尝试ping  查看网络是否通畅

程序已开源到GitHub

链接: 直达GitHub.

主要实现

  1. 用户保存连接实例
public static Modbus4150 modbus4150;

   private static String IP;
   private static Integer Port;
   private static Integer PutterOpen;
   private static Integer PutterClose;
  1. 连接方式可根据需求进行切换
public void Conection(View view) {
       SettingUtils settingUtils = new SettingUtils();

       settingUtils.setIP(editip.getText().toString());
       settingUtils.setPort(editToInteger(editport));
       settingUtils.setPutterOpen(editToInteger(putteropen));
       settingUtils.setPutterClose(editToInteger(putterclose));

       if (SettingUtils.getModbus4150() == null) {
           String ip = SettingUtils.getIP();
           Integer port = SettingUtils.getPort();
           //Socket-连接
           Modbus4150 modbus4150 = new Modbus4150(DataBusFactory.newSocketDataBus(ip,port));
           //串口服务器-连接
//          Modbus4150 modbus4150 = new Modbus4150(DataBusFactory.newSerialDataBus(0,9600));
           SettingUtils.setModbus4150(modbus4150);
       }else{
           Toast.makeText(this, "TCP已连接...", Toast.LENGTH_SHORT).show();
       }

   }
  1. 重点实现
/**
    * 任务需求:可以查询README.md
    * @param v
    * @param event
    * @return
    */
   @Override
   public boolean onTouch(View v, MotionEvent event) {

       int action = event.getAction();

   		//判断按钮状态是不是松开
       if (action == MotionEvent.ACTION_CANCEL || action == MotionEvent.ACTION_UP){
       		//切换相应的图片进行交互
           runOnUiThread(()->imageView.setImageResource(R.drawable.ic_media_play));
           try {
           		//松开我们将进行相应的控制,关闭所设置的继电器
               modbus4150.closeRelay(SettingUtils.getPutterOpen(),(i)->{});
               modbus4150.closeRelay(SettingUtils.getPutterClose(),(i)->{});
           } catch (Exception e) {
               e.printStackTrace();
           }
       }else if(action == MotionEvent.ACTION_DOWN) // 按下状态
       {
           switch (v.getId()) {
               case R.id.imagebtnOpen:
                   try {
                       modbus4150.openRelay(SettingUtils.getPutterOpen(),(open)->{
                           System.out.println("open = " + open);
                           //ui图片进行切换
                           runOnUiThread(()->imageView.setImageResource(R.drawable.ic_media_rew));
                       });
                   } catch (Exception e) {
                       e.printStackTrace();
                   }

                   break;
               case R.id.imagebtnClose:
                   try {
                       modbus4150.openRelay(SettingUtils.getPutterClose(),(close)->{
                           System.out.println("close = " + close);
                           //ui图片进行切换
                           runOnUiThread(()->imageView.setImageResource(R.drawable.ic_media_ff));
                       });
                   } catch (Exception e) {
                       e.printStackTrace();
                   }
                   break;
           }
       }
       return true;
   }

效果图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值