mirror of
https://github.com/atsunatsu/Look4Sat.git
synced 2026-10-02 03:15:37 +00:00
Add initial support for Icom IC-705 radio
- Added support for Icom IC-705 radio model with split mode functionality. - Updated RadioTrackingService to handle single-radio split mode and dual-radio configurations. - Modified MainContainer to provide appropriate radio controllers based on selected model. - Enhanced SettingsRepo to include split mode preference in radio control settings. - Updated UI in SettingsDialog to allow toggling of split mode for IC-705 and adjust device selection accordingly. - Improved handling of baud rates based on selected radio model. - Added extended operations in IRadioController for IC-705 specific commands.
This commit is contained in:
1 parent
b17ea2d918
commit
d700432829
8 files changed
+1122
-287
No files matched your search
@@ -74,12 +74,20 @@ data class RadioControlSettings(
|
||||
val rxRadioAddress: String,
|
||||
val txRadioName: String,
|
||||
val rxRadioName: String,
|
||||
val baudRate: Int
|
||||
val baudRate: Int,
|
||||
/** IC-705 only: use single-radio split-VFO mode instead of two radios. */
|
||||
val splitMode: Boolean = false
|
||||
) {
|
||||
companion object {
|
||||
val SUPPORTED_RADIOS = listOf(
|
||||
"Yaesu FT-817/818",
|
||||
"Yaesu FT-857/897"
|
||||
)
|
||||
const val MODEL_YAESU_FT817 = "Yaesu FT-817/818"
|
||||
const val MODEL_YAESU_FT857 = "Yaesu FT-857/897"
|
||||
const val MODEL_ICOM_IC705 = "Icom IC-705"
|
||||
|
||||
val SUPPORTED_RADIOS = listOf(MODEL_YAESU_FT817, MODEL_YAESU_FT857, MODEL_ICOM_IC705)
|
||||
|
||||
/** Baud rates available for Yaesu radios. */
|
||||
val BAUD_RATES_YAESU = listOf(4800, 9600, 38400)
|
||||
/** Baud rates available for Icom IC-705 (higher speeds supported via CI-V USB/BT). */
|
||||
val BAUD_RATES_ICOM = listOf(4800, 9600, 19200, 38400, 57600, 115200)
|
||||
}
|
||||
}
|
||||
+30
@@ -38,4 +38,34 @@ interface IRadioController {
|
||||
suspend fun pttOn(): Boolean
|
||||
|
||||
suspend fun pttOff(): Boolean
|
||||
|
||||
// ── Extended operations (IC-705 / CI-V) ──────────────────────────────
|
||||
|
||||
/**
|
||||
* Read the current PTT status from the radio.
|
||||
* Returns true if transmitting, false if receiving, null on error.
|
||||
* Default: not supported.
|
||||
*/
|
||||
suspend fun readPttStatus(): Boolean? = null
|
||||
|
||||
/**
|
||||
* Select the active VFO.
|
||||
* @param vfoA true → VFO-A (main/RX), false → VFO-B (sub/TX in split).
|
||||
* Default: no-op.
|
||||
*/
|
||||
suspend fun setVfo(vfoA: Boolean): Boolean = false
|
||||
|
||||
/**
|
||||
* Enable or disable SPLIT mode (TX on sub-VFO, RX on main VFO).
|
||||
* Default: not supported.
|
||||
*/
|
||||
suspend fun setSplitMode(enabled: Boolean): Boolean = false
|
||||
|
||||
/**
|
||||
* Set the frequency of the currently active VFO.
|
||||
* On radios that support it (IC-705: CMD 0x25 sub 0x00) this updates
|
||||
* the active VFO without switching.
|
||||
* Default: delegates to [setFrequency].
|
||||
*/
|
||||
suspend fun setWorkingFrequency(frequencyHz: Long): Boolean = setFrequency(frequencyHz)
|
||||
}
|
||||
Reference in new issue
Block a user