HT32SX Generic Push Button
Generic Push Button application for HT32SX
sigfox_api.h File Reference

Sigfox user functions. More...

#include "sigfox_types.h"
Include dependency graph for sigfox_api.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  sfx_rc_specific_t
 
struct  sfx_rc_t
 

Macros

#define SFX_ERR_NONE   (sfx_u8)(0x00)
 
#define SFX_ERR_API_OPEN   (sfx_u8)(0x10)
 
#define SFX_ERR_API_OPEN_STATE   (sfx_u8)(0x11)
 
#define SFX_ERR_API_OPEN_GET_NVMEM_MEMORY_OVERLAP   (sfx_u8)(0x12)
 
#define SFX_ERR_API_OPEN_RC_PTR   (sfx_u8)(0x13)
 
#define SFX_ERR_API_OPEN_MACRO_CHANNEL_WIDTH   (sfx_u8)(0x14)
 
#define SFX_ERR_API_CLOSE_FREE   (sfx_u8)(0x20)
 
#define SFX_ERR_API_CLOSE_STATE   (sfx_u8)(0x21)
 
#define SFX_ERR_API_SEND_FRAME_DATA_LENGTH   (sfx_u8)(0x30)
 
#define SFX_ERR_API_SEND_FRAME_RESPONSE_PTR   (sfx_u8)(0x31)
 
#define SFX_ERR_API_SEND_FRAME_DELAY_OOB_ACK   (sfx_u8)(0x32)
 
#define SFX_ERR_API_SEND_FRAME_DATA_PTR   (sfx_u8)(0x33)
 
#define SFX_ERR_API_SEND_BIT_RESPONSE_PTR   (sfx_u8)(0x34)
 
#define SFX_ERR_API_SEND_OOB_TYPE   (sfx_u8)(0x35)
 
#define SFX_ERR_API_SET_STD_CONFIG_CARRIER_SENSE_CONFIG   (sfx_u8)(0x40)
 
#define SFX_ERR_API_SET_STD_CONFIG_FH_CHANNELS   (sfx_u8)(0x41)
 
#define SFX_ERR_API_SEND_TEST_FRAME_DEVICE_ID   (sfx_u8)(0x50)
 
#define SFX_ERR_API_SEND_TEST_FRAME_STATE   (sfx_u8)(0x51)
 
#define SFX_ERR_API_SEND_TEST_FRAME_DATA_LENGTH   (sfx_u8)(0x52)
 
#define SFX_ERR_API_SEND_TEST_FRAME_DATA_PTR   (sfx_u8)(0x53)
 
#define SFX_ERR_API_SEND_TEST_STORE_NVM   (sfx_u8)(0x54)
 
#define SFX_ERR_API_RECEIVE_TEST_FRAME_DEVICE_ID   (sfx_u8)(0x55)
 
#define SFX_ERR_API_RECEIVE_TEST_FRAME_STATE   (sfx_u8)(0x56)
 
#define SFX_ERR_API_START_CONTINUOUS_TRANSMISSION   (sfx_u8)(0x57)
 
#define SFX_ERR_API_START_CONTINUOUS_TRANSMISSION_STATE   (sfx_u8)(0x58)
 
#define SFX_ERR_API_STOP_CONTINUOUS_TRANSMISSION   (sfx_u8)(0x59)
 
#define SFX_ERR_API_STOP_CONTINUOUS_TRANSMISSION_STATE   (sfx_u8)(0x5A)
 
#define SFX_ERR_API_GET_INITIAL_PAC   (sfx_u8)(0x5B)
 
#define SFX_ERR_API_GET_VERSION   (sfx_u8)(0x5C)
 
#define SFX_ERR_API_GET_VERSION_WRONG_TYPE   (sfx_u8)(0x5D)
 
#define SFX_ERR_API_SWITCH_PUBLIC_KEY   (sfx_u8)(0x5E)
 
#define SFX_ERR_INT_EXECUTE_COM_SEQUENCE_STATE   (sfx_u8)(0x60)
 
#define SFX_ERR_INT_EXECUTE_COM_SEQUENCE_NVM_STORAGE_MESSAGE   (sfx_u8)(0x61)
 
#define SFX_ERR_INT_EXECUTE_COM_SEQUENCE_NVM_STORAGE_ACK   (sfx_u8)(0x62)
 
#define SFX_ERR_INT_EXECUTE_COM_SEQUENCE_NVM_STORAGE_RCSYNC   (sfx_u8)(0x63)
 
#define SFX_ERR_INT_EXECUTE_COM_SEQUENCE_DELAY_OOB_ACK   (sfx_u8)(0x64)
 
#define SFX_ERR_INT_PROCESS_UPLINK_START_TIMER_FH_IN_DL   (sfx_u8)(0x70)
 
#define SFX_ERR_INT_PROCESS_UPLINK_WAIT_FOR_END_TIMER_FH_IN_DL   (sfx_u8)(0x71)
 
#define SFX_ERR_INT_PROCESS_UPLINK_TIMER_FH   (sfx_u8)(0x72)
 
#define SFX_ERR_INT_PROCESS_UPLINK_WAIT_FOR_END_TIMER_FH   (sfx_u8)(0x73)
 
#define SFX_ERR_INT_PROCESS_UPLINK_DELAY_INTERFRAME   (sfx_u8)(0x74)
 
#define SFX_ERR_INT_PROCESS_UPLINK_TIMER_DOWNLINK   (sfx_u8)(0x75)
 
#define SFX_ERR_INT_PROCESS_UPLINK_CS_RETRY   (sfx_u8)(0x76)
 
#define SFX_ERR_INT_PROCESS_UPLINK_CS_RETRY_START_TIMER   (sfx_u8)(0x77)
 
#define SFX_ERR_INT_PROCESS_UPLINK_CS_RETRY_STOP_TIMER   (sfx_u8)(0x78)
 
#define SFX_ERR_INT_PROCESS_UPLINK_CS_RETRY_DELAY_ATTEMPT   (sfx_u8)(0x79)
 
#define SFX_ERR_INT_PROCESS_UPLINK_CS_REPETITION   (sfx_u8)(0x7A)
 
#define SFX_ERR_INT_PROCESS_UPLINK_CS_REPETITION_START_TIMER   (sfx_u8)(0x7B)
 
#define SFX_ERR_INT_PROCESS_UPLINK_CS_REPETITION_STOP_TIMER   (sfx_u8)(0x7C)
 
#define SFX_ERR_INT_PROCESS_UPLINK_CS_REPETITION_STOP_TIMER_2   (sfx_u8)(0x7D)
 
#define SFX_ERR_INT_PROCESS_UPLINK_CS_TIMEOUT   (sfx_u8)(0x7E)
 
#define SFX_ERR_INT_BUILD_FRAME_SE   (sfx_u8)(0x90)
 
#define SFX_ERR_INT_BUILD_FRAME   (sfx_u8)(0x91)
 
#define SFX_ERR_INT_BUILD_FRAME_OOB_SERVICE   (sfx_u8)(0x92)
 
#define SFX_ERR_INT_BUILD_FRAME_OOB_DOWNLINK_ACK   (sfx_u8)(0x93)
 
#define SFX_ERR_INT_BUILD_FRAME_OOB_REPEATER_STATUS   (sfx_u8)(0x94)
 
#define SFX_ERR_INT_BUILD_FRAME_OOB_RC_SYNC   (sfx_u8)(0x95)
 
#define SFX_ERR_INT_BUILD_FRAME_PAYLOAD_CRYPTED   (sfx_u8)(0x96)
 
#define SFX_ERR_INT_SEND_SINGLE_FRAME   (sfx_u8)(0x97)
 
#define SFX_ERR_INT_PROCESS_DOWNLINK   (sfx_u8)(0x98)
 
#define SFX_ERR_INT_GET_DEVICE_ID   (sfx_u8)(0x99)
 
#define SFX_ERR_INT_GET_RECEIVED_FRAMES   (sfx_u8)(0x9A)
 
#define SFX_ERR_INT_GET_RECEIVED_FRAMES_TIMEOUT   (sfx_u8)(0x9B)
 
#define SFX_ERR_INT_GET_RECEIVED_FRAMES_WAIT_NOT_EXECUTED   (sfx_u8)(0x9C)
 
#define SFX_ERR_INT_GET_DEVICE_INFO   (sfx_u8)(0x9D)
 
#define SFX_ERR_INT_GET_DEVICE_INFO_CRC   (sfx_u8)(0x9E)
 
#define SFX_ERR_INT_GET_DEVICE_INFO_CERTIFICATE   (sfx_u8)(0x9F)
 
#define SFX_ERR_API_SET_RC_SYNC_PERIOD   (sfx_u8)(0xB0)
 
#define SFX_ERR_API_SET_RC_SYNC_PERIOD_VALUE   (sfx_u8)(0xB1)
 
#define SFX_ERR_MONARCH_API_EXECUTE_RC_SCAN_STATE   (sfx_u8)(0xB2)
 
#define SFX_ERR_MONARCH_API_EXECUTE_RC_SCAN   (sfx_u8)(0xB3)
 
#define SFX_ERR_MONARCH_API_EXECUTE_RC_SCAN_NULL_CALLBACK   (sfx_u8)(0xB4)
 
#define SFX_ERR_MONARCH_API_STOP_RC_SCAN_STATE   (sfx_u8)(0xB5)
 
#define SFX_ERR_MONARCH_API_STOP_RC_SCAN   (sfx_u8)(0xB6)
 
#define SFX_ERR_CALLBACK_MONARCH_SCAN_TIMEOUT_CB_STATE   (sfx_u8)(0xB7)
 
#define SFX_ERR_CALLBACK_MONARCH_SCAN_TIMEOUT   (sfx_u8)(0xB8)
 
#define SFX_ERR_CALLBACK_MONARCH_PATTERN_FREQUENCY_RESULT_STATE   (sfx_u8)(0xB9)
 
#define SFX_ERR_CALLBACK_MONARCH_PATTERN_FREQUENCY_RESULT   (sfx_u8)(0xBA)
 
#define SFX_ERR_CALLBACK_MONARCH_PATTERN_FREQUENCY_RESULT_WRONG_PATTERN   (sfx_u8)(0xBB)
 
#define SFX_ERR_CALLBACK_MONARCH_PATTERN_FREQUENCY_RESULT_WRONG_FREQ   (sfx_u8)(0xBC)
 
#define SFX_ERR_INT_DOWNLINK_CONFIGURATION   (sfx_u8)(0xE0)
 
#define NA   0 /* Used to store Not applicable values in config words or open parameters */
 
#define RC1_OPEN_UPLINK_CENTER_FREQUENCY   (sfx_u32)(868130000) /* Hz */
 
#define RC1_OPEN_DOWNLINK_CENTER_FREQUENCY   (sfx_u32)(869525000) /* Hz */
 
#define RC1_MACRO_CHANNEL_WIDTH   (sfx_u32)(192000) /* Hz */
 
#define RC1_UPLINK_MODULATION   SFX_DBPSK_100BPS
 
#define RC1_UPLINK_SPECTRUM_ACCESS   SFX_DC
 
#define RC2_OPEN_UPLINK_START_OF_TABLE   (sfx_u32)(902200000) /* Hz, The center frequency of RC2 is defined by the activated channels in config words */
 
#define RC2_OPEN_DOWNLINK_CENTER_FREQUENCY   (sfx_u32)(905200000) /* Hz */
 
#define RC2_MACRO_CHANNEL_WIDTH   (sfx_u32)(192000) /* Hz */
 
#define RC2_UPLINK_MODULATION   SFX_DBPSK_600BPS
 
#define RC2_UPLINK_SPECTRUM_ACCESS   SFX_FH
 
#define RC2_SET_STD_CONFIG_LM_WORD_0   (sfx_u32)0x000001FF /* LM = Long Message */
 
#define RC2_SET_STD_CONFIG_LM_WORD_1   (sfx_u32)0x00000000
 
#define RC2_SET_STD_CONFIG_LM_WORD_2   (sfx_u32)0x00000000
 
#define RC2_SET_STD_TIMER_ENABLE   (sfx_bool)(SFX_TRUE) /* Enable Timer for FH duty cycle*/
 
#define RC2_SET_STD_TIMER_DISABLE   (sfx_bool)(SFX_FALSE) /* Disable timer feature*/
 
#define RC2_SET_STD_CONFIG_SM_WORD_0   (sfx_u32)0x00000001 /* SM = Short message */
 
#define RC2_SET_STD_CONFIG_SM_WORD_1   (sfx_u32)0x00000000
 
#define RC2_SET_STD_CONFIG_SM_WORD_2   (sfx_u32)0x00000000
 
#define RC3A_OPEN_CS_CENTER_FREQUENCY   (sfx_u32)(923200000) /* Hz */
 
#define RC3A_OPEN_CS_BANDWIDTH   (sfx_u32)(200000) /* Hz */
 
#define RC3A_OPEN_UPLINK_CENTER_FREQUENCY   (sfx_u32)(923200000) /* Hz */
 
#define RC3A_OPEN_DOWNLINK_CENTER_FREQUENCY   (sfx_u32)(922200000) /* Hz */
 
#define RC3A_MACRO_CHANNEL_WIDTH   (sfx_u32)(36000) /* Hz */
 
#define RC3A_UPLINK_MODULATION   SFX_DBPSK_100BPS
 
#define RC3A_UPLINK_SPECTRUM_ACCESS   SFX_LBT
 
#define RC3A_CS_THRESHOLD   (sfx_s8)(-80) /* dBm */
 
#define RC3C_OPEN_CS_CENTER_FREQUENCY   (sfx_u32)(923200000) /* Hz */
 
#define RC3C_OPEN_CS_BANDWIDTH   (sfx_u32)(200000) /* Hz */
 
#define RC3C_OPEN_UPLINK_CENTER_FREQUENCY   (sfx_u32)(923200000) /* Hz */
 
#define RC3C_OPEN_DOWNLINK_CENTER_FREQUENCY   (sfx_u32)(922200000) /* Hz */
 
#define RC3C_MACRO_CHANNEL_WIDTH   (sfx_u32)(192000) /* Hz */
 
#define RC3C_UPLINK_MODULATION   SFX_DBPSK_100BPS
 
#define RC3C_UPLINK_SPECTRUM_ACCESS   SFX_LBT
 
#define RC3C_CS_THRESHOLD   (sfx_s8)(-80) /* dBm */
 
#define RC4_OPEN_UPLINK_START_OF_TABLE   (sfx_u32)(902200000) /* Hz, The center frequency of RC4 is defined by the activated channels in config words */
 
#define RC4_OPEN_DOWNLINK_CENTER_FREQUENCY   (sfx_u32)(922300000) /* Hz */
 
#define RC4_MACRO_CHANNEL_WIDTH   (sfx_u32)(192000) /* Hz */
 
#define RC4_UPLINK_MODULATION   SFX_DBPSK_600BPS
 
#define RC4_UPLINK_SPECTRUM_ACCESS   SFX_FH
 
#define RC4_SET_STD_CONFIG_LM_WORD_0   (sfx_u32)0x00000000 /* LM = Long Message */
 
#define RC4_SET_STD_CONFIG_LM_WORD_1   (sfx_u32)0xF0000000
 
#define RC4_SET_STD_CONFIG_LM_WORD_2   (sfx_u32)0x0000001F
 
#define RC4_SET_STD_TIMER_ENABLE   (sfx_bool)(SFX_TRUE) /* Enable Timer for FH duty cycle*/
 
#define RC4_SET_STD_TIMER_DISABLE   (sfx_bool)(SFX_FALSE) /* Disable timer feature*/
 
#define RC4_SET_STD_CONFIG_SM_WORD_0   (sfx_u32)0x00000000 /* SM = Short message */
 
#define RC4_SET_STD_CONFIG_SM_WORD_1   (sfx_u32)0x40000000
 
#define RC4_SET_STD_CONFIG_SM_WORD_2   (sfx_u32)0x00000000
 
#define RC5_OPEN_CS_CENTER_FREQUENCY   (sfx_u32)(923300000) /* Hz */
 
#define RC5_OPEN_CS_BANDWIDTH   (sfx_u32)(200000) /* Hz */
 
#define RC5_OPEN_UPLINK_CENTER_FREQUENCY   (sfx_u32)(923300000) /* Hz */
 
#define RC5_OPEN_DOWNLINK_CENTER_FREQUENCY   (sfx_u32)(922300000) /* Hz */
 
#define RC5_MACRO_CHANNEL_WIDTH   (sfx_u32)(192000) /* Hz */
 
#define RC5_UPLINK_MODULATION   SFX_DBPSK_100BPS
 
#define RC5_UPLINK_SPECTRUM_ACCESS   SFX_LBT
 
#define RC5_CS_THRESHOLD   (sfx_s8)(-65) /* dBm */
 
#define RC6_OPEN_UPLINK_CENTER_FREQUENCY   (sfx_u32)(865200000) /* Hz */
 
#define RC6_OPEN_DOWNLINK_CENTER_FREQUENCY   (sfx_u32)(866300000) /* Hz */
 
#define RC6_MACRO_CHANNEL_WIDTH   (sfx_u32)(192000) /* Hz */
 
#define RC6_UPLINK_MODULATION   SFX_DBPSK_100BPS
 
#define RC6_UPLINK_SPECTRUM_ACCESS   SFX_DC
 
#define RC7_OPEN_UPLINK_CENTER_FREQUENCY   (sfx_u32)(868800000) /* Hz */
 
#define RC7_OPEN_DOWNLINK_CENTER_FREQUENCY   (sfx_u32)(869100000) /* Hz */
 
#define RC7_MACRO_CHANNEL_WIDTH   (sfx_u32)(192000) /* Hz */
 
#define RC7_UPLINK_MODULATION   SFX_DBPSK_100BPS
 
#define RC7_UPLINK_SPECTRUM_ACCESS   SFX_DC
 
#define RC101_OPEN_UPLINK_CENTER_FREQUENCY   (sfx_u32)(68862500) /* Hz */
 
#define RC101_OPEN_DOWNLINK_CENTER_FREQUENCY   (sfx_u32)(72912500) /* Hz */
 
#define RC101_MACRO_CHANNEL_WIDTH   (sfx_u32)(12500) /* Hz */
 
#define RC101_UPLINK_MODULATION   SFX_DBPSK_100BPS
 
#define RC101_UPLINK_SPECTRUM_ACCESS   SFX_DC
 
#define RC1   {RC1_OPEN_UPLINK_CENTER_FREQUENCY, RC1_OPEN_DOWNLINK_CENTER_FREQUENCY, RC1_MACRO_CHANNEL_WIDTH, RC1_UPLINK_MODULATION, RC1_UPLINK_SPECTRUM_ACCESS, {NA,NA,NA}}
 
#define RC2   {RC2_OPEN_UPLINK_START_OF_TABLE, RC2_OPEN_DOWNLINK_CENTER_FREQUENCY, RC2_MACRO_CHANNEL_WIDTH, RC2_UPLINK_MODULATION, RC2_UPLINK_SPECTRUM_ACCESS, {NA,NA,NA}}
 
#define RC3A   {RC3A_OPEN_UPLINK_CENTER_FREQUENCY, RC3A_OPEN_DOWNLINK_CENTER_FREQUENCY, RC3A_MACRO_CHANNEL_WIDTH, RC3A_UPLINK_MODULATION, RC3A_UPLINK_SPECTRUM_ACCESS, {RC3A_OPEN_CS_CENTER_FREQUENCY,RC3A_OPEN_CS_BANDWIDTH, RC3A_CS_THRESHOLD}}
 
#define RC3C   {RC3C_OPEN_UPLINK_CENTER_FREQUENCY, RC3C_OPEN_DOWNLINK_CENTER_FREQUENCY, RC3C_MACRO_CHANNEL_WIDTH, RC3C_UPLINK_MODULATION, RC3C_UPLINK_SPECTRUM_ACCESS, {RC3C_OPEN_CS_CENTER_FREQUENCY,RC3C_OPEN_CS_BANDWIDTH, RC3C_CS_THRESHOLD}}
 
#define RC4   {RC4_OPEN_UPLINK_START_OF_TABLE, RC4_OPEN_DOWNLINK_CENTER_FREQUENCY, RC4_MACRO_CHANNEL_WIDTH, RC4_UPLINK_MODULATION, RC4_UPLINK_SPECTRUM_ACCESS, {NA,NA,NA}}
 
#define RC5   {RC5_OPEN_UPLINK_CENTER_FREQUENCY, RC5_OPEN_DOWNLINK_CENTER_FREQUENCY, RC5_MACRO_CHANNEL_WIDTH, RC5_UPLINK_MODULATION, RC5_UPLINK_SPECTRUM_ACCESS, {RC5_OPEN_CS_CENTER_FREQUENCY,RC5_OPEN_CS_BANDWIDTH, RC5_CS_THRESHOLD}}
 
#define RC6   {RC6_OPEN_UPLINK_CENTER_FREQUENCY, RC6_OPEN_DOWNLINK_CENTER_FREQUENCY, RC6_MACRO_CHANNEL_WIDTH, RC6_UPLINK_MODULATION, RC6_UPLINK_SPECTRUM_ACCESS, {NA,NA,NA}}
 
#define RC7   {RC7_OPEN_UPLINK_CENTER_FREQUENCY, RC7_OPEN_DOWNLINK_CENTER_FREQUENCY, RC7_MACRO_CHANNEL_WIDTH, RC7_UPLINK_MODULATION, RC7_UPLINK_SPECTRUM_ACCESS, {NA,NA,NA}}
 
#define RC101   {RC101_OPEN_UPLINK_CENTER_FREQUENCY, RC101_OPEN_DOWNLINK_CENTER_FREQUENCY, RC101_MACRO_CHANNEL_WIDTH, RC101_UPLINK_MODULATION, RC101_UPLINK_SPECTRUM_ACCESS, {NA,NA,NA}}
 
#define RC2_LM_CONFIG   {RC2_SET_STD_CONFIG_LM_WORD_0, RC2_SET_STD_CONFIG_LM_WORD_1, RC2_SET_STD_CONFIG_LM_WORD_2}
 
#define RC4_LM_CONFIG   {RC4_SET_STD_CONFIG_LM_WORD_0, RC4_SET_STD_CONFIG_LM_WORD_1, RC4_SET_STD_CONFIG_LM_WORD_2}
 
#define RC2_SM_CONFIG   {RC2_SET_STD_CONFIG_SM_WORD_0, RC2_SET_STD_CONFIG_SM_WORD_1, RC2_SET_STD_CONFIG_SM_WORD_2}
 
#define RC4_SM_CONFIG   {RC4_SET_STD_CONFIG_SM_WORD_0, RC4_SET_STD_CONFIG_SM_WORD_1, RC4_SET_STD_CONFIG_SM_WORD_2}
 
#define RC3A_CONFIG   {0x00000003,0x00001388,0x00000000}
 
#define RC3C_CONFIG   {0x00000003,0x00001388,0x00000000}
 
#define RC5_CONFIG   {0x00000003,0x00001388,0x00000000}
 
#define ID_LENGTH   (sfx_u8)(4) /* Size of device identifier */
 
#define PAC_LENGTH   (sfx_u8)(8) /* Size of device initial PAC */
 

Typedefs

typedef struct sfx_rc_specific_t sfx_rc_specific_t
 
typedef struct sfx_rc_t sfx_rc_t
 

Enumerations

enum  sfx_spectrum_access_t { SFX_FH = 1, SFX_LBT = 2, SFX_DC = 4 }
 
enum  sfx_version_type_t { VERSION_SIGFOX = 0, VERSION_MCU = 1, VERSION_RF = 2, VERSION_MONARCH = 5 }
 
enum  sfx_authentication_mode_t { AUTHENTICATION_OFF = 0, AUTHENTICATION_ON = 1 }
 
enum  sfx_rx_state_enum_t { DL_TIMEOUT = 0, DL_PASSED = 1 }
 
enum  sfx_oob_enum_t { SFX_OOB_SERVICE = 0, SFX_OOB_RC_SYNC, SFX_MAX_OOB_LIST_SIZE }
 
enum  sfx_state_t {
  SFX_STATE_IDLE = 0, SFX_STATE_NOT_CONFIGURED = 1, SFX_STATE_READY = 2, SFX_STATE_UPLINK = 3,
  SFX_STATE_DOWNLINK = 4, SFX_STATE_MONARCH_LISTENING_SWEEP = 6, SFX_STATE_MONARCH_LISTENING_WINDOW = 7
}
 
enum  sfx_modulation_type_t { SFX_NO_MODULATION = 0, SFX_DBPSK_100BPS = 1, SFX_DBPSK_600BPS = 2 }
 
enum  sfx_nvmem_t {
  SFX_NVMEM_PN = 0, SFX_NVMEM_SEQ_NUM = 2, SFX_NVMEM_FH = 4, SFX_NVMEM_RL = 6,
  SFX_NVMEM_BLOCK_SIZE = 7
}
 
enum  sfx_rf_mode_t {
  SFX_RF_MODE_TX = 0, SFX_RF_MODE_RX = 1, SFX_RF_MODE_CS200K_RX = 2, SFX_RF_MODE_CS300K_RX = 3,
  SFX_RF_MODE_MONARCH = 4
}
 
enum  sfx_delay_t { SFX_DLY_INTER_FRAME_TRX = 0, SFX_DLY_INTER_FRAME_TX = 1, SFX_DLY_OOB_ACK = 2, SFX_DLY_CS_SLEEP = 3 }
 
enum  sfx_credentials_use_key_t { CREDENTIALS_PRIVATE_KEY = 0, CREDENTIALS_KEY_IN_ARGUMENT }
 

Functions

sfx_error_t SIGFOX_API_open (sfx_rc_t *rc)
 This function initialises library (mandatory). The SIGFOX_API_open function will : More...
 
sfx_error_t SIGFOX_API_close (void)
 This function closes the library (Free the allocated memory of SIGFOX_API_open and close RF) More...
 
sfx_error_t SIGFOX_API_send_frame (sfx_u8 *customer_data, sfx_u8 customer_data_length, sfx_u8 *customer_response, sfx_u8 tx_mode, sfx_bool initiate_downlink_flag)
 Send a standard SIGFOX frame with customer payload. Customer payload cannot exceed 12 Bytes.
More...
 
sfx_error_t SIGFOX_API_send_bit (sfx_bool bit_value, sfx_u8 *customer_response, sfx_u8 tx_mode, sfx_bool initiate_downlink_flag)
 Send a standard SIGFOX frame with null customer payload. This frame is the shortest that SIGFOX library can generate. Data is contained on 1 sfx_bool. More...
 
sfx_error_t SIGFOX_API_send_outofband (sfx_oob_enum_t oob_type)
 Send an out of band SIGFOX frame which the type is passed as parameter of the function.
Data is composed of information about the chip itself (Voltage, Temperature).
More...
 
sfx_error_t SIGFOX_API_set_std_config (sfx_u32 config_words[3], sfx_bool timer_enable)
 This function must be used to configure specific variables for standard. It is mandatory to call this function after SIGFOX_API_open() for FH and LBT. More...
 
sfx_error_t SIGFOX_API_start_continuous_transmission (sfx_u32 frequency, sfx_modulation_type_t type)
 Executes a continuous wave or modulation depending on the parameter type SIGFOX_API_stop_continuous_transmission has to be called to stop the continuous transmission. More...
 
sfx_error_t SIGFOX_API_stop_continuous_transmission (void)
 Stop the current continuous transmission. More...
 
sfx_error_t SIGFOX_API_send_test_frame (sfx_u32 frequency, sfx_u8 *customer_data, sfx_u8 customer_data_length, sfx_bool initiate_downlink_flag)
 This function builds a Sigfox Frame with the customer payload and send it at a specific frequency Use this function ONLY with Certification ID ( 0xFEDCBA98 ) otherwise an issue occurs. More...
 
sfx_error_t SIGFOX_API_receive_test_frame (sfx_u32 frequency, sfx_authentication_mode_t mode, sfx_u8 *buffer, sfx_u8 timeout, sfx_s16 *rssi)
 This function waits for a valid downlink frame during timeout time and return in customer_data the data received. Use this function ONLY with Certification ID ( 0xFEDCBA98 ) otherwise an issue occurs. More...
 
sfx_error_t SIGFOX_API_get_version (sfx_u8 **version, sfx_u8 *size, sfx_version_type_t type)
 Returns current SIGFOX library version, or RF Version, or MCU version etc ..., in ASCII format ( depending on the type ) More...
 
sfx_error_t SIGFOX_API_get_info (sfx_u8 *returned_info)
 This function is to return info on send frame depending on the mode you're using.
In DC and FH : returned_info is always 0.
In LBT : returned_info = bit[7-3]: Carrier Sense attempts and bit[2-0]: Number of frames sent. More...
 
sfx_error_t SIGFOX_API_get_device_id (sfx_u8 *dev_id)
 This function copies the ID of the device to the pointer given in parameter. The ID is ID_LENGTH bytes length and is in binary format. More...
 
sfx_error_t SIGFOX_API_get_initial_pac (sfx_u8 *initial_pac)
 Get the value of the PAC stored in the device. This value is used when the device is registered for the first time on the backend. More...
 
sfx_error_t SIGFOX_API_switch_public_key (sfx_bool use_public_key)
 Switch device on public or private key. More...
 
sfx_error_t SIGFOX_API_set_rc_sync_period (sfx_u16 rc_sync_period)
 Set the period for transmission of RC Sync frame By default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend (from a payload encryption point of view). This transmission period could be reduced through this function. Then, a RC Sync frame will be transmitted every 'rc_sync_period' transmissions of a 'normal' frame. The value 0 corresponds to the default behavior, ie a RC Sync frame transmitted every 4096 messages transmissions. As sequence number is on 12 bits, setting a rc_sync_period with a value more than (4095 - 1) will return an error. More...
 

Detailed Description

Sigfox user functions.

Author
Version
Date

This file includes the user's functions to send data on sigfox's network, such as sending a bit, a frame or a sigfox out of band message.