FT8CN/ft8cn/app/src/main/java/com/bg7yoz/ft8cn/rigs/XieGu6100NetRig.java

90 wiersze
2.7 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.rigs;
import android.util.Log;
import com.bg7yoz.ft8cn.Ft8Message;
import com.bg7yoz.ft8cn.GeneralVariables;
import com.bg7yoz.ft8cn.connector.X6100Connector;
import com.bg7yoz.ft8cn.ft8transmit.GenerateFT8;
/**
* XieGu6100的ft8cns模式只支持网络模式所以在设置baseRig时要做好判断
*/
public class XieGu6100NetRig extends BaseRig {
private static final String TAG = "x6100RigNet";
//private final int ctrAddress = 0xE0;//接收地址默认0xE0;电台回复命令有时也可以是0x00
@Override
public void setPTT(boolean on) {
super.setPTT(on);
if (getConnector() != null) {
getConnector().setPttOn(on);
}
}
@Override
public boolean isConnected() {
if (getConnector() == null) {
return false;
}
return getConnector().isConnected();
}
@Override
public void setUsbModeToRig() {
if (getConnector() != null) {
X6100Connector x6100Connector =(X6100Connector)getConnector();
x6100Connector.getXieguRadio().commandSetMode("u-dig",1);
}
}
@Override
public void setFreqToRig() {
if (getConnector() != null) {
X6100Connector x6100Connector =(X6100Connector)getConnector();
x6100Connector.getXieguRadio().commandTuneFreq(getFreq());
}
}
@Override
public void onReceiveData(byte[] data) {
//命令解析都在X6100Radio中完成了此处不需要动作了
}
@Override
public void sendWaveData(Ft8Message message) {//发送音频数据到电台,用于网络方式
if (getConnector() != null) {//把生成的具体音频数据传递到Connector
//判断如果是ft8cns就传输a19数据包
if (GeneralVariables.instructionSet == InstructionSet.XIEGU_6100_FT8CNS){
//Log.e(TAG,"generate A91");
getConnector().sendFt8A91(GenerateFT8.generateA91(message,true)
,GeneralVariables.getBaseFrequency());
}else {//否则正常传输音频数据
float[] data = GenerateFT8.generateFt8(message, GeneralVariables.getBaseFrequency()
, 12000);//此处电台发射音频的采样率是12000
getConnector().sendWaveData(data);
}
}
}
@Override
public void readFreqFromRig() {//通过X6100Radio的状态来获取频率此处获取频率指令不需要了
}
@Override
public String getName() {
return "XIEGU X6100 series";
}
public XieGu6100NetRig(int civAddress) {
Log.d(TAG, "x6100RigNet: Create.");
setCivAddress(civAddress);
}
}