Known API Responses - flexradio/smartsdr-api-docs GitHub Wiki

The SmartSDR API can produce a number of error codes that provide clues about why a particular command failed. This list contains the list of error, warning and information codes that exist at the time of last update of this page. Note that they are listed as a C header file and you will need to interpret the code values in order to arrive at the hex value for the message you may be receiving.

///*! \file messages.h
// *  \brief CMessages
// *
// *    Copyright 2012-2015 FlexRadio Systems.  All Rights Reserved.
// *
// *  Unauthorized use, duplication or distribution of this software is
// *  strictly prohibited by law.
// *
// *    \author Stephen Hicks, N5AC
// *
// *  DATE:   04-SEP-2012
// *
// */

#ifndef SL_MESSAGES_H
#define SL_MESSAGES_H


#define SL_ERROR_BASE                   0x50000000
#define SL_INFO                         0x10000000
#define SL_WARNING                      0x31000000
#define SL_ERROR                        0xE2000000
#define SL_FATAL                        0xF3000000

#define SL_MYSQL                        0x00001000

#define SL_NO_FOUNDATION_RCVR           SL_ERROR_BASE + 0x001
extern const char*SL_R_NO_FOUNDATION_RCVR;
#define SL_LICENSE_NO_SLICE_AVAIL       SL_ERROR_BASE + 0x002
#define SL_ERROR_ALL_SLICES_IN_USE      SL_ERROR_BASE + 0x003
#define SL_ERROR_SLICE_PARAM            SL_ERROR_BASE + 0x004
extern const char* SL_R_ERROR_SLICE_PARAM;
#define SL_MALLOC_FAIL_SIGNAL_CHAIN     SL_ERROR_BASE + 0x005
#define SL_MALLOC_FAIL_DSP_PROCESS      SL_ERROR_BASE + 0x006
#define SL_NO_SCU_AVAILABLE             SL_ERROR_BASE + 0x007
#define SL_SCU_NOT_IN_USE               SL_ERROR_BASE + 0x008
#define SL_NO_FOUNDATION_RX_AVAILABLE   SL_ERROR_BASE + 0x009
#define SL_FOUNDATION_RX_NOT_IN_USE     SL_ERROR_BASE + 0x00A
#define SL_OUT_OF_MEMORY                SL_ERROR_BASE + 0x00B
#define SL_FREQUENCY_OUT_OF_RANGE       SL_ERROR_BASE + 0x00C
extern const char* SL_R_FREQUENCY_OUT_OF_RANGE;
#define SL_INVALID_SLICE_RECEIVER       SL_ERROR_BASE + 0x00D
extern const char* SL_R_INVALID_SLICE_RECEIVER;
#define SL_INVALID_FOUNDATION_RX        SL_ERROR_BASE + 0x00E
#define SL_INVALID_DSP_PROCESS          SL_ERROR_BASE + 0x00F
#define SL_INVALID_SIGNAL_CHAIN         SL_ERROR_BASE + 0x010
#define SL_FREQUENCY_TOO_HIGH           SL_ERROR_BASE + 0x011
#define SL_NYQUIST_MISMATCH             SL_ERROR_BASE + 0x012
#define SL_BAD_COMMAND                  SL_ERROR_BASE + 0x013
extern const char* SL_R_BAD_COMMAND;
#define SL_UNKNOWN_COMMAND              SL_ERROR_BASE + 0x015
extern const char* SL_R_UNKNOWN_COMMAND;
#define SL_MALFORMED_COMMAND            SL_ERROR_BASE + 0x016
extern const char* SL_R_MALFORMED_COMMAND;
#define SL_NO_SUB                       SL_ERROR_BASE + 0x017
extern const char* SL_R_NO_SUB;
#define SL_BAD_SCU_NUMBER               SL_ERROR_BASE + 0x018
extern const char* SL_R_BAD_SCU_NUMBER;
#define SL_UNKNOWN_PREAMP               SL_ERROR_BASE + 0x019
extern const char* SL_R_UNKNOWN_PREAMP;
#define SL_NULL_POINTER_IN_SIG_CHAIN    SL_ERROR_BASE + 0x01A
extern const char* SL_R_NULL_POINTER_IN_SIG_CHAIN;
#define SL_REF_COUNT_UNDERFLOW          SL_ERROR_BASE + 0x01B
extern const char* SL_R_REF_COUNT_UNDERFLOW;
#define SL_INVALID_MINIMIXER_RX         SL_ERROR_BASE + 0x01C
extern const char* SL_R_INVALID_MINIMIXER_RX;
#define SL_NO_MINIMIXER                 SL_ERROR_BASE + 0x01D
extern const char* SL_R_NO_MINIMIXER;
#define SL_SHARED_MINIMIXER             SL_ERROR_BASE + 0x01E
extern const char* SL_R_SHARED_MINIMIXER;
#define SL_NO_MINIMIXER_IN_RANGE        SL_ERROR_BASE + 0x01F
extern const char* SL_R_NO_MINIMIXER_IN_RANGE;
#define SL_MMX_LIMIT_REACHED            SL_ERROR_BASE + 0x020
#define SL_SECURITY_FAULT               SL_ERROR_BASE + 0x021
extern const char* SL_R_SECURITY_FAULT;
#define SL_RECAHED_MMX_LIMIT            SL_ERROR_BASE + 0x022
#define SL_FOUNDATION_MMX_LIMIT         SL_ERROR_BASE + 0x023
extern const char* SL_R_FOUNDATION_MMX_LIMIT;
#define SL_AUDIO_CLIENT_NOT_FOUND           SL_ERROR_BASE+0x024
extern const char* SL_R_AUDIO_CLIENT_NOT_FOUND;
#define SL_AUDIO_CLIENT_STREAM_ID_NOT_FOUND SL_ERROR_BASE+0x025
extern const char* SL_R_AUDIO_CLIENT_STREAM_ID_NOT_FOUND;
#define SL_AUDIO_CLIENT_GAIN_INVALID        SL_ERROR_BASE+0x026
extern const char* SL_R_AUDIO_CLIENT_GAIN_INVALID;
#define SL_AUDIO_CLIENT_PAN_INVALID     SL_ERROR_BASE+0x027
extern const char* SL_R_AUDIO_CLIENT_PAN_INVALID;
#define SL_SLICE_RECEIVER_NOT_IN_USE    SL_ERROR_BASE + 0x028
extern const char* SL_R_SLICE_RECEIVER_NOT_IN_USE;
#define SL_CLIENT_STREAM_ID_NOT_FOUND   SL_ERROR_BASE + 0x029
extern const char* SL_R_CLIENT_STREAM_ID_NOT_FOUND;
#define SL_UNKNOWN_ANT_PORT             SL_ERROR_BASE + 0x02A
extern const char* SL_R_UNKNOWN_ANT_PORT;
#define SL_INVALID_NUMERIC_VALUE        SL_ERROR_BASE + 0x02B
extern const char* SL_R_INVALID_NUMERIC_VALUE;
#define SL_INCORRECT_NUM_PARAMS         SL_ERROR_BASE + 0x02C
extern const char* SL_R_INCORRECT_NUM_PARAMS;
#define SL_BAD_FIELD                    SL_ERROR_BASE + 0x02D
extern const char* SL_R_BAD_FIELD;
#define SL_NO_SUBSCRIPTION              SL_ERROR_BASE + 0x02E
extern const char* SL_R_UNIMPLEMENTED_MODE;
#define SL_UNIMPLEMENTED_MODE           SL_ERROR_BASE + 0x02F
#define SL_SIGNAL_CHAIN_ERROR           SL_ERROR_BASE + 0x030
#define SL_RFGAIN_OUT_OF_RANGE          SL_ERROR_BASE + 0x031
extern const char* SL_R_RFGAIN_OUT_OF_RANGE;
#define SL_BAD_MODE                     SL_ERROR_BASE + 0x032
extern const char* SL_R_BAD_MODE;
#define SL_PARAM_OUT_OF_RANGE           SL_ERROR_BASE + 0x033
extern const char* SL_R_PARAM_OUT_OF_RANGE;
#define SL_BAD_METER                    SL_ERROR_BASE + 0x034
extern const char* SL_R_BAD_METER;
#define SL_LOW_LEVEL                    SL_ERROR_BASE + 0x035
extern const char* SL_R_LOW_LEVEL;
#define SL_INVALID_METER                SL_ERROR_BASE + 0x036
#define SL_TERMINATE                    SL_ERROR_BASE + 0x037
#define SL_NO_COMMAND                   SL_ERROR_BASE + 0x038
#define SL_FFT_FPS_OUT_OF_RANGE         SL_ERROR_BASE + 0x039
extern const char* SL_R_FFT_FPS_OUT_OF_RANGE;
#define SL_CLOSE_CLIENT                 SL_ERROR_BASE + 0x03A
#define SL_TXSC_INVALID_TONE_INDEX      SL_ERROR_BASE + 0x03B
#define SL_INVALID_TX_ANTENNA           SL_ERROR_BASE + 0x03C
extern const char* SL_R_INVALID_TX_ANTENNA;
#define SL_TX_NOT_SUPPORTED             SL_ERROR_BASE + 0x03D
extern const char* SL_R_TX_NOT_SUPPORTED;
#define SL_BAD_ADC_SOURCE               SL_ERROR_BASE + 0x03E
#define SL_BAD_CAL_TABLE_TYPE           SL_ERROR_BASE + 0x03F
#define SL_BAD_CAL_TABLE_POINTS         SL_ERROR_BASE + 0x040
#define SL_CAL_TABLE_READ_FAIL          SL_ERROR_BASE + 0x041
extern const char* SL_R_TRANSMIT_NOT_READY;
#define SL_NOT_READY_TO_TRANSMIT        SL_ERROR_BASE + 0x042
extern const char* SL_R_NO_TRANSMITTER;
#define SL_NO_TRANSMITTER               SL_ERROR_BASE + 0x043
#define SL_INVALID_TUNE_POWER           SL_ERROR_BASE + 0x044
#define SL_UNCALIBRATED_POWER           SL_ERROR_BASE + 0x045
#define SL_BITE2_FAULT                  SL_ERROR_BASE + 0x046
#define SL_CALIBRATION_WRITE_FAIL       SL_ERROR_BASE + 0x047
#define SL_INVALID_RF_POWER             SL_ERROR_BASE + 0x048
#define SL_READ_EMPTY_CAL_TABLE         SL_ERROR_BASE + 0x049
#define SL_INVALID_ADL5201_DEVICE       SL_ERROR_BASE + 0x04A
#define SL_INVALID_MIC_LEVEL            SL_ERROR_BASE + 0x04B
#define SL_INVALID_ALSA_CONTROL_NAME    SL_ERROR_BASE + 0x04C
#define SL_INVALID_OSC_INDEX            SL_ERROR_BASE + 0x04D
#define SL_INVALID_BOOLEAN              SL_ERROR_BASE + 0x04E
#define SL_INVALID_BIAS_CAL_TARGET      SL_ERROR_BASE + 0x04F
#define SL_INVALID_PA_CLASS             SL_ERROR_BASE + 0x050
#define SL_MCL_INIT_FAILURE             SL_ERROR_BASE + 0x051
#define SL_UNEXPECTED_FILE_SIZE         SL_ERROR_BASE + 0x052
#define SL_FILE_SERVER_BUSY             SL_ERROR_BASE + 0x053
#define SL_INVALID_TX_EQ_STAGE          SL_ERROR_BASE + 0x054
#define SL_INVALID_RX_EQ_STAGE          SL_ERROR_BASE + 0x055
#define SL_INVALID_FILTER               SL_ERROR_BASE + 0x056
#define SL_STORAGE_NOT_INITIALIZED      SL_ERROR_BASE + 0x057
extern const char* SL_R_INVALID_FILTER;
#define SL_PTT_TIMEOUT                  SL_ERROR_BASE + 0x058
extern const char* SL_PTT_TIMEOUT_FMT;
#define SL_INVALID_STREAM_ID            SL_ERROR_BASE + 0x059
extern const char* SL_R_INVALID_STREAM_ID;
#define SL_NO_CHANGE_ANT_IN_TX          SL_ERROR_BASE + 0x060
extern const char* SL_R_NO_CHANGE_ANT_IN_TX;
#define SL_INVALID_DSP_ALG_FOR_MODE     SL_ERROR_BASE + 0x061
#define SL_INVALID_CLIENT               SL_ERROR_BASE + 0x062
#define SL_INVALID_FREQUENCY            SL_ERROR_BASE + 0x063
#define SL_NO_IP_OR_PORT                SL_ERROR_BASE + 0x064
#define SL_INVALID_DAX_CHANNEL          SL_ERROR_BASE + 0x065
extern const char* SL_R_NO_IP_OR_PORT;
#define SL_NO_DAX_TX                    SL_ERROR_BASE + 0x066
extern const char* SL_R_NO_DAX_TX;
#define SL_INVALID_DAX_IQ_CHANNEL       SL_ERROR_BASE + 0x066
extern const char* SL_R_INVALID_DAX_IQ_CHANNEL;
#define SL_INVALID_DAX_IQ_RATE          SL_ERROR_BASE + 0x067
extern const char* SL_R_INVALID_DAX_IQ_RATE;
#define SL_SLICE_IS_LOCKED              SL_ERROR_BASE + 0x068
extern const char* SL_R_SLICE_IS_LOCKED;
#define SL_FREQUENCY_TOO_LOW            SL_ERROR_BASE + 0x069
#define SL_FULL_DUPLEX_NOT_AVAILABLE     SL_ERROR_BASE + 0x06A
extern const char* SL_R_FULL_DUPLEX_NOT_AVAILABLE;
#define SL_DAXIQ_DUPLEX_NOT_AVAILABLE   SL_ERROR_BASE + 0x06B
extern const char* SL_R_DAXIQ_DUPLEX_NOT_AVAILABLE;
#define SL_INVALID_BAND_FOR_PERSISTENCE SL_ERROR_BASE + 0x06C
#define SL_LOOP_NOT_VALID_FOR_MODEL     SL_ERROR_BASE + 0x06D
extern const char* SL_R_LOOP_NOT_VALID_FOR_MODEL;
extern const char* SL_R_OUT_OF_MEMORY;
#define SLM_INVALID_CLIENT_NOT_PAN      SL_ERROR_BASE + 0x06E
#define SL_NO_VALID_CLIENT              SL_ERROR_BASE + 0x06F
extern const char* SL_R_NO_VALID_CLIENT;
#define SL_EXCESS_TX_COMPRESSION_FAIL   SL_ERROR_BASE + 0x070
#define SL_NO_RECORDED_DATA             SL_ERROR_BASE + 0x071
#define SL_BAD_ECO_TABLE_TYPE           SL_ERROR_BASE + 0x072
#define SL_EMPTY_ECO_TABLE              SL_ERROR_BASE + 0x073
#define SL_FULL_ECO_TABLE               SL_ERROR_BASE + 0x074
#define SL_BAD_ECO_NUMBER               SL_ERROR_BASE + 0x075
extern const char* SL_R_BAD_ECO_NUMBER;
#define SL_ECO_NOT_FOUND                SL_ERROR_BASE + 0x076
extern const char* SL_R_ECO_NOT_FOUND;
#define SL_NO_HEADLESS_SLCS             SL_ERROR_BASE + 0x077
#define SL_INVALID_PROFILE              SL_ERROR_BASE + 0x078
extern const char* SL_R_INVALID_PROFILE;
#define SL_INVALID_CMD_WHILE_XMIT       SL_ERROR_BASE + 0x079
#define SL_CWX_BAD_MACRO                SL_ERROR_BASE + 0x07A
extern const char* SL_R_CWX_BAD_MACRO;
#define SL_CWX_BUFFER_OVERFLOW          SL_ERROR_BASE + 0x07B
extern const char* SL_R_CWX_BUFFER_OVERFLOW;
#define SL_XVTR_NOT_FOUND               SL_ERROR_BASE + 0x7C
#define SL_XVTR_CREATE_FAIL             SL_ERROR_BASE + 0x7D
#define SL_XVTR_DELETED                 SL_ERROR_BASE + 0x7E
#define SL_DIVERSITY_ANT_MISMATCH       SL_ERROR_BASE + 0x07F
extern const char* SL_R_DIVERISTY_ANT_MISMATCH;
#define SL_INVALID_DATABASE_SCHEMA_VERSION  SL_ERROR_BASE + 0x080
extern const char* SL_R_INVALID_WAVEFORM;
#define SL_INVALID_WAVEFORM             SL_ERROR_BASE + 0x081
#define SL_RESPONSE_WITHOUT_COMMAND     SL_ERROR_BASE + 0x082
#define SL_UNABLE_TO_SEND_RESPONSE      SL_ERROR_BASE + 0x083
#define SL_INVALID_MEMORY_INDEX      SL_ERROR_BASE + 0x084
extern const char* SL_R_INVALID_MEMORY_INDEX;
#define SL_INVALID_CMD_FOR_MODE     SL_ERROR_BASE + 0x085
extern const char* SL_R_INVALID_CMD_FOR_MODE;
#define SL_LOCK_NOT_FOUND               SL_ERROR_BASE + 0x086
#define SL_KEEPALIVE_FAIL               SL_ERROR_BASE + 0x087
#define SL_REMOVE_CLIENT                SL_ERROR_BASE + 0x088
#define SL_CLIENT_CLOSED_SOCKET         SL_ERROR_BASE + 0x089
#define SL_INVALID_ATU_PROFILE_ID        SL_ERROR_BASE + 0x08A
#define SL_INVALID_ATU_PROFILE_NAME  SL_ERROR_BASE + 0x08B
#define SL_ATU_PROFILE_NAME_ALREADY_EXISTS   SL_ERROR_BASE + 0x08C
#define SL_INVALID_EINTERLOCK           SL_ERROR_BASE + 0x08D
extern const char* SL_R_INVALID_EINTERLOCK;
#define SL_COULD_NOT_CREATE_AUDIO_CLIENT    SL_ERROR_BASE + 0x08E
extern const char * SL_R_COULD_NOT_CREATE_AUDIO_CLIENT;
#define SL_NULL_POINTER                     SL_ERROR_BASE + 0x08F
extern const char* SL_R_NULL_POINTER;
#define SL_CWX_INVALID_INDEX            SL_ERROR_BASE + 0x090
extern const char * SL_R_CWX_INVALID_INDEX;
#define SL_CWX_INSERT_FAILED            SL_ERROR_BASE + 0x091
extern const char * SL_R_CWX_INSERT_FAILED;
#define SL_CLIENT_DISCONNECTED_BY_ANOTHER_CLIENT SL_ERROR_BASE + 0x092
extern const char * SL_R_CLIENT_DISCONNECTED_BY_ANOTHER_CLIENT;
#define SL_BAD_NTP_RATE                 SL_ERROR_BASE + 0x093
#define SL_INVALID_IPV4_IP              SL_ERROR_BASE + 0x094
extern const char * SL_R_INVALID_IPV4_IP;
#define SL_CLIENT_DISCONNECTED_BY_ABORT SL_ERROR_BASE + 0x95
#define SL_INVALID_PTT_CMD_IN_CW_MESSAGE    SL_ERROR_BASE + 0x96
extern const char * SL_R_INVALID_PTT_CMD_IN_CW_MESSAGE;
#define SL_USB_SERIAL_NUMBER_NOT_FOUND  SL_ERROR_BASE + 0x097
extern const char * SL_R_USB_SERIAL_NUMBER_NOT_FOUND;
#define SL_INVALID_CABLE_TYPE           SL_ERROR_BASE + 0x098
extern const char * SL_R_INVALID_CABLE_TYPE;
#define SL_INVALID_FREQUENCY_RANGE      SL_ERROR_BASE + 0x099
extern const char * SL_R_INVALID_FREQUENCY_RANGE;
#define SL_EXCEEDS_MAX_CHAR_LIMIT       SL_ERROR_BASE + 0x09A
extern const char * SL_R_EXCEEDS_MAX_CHAR_LIMIT;
#define SL_INVALID_SOURCE_TYPE          SL_ERROR_BASE + 0x09B
extern const char * SL_R_INVALID_SOURCE_TYPE;
#define SL_INVALID_OUTPUT_TYPE          SL_ERROR_BASE + 0x09C
extern const char * SL_R_INVALID_OUTPUT_TYPE;
#define SL_INVALID_BCD_BIT_VALUE        SL_ERROR_BASE + 0x09D
extern const char * SL_R_INVALID_BCD_BIT_VALUE;
extern const char * SL_R_V49PACKET_LENGTH;
#define SL_INVALID_BIT_CABLE            SL_ERROR_BASE + 0x09E
extern const char * SL_R_INVALID_BIT_CABLE;
#define SL_USB_CABLE_DELETE_FAILED      SL_ERROR_BASE + 0x09F
extern const char * SL_R_USB_CABLE_DELETE_FAILED;
#define SL_USB_CABLE_CANT_CHANGE_INVALID_TYPE   SL_ERROR_BASE + 0xA0
extern const char * SL_R_USB_CABLE_CANT_CHANGE_INVALID_TYPE;
#define SL_CWX_UNTERMINATED_INLINE_CMD      SL_ERROR_BASE + 0xA1
extern const char * SL_R_CWX_UNTERMINATED_INLINE_CMD;
#define SL_CWX_INVALID_INLINE_CMD           SL_ERROR_BASE + 0xA2
extern const char * SL_R_CWX_INVALID_INLINE_CMD;
#define SL_INVALID_SUBSCRIPTION         SL_ERROR_BASE + 0xA3
extern const char * SL_R_INVALID_SUBSCRIPTION;


#define SL_MYSQL_CONNECTION_FAIL        SL_ERROR_BASE + SL_MYSQL + 0x001
#define SL_MYSQL_LOGIN_FAIL             SL_ERROR_BASE + SL_MYSQL + 0x002
#define SL_MYSQL_NOT_CONNECTED          SL_ERROR_BASE + SL_MYSQL + 0x003
#define SL_MYSQL_PCB_ALREADY_REG        SL_ERROR_BASE + SL_MYSQL + 0x004
#define SL_MYSQL_PCB_NOT_REGISTERED     SL_ERROR_BASE + SL_MYSQL + 0x005
#define SL_MYSQL_PCB_SN_BLANK           SL_ERROR_BASE + SL_MYSQL + 0x006
#define SL_MYSQL_PCB_SN_TOO_LONG        SL_ERROR_BASE + SL_MYSQL + 0x007
#define SL_MYSQL_MNEMONIC_BLANK         SL_ERROR_BASE + SL_MYSQL + 0x008
#define SL_MYSQL_MNEMONIC_TOO_LONG      SL_ERROR_BASE + SL_MYSQL + 0x009
#define SL_MYSQL_PCB_REV_BLANK          SL_ERROR_BASE + SL_MYSQL + 0x00A
#define SL_MYSQL_PCB_REV_TOO_LONG       SL_ERROR_BASE + SL_MYSQL + 0x00B
#define SL_MYSQL_PCB_MODEL_BLANK        SL_ERROR_BASE + SL_MYSQL + 0x00C
#define SL_MYSQL_PCB_MODEL_TOO_LONG     SL_ERROR_BASE + SL_MYSQL + 0x00D
#define SL_MYSQL_BAD_TESTID             SL_ERROR_BASE + SL_MYSQL + 0x00E
#define SL_MYSQL_PART_DESIG_BLANK       SL_ERROR_BASE + SL_MYSQL + 0x00F
#define SL_MYSQL_SW_NAME_BLANK          SL_ERROR_BASE + SL_MYSQL + 0x010
#define SL_MYSQL_SW_VERSION_BLANK       SL_ERROR_BASE + SL_MYSQL + 0x011
#define SL_MYSQL_BOM_REV_BLANK          SL_ERROR_BASE + SL_MYSQL + 0x012
#define SL_MYSQL_BOM_REV_TOO_LONG       SL_ERROR_BASE + SL_MYSQL + 0x013
#define SL_MYSQL_BOM_BLANK              SL_ERROR_BASE + SL_MYSQL + 0x014
#define SL_MYSQL_BOM_TOO_LONG           SL_ERROR_BASE + SL_MYSQL + 0x015
#define SL_MYSQL_MODEL_BLANK            SL_ERROR_BASE + SL_MYSQL + 0x016
#define SL_MYSQL_MODEL_TOO_LONG         SL_ERROR_BASE + SL_MYSQL + 0x017

// This response is sent when SmartSDR does not generate a result itself, forcing a default
// response.  This generally indicates that the command code has failed to close the response
// loop on all command paths
#define SL_RESP_UNKNOWN                 SL_ERROR_BASE + 0x00001000
extern const char* SL_R_RESP_UNKNOWN;

#define SLM_I_CLIENT_CONNECTED          SL_INFO + 0x0001
#define SLM_I_UNKNOWN_CLIENT            SL_INFO + 0x0002
#define SL_I_CWX_NOTHING_TO_ERASE       SL_INFO + 0x0003
extern const char* SLM_I_CWX_NOTHING_TO_ERASE;



#define SLM_F_MAX_CLIENTS               SL_FATAL + 0x0001
#define SLM_F_FPGA_TEMP_ERR             SL_FATAL + 0x0002
#define SLM_F_REV_POWER_ERR             SL_FATAL + 0x0003
// this is a bogus error displayed on a stolen radio
#define SLM_F_OVERTEMP                  SL_FATAL + 0x0004

#define SLM_W_SERVICE                   SL_WARNING + 0x0001
#define SLM_W_NO_TRANSMITTER            SL_WARNING + 0x0002
#define SLM_W_INTERLOCK                 SL_WARNING + 0x0003
#define SL_W_NOTHING_TO_SEND            SL_WARNING + 0x0004
#define SLM_W_FPGA_TEMP_WARN            SL_WARNING + 0x0005
#define SL_W_CWX_NO_MORE                SL_WARNING + 0x0007
#define SLM_W_DEFAULT_PROFILE           SL_WARNING + 0x0008
#define SL_W_ATU_MAX_POWER_INTERFERENCE SL_WARNING + 0x0009