diff --git a/codec2talkie/build.gradle b/codec2talkie/build.gradle index c46ddff..d4bec50 100644 --- a/codec2talkie/build.gradle +++ b/codec2talkie/build.gradle @@ -10,8 +10,8 @@ android { applicationId "com.radio.codec2talkie" minSdkVersion 23 targetSdkVersion 30 - versionCode 164 - versionName "1.64" + versionCode 165 + versionName "1.65" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/codec2talkie/src/main/java/com/radio/codec2talkie/protocol/Kiss.java b/codec2talkie/src/main/java/com/radio/codec2talkie/protocol/Kiss.java index 36885bd..1196ada 100644 --- a/codec2talkie/src/main/java/com/radio/codec2talkie/protocol/Kiss.java +++ b/codec2talkie/src/main/java/com/radio/codec2talkie/protocol/Kiss.java @@ -155,33 +155,48 @@ public class Kiss implements Protocol { private void initializeExtended() throws IOException { /* - struct LoraControlCommand { - uint32_t freq; + struct SetHardware { + uint32_t freqRx; + uint32_t freqTx; + uint8_t modType; + uint16_t pwr; uint32_t bw; uint16_t sf; uint16_t cr; - uint16_t pwr; uint16_t sync; uint8_t crc; - } __attribute__((packed)); + uint32_t fskBitRate; + uint32_t fskFreqDev; + uint32_t fskRxBw; + } __attribute__((packed)); */ String freq = _sharedPreferences.getString(PreferenceKeys.KISS_EXTENSIONS_RADIO_FREQUENCY, "433775000"); + String freqTx = _sharedPreferences.getString(PreferenceKeys.KISS_EXTENSIONS_RADIO_FREQUENCY_TX, "433775000"); + String modType = _sharedPreferences.getString(PreferenceKeys.KISS_EXTENSIONS_RADIO_MOD, "0"); String bw = _sharedPreferences.getString(PreferenceKeys.KISS_EXTENSIONS_RADIO_BANDWIDTH, "125000"); String sf = _sharedPreferences.getString(PreferenceKeys.KISS_EXTENSIONS_RADIO_SF, "7"); String cr = _sharedPreferences.getString(PreferenceKeys.KISS_EXTENSIONS_RADIO_CR, "6"); String pwr = _sharedPreferences.getString(PreferenceKeys.KISS_EXTENSIONS_RADIO_POWER, "20"); String sync = _sharedPreferences.getString(PreferenceKeys.KISS_EXTENSIONS_RADIO_SYNC, "34"); byte crc = (byte)(_sharedPreferences.getBoolean(PreferenceKeys.KISS_EXTENSIONS_RADIO_CRC, true) ? 1 : 0); + String fskBitRate = _sharedPreferences.getString(PreferenceKeys.KISS_EXTENSIONS_RADIO_FSK_BIT_RATE, "4800"); + String fskFreqDev = _sharedPreferences.getString(PreferenceKeys.KISS_EXTENSIONS_RADIO_FSK_FREQ_DEV, "1200"); + String fskRxBw = _sharedPreferences.getString(PreferenceKeys.KISS_EXTENSIONS_RADIO_FSK_FREQ_DEV, "9700"); ByteBuffer rawBuffer = ByteBuffer.allocate(KISS_RADIO_CONTROL_COMMAND_SIZE); rawBuffer.putInt(Integer.parseInt(freq)) + .putInt(Integer.parseInt(freqTx)) + .put(Byte.parseByte(modType)) .putInt(Integer.parseInt(bw)) .putShort(Short.parseShort(sf)) .putShort(Short.parseShort(cr)) .putShort(Short.parseShort(pwr)) .putShort(Short.parseShort(sync, 16)) .put(crc) + .putInt(Integer.parseInt(fskBitRate)) + .putInt(Integer.parseInt(fskFreqDev)) + .putInt(Integer.parseInt(fskRxBw)) .rewind(); startKissPacket(KISS_CMD_SET_HARDWARE); diff --git a/codec2talkie/src/main/java/com/radio/codec2talkie/settings/PreferenceKeys.java b/codec2talkie/src/main/java/com/radio/codec2talkie/settings/PreferenceKeys.java index 57e4ab2..e8c2c45 100644 --- a/codec2talkie/src/main/java/com/radio/codec2talkie/settings/PreferenceKeys.java +++ b/codec2talkie/src/main/java/com/radio/codec2talkie/settings/PreferenceKeys.java @@ -47,13 +47,18 @@ public final class PreferenceKeys { public static String KISS_SCRAMBLER_ITERATIONS = "kiss_scrambler_iterations"; public static String KISS_EXTENSIONS_ENABLED = "kiss_extensions_enable"; + public static String KISS_EXTENSIONS_RADIO_MOD = "kiss_extension_radio_mod"; public static String KISS_EXTENSIONS_RADIO_FREQUENCY = "kiss_extension_radio_frequency"; + public static String KISS_EXTENSIONS_RADIO_FREQUENCY_TX = "kiss_extension_radio_frequency_tx"; public static String KISS_EXTENSIONS_RADIO_BANDWIDTH = "kiss_extension_radio_bandwidth"; public static String KISS_EXTENSIONS_RADIO_POWER = "kiss_extension_radio_power"; public static String KISS_EXTENSIONS_RADIO_SF = "kiss_extension_radio_sf"; public static String KISS_EXTENSIONS_RADIO_CR = "kiss_extension_radio_cr"; public static String KISS_EXTENSIONS_RADIO_SYNC = "kiss_extension_radio_sync"; public static String KISS_EXTENSIONS_RADIO_CRC = "kiss_extension_radio_crc"; + public static String KISS_EXTENSIONS_RADIO_FSK_BIT_RATE = "kiss_extension_radio_fsk_bit_rate"; + public static String KISS_EXTENSIONS_RADIO_FSK_FREQ_DEV = "kiss_extension_radio_fsk_freq_dev"; + public static String KISS_EXTENSIONS_RADIO_FSK_RX_BW = "kiss_extension_radio_fsk_rx_bw"; public static String KISS_EXTENSIONS_ACTION_REBOOT_REQUESTED = "com.radio.codec2talkie.MODEM_REBOOT";