kopia lustrzana https://github.com/N0BOY/FT8CN
90 wiersze
2.7 KiB
Java
90 wiersze
2.7 KiB
Java
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);
|
||
}
|
||
}
|