mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-06 21:54:15 +01:00
RFM22B: Changed the way the frequencies and power settings are set for the rfm22b device.
This commit is contained in:
parent
dae382564a
commit
bd42083376
@ -501,4 +501,39 @@ static void updateSettings()
|
|||||||
if (PIOS_COM_TELEMETRY) PIOS_COM_ChangeBaud(PIOS_COM_TELEMETRY, 115200);
|
if (PIOS_COM_TELEMETRY) PIOS_COM_ChangeBaud(PIOS_COM_TELEMETRY, 115200);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set the frequencies.
|
||||||
|
PIOS_RFM22B_SetFrequencyRange(pios_rfm22b_id, oplinkSettings.MinFrequency, oplinkSettings.MaxFrequency);
|
||||||
|
|
||||||
|
// Set the maximum radio RF power.
|
||||||
|
switch (oplinkSettings.MaxRFPower)
|
||||||
|
{
|
||||||
|
case OPLINKSETTINGS_MAXRFPOWER_125:
|
||||||
|
PIOS_RFM22B_SetTxPower(pios_rfm22b_id, RFM22_tx_pwr_txpow_0);
|
||||||
|
break;
|
||||||
|
case OPLINKSETTINGS_MAXRFPOWER_16:
|
||||||
|
PIOS_RFM22B_SetTxPower(pios_rfm22b_id, RFM22_tx_pwr_txpow_1);
|
||||||
|
break;
|
||||||
|
case OPLINKSETTINGS_MAXRFPOWER_316:
|
||||||
|
PIOS_RFM22B_SetTxPower(pios_rfm22b_id, RFM22_tx_pwr_txpow_2);
|
||||||
|
break;
|
||||||
|
case OPLINKSETTINGS_MAXRFPOWER_63:
|
||||||
|
PIOS_RFM22B_SetTxPower(pios_rfm22b_id, RFM22_tx_pwr_txpow_3);
|
||||||
|
break;
|
||||||
|
case OPLINKSETTINGS_MAXRFPOWER_126:
|
||||||
|
PIOS_RFM22B_SetTxPower(pios_rfm22b_id, RFM22_tx_pwr_txpow_4);
|
||||||
|
break;
|
||||||
|
case OPLINKSETTINGS_MAXRFPOWER_25:
|
||||||
|
PIOS_RFM22B_SetTxPower(pios_rfm22b_id, RFM22_tx_pwr_txpow_5);
|
||||||
|
break;
|
||||||
|
case OPLINKSETTINGS_MAXRFPOWER_50:
|
||||||
|
PIOS_RFM22B_SetTxPower(pios_rfm22b_id, RFM22_tx_pwr_txpow_6);
|
||||||
|
break;
|
||||||
|
case OPLINKSETTINGS_MAXRFPOWER_100:
|
||||||
|
PIOS_RFM22B_SetTxPower(pios_rfm22b_id, RFM22_tx_pwr_txpow_7);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set the radio destination ID.
|
||||||
|
PIOS_RFM22B_SetDestinationId(pios_rfm22b_id, oplinkSettings.PairID);
|
||||||
}
|
}
|
||||||
|
@ -63,6 +63,10 @@
|
|||||||
#define EVENT_QUEUE_SIZE 5
|
#define EVENT_QUEUE_SIZE 5
|
||||||
#define PACKET_QUEUE_SIZE 3
|
#define PACKET_QUEUE_SIZE 3
|
||||||
#define RFM22B_DEFAULT_RX_DATARATE RFM22_datarate_64000
|
#define RFM22B_DEFAULT_RX_DATARATE RFM22_datarate_64000
|
||||||
|
#define RFM22B_DEFAULT_FREQUENCY 434000000
|
||||||
|
#define RFM22B_DEFAULT_MIN_FREQUENCY (RFM22B_DEFAULT_FREQUENCY - 2000000)
|
||||||
|
#define RFM22B_DEFAULT_MAX_FREQUENCY (RFM22B_DEFAULT_FREQUENCY + 2000000)
|
||||||
|
#define RFM22B_DEFAULT_TX_POWER RFM22_tx_pwr_txpow_7
|
||||||
|
|
||||||
// The maximum amount of time without activity before initiating a reset.
|
// The maximum amount of time without activity before initiating a reset.
|
||||||
#define PIOS_RFM22B_SUPERVISOR_TIMEOUT 100 // ms
|
#define PIOS_RFM22B_SUPERVISOR_TIMEOUT 100 // ms
|
||||||
@ -160,6 +164,7 @@ static enum pios_rfm22b_event rfm22_detectPreamble(struct pios_rfm22b_dev *rfm22
|
|||||||
static enum pios_rfm22b_event rfm22_detectSync(struct pios_rfm22b_dev *rfm22b_dev);
|
static enum pios_rfm22b_event rfm22_detectSync(struct pios_rfm22b_dev *rfm22b_dev);
|
||||||
static enum pios_rfm22b_event rfm22_rxData(struct pios_rfm22b_dev *rfm22b_dev);
|
static enum pios_rfm22b_event rfm22_rxData(struct pios_rfm22b_dev *rfm22b_dev);
|
||||||
static enum pios_rfm22b_event rfm22_receiveStatus(struct pios_rfm22b_dev *rfm22b_dev);
|
static enum pios_rfm22b_event rfm22_receiveStatus(struct pios_rfm22b_dev *rfm22b_dev);
|
||||||
|
static enum pios_rfm22b_event rfm22_requestConnection(struct pios_rfm22b_dev *rfm22b_dev);
|
||||||
static enum pios_rfm22b_event rfm22_acceptConnection(struct pios_rfm22b_dev *rfm22b_dev);
|
static enum pios_rfm22b_event rfm22_acceptConnection(struct pios_rfm22b_dev *rfm22b_dev);
|
||||||
static enum pios_rfm22b_event rfm22_connectionAccepted(struct pios_rfm22b_dev *rfm22b_dev);
|
static enum pios_rfm22b_event rfm22_connectionAccepted(struct pios_rfm22b_dev *rfm22b_dev);
|
||||||
static enum pios_rfm22b_event rfm22_connectionDeclined(struct pios_rfm22b_dev *rfm22b_dev);
|
static enum pios_rfm22b_event rfm22_connectionDeclined(struct pios_rfm22b_dev *rfm22b_dev);
|
||||||
@ -172,6 +177,7 @@ static enum pios_rfm22b_event rfm22_fatal_error(struct pios_rfm22b_dev *rfm22b_d
|
|||||||
static bool rfm22_sendStatus(struct pios_rfm22b_dev *rfm22b_dev);
|
static bool rfm22_sendStatus(struct pios_rfm22b_dev *rfm22b_dev);
|
||||||
static void rfm22b_add_rx_status(struct pios_rfm22b_dev *rfm22b_dev, enum pios_rfm22b_rx_packet_status status);
|
static void rfm22b_add_rx_status(struct pios_rfm22b_dev *rfm22b_dev, enum pios_rfm22b_rx_packet_status status);
|
||||||
static bool rfm22_receivePacket(struct pios_rfm22b_dev *rfm22b_dev, PHPacketHandle p, uint16_t rx_len);
|
static bool rfm22_receivePacket(struct pios_rfm22b_dev *rfm22b_dev, PHPacketHandle p, uint16_t rx_len);
|
||||||
|
static void rfm22_setNominalCarrierFrequency(struct pios_rfm22b_dev *rfm22b_dev, uint32_t frequency_hz);
|
||||||
|
|
||||||
// SPI read/write functions
|
// SPI read/write functions
|
||||||
static void rfm22_assertCs();
|
static void rfm22_assertCs();
|
||||||
@ -194,11 +200,48 @@ const static struct pios_rfm22b_transition rfm22b_transitions[RFM22B_STATE_NUM_S
|
|||||||
[RFM22B_STATE_INITIALIZING] = {
|
[RFM22B_STATE_INITIALIZING] = {
|
||||||
.entry_fn = rfm22_init,
|
.entry_fn = rfm22_init,
|
||||||
.next_state = {
|
.next_state = {
|
||||||
|
//[RFM22B_EVENT_INITIALIZED] = RFM22B_STATE_REQUESTING_CONNECTION,
|
||||||
[RFM22B_EVENT_INITIALIZED] = RFM22B_STATE_TX_START,
|
[RFM22B_EVENT_INITIALIZED] = RFM22B_STATE_TX_START,
|
||||||
[RFM22B_EVENT_ERROR] = RFM22B_STATE_ERROR,
|
[RFM22B_EVENT_ERROR] = RFM22B_STATE_ERROR,
|
||||||
[RFM22B_EVENT_FATAL_ERROR] = RFM22B_STATE_FATAL_ERROR,
|
[RFM22B_EVENT_FATAL_ERROR] = RFM22B_STATE_FATAL_ERROR,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
[RFM22B_STATE_REQUESTING_CONNECTION] = {
|
||||||
|
.entry_fn = rfm22_requestConnection,
|
||||||
|
.next_state = {
|
||||||
|
[RFM22B_EVENT_REQUESTED_CONNECTION] = RFM22B_STATE_TX_START,
|
||||||
|
[RFM22B_EVENT_TIMEOUT] = RFM22B_STATE_TIMEOUT,
|
||||||
|
[RFM22B_EVENT_ERROR] = RFM22B_STATE_ERROR,
|
||||||
|
[RFM22B_EVENT_FATAL_ERROR] = RFM22B_STATE_FATAL_ERROR,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[RFM22B_STATE_ACCEPTING_CONNECTION] = {
|
||||||
|
.entry_fn = rfm22_acceptConnection,
|
||||||
|
.next_state = {
|
||||||
|
[RFM22B_EVENT_RX_COMPLETE] = RFM22B_STATE_TX_START,
|
||||||
|
[RFM22B_EVENT_TIMEOUT] = RFM22B_STATE_TIMEOUT,
|
||||||
|
[RFM22B_EVENT_ERROR] = RFM22B_STATE_ERROR,
|
||||||
|
[RFM22B_EVENT_FATAL_ERROR] = RFM22B_STATE_FATAL_ERROR,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[RFM22B_STATE_CONNECTION_ACCEPTED] = {
|
||||||
|
.entry_fn = rfm22_connectionAccepted,
|
||||||
|
.next_state = {
|
||||||
|
[RFM22B_EVENT_RX_COMPLETE] = RFM22B_STATE_TX_START,
|
||||||
|
[RFM22B_EVENT_TIMEOUT] = RFM22B_STATE_TIMEOUT,
|
||||||
|
[RFM22B_EVENT_ERROR] = RFM22B_STATE_ERROR,
|
||||||
|
[RFM22B_EVENT_FATAL_ERROR] = RFM22B_STATE_FATAL_ERROR,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[RFM22B_STATE_CONNECTION_DECLINED] = {
|
||||||
|
.entry_fn = rfm22_connectionDeclined,
|
||||||
|
.next_state = {
|
||||||
|
[RFM22B_EVENT_RX_COMPLETE] = RFM22B_STATE_TX_START,
|
||||||
|
[RFM22B_EVENT_TIMEOUT] = RFM22B_STATE_TIMEOUT,
|
||||||
|
[RFM22B_EVENT_ERROR] = RFM22B_STATE_ERROR,
|
||||||
|
[RFM22B_EVENT_FATAL_ERROR] = RFM22B_STATE_FATAL_ERROR,
|
||||||
|
},
|
||||||
|
},
|
||||||
[RFM22B_STATE_RX_MODE] = {
|
[RFM22B_STATE_RX_MODE] = {
|
||||||
.entry_fn = rfm22_setRxMode,
|
.entry_fn = rfm22_setRxMode,
|
||||||
.next_state = {
|
.next_state = {
|
||||||
@ -256,33 +299,6 @@ const static struct pios_rfm22b_transition rfm22b_transitions[RFM22B_STATE_NUM_S
|
|||||||
[RFM22B_EVENT_FATAL_ERROR] = RFM22B_STATE_FATAL_ERROR,
|
[RFM22B_EVENT_FATAL_ERROR] = RFM22B_STATE_FATAL_ERROR,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
[RFM22B_STATE_ACCEPTING_CONNECTION] = {
|
|
||||||
.entry_fn = rfm22_acceptConnection,
|
|
||||||
.next_state = {
|
|
||||||
[RFM22B_EVENT_RX_COMPLETE] = RFM22B_STATE_TX_START,
|
|
||||||
[RFM22B_EVENT_TIMEOUT] = RFM22B_STATE_TIMEOUT,
|
|
||||||
[RFM22B_EVENT_ERROR] = RFM22B_STATE_ERROR,
|
|
||||||
[RFM22B_EVENT_FATAL_ERROR] = RFM22B_STATE_FATAL_ERROR,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
[RFM22B_STATE_CONNECTION_ACCEPTED] = {
|
|
||||||
.entry_fn = rfm22_connectionAccepted,
|
|
||||||
.next_state = {
|
|
||||||
[RFM22B_EVENT_RX_COMPLETE] = RFM22B_STATE_TX_START,
|
|
||||||
[RFM22B_EVENT_TIMEOUT] = RFM22B_STATE_TIMEOUT,
|
|
||||||
[RFM22B_EVENT_ERROR] = RFM22B_STATE_ERROR,
|
|
||||||
[RFM22B_EVENT_FATAL_ERROR] = RFM22B_STATE_FATAL_ERROR,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
[RFM22B_STATE_CONNECTION_DECLINED] = {
|
|
||||||
.entry_fn = rfm22_connectionDeclined,
|
|
||||||
.next_state = {
|
|
||||||
[RFM22B_EVENT_RX_COMPLETE] = RFM22B_STATE_TX_START,
|
|
||||||
[RFM22B_EVENT_TIMEOUT] = RFM22B_STATE_TIMEOUT,
|
|
||||||
[RFM22B_EVENT_ERROR] = RFM22B_STATE_ERROR,
|
|
||||||
[RFM22B_EVENT_FATAL_ERROR] = RFM22B_STATE_FATAL_ERROR,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
[RFM22B_STATE_TX_START] = {
|
[RFM22B_STATE_TX_START] = {
|
||||||
.entry_fn = rfm22_txStart,
|
.entry_fn = rfm22_txStart,
|
||||||
.next_state = {
|
.next_state = {
|
||||||
@ -480,6 +496,8 @@ int32_t PIOS_RFM22B_Init(uint32_t *rfm22b_id, uint32_t spi_id, uint32_t slave_nu
|
|||||||
rfm22b_dev->stats.timeouts = 0;
|
rfm22b_dev->stats.timeouts = 0;
|
||||||
rfm22b_dev->stats.link_quality = 0;
|
rfm22b_dev->stats.link_quality = 0;
|
||||||
rfm22b_dev->stats.rssi = 0;
|
rfm22b_dev->stats.rssi = 0;
|
||||||
|
rfm22b_dev->tx_power = RFM22B_DEFAULT_TX_POWER;
|
||||||
|
rfm22b_dev->destination_id = 0xffffffff;
|
||||||
|
|
||||||
// Bind the configuration to the device instance
|
// Bind the configuration to the device instance
|
||||||
rfm22b_dev->cfg = *cfg;
|
rfm22b_dev->cfg = *cfg;
|
||||||
@ -505,9 +523,6 @@ int32_t PIOS_RFM22B_Init(uint32_t *rfm22b_id, uint32_t spi_id, uint32_t slave_nu
|
|||||||
// Create the packet queue.
|
// Create the packet queue.
|
||||||
rfm22b_dev->packetQueue = xQueueCreate(PACKET_QUEUE_SIZE, sizeof(PHPacketHandle));
|
rfm22b_dev->packetQueue = xQueueCreate(PACKET_QUEUE_SIZE, sizeof(PHPacketHandle));
|
||||||
|
|
||||||
// Initialize the max tx power level.
|
|
||||||
PIOS_RFM22B_SetTxPower(*rfm22b_id, cfg->maxTxPower);
|
|
||||||
|
|
||||||
// Create our (hopefully) unique 32 bit id from the processor serial number.
|
// Create our (hopefully) unique 32 bit id from the processor serial number.
|
||||||
uint8_t crcs[] = { 0, 0, 0, 0 };
|
uint8_t crcs[] = { 0, 0, 0, 0 };
|
||||||
{
|
{
|
||||||
@ -595,6 +610,11 @@ uint32_t PIOS_RFM22B_DeviceID(uint32_t rfm22b_id)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the radio device transmit power.
|
||||||
|
* \param[in] rfm22b_id The RFM22B device index.
|
||||||
|
* \param[in] tx_pwr The transmit power.
|
||||||
|
*/
|
||||||
void PIOS_RFM22B_SetTxPower(uint32_t rfm22b_id, enum rfm22b_tx_power tx_pwr)
|
void PIOS_RFM22B_SetTxPower(uint32_t rfm22b_id, enum rfm22b_tx_power tx_pwr)
|
||||||
{
|
{
|
||||||
struct pios_rfm22b_dev *rfm22b_dev = (struct pios_rfm22b_dev *)rfm22b_id;
|
struct pios_rfm22b_dev *rfm22b_dev = (struct pios_rfm22b_dev *)rfm22b_id;
|
||||||
@ -603,6 +623,22 @@ void PIOS_RFM22B_SetTxPower(uint32_t rfm22b_id, enum rfm22b_tx_power tx_pwr)
|
|||||||
rfm22b_dev->tx_power = tx_pwr;
|
rfm22b_dev->tx_power = tx_pwr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the radio frequency range and value.
|
||||||
|
* \param[in] rfm22b_id The RFM22B device index.
|
||||||
|
* \param[in] min_frequency The minimum frequency.
|
||||||
|
* \param[in] max_frequency The maximum frequency.
|
||||||
|
*/
|
||||||
|
void PIOS_RFM22B_SetFrequencyRange(uint32_t rfm22b_id, uint32_t min_frequency, uint32_t max_frequency)
|
||||||
|
{
|
||||||
|
struct pios_rfm22b_dev *rfm22b_dev = (struct pios_rfm22b_dev *)rfm22b_id;
|
||||||
|
if(!PIOS_RFM22B_validate(rfm22b_dev))
|
||||||
|
return;
|
||||||
|
rfm22b_dev->min_frequency = min_frequency;
|
||||||
|
rfm22b_dev->max_frequency = max_frequency;
|
||||||
|
rfm22_setNominalCarrierFrequency(rfm22b_dev, (max_frequency - min_frequency) / 2);
|
||||||
|
}
|
||||||
|
|
||||||
void PIOS_RFM22B_SetDestinationId(uint32_t rfm22b_id, uint32_t dest_id)
|
void PIOS_RFM22B_SetDestinationId(uint32_t rfm22b_id, uint32_t dest_id)
|
||||||
{
|
{
|
||||||
struct pios_rfm22b_dev *rfm22b_dev = (struct pios_rfm22b_dev *)rfm22b_id;
|
struct pios_rfm22b_dev *rfm22b_dev = (struct pios_rfm22b_dev *)rfm22b_id;
|
||||||
@ -950,12 +986,10 @@ static enum pios_rfm22b_event rfm22_process_state_transition(struct pios_rfm22b_
|
|||||||
|
|
||||||
static void rfm22_setNominalCarrierFrequency(struct pios_rfm22b_dev *rfm22b_dev, uint32_t frequency_hz)
|
static void rfm22_setNominalCarrierFrequency(struct pios_rfm22b_dev *rfm22b_dev, uint32_t frequency_hz)
|
||||||
{
|
{
|
||||||
uint32_t min_frequency_hz = rfm22b_dev->cfg.minFrequencyHz;
|
if (frequency_hz < rfm22b_dev->min_frequency)
|
||||||
uint32_t max_frequency_hz = rfm22b_dev->cfg.maxFrequencyHz;
|
frequency_hz = rfm22b_dev->min_frequency;
|
||||||
if (frequency_hz < min_frequency_hz)
|
else if (frequency_hz > rfm22b_dev->max_frequency)
|
||||||
frequency_hz = min_frequency_hz;
|
frequency_hz = rfm22b_dev->max_frequency;
|
||||||
else if (frequency_hz > max_frequency_hz)
|
|
||||||
frequency_hz = max_frequency_hz;
|
|
||||||
|
|
||||||
// holds the hbsel (1 or 2)
|
// holds the hbsel (1 or 2)
|
||||||
uint8_t hbsel;
|
uint8_t hbsel;
|
||||||
@ -1594,6 +1628,12 @@ static enum pios_rfm22b_event rfm22_receiveStatus(struct pios_rfm22b_dev *rfm22b
|
|||||||
return RFM22B_EVENT_RX_COMPLETE;
|
return RFM22B_EVENT_RX_COMPLETE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static enum pios_rfm22b_event rfm22_requestConnection(struct pios_rfm22b_dev *rfm22b_dev)
|
||||||
|
{
|
||||||
|
// Generate and set a connection request message.
|
||||||
|
return RFM22B_EVENT_RX_COMPLETE;
|
||||||
|
}
|
||||||
|
|
||||||
static enum pios_rfm22b_event rfm22_acceptConnection(struct pios_rfm22b_dev *rfm22b_dev)
|
static enum pios_rfm22b_event rfm22_acceptConnection(struct pios_rfm22b_dev *rfm22b_dev)
|
||||||
{
|
{
|
||||||
return RFM22B_EVENT_RX_COMPLETE;
|
return RFM22B_EVENT_RX_COMPLETE;
|
||||||
@ -1647,8 +1687,6 @@ void rfm22_setFreqCalibration(uint8_t value)
|
|||||||
static enum pios_rfm22b_event rfm22_init(struct pios_rfm22b_dev *rfm22b_dev)
|
static enum pios_rfm22b_event rfm22_init(struct pios_rfm22b_dev *rfm22b_dev)
|
||||||
{
|
{
|
||||||
uint32_t id = rfm22b_dev->deviceID;
|
uint32_t id = rfm22b_dev->deviceID;
|
||||||
uint32_t min_frequency_hz = rfm22b_dev->cfg.minFrequencyHz;
|
|
||||||
uint32_t max_frequency_hz = rfm22b_dev->cfg.maxFrequencyHz;
|
|
||||||
uint32_t freq_hop_step_size = 50000;
|
uint32_t freq_hop_step_size = 50000;
|
||||||
|
|
||||||
// software reset the RF chip .. following procedure according to Si4x3x Errata (rev. B)
|
// software reset the RF chip .. following procedure according to Si4x3x Errata (rev. B)
|
||||||
@ -1726,21 +1764,9 @@ static enum pios_rfm22b_event rfm22_init(struct pios_rfm22b_dev *rfm22b_dev)
|
|||||||
|
|
||||||
// ****************
|
// ****************
|
||||||
// set the minimum and maximum carrier frequency allowed
|
// set the minimum and maximum carrier frequency allowed
|
||||||
|
rfm22b_dev->min_frequency = RFM22B_DEFAULT_MIN_FREQUENCY;
|
||||||
if (min_frequency_hz < RFM22_MIN_CARRIER_FREQUENCY_HZ) min_frequency_hz = RFM22_MIN_CARRIER_FREQUENCY_HZ;
|
rfm22b_dev->max_frequency = RFM22B_DEFAULT_MAX_FREQUENCY;
|
||||||
else
|
rfm22b_dev->frequency_hz = RFM22B_DEFAULT_FREQUENCY;
|
||||||
if (min_frequency_hz > RFM22_MAX_CARRIER_FREQUENCY_HZ) min_frequency_hz = RFM22_MAX_CARRIER_FREQUENCY_HZ;
|
|
||||||
|
|
||||||
if (max_frequency_hz < RFM22_MIN_CARRIER_FREQUENCY_HZ) max_frequency_hz = RFM22_MIN_CARRIER_FREQUENCY_HZ;
|
|
||||||
else
|
|
||||||
if (max_frequency_hz > RFM22_MAX_CARRIER_FREQUENCY_HZ) max_frequency_hz = RFM22_MAX_CARRIER_FREQUENCY_HZ;
|
|
||||||
|
|
||||||
if (min_frequency_hz > max_frequency_hz)
|
|
||||||
{ // swap them over
|
|
||||||
uint32_t tmp = min_frequency_hz;
|
|
||||||
min_frequency_hz = max_frequency_hz;
|
|
||||||
max_frequency_hz = tmp;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ****************
|
// ****************
|
||||||
// calibrate our RF module to be exactly on frequency .. different for every module
|
// calibrate our RF module to be exactly on frequency .. different for every module
|
||||||
@ -1855,9 +1881,6 @@ static enum pios_rfm22b_event rfm22_init(struct pios_rfm22b_dev *rfm22b_dev)
|
|||||||
// set frequency hopping channel step size (multiples of 10kHz)
|
// set frequency hopping channel step size (multiples of 10kHz)
|
||||||
rfm22_write(RFM22_frequency_hopping_step_size, rfm22b_dev->frequency_hop_step_size_reg);
|
rfm22_write(RFM22_frequency_hopping_step_size, rfm22b_dev->frequency_hop_step_size_reg);
|
||||||
|
|
||||||
// set our nominal carrier frequency
|
|
||||||
rfm22_setNominalCarrierFrequency(rfm22b_dev, (min_frequency_hz + max_frequency_hz) / 2);
|
|
||||||
|
|
||||||
// set the tx power
|
// set the tx power
|
||||||
rfm22_write(RFM22_tx_power, RFM22_tx_pwr_papeaken | RFM22_tx_pwr_papeaklvl_0 | RFM22_tx_pwr_lna_sw | rfm22b_dev->tx_power);
|
rfm22_write(RFM22_tx_power, RFM22_tx_pwr_papeaken | RFM22_tx_pwr_papeaklvl_0 | RFM22_tx_pwr_lna_sw | rfm22b_dev->tx_power);
|
||||||
|
|
||||||
@ -1871,7 +1894,7 @@ static enum pios_rfm22b_event rfm22_init(struct pios_rfm22b_dev *rfm22b_dev)
|
|||||||
rfm22_write(RFM22_rx_fifo_control, RX_FIFO_HI_WATERMARK);
|
rfm22_write(RFM22_rx_fifo_control, RX_FIFO_HI_WATERMARK);
|
||||||
|
|
||||||
rfm22_setFreqCalibration(rfm22b_dev->cfg.RFXtalCap);
|
rfm22_setFreqCalibration(rfm22b_dev->cfg.RFXtalCap);
|
||||||
rfm22_setNominalCarrierFrequency(rfm22b_dev, rfm22b_dev->cfg.frequencyHz);
|
rfm22_setNominalCarrierFrequency(rfm22b_dev, rfm22b_dev->frequency_hz);
|
||||||
RFM22_SetDatarate((uint32_t)rfm22b_dev, rfm22b_dev->datarate, true);
|
RFM22_SetDatarate((uint32_t)rfm22b_dev, rfm22b_dev->datarate, true);
|
||||||
|
|
||||||
return RFM22B_EVENT_INITIALIZED;
|
return RFM22B_EVENT_INITIALIZED;
|
||||||
|
@ -39,12 +39,7 @@ enum gpio_direction {GPIO0_TX_GPIO1_RX, GPIO0_RX_GPIO1_TX};
|
|||||||
struct pios_rfm22b_cfg {
|
struct pios_rfm22b_cfg {
|
||||||
const struct pios_spi_cfg * spi_cfg; /* Pointer to SPI interface configuration */
|
const struct pios_spi_cfg * spi_cfg; /* Pointer to SPI interface configuration */
|
||||||
const struct pios_exti_cfg * exti_cfg; /* Pointer to the EXTI configuration */
|
const struct pios_exti_cfg * exti_cfg; /* Pointer to the EXTI configuration */
|
||||||
uint32_t frequencyHz;
|
|
||||||
uint32_t minFrequencyHz;
|
|
||||||
uint32_t maxFrequencyHz;
|
|
||||||
uint8_t RFXtalCap;
|
uint8_t RFXtalCap;
|
||||||
uint32_t maxRFBandwidth;
|
|
||||||
uint8_t maxTxPower;
|
|
||||||
uint8_t slave_num;
|
uint8_t slave_num;
|
||||||
enum gpio_direction gpio_direction;
|
enum gpio_direction gpio_direction;
|
||||||
};
|
};
|
||||||
@ -98,6 +93,7 @@ struct rfm22b_stats {
|
|||||||
|
|
||||||
/* Public Functions */
|
/* Public Functions */
|
||||||
extern int32_t PIOS_RFM22B_Init(uint32_t *rfb22b_id, uint32_t spi_id, uint32_t slave_num, const struct pios_rfm22b_cfg *cfg);
|
extern int32_t PIOS_RFM22B_Init(uint32_t *rfb22b_id, uint32_t spi_id, uint32_t slave_num, const struct pios_rfm22b_cfg *cfg);
|
||||||
|
extern void PIOS_RFM22B_SetFrequencyRange(uint32_t rfm22b_id, uint32_t min_frequency, uint32_t max_frequency);
|
||||||
extern void PIOS_RFM22B_SetTxPower(uint32_t rfm22b_id, enum rfm22b_tx_power tx_pwr);
|
extern void PIOS_RFM22B_SetTxPower(uint32_t rfm22b_id, enum rfm22b_tx_power tx_pwr);
|
||||||
extern void RFM22_SetDatarate(uint32_t rfm22b_id, enum rfm22b_datarate datarate, bool data_whitening);
|
extern void RFM22_SetDatarate(uint32_t rfm22b_id, enum rfm22b_datarate datarate, bool data_whitening);
|
||||||
extern void PIOS_RFM22B_SetDestinationId(uint32_t rfm22b_id, uint32_t dest_id);
|
extern void PIOS_RFM22B_SetDestinationId(uint32_t rfm22b_id, uint32_t dest_id);
|
||||||
|
@ -577,14 +577,16 @@ enum pios_rfm22b_dev_magic {
|
|||||||
enum pios_rfm22b_state {
|
enum pios_rfm22b_state {
|
||||||
RFM22B_STATE_UNINITIALIZED,
|
RFM22B_STATE_UNINITIALIZED,
|
||||||
RFM22B_STATE_INITIALIZING,
|
RFM22B_STATE_INITIALIZING,
|
||||||
|
RFM22B_STATE_INITIALIZED,
|
||||||
|
RFM22B_STATE_REQUESTING_CONNECTION,
|
||||||
|
RFM22B_STATE_ACCEPTING_CONNECTION,
|
||||||
|
RFM22B_STATE_CONNECTION_ACCEPTED,
|
||||||
|
RFM22B_STATE_CONNECTION_DECLINED,
|
||||||
RFM22B_STATE_RX_MODE,
|
RFM22B_STATE_RX_MODE,
|
||||||
RFM22B_STATE_WAIT_PREAMBLE,
|
RFM22B_STATE_WAIT_PREAMBLE,
|
||||||
RFM22B_STATE_WAIT_SYNC,
|
RFM22B_STATE_WAIT_SYNC,
|
||||||
RFM22B_STATE_RX_DATA,
|
RFM22B_STATE_RX_DATA,
|
||||||
RFM22B_STATE_RECEIVING_STATUS,
|
RFM22B_STATE_RECEIVING_STATUS,
|
||||||
RFM22B_STATE_ACCEPTING_CONNECTION,
|
|
||||||
RFM22B_STATE_CONNECTION_ACCEPTED,
|
|
||||||
RFM22B_STATE_CONNECTION_DECLINED,
|
|
||||||
RFM22B_STATE_TX_START,
|
RFM22B_STATE_TX_START,
|
||||||
RFM22B_STATE_TX_DATA,
|
RFM22B_STATE_TX_DATA,
|
||||||
RFM22B_STATE_TIMEOUT,
|
RFM22B_STATE_TIMEOUT,
|
||||||
@ -595,17 +597,19 @@ enum pios_rfm22b_state {
|
|||||||
};
|
};
|
||||||
|
|
||||||
enum pios_rfm22b_event {
|
enum pios_rfm22b_event {
|
||||||
|
RFM22B_EVENT_INT_RECEIVED,
|
||||||
RFM22B_EVENT_INITIALIZE,
|
RFM22B_EVENT_INITIALIZE,
|
||||||
RFM22B_EVENT_INITIALIZED,
|
RFM22B_EVENT_INITIALIZED,
|
||||||
RFM22B_EVENT_INT_RECEIVED,
|
RFM22B_EVENT_REQUEST_CONNECTION,
|
||||||
|
RFM22B_EVENT_REQUESTED_CONNECTION,
|
||||||
|
RFM22B_EVENT_CONNECTION_REQUEST,
|
||||||
|
RFM22B_EVENT_CONNECTION_ACCEPT,
|
||||||
|
RFM22B_EVENT_CONNECTION_DECLINED,
|
||||||
RFM22B_EVENT_RX_MODE,
|
RFM22B_EVENT_RX_MODE,
|
||||||
RFM22B_EVENT_PREAMBLE_DETECTED,
|
RFM22B_EVENT_PREAMBLE_DETECTED,
|
||||||
RFM22B_EVENT_SYNC_DETECTED,
|
RFM22B_EVENT_SYNC_DETECTED,
|
||||||
RFM22B_EVENT_RX_COMPLETE,
|
RFM22B_EVENT_RX_COMPLETE,
|
||||||
RFM22B_EVENT_STATUS_RECEIVED,
|
RFM22B_EVENT_STATUS_RECEIVED,
|
||||||
RFM22B_EVENT_CONNECTION_REQUEST,
|
|
||||||
RFM22B_EVENT_CONNECTION_ACCEPT,
|
|
||||||
RFM22B_EVENT_CONNECTION_DECLINED,
|
|
||||||
RFM22B_EVENT_SEND_PACKET,
|
RFM22B_EVENT_SEND_PACKET,
|
||||||
RFM22B_EVENT_TX_START,
|
RFM22B_EVENT_TX_START,
|
||||||
RFM22B_EVENT_TX_STARTED,
|
RFM22B_EVENT_TX_STARTED,
|
||||||
@ -716,6 +720,12 @@ struct pios_rfm22b_dev {
|
|||||||
// the receive buffer write index
|
// the receive buffer write index
|
||||||
uint16_t rx_packet_len;
|
uint16_t rx_packet_len;
|
||||||
|
|
||||||
|
// The minimum frequency
|
||||||
|
uint32_t min_frequency;
|
||||||
|
// The maximum frequency
|
||||||
|
uint32_t max_frequency;
|
||||||
|
// The current nominal frequency
|
||||||
|
uint32_t frequency_hz;
|
||||||
// The frequency hopping step size
|
// The frequency hopping step size
|
||||||
float frequency_step_size;
|
float frequency_step_size;
|
||||||
// current frequency hop channel
|
// current frequency hop channel
|
||||||
|
@ -246,38 +246,6 @@ void PIOS_Board_Init(void) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set the maximum radio RF power.
|
|
||||||
switch (oplinkSettings.MaxRFPower)
|
|
||||||
{
|
|
||||||
case OPLINKSETTINGS_MAXRFPOWER_125:
|
|
||||||
PIOS_RFM22B_SetTxPower(pios_rfm22b_id, RFM22_tx_pwr_txpow_0);
|
|
||||||
break;
|
|
||||||
case OPLINKSETTINGS_MAXRFPOWER_16:
|
|
||||||
PIOS_RFM22B_SetTxPower(pios_rfm22b_id, RFM22_tx_pwr_txpow_1);
|
|
||||||
break;
|
|
||||||
case OPLINKSETTINGS_MAXRFPOWER_316:
|
|
||||||
PIOS_RFM22B_SetTxPower(pios_rfm22b_id, RFM22_tx_pwr_txpow_2);
|
|
||||||
break;
|
|
||||||
case OPLINKSETTINGS_MAXRFPOWER_63:
|
|
||||||
PIOS_RFM22B_SetTxPower(pios_rfm22b_id, RFM22_tx_pwr_txpow_3);
|
|
||||||
break;
|
|
||||||
case OPLINKSETTINGS_MAXRFPOWER_126:
|
|
||||||
PIOS_RFM22B_SetTxPower(pios_rfm22b_id, RFM22_tx_pwr_txpow_4);
|
|
||||||
break;
|
|
||||||
case OPLINKSETTINGS_MAXRFPOWER_25:
|
|
||||||
PIOS_RFM22B_SetTxPower(pios_rfm22b_id, RFM22_tx_pwr_txpow_5);
|
|
||||||
break;
|
|
||||||
case OPLINKSETTINGS_MAXRFPOWER_50:
|
|
||||||
PIOS_RFM22B_SetTxPower(pios_rfm22b_id, RFM22_tx_pwr_txpow_6);
|
|
||||||
break;
|
|
||||||
case OPLINKSETTINGS_MAXRFPOWER_100:
|
|
||||||
PIOS_RFM22B_SetTxPower(pios_rfm22b_id, RFM22_tx_pwr_txpow_7);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set the radio destination ID.
|
|
||||||
PIOS_RFM22B_SetDestinationId(pios_rfm22b_id, oplinkSettings.PairID);
|
|
||||||
|
|
||||||
// Initialize the packet handler
|
// Initialize the packet handler
|
||||||
PacketHandlerConfig pios_ph_cfg = {
|
PacketHandlerConfig pios_ph_cfg = {
|
||||||
.default_destination_id = 0xffffffff, // Broadcast
|
.default_destination_id = 0xffffffff, // Broadcast
|
||||||
|
@ -222,12 +222,7 @@ static const struct pios_exti_cfg pios_exti_rfm22b_cfg __exti_config = {
|
|||||||
struct pios_rfm22b_cfg pios_rfm22b_pipx_cfg = {
|
struct pios_rfm22b_cfg pios_rfm22b_pipx_cfg = {
|
||||||
.spi_cfg = &pios_spi_rfm22b_cfg,
|
.spi_cfg = &pios_spi_rfm22b_cfg,
|
||||||
.exti_cfg = &pios_exti_rfm22b_cfg,
|
.exti_cfg = &pios_exti_rfm22b_cfg,
|
||||||
.frequencyHz = 434000000,
|
|
||||||
.minFrequencyHz = 434000000 - 2000000,
|
|
||||||
.maxFrequencyHz = 434000000 + 2000000,
|
|
||||||
.RFXtalCap = 0x7f,
|
.RFXtalCap = 0x7f,
|
||||||
.maxRFBandwidth = 64000,
|
|
||||||
.maxTxPower = RFM22_tx_pwr_txpow_7, // +20dBm .. 100mW
|
|
||||||
.slave_num = 0,
|
.slave_num = 0,
|
||||||
.gpio_direction = GPIO0_TX_GPIO1_RX,
|
.gpio_direction = GPIO0_TX_GPIO1_RX,
|
||||||
};
|
};
|
||||||
|
@ -395,12 +395,7 @@ static const struct pios_exti_cfg pios_exti_rfm22b_cfg __exti_config = {
|
|||||||
const struct pios_rfm22b_cfg pios_rfm22b_rm1_cfg = {
|
const struct pios_rfm22b_cfg pios_rfm22b_rm1_cfg = {
|
||||||
.spi_cfg = &pios_spi_telem_flash_cfg,
|
.spi_cfg = &pios_spi_telem_flash_cfg,
|
||||||
.exti_cfg = &pios_exti_rfm22b_cfg,
|
.exti_cfg = &pios_exti_rfm22b_cfg,
|
||||||
.frequencyHz = 434000000,
|
|
||||||
.minFrequencyHz = 434000000 - 2000000,
|
|
||||||
.maxFrequencyHz = 434000000 + 2000000,
|
|
||||||
.RFXtalCap = 0x7f,
|
.RFXtalCap = 0x7f,
|
||||||
.maxRFBandwidth = 64000,
|
|
||||||
.maxTxPower = RFM22_tx_pwr_txpow_7, // +20dBm .. 100mW
|
|
||||||
.slave_num = 0,
|
.slave_num = 0,
|
||||||
.gpio_direction = GPIO0_RX_GPIO1_TX,
|
.gpio_direction = GPIO0_RX_GPIO1_TX,
|
||||||
};
|
};
|
||||||
@ -408,12 +403,7 @@ const struct pios_rfm22b_cfg pios_rfm22b_rm1_cfg = {
|
|||||||
const struct pios_rfm22b_cfg pios_rfm22b_rm2_cfg = {
|
const struct pios_rfm22b_cfg pios_rfm22b_rm2_cfg = {
|
||||||
.spi_cfg = &pios_spi_telem_flash_cfg,
|
.spi_cfg = &pios_spi_telem_flash_cfg,
|
||||||
.exti_cfg = &pios_exti_rfm22b_cfg,
|
.exti_cfg = &pios_exti_rfm22b_cfg,
|
||||||
.frequencyHz = 434000000,
|
|
||||||
.minFrequencyHz = 434000000 - 2000000,
|
|
||||||
.maxFrequencyHz = 434000000 + 2000000,
|
|
||||||
.RFXtalCap = 0x7f,
|
.RFXtalCap = 0x7f,
|
||||||
.maxRFBandwidth = 64000,
|
|
||||||
.maxTxPower = RFM22_tx_pwr_txpow_7, // +20dBm .. 100mW
|
|
||||||
.slave_num = 0,
|
.slave_num = 0,
|
||||||
.gpio_direction = GPIO0_TX_GPIO1_RX,
|
.gpio_direction = GPIO0_TX_GPIO1_RX,
|
||||||
};
|
};
|
||||||
|
@ -65,7 +65,8 @@ ConfigPipXtremeWidget::ConfigPipXtremeWidget(QWidget *parent) : ConfigTaskWidget
|
|||||||
addUAVObjectToWidgetRelation("OPLinkSettings", "SendTimeout", m_oplink->SendTimeout);
|
addUAVObjectToWidgetRelation("OPLinkSettings", "SendTimeout", m_oplink->SendTimeout);
|
||||||
addUAVObjectToWidgetRelation("OPLinkSettings", "MinPacketSize", m_oplink->MinPacketSize);
|
addUAVObjectToWidgetRelation("OPLinkSettings", "MinPacketSize", m_oplink->MinPacketSize);
|
||||||
addUAVObjectToWidgetRelation("OPLinkSettings", "FrequencyCalibration", m_oplink->FrequencyCalibration);
|
addUAVObjectToWidgetRelation("OPLinkSettings", "FrequencyCalibration", m_oplink->FrequencyCalibration);
|
||||||
addUAVObjectToWidgetRelation("OPLinkSettings", "Frequency", m_oplink->Frequency);
|
addUAVObjectToWidgetRelation("OPLinkSettings", "MinFrequency", m_oplink->MinFrequency);
|
||||||
|
addUAVObjectToWidgetRelation("OPLinkSettings", "MaxFrequency", m_oplink->MaxFrequency);
|
||||||
|
|
||||||
addUAVObjectToWidgetRelation("OPLinkStatus", "RxGood", m_oplink->Good);
|
addUAVObjectToWidgetRelation("OPLinkStatus", "RxGood", m_oplink->Good);
|
||||||
addUAVObjectToWidgetRelation("OPLinkStatus", "RxCorrected", m_oplink->Corrected);
|
addUAVObjectToWidgetRelation("OPLinkStatus", "RxCorrected", m_oplink->Corrected);
|
||||||
|
@ -1449,7 +1449,7 @@
|
|||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Calibrate the modems RF carrier frequency</string>
|
<string>Set the send timeout</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="accelerated">
|
<property name="accelerated">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
@ -1484,7 +1484,7 @@
|
|||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Calibrate the modems RF carrier frequency</string>
|
<string>Set the minimum packet size</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="accelerated">
|
<property name="accelerated">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
@ -1532,7 +1532,7 @@
|
|||||||
<item row="10" column="0">
|
<item row="10" column="0">
|
||||||
<widget class="QLabel" name="label_5">
|
<widget class="QLabel" name="label_5">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Frequency (Hz)</string>
|
<string>Min. Frequency (Hz)</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
@ -1540,7 +1540,7 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="10" column="1">
|
<item row="10" column="1">
|
||||||
<widget class="QSpinBox" name="Frequency">
|
<widget class="QSpinBox" name="MinFrequency">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
@ -1554,7 +1554,7 @@
|
|||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Set the modems RF carrier frequency</string>
|
<string>Set the modems minimum RF carrier frequency</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||||
@ -1563,7 +1563,7 @@
|
|||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
<number>0</number>
|
<number>400000000</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<number>1000000000</number>
|
<number>1000000000</number>
|
||||||
@ -1573,7 +1573,51 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="11" column="0" colspan="2">
|
<item row="11" column="0">
|
||||||
|
<widget class="QLabel" name="MaxFrequencyLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>Max. Frequency (Hz)</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="11" column="1">
|
||||||
|
<widget class="QSpinBox" name="MaxFrequency">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Set the modems maximum RF carrier frequency</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
<property name="accelerated">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>400000000</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>1000000000</number>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<number>100000</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="12" column="0" colspan="2">
|
||||||
<widget class="QGroupBox" name="groupBox_4">
|
<widget class="QGroupBox" name="groupBox_4">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
<string>AES Encryption</string>
|
<string>AES Encryption</string>
|
||||||
@ -1642,7 +1686,7 @@
|
|||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="12" column="0">
|
<item row="13" column="0">
|
||||||
<spacer name="verticalSpacer">
|
<spacer name="verticalSpacer">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Vertical</enum>
|
||||||
|
@ -12,7 +12,8 @@
|
|||||||
<field name="SendTimeout" units="ms" type="uint16" elements="1" defaultvalue="50"/>
|
<field name="SendTimeout" units="ms" type="uint16" elements="1" defaultvalue="50"/>
|
||||||
<field name="MinPacketSize" units="bytes" type="uint8" elements="1" defaultvalue="50"/>
|
<field name="MinPacketSize" units="bytes" type="uint8" elements="1" defaultvalue="50"/>
|
||||||
<field name="FrequencyCalibration" units="" type="uint8" elements="1" defaultvalue="127"/>
|
<field name="FrequencyCalibration" units="" type="uint8" elements="1" defaultvalue="127"/>
|
||||||
<field name="Frequency" units="" type="uint32" elements="1" defaultvalue="434000000"/>
|
<field name="MinFrequency" units="" type="uint32" elements="1" defaultvalue="432000000"/>
|
||||||
|
<field name="MaxFrequency" units="" type="uint32" elements="1" defaultvalue="436000000"/>
|
||||||
<field name="AESKey" units="" type="uint8" elements="32" defaultvalue="0123456789abcdef0123456789abcdef"/>
|
<field name="AESKey" units="" type="uint8" elements="32" defaultvalue="0123456789abcdef0123456789abcdef"/>
|
||||||
|
|
||||||
<access gcs="readwrite" flight="readwrite"/>
|
<access gcs="readwrite" flight="readwrite"/>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user