kopia lustrzana https://github.com/N0BOY/FT8CN
rodzic
ffed0a8898
commit
069205d44a
|
@ -355,13 +355,26 @@ public class MainViewModel extends ViewModel {
|
|||
|
||||
//创建发射对象,回调:发射前,发射后、QSL成功后。
|
||||
ft8TransmitSignal = new FT8TransmitSignal(databaseOpr, new OnDoTransmitted() {
|
||||
private boolean needControlSco() {
|
||||
if (GeneralVariables.connectMode == ConnectMode.NETWORK) {
|
||||
return false;
|
||||
}
|
||||
if (GeneralVariables.controlMode != ControlMode.CAT) {
|
||||
return true;
|
||||
}
|
||||
if (baseRig != null && !baseRig.supportWaveOverCAT()) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBeforeTransmit(Ft8Message message, int functionOder) {
|
||||
if (GeneralVariables.controlMode == ControlMode.CAT
|
||||
|| GeneralVariables.controlMode == ControlMode.RTS
|
||||
|| GeneralVariables.controlMode == ControlMode.DTR) {
|
||||
if (baseRig != null) {
|
||||
if (GeneralVariables.connectMode != ConnectMode.NETWORK) stopSco();
|
||||
if (needControlSco()) stopSco();
|
||||
baseRig.setPTT(true);
|
||||
}
|
||||
}
|
||||
|
@ -379,7 +392,7 @@ public class MainViewModel extends ViewModel {
|
|||
|| GeneralVariables.controlMode == ControlMode.DTR) {
|
||||
if (baseRig != null) {
|
||||
baseRig.setPTT(false);
|
||||
if (GeneralVariables.connectMode != ConnectMode.NETWORK) startSco();
|
||||
if (needControlSco()) startSco();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -397,6 +410,31 @@ public class MainViewModel extends ViewModel {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportTransmitOverCAT() {
|
||||
if (GeneralVariables.controlMode != ControlMode.CAT) {
|
||||
return false;
|
||||
}
|
||||
if (baseRig == null) {
|
||||
return false;
|
||||
}
|
||||
if (!baseRig.isConnected() || !baseRig.supportWaveOverCAT()) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTransmitOverCAT(Ft8Message msg) {
|
||||
if (!supportTransmitOverCAT()) {
|
||||
return;
|
||||
}
|
||||
sendWaveDataRunnable.baseRig = baseRig;
|
||||
sendWaveDataRunnable.message = msg;
|
||||
sendWaveDataThreadPool.execute(sendWaveDataRunnable);
|
||||
}
|
||||
|
||||
}, new OnTransmitSuccess() {//当通联成功时
|
||||
@Override
|
||||
public void doAfterTransmit(QSLRecord qslRecord) {
|
||||
|
@ -600,7 +638,14 @@ public class MainViewModel extends ViewModel {
|
|||
}
|
||||
baseRig.setControlMode(GeneralVariables.controlMode);
|
||||
CableConnector connector = new CableConnector(context, port, GeneralVariables.baudRate
|
||||
, GeneralVariables.controlMode);
|
||||
, GeneralVariables.controlMode, baseRig);
|
||||
connector.setOnCableDataReceived(new CableConnector.OnCableDataReceived() {
|
||||
@Override
|
||||
public void OnWaveReceived(int bufferLen, float[] buffer) {
|
||||
Log.i(TAG, "call hamRecorder.doOnWaveDataReceived");
|
||||
hamRecorder.doOnWaveDataReceived(bufferLen, buffer);
|
||||
}
|
||||
});
|
||||
baseRig.setOnRigStateChanged(onRigStateChanged);
|
||||
baseRig.setConnector(connector);
|
||||
connector.connect();
|
||||
|
@ -714,13 +759,6 @@ public class MainViewModel extends ViewModel {
|
|||
* 根据指令集创建不同型号的电台
|
||||
*/
|
||||
private void connectRig() {
|
||||
if ((GeneralVariables.instructionSet == InstructionSet.FLEX_NETWORK)
|
||||
|| (GeneralVariables.instructionSet == InstructionSet.ICOM
|
||||
&& GeneralVariables.connectMode == ConnectMode.NETWORK)) {
|
||||
hamRecorder.setDataFromLan();
|
||||
} else {
|
||||
hamRecorder.setDataFromMic();
|
||||
}
|
||||
baseRig = null;
|
||||
//此处判断是用什么类型的电台,ICOM,YAESU 2,YAESU 3
|
||||
switch (GeneralVariables.instructionSet) {
|
||||
|
@ -775,12 +813,23 @@ public class MainViewModel extends ViewModel {
|
|||
case InstructionSet.WOLF_SDR_USB:
|
||||
baseRig = new Wolf_sdr_450Rig(true);
|
||||
break;
|
||||
|
||||
case InstructionSet.TRUSDX:
|
||||
baseRig = new TrUSDXRig();//(tr)uSDX
|
||||
break;
|
||||
}
|
||||
|
||||
if ((GeneralVariables.instructionSet == InstructionSet.FLEX_NETWORK)
|
||||
|| (GeneralVariables.instructionSet == InstructionSet.ICOM
|
||||
&& GeneralVariables.connectMode == ConnectMode.NETWORK)) {
|
||||
hamRecorder.setDataFromLan();
|
||||
} else {
|
||||
if (GeneralVariables.controlMode != ControlMode.CAT || baseRig == null || !baseRig.supportWaveOverCAT()) {
|
||||
hamRecorder.setDataFromMic();
|
||||
} else {
|
||||
hamRecorder.setDataFromLan();
|
||||
}
|
||||
}
|
||||
|
||||
mutableIsFlexRadio.postValue(GeneralVariables.instructionSet == InstructionSet.FLEX_NETWORK);
|
||||
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue