赞
踩
参考各种大神分享的资料同时在同时指点下,终于实现了,动态改IP、端口,Android客户端与服务端(采用的网络调试助手)之间互相收发消息。
依靠inputstream 与outputstream 实现数据流的接收与发送。中间以JSON字符串作为数据的传输格式。
添加了滑动开关,以表示连接或者断开网络,目前正在解决,监控连网状态。。。。
当前已实现的,还有人性化的东西需要继续完善,也有不少问题需要花时间去解决。
防止在Json字符串转换过程出现中文乱码问题在后面加“gbk”.
Java数据读取时,防止文件中有中文出现乱码的情况,第一、对于字节流读取时,采用(new InputStreamReader(file,编码格式)函数,编码格式采用“gbk”,in = new BufferedReader(new InputStreamReader(
socket.getInputStream(),“gbk”));
第二、对于按字符流读取时,编码格式采用“UTF-8” 的方式。 in = new BufferedReader(new InputStreamReader(
socket.getInputStream(),“UTF-8”));
Android UI添加下拉列表功能:
QT直接有集成的控件,然而Android 没有,网上参考了
https://blog.csdn.net/u013068887/article/details/78294580 此篇博客,并将其添加到本界面中并加以改造,
下拉列表内容是可变的,添加了一个加载按钮当点击时,列表才会生成。因为本界面是基于Socket通信进行收发数据的,
因此,需将选中列表的数据发送给服务端,然后再接收服务端发来的信息, 此篇博主提醒采用eventbus 来实现,已实现了改功能,最终效果与Qt下拉 列表效果一样。
**
**
在build.gradle中配置:
dependencies {
......
implementation 'org.greenrobot:eventbus:3.1.1'
一行就配置好了。
使用就是三步:
注册/注销:
注册:EventBus.getDefault().register(this);
注销:EventBus.getDefault().unregister(this);
发布:EventBus.getDefault().post(messageEvent);
接收(包含四种模式):MAIN、POSTING、BACKGROURD、ASYNC
@Subscribe(threadMode = ThreadMode.MAIN)
public void XXX(MessageEvent messageEvent) {
…
}
处理消息的方法名字可以随便取,但是需要加一个注解@Subscribe,并且要指定线程模型。
具体可参考:https://www.jianshu.com/p/f9ae5691e1bb
https://blog.csdn.net/harvic880925/article/details/40660137
新的效果图:(2019.08.13)
以及电脑服务端新功能的添加已完成:按照所要求Excel格式保存缺货记录
同时完成通过modbusTCP协议与车体进行通信****(Modbus4j),控制车体到相应位置,外加控制灯带辅助拣货等功能。
以及输入目标位置转发的服务端,然后发送到车体,使车体运行到目标位置等功能。
Android客户端功能基本完成,电脑服务端需对后台数据进行处理,作为手持终端与运动车体之间的信息控制桥梁。
即:手持终端Android客户端与主机服务端(基于socket的TCP/IP )通信,主机与车体之间Modbus TCP通信,主机作为Master,车体作为slave。
未完。。。。。。。
等理清之后继续补充
注:因涉及公司项目,不便公布源码
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。