FT8CN/ft8cn/app/src/main/java/com/bg7yoz/ft8cn/icom/IcomControlUdp.java

60 wiersze
2.0 KiB
Java
Czysty Wina Historia

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.bg7yoz.ft8cn.icom;
/**
* ICom的控制流。
*
* @author BGY70Z
* @date 2023-03-20
*/
import android.util.Log;
import java.net.DatagramPacket;
import java.util.Timer;
import java.util.TimerTask;
public class IcomControlUdp extends ControlUdp {
private static final String TAG = "IcomControlUdp";
public IcomControlUdp(String userName, String password, String remoteIp, int remotePort) {
super(userName,password,remoteIp,remotePort);
civUdp = new IcomCivUdp();
audioUdp = new IcomAudioUdp();
civUdp.rigIp = remoteIp;
audioUdp.rigIp = remoteIp;
civUdp.openStream();
audioUdp.openStream();
}
/**
* 处理电台发送过来的connInfo0x90数据包电台发送0x90包有两次第一次busy=0,第二次busy=1。
* 在0x90数据包中取macAddress电台名称
*
* @param data 0x90数据包
*/
@Override
public void onReceiveConnInfoPacket(byte[] data) {
rigMacAddress = IComPacketTypes.ConnInfoPacket.getMacAddress(data);
rigIsBusy = IComPacketTypes.ConnInfoPacket.getBusy(data);
rigName = IComPacketTypes.ConnInfoPacket.getRigName(data);
if (!rigIsBusy) {//说明是第一次收到0x90数据包要回复一个x090数据包
sendTrackedPacket(
IComPacketTypes.ConnInfoPacket.connInfoPacketData(data, (short) 0
, localId, remoteId
, (byte) 0x01, (byte) 0x03, innerSeq, localToken, rigToken
, rigName, userName
, IComPacketTypes.AUDIO_SAMPLE_RATE//接收12000采样率
, IComPacketTypes.AUDIO_SAMPLE_RATE//发射12000采样率
, civUdp.localPort, audioUdp.localPort
, IComPacketTypes.XIEGU_TX_BUFFER_SIZE));//0x96是wfView常用的缓冲区长度
//, IComPacketTypes.TX_BUFFER_SIZE));//0xf0是之前测试的缓冲区长度
innerSeq++;
}
}
}