4. Data Rate Command

Selects the transmitter bit rate and the expected receiver bit rate.

Register Fields

Bits

Name

Meaning

API

7

cs

Data-rate scale selection

rfm12_set_data_rate()

6:0

r6:r0

Data-rate parameter R

rfm12_set_data_rate()

The setter selects a predefined data rate, which the driver encodes into the cs and R fields. The setter and reset function update staged configuration without communicating with the radio. Use rfm12_apply_to_radio() to write the staged settings.

The getter returns the staged selection without reading from the radio.

Data Types

RFM12_data_rate_t

type RFM12_data_rate_t

Enum. Named nominal bit-rate presets. These enum values are preset indices, not bit rates or raw register fields. The radio uses the nearest supported encoding for each preset. RFM12_DATA_RATE_COUNT is a sentinel and is not accepted as a rate.

Constant

Value

Meaning

RFM12_DATA_RATE_1200

0

1200 bits/s nominal.

RFM12_DATA_RATE_2400

1

2400 bits/s nominal.

RFM12_DATA_RATE_4800

2

4800 bits/s nominal.

RFM12_DATA_RATE_9600

3

9600 bits/s nominal.

RFM12_DATA_RATE_19200

4

19200 bits/s nominal.

RFM12_DATA_RATE_28800

5

28800 bits/s nominal.

RFM12_DATA_RATE_38400

6

38400 bits/s nominal.

RFM12_DATA_RATE_57600

7

57600 bits/s nominal.

RFM12_DATA_RATE_115200

8

115200 bits/s nominal.

RFM12_DATA_RATE_COUNT

9

Number of presets; not a valid selection.

Command Functions

rfm12_set_data_rate()

RFM12_result_t rfm12_set_data_rate(RFM12_t *dev, RFM12_data_rate_t rate)

Stage the receiver and transmitter data rate.

Select one of the predefined rates: RFM12_DATA_RATE_1200, RFM12_DATA_RATE_2400, RFM12_DATA_RATE_4800, RFM12_DATA_RATE_9600, RFM12_DATA_RATE_19200, RFM12_DATA_RATE_28800, RFM12_DATA_RATE_38400, RFM12_DATA_RATE_57600, or RFM12_DATA_RATE_115200. The names indicate nominal rates in bits per second; pass the enum constant rather than a numeric bit rate. RFM12_DATA_RATE_COUNT is a count sentinel, not a selectable rate.

This function does not communicate with the radio. The staged data rate is written to the radio by rfm12_apply_to_radio().

Parameters:
  • dev – RFM12 radio instance.

  • rate – Predefined data-rate selection.

Returns:

RFM12_OK on success, or an appropriate RFM12_result_t error.

rfm12_get_data_rate()

RFM12_result_t rfm12_get_data_rate(const RFM12_t *dev, RFM12_data_rate_t *rate)

Get the currently staged data-rate selection.

This function returns the staged enum value without communicating with the radio. It does not measure or read back the hardware bit rate.

Parameters:
  • dev – RFM12 radio instance.

  • rate – Receives the staged data-rate selection.

Returns:

RFM12_OK on success, or an appropriate RFM12_result_t error.

rfm12_reset_data_rate()

RFM12_result_t rfm12_reset_data_rate(RFM12_t *dev)

Reset the staged data-rate selection to its default value.

This function does not communicate with the radio. The changed data rate is written to the radio by rfm12_apply_to_radio().

Parameters:
  • dev – RFM12 radio instance.

Returns:

RFM12_OK on success, or an appropriate RFM12_result_t error.