首先建立一个简单的主界面,以报警灯为例
传输过程为报警灯-继电器-4150-串口服务器
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="报警灯" android:textSize="50sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_bias="0.498" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.31" /> <Button android:id="@ id/up" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="打开" android:textSize="20sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.247" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.499" /> <Button android:id="@ id/down" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="关闭" android:textSize="20sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.758" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.499" />
之后开始在java刚刚设置的按钮在文件中定义
private Button up, down;
引用
up = findViewById(R.id.up); down = findViewById(R.id.down);
因为连接是4150,不是安卓带来的,所以要加入jar包
jar包路径为

然后可以引用4150
如下
private Modbus4150 modbus4150;
引用4150(括号表示串口ip地址和端口号连接在这里com2)
modbus4150 = new Modbus4150(DataBusFactory.newSocketDataBus("172.18.12.15", 6002));
连接ip地址需要一个获得权限的句子
位置和代码如下:
<uses-permission android:name="android.permission.INTERNET"/>
使用设置在主界面上up打开继电器
代码如下
up.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { modbus4150.openRelay(0, new MdBus4150RelayListener() { @Override public void onCtrl(boolean isSuccess) { if (isSuccess) { Log.d(TAG,"控制成功!打开"); }else { Log.d(TAG,"控制失败!关闭"); } } }); } catch (Exception e) { e.printStackTrace(); } } });
第一行为指针表示输入时up执行以下句子
openRelay表示打开继电器
第五行0表示继电器连接4150端口,我在这里连接DO0,所以写0
if句子的作用是方便检查命令是否传输到,也可以省略
关闭继电器指令是另一个指令(我在这里设置的是down)
再把openRelay换成closeRelay即可
将手机连接到串口连接wifi,将程序导入手机,实现区域控制
这是初学者的笔记,目的是方便复习,给像我这样的初学者一些小帮助
如有错误,欢迎大佬提问,我会一一纠正!