kopia lustrzana https://github.com/sh123/codec2_talkie
Porównaj commity
6 Commity
64e6b7f265
...
df80a982de
Autor | SHA1 | Data |
---|---|---|
sh123 | df80a982de | |
sh123 | 9886bccaf4 | |
sh123 | 3346003d2d | |
sh123 | 9dab9acad0 | |
sh123 | 561325757b | |
sh123 | 3a4438e80c |
|
@ -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"
|
||||
}
|
||||
|
|
|
@ -46,7 +46,7 @@ public class AppWorker extends Thread {
|
|||
private static final int AUDIO_MAX_LEVEL = 0;
|
||||
private static final int AUDIO_SAMPLE_SIZE = 8000;
|
||||
|
||||
private static final int PROCESS_INTERVAL_MS = 20;
|
||||
private static final int PROCESS_INTERVAL_MS = 10;
|
||||
private static final int LISTEN_AFTER_MS = 1500;
|
||||
|
||||
private boolean _needTransmission = false;
|
||||
|
|
|
@ -15,6 +15,7 @@ import com.radio.codec2talkie.protocol.message.TextMessage;
|
|||
import com.radio.codec2talkie.protocol.position.Position;
|
||||
import com.radio.codec2talkie.settings.PreferenceKeys;
|
||||
import com.radio.codec2talkie.settings.SettingsWrapper;
|
||||
import com.radio.codec2talkie.tools.DebugTools;
|
||||
import com.radio.codec2talkie.transport.Transport;
|
||||
|
||||
import java.io.IOException;
|
||||
|
@ -30,7 +31,7 @@ public class Kiss implements Protocol {
|
|||
private static final int FRAME_OUTPUT_BUFFER_SIZE = 1024;
|
||||
private static final int KISS_CMD_BUFFER_SIZE = 128;
|
||||
|
||||
private static final int KISS_RADIO_CONTROL_COMMAND_SIZE = 17;
|
||||
private static final int KISS_RADIO_CONTROL_COMMAND_SIZE = 34;
|
||||
|
||||
private static final byte KISS_FEND = (byte)0xc0;
|
||||
private static final byte KISS_FESC = (byte)0xdb;
|
||||
|
@ -155,41 +156,52 @@ 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");
|
||||
if (!_sharedPreferences.getBoolean(PreferenceKeys.KISS_EXTENSIONS_RADIO_SPLIT_FREQ, false)) freqTx = freq;
|
||||
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_RX_BW, "9700");
|
||||
|
||||
ByteBuffer rawBuffer = ByteBuffer.allocate(KISS_RADIO_CONTROL_COMMAND_SIZE);
|
||||
|
||||
rawBuffer.putInt(Integer.parseInt(freq))
|
||||
.putInt(Integer.parseInt(freqTx))
|
||||
.put(Byte.parseByte(modType))
|
||||
.putShort(Short.parseShort(pwr))
|
||||
.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);
|
||||
for (byte b: rawBuffer.array()) {
|
||||
sendKissByte(b);
|
||||
}
|
||||
completeKissPacket();
|
||||
|
||||
send(KISS_CMD_SET_HARDWARE, rawBuffer.array());
|
||||
_context.registerReceiver(onModemRebootRequested, new IntentFilter(PreferenceKeys.KISS_EXTENSIONS_ACTION_REBOOT_REQUESTED));
|
||||
}
|
||||
|
||||
|
@ -210,7 +222,7 @@ public class Kiss implements Protocol {
|
|||
@Override
|
||||
public void sendCompressedAudio(String src, String dst, int codec, byte[] frame) throws IOException {
|
||||
// NOTE, KISS does not distinguish between audio and data packet, upper layer should decide
|
||||
send(frame);
|
||||
send(KISS_CMD_DATA, frame);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -226,7 +238,7 @@ public class Kiss implements Protocol {
|
|||
@Override
|
||||
public void sendData(String src, String dst, String path, byte[] dataPacket) throws IOException {
|
||||
// NOTE, KISS does not distinguish between audio and data packet, upper layer should decide
|
||||
send(dataPacket);
|
||||
send(KISS_CMD_DATA, dataPacket);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -258,14 +270,14 @@ public class Kiss implements Protocol {
|
|||
}
|
||||
}
|
||||
|
||||
private void send(byte[] data) throws IOException {
|
||||
private void send(byte commandCode, byte[] data) throws IOException {
|
||||
// escape
|
||||
ByteBuffer escapedFrame = escape(data);
|
||||
int escapedFrameSize = escapedFrame.position();
|
||||
escapedFrame.rewind();
|
||||
|
||||
// send
|
||||
startKissPacket(KISS_CMD_DATA);
|
||||
startKissPacket(commandCode);
|
||||
while (escapedFrame.position() < escapedFrameSize) {
|
||||
sendKissByte(escapedFrame.get());
|
||||
}
|
||||
|
@ -412,6 +424,8 @@ public class Kiss implements Protocol {
|
|||
private void completeKissPacket() throws IOException {
|
||||
if (_transportOutputBufferPos > 0) {
|
||||
sendKissByte(KISS_FEND);
|
||||
//byte[] d = Arrays.copyOf(_transportOutputBuffer, _transportOutputBufferPos);
|
||||
//Log.i(TAG, DebugTools.bytesToHex(d));
|
||||
_transport.write(Arrays.copyOf(_transportOutputBuffer, _transportOutputBufferPos));
|
||||
_transportOutputBufferPos = 0;
|
||||
}
|
||||
|
|
|
@ -47,13 +47,19 @@ 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_SPLIT_FREQ = "kiss_extension_radio_split_freq";
|
||||
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";
|
||||
|
||||
|
|
|
@ -76,6 +76,11 @@ public class AudioTools {
|
|||
return null;
|
||||
}
|
||||
|
||||
public static String getModulationAsText(SharedPreferences sharedPreferences) {
|
||||
int modulation = Integer.parseInt(sharedPreferences.getString(PreferenceKeys.KISS_EXTENSIONS_RADIO_MOD, "0"));
|
||||
return modulation == RadioTools.ModulationTypeLora ? "LoRa" : "FSK";
|
||||
}
|
||||
|
||||
public static String getSpeedStatusText(String codec2ModeName, SharedPreferences sharedPreferences) {
|
||||
|
||||
// use freedv mode text instead if it is active
|
||||
|
|
|
@ -7,25 +7,37 @@ import com.radio.codec2talkie.settings.PreferenceKeys;
|
|||
import com.radio.codec2talkie.settings.SettingsWrapper;
|
||||
|
||||
public class RadioTools {
|
||||
|
||||
public static final int ModulationTypeLora = 0;
|
||||
public static final int ModulationTypeFsk = 1;
|
||||
|
||||
public static int calculateLoraSpeedBps(int bw, int sf, int cr) {
|
||||
return (int)(sf * (4.0 / cr) / (Math.pow(2.0, sf) / bw));
|
||||
}
|
||||
|
||||
public static int getRadioSpeed(SharedPreferences sharedPreferences) {
|
||||
int resultBps = 0;
|
||||
int maxSpeedBps = 128000;
|
||||
try {
|
||||
if (!SettingsWrapper.isSoundModemEnabled(sharedPreferences) && SettingsWrapper.isKissExtensionEnabled(sharedPreferences)) {
|
||||
int bw = Integer.parseInt(sharedPreferences.getString(PreferenceKeys.KISS_EXTENSIONS_RADIO_BANDWIDTH, "125000"));
|
||||
int sf = Integer.parseInt(sharedPreferences.getString(PreferenceKeys.KISS_EXTENSIONS_RADIO_SF, "7"));
|
||||
int cr = Integer.parseInt(sharedPreferences.getString(PreferenceKeys.KISS_EXTENSIONS_RADIO_CR, "5"));
|
||||
resultBps = RadioTools.calculateLoraSpeedBps(bw, sf, cr);
|
||||
}
|
||||
} catch (NumberFormatException|ArithmeticException e) {
|
||||
e.printStackTrace();
|
||||
int modulation = Integer.parseInt(sharedPreferences.getString(PreferenceKeys.KISS_EXTENSIONS_RADIO_MOD, "0"));
|
||||
if (SettingsWrapper.isSoundModemEnabled(sharedPreferences)) {
|
||||
return SettingsWrapper.getFskSpeed(sharedPreferences);
|
||||
}
|
||||
return (resultBps > 0 && resultBps <= maxSpeedBps) ? resultBps : 0;
|
||||
if (modulation == ModulationTypeLora) {
|
||||
int resultBps = 0;
|
||||
int maxSpeedBps = 128000;
|
||||
try {
|
||||
if (!SettingsWrapper.isSoundModemEnabled(sharedPreferences) && SettingsWrapper.isKissExtensionEnabled(sharedPreferences)) {
|
||||
int bw = Integer.parseInt(sharedPreferences.getString(PreferenceKeys.KISS_EXTENSIONS_RADIO_BANDWIDTH, "125000"));
|
||||
int sf = Integer.parseInt(sharedPreferences.getString(PreferenceKeys.KISS_EXTENSIONS_RADIO_SF, "7"));
|
||||
int cr = Integer.parseInt(sharedPreferences.getString(PreferenceKeys.KISS_EXTENSIONS_RADIO_CR, "5"));
|
||||
resultBps = RadioTools.calculateLoraSpeedBps(bw, sf, cr);
|
||||
}
|
||||
} catch (NumberFormatException | ArithmeticException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return (resultBps > 0 && resultBps <= maxSpeedBps) ? resultBps : 0;
|
||||
} else if (modulation == ModulationTypeFsk){
|
||||
return Integer.parseInt(sharedPreferences.getString(PreferenceKeys.KISS_EXTENSIONS_RADIO_FSK_BIT_RATE, "4.8"));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static double calculateLoraSensitivity(SharedPreferences sharedPreferences) {
|
||||
|
|
|
@ -7,7 +7,7 @@ import java.io.IOException;
|
|||
|
||||
public class UsbSerial implements Transport {
|
||||
|
||||
private static final int RX_TIMEOUT = 10;
|
||||
private static final int RX_TIMEOUT = 5;
|
||||
private static final int TX_TIMEOUT = 2000;
|
||||
|
||||
private final UsbSerialPort _usbPort;
|
||||
|
|
|
@ -38,7 +38,6 @@
|
|||
</string-array>
|
||||
|
||||
<string-array name="lora_spreading_factors">
|
||||
<item>6</item>
|
||||
<item>7</item>
|
||||
<item>8</item>
|
||||
<item>9</item>
|
||||
|
@ -275,7 +274,76 @@
|
|||
<item>/y</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="radio_mod_entries">
|
||||
<item>LoRa</item>
|
||||
<item>FSK</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="radio_mod_values">
|
||||
<item>0</item>
|
||||
<item>1</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="fsk_rx_bw_entries">
|
||||
<item>4800 Hz</item>
|
||||
<item>5800 Hz</item>
|
||||
<item>7300 Hz</item>
|
||||
<item>9700 Hz</item>
|
||||
<item>11700 Hz</item>
|
||||
<item>14600 Hz</item>
|
||||
<item>19500 Hz</item>
|
||||
<item>23400 Hz</item>
|
||||
<item>29300 Hz</item>
|
||||
<item>39000 Hz</item>
|
||||
<item>46900 Hz</item>
|
||||
<item>58600 Hz</item>
|
||||
<item>78200 Hz</item>
|
||||
<item>93800 Hz</item>
|
||||
<item>117300 Hz</item>
|
||||
<item>156200 Hz</item>
|
||||
<item>187200 Hz</item>
|
||||
<item>234300 Hz</item>
|
||||
<item>312000 Hz</item>
|
||||
<item>373000 Hz</item>
|
||||
<item>467000 Hz</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="fsk_rx_bw_values">
|
||||
<item>4800</item>
|
||||
<item>5800</item>
|
||||
<item>7300</item>
|
||||
<item>9700</item>
|
||||
<item>11700</item>
|
||||
<item>14600</item>
|
||||
<item>19500</item>
|
||||
<item>23400</item>
|
||||
<item>29300</item>
|
||||
<item>39000</item>
|
||||
<item>46900</item>
|
||||
<item>58600</item>
|
||||
<item>78200</item>
|
||||
<item>93800</item>
|
||||
<item>117300</item>
|
||||
<item>156200</item>
|
||||
<item>187200</item>
|
||||
<item>234300</item>
|
||||
<item>312000</item>
|
||||
<item>373000</item>
|
||||
<item>467000</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="lora_power_entries">
|
||||
<item>-9 dBm</item>
|
||||
<item>-8 dBm</item>
|
||||
<item>-7 dBm</item>
|
||||
<item>-6 dBm</item>
|
||||
<item>-5 dBm</item>
|
||||
<item>-4 dBm</item>
|
||||
<item>-3 dBm</item>
|
||||
<item>-2 dBm</item>
|
||||
<item>-1 dBm</item>
|
||||
<item>0 dBm</item>
|
||||
<item>1 dBm</item>
|
||||
<item>2 dBm</item>
|
||||
<item>3 dBm</item>
|
||||
<item>4 dBm</item>
|
||||
|
@ -300,6 +368,17 @@
|
|||
</string-array>
|
||||
|
||||
<string-array name="lora_power_values">
|
||||
<item>-9</item>
|
||||
<item>-8</item>
|
||||
<item>-7</item>
|
||||
<item>-6</item>
|
||||
<item>-5</item>
|
||||
<item>-4</item>
|
||||
<item>-3</item>
|
||||
<item>-2</item>
|
||||
<item>-1</item>
|
||||
<item>0</item>
|
||||
<item>1</item>
|
||||
<item>2</item>
|
||||
<item>3</item>
|
||||
<item>4</item>
|
||||
|
|
|
@ -54,11 +54,24 @@
|
|||
<string name="kiss_extensions_enable_title">Enable extensions</string>
|
||||
<string name="kiss_extensions_enable_summary">Enable radio control and signal level reports</string>
|
||||
|
||||
<string name="kiss_extensions_radio_mod_title">Select radio modulation type</string>
|
||||
|
||||
<string name="kiss_extensions_radio_control_title">Set radio parameters</string>
|
||||
<string name="kiss_extensions_radio_control_summary">Set frequency, bandwidth and other radio parameters</string>
|
||||
|
||||
<string name="kiss_extensions_radio_category_lora_title">Set LoRa modulation parameters</string>
|
||||
<string name="kiss_extensions_radio_category_fsk_title">Set FSK modulation parameters</string>
|
||||
|
||||
<string name="kiss_extensions_radio_category_other_title">Modem control</string>
|
||||
|
||||
<string name="kiss_extension_radio_split_freq_title">Split frequency operation</string>
|
||||
<string name="kiss_extension_radio_split_freq_summary">Use separate frequencies for RX and TX</string>
|
||||
|
||||
<string name="kiss_extensions_radio_frequency_title">Frequency (Hz)</string>
|
||||
<string name="kiss_extensions_radio_frequency_summary">Set radio frequency</string>
|
||||
<string name="kiss_extensions_radio_frequency_summary">Set radio frequency for RX/TX or RX frequency when split operation is enabled</string>
|
||||
|
||||
<string name="kiss_extensions_radio_frequency_title_tx">Frequency TX (Hz)</string>
|
||||
<string name="kiss_extensions_radio_frequency_summary_tx">Set transmit radio frequency</string>
|
||||
|
||||
<string name="kiss_extensions_radio_bandwidth_title">Bandwidth (Hz)</string>
|
||||
<string name="kiss_extensions_radio_bandwidth_summary">Set radio bandwidth</string>
|
||||
|
@ -78,6 +91,14 @@
|
|||
<string name="kiss_extensions_radio_crc_title">Enable CRC check</string>
|
||||
<string name="kiss_extensions_radio_crc_summary">Enable packet CRC check</string>
|
||||
|
||||
<string name="kiss_extension_radio_fsk_bit_rate_title">Bit rate (600–300000 bps)</string>
|
||||
<string name="kiss_extension_radio_fsk_bit_rate_summary">Set bit rate</string>
|
||||
|
||||
<string name="kiss_extension_radio_fsk_freq_dev_title">Set freq deviation (600–200000 Hz)</string>
|
||||
<string name="kiss_extension_radio_fsk_freq_dev_summary">Set freq deviation</string>
|
||||
|
||||
<string name="kiss_extension_radio_fsk_rx_bw_title">Set receive bandwidth (Hz)</string>
|
||||
|
||||
<string name="app_volume_ptt_title">Use volume keys for PTT</string>
|
||||
<string name="app_volume_ptt_summary">Volume up/down keys will be used for PTT</string>
|
||||
|
||||
|
|
|
@ -13,14 +13,21 @@
|
|||
app:defaultValue="433775000">
|
||||
</EditTextPreference>
|
||||
|
||||
<ListPreference
|
||||
app:key="kiss_extension_radio_bandwidth"
|
||||
app:title="@string/kiss_extensions_radio_bandwidth_title"
|
||||
app:entries="@array/lora_bandwidths"
|
||||
app:entryValues="@array/lora_bandwidths"
|
||||
app:defaultValue="125000"
|
||||
app:summary="%s">
|
||||
</ListPreference>
|
||||
<SwitchPreference
|
||||
app:key="kiss_extension_radio_split_freq"
|
||||
app:title="@string/kiss_extension_radio_split_freq_title"
|
||||
app:summary="@string/kiss_extension_radio_split_freq_summary"
|
||||
app:defaultValue="false">
|
||||
</SwitchPreference>
|
||||
|
||||
<EditTextPreference
|
||||
app:key="kiss_extension_radio_frequency_tx"
|
||||
app:title="@string/kiss_extensions_radio_frequency_title_tx"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
app:summary="@string/kiss_extensions_radio_frequency_summary_tx"
|
||||
app:dependency="kiss_extension_radio_split_freq"
|
||||
app:defaultValue="433775000">
|
||||
</EditTextPreference>
|
||||
|
||||
<ListPreference
|
||||
app:key="kiss_extension_radio_power"
|
||||
|
@ -32,43 +39,104 @@
|
|||
</ListPreference>
|
||||
|
||||
<ListPreference
|
||||
app:key="kiss_extension_radio_sf"
|
||||
app:title="@string/kiss_extensions_radio_sf_title"
|
||||
app:key="kiss_extension_radio_mod"
|
||||
app:title="@string/kiss_extensions_radio_mod_title"
|
||||
app:entries="@array/radio_mod_entries"
|
||||
app:entryValues="@array/radio_mod_values"
|
||||
app:summary="%s"
|
||||
app:entries="@array/lora_spreading_factors"
|
||||
app:entryValues="@array/lora_spreading_factors"
|
||||
app:defaultValue="7">
|
||||
app:defaultValue="0">
|
||||
</ListPreference>
|
||||
|
||||
<ListPreference
|
||||
app:key="kiss_extension_radio_cr"
|
||||
app:title="@string/kiss_extensions_radio_cr_title"
|
||||
app:summary="%s"
|
||||
app:entries="@array/lora_coding_rates"
|
||||
app:entryValues="@array/lora_coding_rates"
|
||||
app:defaultValue="6">
|
||||
</ListPreference>
|
||||
<PreferenceCategory
|
||||
app:key="kiss_extensions_radio_category_lora"
|
||||
app:title="@string/kiss_extensions_radio_category_lora_title">
|
||||
|
||||
<EditTextPreference
|
||||
app:key="kiss_extension_radio_sync"
|
||||
app:title="@string/kiss_extensions_radio_sync_title"
|
||||
app:summary="@string/kiss_extensions_radio_sync_summary"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
app:defaultValue="34">
|
||||
</EditTextPreference>
|
||||
<ListPreference
|
||||
app:key="kiss_extension_radio_bandwidth"
|
||||
app:title="@string/kiss_extensions_radio_bandwidth_title"
|
||||
app:entries="@array/lora_bandwidths"
|
||||
app:entryValues="@array/lora_bandwidths"
|
||||
app:defaultValue="125000"
|
||||
app:summary="%s">
|
||||
</ListPreference>
|
||||
|
||||
<CheckBoxPreference
|
||||
app:key="kiss_extension_radio_crc"
|
||||
app:title="@string/kiss_extensions_radio_crc_title"
|
||||
app:summary="@string/kiss_extensions_radio_crc_summary"
|
||||
app:defaultValue="true">
|
||||
</CheckBoxPreference>
|
||||
<ListPreference
|
||||
app:key="kiss_extension_radio_sf"
|
||||
app:title="@string/kiss_extensions_radio_sf_title"
|
||||
app:summary="%s"
|
||||
app:entries="@array/lora_spreading_factors"
|
||||
app:entryValues="@array/lora_spreading_factors"
|
||||
app:defaultValue="7">
|
||||
</ListPreference>
|
||||
|
||||
<Preference
|
||||
app:key="kiss_extension_reboot"
|
||||
app:title="@string/kiss_extension_reboot_title"
|
||||
app:summary="@string/kiss_extension_reboot_summary">
|
||||
</Preference>
|
||||
<ListPreference
|
||||
app:key="kiss_extension_radio_cr"
|
||||
app:title="@string/kiss_extensions_radio_cr_title"
|
||||
app:summary="%s"
|
||||
app:entries="@array/lora_coding_rates"
|
||||
app:entryValues="@array/lora_coding_rates"
|
||||
app:defaultValue="6">
|
||||
</ListPreference>
|
||||
|
||||
<EditTextPreference
|
||||
app:key="kiss_extension_radio_sync"
|
||||
app:title="@string/kiss_extensions_radio_sync_title"
|
||||
app:summary="@string/kiss_extensions_radio_sync_summary"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
app:defaultValue="34">
|
||||
</EditTextPreference>
|
||||
|
||||
<CheckBoxPreference
|
||||
app:key="kiss_extension_radio_crc"
|
||||
app:title="@string/kiss_extensions_radio_crc_title"
|
||||
app:summary="@string/kiss_extensions_radio_crc_summary"
|
||||
app:defaultValue="true">
|
||||
</CheckBoxPreference>
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
app:key="kiss_extensions_radio_category_fsk"
|
||||
app:title="@string/kiss_extensions_radio_category_fsk_title">
|
||||
|
||||
<EditTextPreference
|
||||
app:key="kiss_extension_radio_fsk_bit_rate"
|
||||
app:title="@string/kiss_extension_radio_fsk_bit_rate_title"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
app:summary="@string/kiss_extension_radio_fsk_bit_rate_summary"
|
||||
app:defaultValue="4800">
|
||||
</EditTextPreference>
|
||||
|
||||
<EditTextPreference
|
||||
app:key="kiss_extension_radio_fsk_freq_dev"
|
||||
app:title="@string/kiss_extension_radio_fsk_freq_dev_title"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
app:summary="@string/kiss_extension_radio_fsk_freq_dev_summary"
|
||||
app:defaultValue="1200">
|
||||
</EditTextPreference>
|
||||
|
||||
<ListPreference
|
||||
app:key="kiss_extension_radio_fsk_rx_bw"
|
||||
app:title="@string/kiss_extension_radio_fsk_rx_bw_title"
|
||||
app:entries="@array/fsk_rx_bw_entries"
|
||||
app:entryValues="@array/fsk_rx_bw_values"
|
||||
app:summary="%s"
|
||||
app:defaultValue="9700">
|
||||
</ListPreference>
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
app:key="kiss_extensions_radio_category_other"
|
||||
app:title="@string/kiss_extensions_radio_category_other_title">
|
||||
|
||||
<Preference
|
||||
app:key="kiss_extension_reboot"
|
||||
app:title="@string/kiss_extension_reboot_title"
|
||||
app:summary="@string/kiss_extension_reboot_summary">
|
||||
</Preference>
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
Ładowanie…
Reference in New Issue