RFE API
The RFE component defines the functionality of a RF emitter device, and it is
specified in src/protobuf/mdif/rfe/rfe.proto
.
Protobuf specification
The following documentation is generated from the Protobuf specification in
src/protobuf/mdif/rfe/rfe.proto
.
Table of Contents
mdif/common.proto
Common to all mdif protobuffers.
Status
Defines the status of a request
Name |
Number |
Description |
---|---|---|
SUCCESS |
0 |
The request was successful |
FAILURE |
1 |
The request failed |
ERR_INVALID |
2 |
The request was invalid |
ERR_NOT_SUPPORTED |
3 |
The request is not supported |
ERR_NOT_IMPLEMENTED |
4 |
The request is not implemented |
ERR_NOT_READY |
5 |
The device is not ready to process the request |
ERR_SIZE |
6 |
The device cannot process the size |
mdif/rfe/rfe.proto
Message allocation for the RFE component are in the range:
Start |
End |
Radix |
---|---|---|
0xC0 |
0xDF |
Hex |
192 |
223 |
Dec |
RfeService
Defines the relationship between requests and responses in the RFE component
Method Name |
Request Type |
Response Type |
Description |
---|---|---|---|
Start |
Use to start the RF effector |
||
Stop |
Use to stop the RF effector |
||
GetStateInfo |
Use to get the current state of the RF effector |
GetStateInfoReq
Request RFE state
RfeMsg
Rfe wire format messages
This message dictates the final format on the wire for rfe messages. It is a oneof construct to wrap a single message at a time.
Every request (req) has a corresponding response (res). The req/res pairs are defined in the RfeService through RPC patterns.
Indications (ind) are pushed without a request at any time
Field |
Type |
Description |
---|---|---|
start_req |
Request RFE start |
|
start_res |
RFE start response |
|
stop_req |
Request RFE stop |
|
stop_res |
RFE stop response |
|
get_state_info_req |
Request RFE state |
|
get_state_info_res |
RFE state response |
|
state_info_ind |
RFE state indication |
RfeState
Defines the state of the RFE device
Field |
Type |
Description |
---|---|---|
controller_type |
||
config |
||
battery_status |
||
temperature_status |
StartReq
Request RFE start.
Field |
Type |
Description |
---|---|---|
clear_list |
If clear_list is set to true, any currently active frequency bands will be cleared. If it is set to false, the frequency bands in the freq_band_list will be added to the active frequency bands. |
|
freq_band_list |
List of frequency bands to start trasmitting on |
StartRes
Response to StartReq
Field |
Type |
Description |
---|---|---|
status |
Status of the request If only a single device is connected, then the status reflects the actual status of the device. If multiple devices are connected (daisy chained), then the status indicates if the request was accepted and relayed to the next device in the chain. |
|
tx_status_list |
List of statuses for each requested frequency band. The list is always relative to the first device in the chain. |
StateInfo
Response to GetStateInfoReq and indication of RFE state
Field |
Type |
Description |
---|---|---|
local |
State of the first device in the chain. |
|
remote |
State of the last device in the chain. |
StopReq
Request RFE stop.
StopRes
Response to StopReq
Field |
Type |
Description |
---|---|---|
status |
Status of the request |
BatteryStatus
Defines the status of the battery
Name |
Number |
Description |
---|---|---|
BATTERY_STATUS_UNDEFINED |
0 |
|
BATTERY_STATUS_NORMAL |
1 |
Battery status is normal |
BATTERY_STATUS_LOW |
2 |
Battery status is low, still operating as normal |
Config
Defines the configuration of the RFE device The configuration is a bit field, and each bit must be explicitly tested
Name |
Number |
Description |
---|---|---|
CONFIG_UNDEFINED |
0 |
|
CONFIG_SHUTDOWN |
1 |
Device is hutting down |
CONFIG_TRANSMITTING |
2 |
Device is transmitting |
CONFIG_AUTOMATIC |
4 |
Device is in automatic mode. That is, the device is controlled by an external entity |
CONFIG_TX_GNSS |
8 |
Device is configured to transmit on GNSS band |
CONFIG_TX_2G4 |
16 |
Device is configured to transmit on 2.4 GHz band |
CONFIG_TX_5G2 |
32 |
Device is configured to transmit on 5.2 GHz band |
CONFIG_TX_5G8 |
64 |
Device is configured to transmit on 5.8 GHz band |
CONFIG_LOW_POWER |
128 |
Device is in low power mode |
ControllerType
Defines the type of controller If device is in automatic mode a controller must operate the device
Name |
Number |
Description |
---|---|---|
CONTROLLER_TYPE_UNDEFINED |
0 |
|
CONTROLLER_TYPE_NOT_PRESENT |
1 |
|
CONTROLLER_TYPE_WINGMAN |
2 |
|
CONTROLLER_TYPE_OTHER |
3 |
FreqBand
Defines the frequency bands that can be used for RFE
Name |
Number |
Description |
---|---|---|
FREQ_BAND_GNSS |
0 |
GPS (L1, 1.5GHz) + GLONASS (L1, 1.6GHz) |
FREQ_BAND_2_4_GHZ |
1 |
2.4 GHz band |
FREQ_BAND_5_2_GHZ |
2 |
5.2 GHz band |
FREQ_BAND_5_8_GHZ |
3 |
5.8 GHz band |
TemperatureStatus
Defines the temperature status
Name |
Number |
Description |
---|---|---|
TEMPERATURE_STATUS_UNDEFINED |
0 |
|
TEMPERATURE_STATUS_NORMAL |
1 |
Temperature status is normal |
TEMPERATURE_STATUS_HIGH |
2 |
Temperature status is high, output power is reduced |
TEMPERATURE_STATUS_TO_HIGH |
3 |
Temperature status is too high, transmission is stopped |
TxStatus
Defines the status on the the requested frequency band
Name |
Number |
Description |
---|---|---|
TX_STATUS_UNDEFINED |
0 |
|
TX_STATUS_ACCEPT |
1 |
Frequency band accepted |
TX_STATUS_FREQ_NOT_POSSIBLE |
2 |
The requested frequency band can not be jammed due to hardware limitations |
TX_STATUS_FREQ_NOT_ALLOWED |
3 |
The requested frequency band is not allowed. |
TX_STATUS_PARTIAL |
4 |
Only part of the requested frequency band will be jammed due to resource limitations |
TX_STATUS_RESOURCE_LIMITATION |
5 |
The requested frequency band can not be jammed due to resource limitations |
TX_STATUS_OVERHEAT |
6 |
No jamming due to temperature |
TX_STATUS_BATTERY_LOW |
7 |
No jamming due to battery status |
TX_STATUS_MANUAL_MODE |
8 |
No jamming due to manual mode |
TX_STATUS_UNAVAILABLE |
9 |
Currently unavailable - shutting down, FWU etc. |
Scalar Value Types
.proto Type |
Notes |
C++ |
Java |
Python |
Go |
C# |
PHP |
Ruby |
---|---|---|---|---|---|---|---|---|
double |
double |
float |
float64 |
double |
float |
Float |
||
float |
float |
float |
float32 |
float |
float |
Float |
||
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. |
int32 |
int |
int |
int32 |
int |
integer |
Bignum or Fixnum (as required) |
|
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. |
int64 |
long |
int/long |
int64 |
long |
integer/string |
Bignum |
|
Uses variable-length encoding. |
uint32 |
int |
int/long |
uint32 |
uint |
integer |
Bignum or Fixnum (as required) |
|
Uses variable-length encoding. |
uint64 |
long |
int/long |
uint64 |
ulong |
integer/string |
Bignum or Fixnum (as required) |
|
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. |
int32 |
int |
int |
int32 |
int |
integer |
Bignum or Fixnum (as required) |
|
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. |
int64 |
long |
int/long |
int64 |
long |
integer/string |
Bignum |
|
Always four bytes. More efficient than uint32 if values are often greater than 2^28. |
uint32 |
int |
int |
uint32 |
uint |
integer |
Bignum or Fixnum (as required) |
|
Always eight bytes. More efficient than uint64 if values are often greater than 2^56. |
uint64 |
long |
int/long |
uint64 |
ulong |
integer/string |
Bignum |
|
Always four bytes. |
int32 |
int |
int |
int32 |
int |
integer |
Bignum or Fixnum (as required) |
|
Always eight bytes. |
int64 |
long |
int/long |
int64 |
long |
integer/string |
Bignum |
|
bool |
boolean |
boolean |
bool |
bool |
boolean |
TrueClass/FalseClass |
||
A string must always contain UTF-8 encoded or 7-bit ASCII text. |
string |
String |
str/unicode |
string |
string |
string |
String (UTF-8) |
|
May contain any arbitrary sequence of bytes. |
string |
ByteString |
str |
[]byte |
ByteString |
string |
String (ASCII-8BIT) |