在和硬件打交道的需求中,需要把我们的测试机连接一些usb数据的东西.
这个时候我们想要在AS上查看日志,因没数据线所以看不到实时日志.
这时候我们就需要用到以下的一个工具,“USR-TCP232”,这个串口/网络调试助手,自行去百度搜索下载.
http://www.smzy.com/smzy/down118428.html
这个链接是我在网上找的,应该可以下载下来,因为我电脑上有这个工具,我没下载.这个不可以的话,自行找一个可以打开的.
界面大概是这样的
操作步骤
PC端
1.更改udp方式
我们选择udp,选择完成之后,自动会选择你当前的ip地址.如果没有自动设置,请自行去查看本地ip地址
2.设置端口号
设置端口号尽量写一个独特的,不可思议的不要超过65535.不要和设备上别的端口有冲突.这样会出现意想不到的错误.
3.开启连接
图中的(1),(2),(3)设置完毕之后点击Connect,然后这个工具就告辞一段落了.我没让你关掉…后台挂着
Android端
这里就不同了,因为我们连接的方式是用udp方式连接,所以我们要在APP里写一段udp连接方式
初始化udp工具.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 注册udp发送命令
UdpUtils.instance.init()
}
import java.io.IOException
import java.net.DatagramPacket
import java.net.DatagramSocket
import java.net.InetAddress
import kotlin.concurrent.thread
import java.io.IOException
import java.net.DatagramPacket
import java.net.DatagramSocket
import java.net.InetAddress
import kotlin.concurrent.thread
/**
* Created by Android Studio.
* User: GGY
* Date: 2020/3/24
* 此类使用手机连接设备无法在AS上查看日志,通过udp把日志发送pc端查看日志.
* 使用:打开udp工具类,切换udp连接,随便写一个端口号(最好独特一些,不要和别的应用有冲突,比如,11111,22222,不要超过65535)
* 然后打开连接,udp工具完事.,
* 本类里需要改动在udp工具里写的那个端口号监听
*/
class UdpUtils private constructor() {
private val scope = CoroutineScope(Job() + Dispatchers.IO)
private var datagramSocket: DatagramSocket = DatagramSocket()
companion object {
val instance by lazy { UdpUtils() }
}
fun log(data: String) {
scope.launch {
try {
val serverAddress = InetAddress.getByName("192.168.11.180")
val toUByteArray = data.toByteArray()
// 这个端口号要写udp工具里写的
val packet = DatagramPacket(toUByteArray, toUByteArray.size, serverAddress, 30000)
datagramSocket.send(packet)
} catch (e: IOException) {
}
}
}
}
使用
UdpUtils.instance.log("id:$id lac:$lac lon:$lon arfcn:$arfcn")
测试图: