File: protocoldefs.h

package info (click to toggle)
cutesdr 1.20-4
  • links: PTS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 2,848 kB
  • sloc: cpp: 18,902; makefile: 21; sh: 5
file content (282 lines) | stat: -rw-r--r-- 10,855 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
/* ==========================================================================*/
/*  - - - - - - -   p r o t o c o l d e f s. h   - - - - - - - - - - - - - - */
/* ==========================================================================*/
/*    Definition File for the SDR-xx protocol and Control Items              */
/*  Created 29-12-2001														 */
/*  Modified 12-09-2008		msw    added  CI_RX_AD_MODES                     */
/*	Modified 03-03-2009		msw	   added  CI_RX_OUT_FILE_UPDATEPARAMS        */
/*  Modified 07-05-2009		msw    added  CI_TX_DA_MODE                      */
/*  Modified 11-19-2009		msw    add CI_TX_PULSE_MODE,CI_GENERAL_PRODUCT_ID*/
/*  Modified 04-27-2011		msw    added new NetSDR messages                 */
/* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . */
#ifndef PROTOCOLDEFS_H
#define PROTOCOLDEFS_H

#define ASCP_INTERFACE_VERSION 9

/*---------------------------------------------------------------------------*/
/*----------------------> Control Item Defines <-----------------------------*/
/*---------------------------------------------------------------------------*/

/*  General Interface Control Items  */
#define CI_GENERAL_INTERFACE_NAME 0x0001
 #define CI_GENERAL_INTERFACE_NAME_REQLEN 4		//response is variable length zero terminated string

#define CI_GENERAL_INTERFACE_SERIALNUM 0x0002
 #define CI_GENERAL_INTERFACE_SERIALNUM_REQLEN 4	//response is variable length zero terminated string

#define CI_GENERAL_INTERFACE_VERSION 0x0003
 #define CI_GENERAL_INTERFACE_VERSION_REQLEN 4
 #define CI_GENERAL_INTERFACE_VERSION_SETRESPLEN 6	//2 byte version

#define CI_GENERAL_HARDFIRM_VERSION 0x0004
 #define CI_GENERAL_HARDFIRM_VERSION_REQLEN 5
 #define CI_GENERAL_HARDFIRM_VERSION_SETRESPLEN 7
	#define CI_GENERAL_HARDFIRM_VERSION_PARAM_BOOTVER 0
	#define CI_GENERAL_HARDFIRM_VERSION_PARAM_APPVER 1
	#define CI_GENERAL_HARDFIRM_VERSION_PARAM_HWVER 2

#define CI_GENERAL_STATUS_CODE 0x0005
 #define CI_GENERAL_STATUS_CODE_REQLEN 4
 #define CI_GENERAL_STATUS_CODE_SETRESPLEN 5
  #define GENERAL_STATUS_IDLE 0x0B		//not running
  #define GENERAL_STATUS_BUSY 0x0C		//running
  #define GENERAL_STATUS_ADOVERLOAD 0x20
  #define GENERAL_STATUS_BOOTIDLE 0x0E	//in booloader mode idle
  #define GENERAL_STATUS_BOOTBUSY 0x0F	//in bootloader mode programming
  #define GENERAL_STATUS_BOOTERROR 0x80	//in booloader mode with programming error

#define CI_GENERAL_OPTIONS 0x000A
 #define CI_GENERAL_OPTIONS_REQLEN 4
 #define CI_GENERAL_OPTIONS_SETRESPLEN 10
 #define GENERAL_CI_GENERAL_OPTION1_SOUND 1		//sound enabled
 #define GENERAL_CI_GENERAL_OPTION1_REFPRESENT 2	//reflock present
 #define GENERAL_CI_GENERAL_OPTION1_DNPRESENT 4	//down converter present
 #define GENERAL_CI_GENERAL_OPTION1_UPPRESENT 8	//up converter present
 #define GENERAL_CI_GENERAL_OPTION1_X2PRESENT 0x10	//X2 Option present

  #define GENERAL_CI_GENERAL_OPTION2_CUST1 1		//custom option

  #define GENERAL_CI_GENERAL_OPTION3_MAINVAR (0x0000000F)	//main board variant
  #define GENERAL_CI_GENERAL_OPTION3_REFVAR  (0x000000F0)	//reflock variant
  #define GENERAL_CI_GENERAL_OPTION3_DNVAR   (0x00000F00)	//down converter variant
  #define GENERAL_CI_GENERAL_OPTION3_UPVAR   (0x0000F000)	//up converter variant


#define CI_GENERAL_SECURITY_CODE 0x000B

/*  Receiver Specific Control Items  */
//defines for message channel ID for RX1 or RX2 used in many of the Rx control item messages
#define CI_RX_CHAN_1 0
#define CI_RX_CHAN_2 2
#define CI_RX_CHAN_ALL 0xFF
#define RX_CHAN_1_INDEX (CI_RX_CHAN_1>>1)		//index values for arrays
#define RX_CHAN_2_INDEX (CI_RX_CHAN_2>>1)


#define CI_RX_STATE 0x0018
 #define CI_RX_STATE_REQLEN 5
 #define CI_RX_STATE_SETRESPLEN 8
	//NetSDR/SDR-IP parameters
  #define RX_STATE_DATACOMPLEX 0x80		//param 1 NetSDR channel and data type
  #define RX_STATE_DATAREAL 0x00

  #define RX_STATE_IDLE 0x01			//param 2   run state
  #define RX_STATE_ON 0x02

  #define MODE_CONTIGUOUS24 0x80		//param 3   run mode
  #define MODE_CONTIGUOUS16 0x00
  #define MODE_CONTINUOUS24 0x81
  #define MODE_CONTINUOUS16 0x01
  #define MODE_HWSYNC24 0x83
  #define MODE_HWSYNC16 0x03

	//SDRIQ/14 parameters
#define RX_STATE_COMPLEX_HF 0x81		//SDR-IQ/14 param 1 channel and data type


#define CI_GENERAL_PRODUCT_ID 0x0009
 #define CI_GENERAL_PRODUCT_ID_REQLEN 4
 #define CI_GENERAL_PRODUCT_ID_SETRESPLEN 8
// Product ID for SDRIP
  #define SDRIP_PRODID0 0x53
  #define SDRIP_PRODID1 0x44
  #define SDRIP_PRODID2 0x52
  #define SDRIP_PRODID3 0x03
// Product ID for NETSDR
  #define NETSDR_PRODID0 0x53
  #define NETSDR_PRODID1 0x44
  #define NETSDR_PRODID2 0x52
  #define NETSDR_PRODID3 0x04

// Product ID for CLOUDSDR
  #define CLOUDSDR_PRODID0 0x53
  #define CLOUDSDR_PRODID1 0x44
  #define CLOUDSDR_PRODID2 0x52
  #define CLOUDSDR_PRODID3 0x05

#define CI_RX_CHAN_SETUP 0x0019
 #define CI_RX_CHAN_SETUP_REQLEN 4
 #define CI_RX_CHAN_SETUP_SETRESPLEN 5
  #define CI_RX_CHAN_SETUP_SINGLE_1 0
  #define CI_RX_CHAN_SETUP_SINGLE_2 1
  #define CI_RX_CHAN_SETUP_SINGLE_SUM 2
  #define CI_RX_CHAN_SETUP_SINGLE_DIF 3
  #define CI_RX_CHAN_SETUP_DUAL_AD1 4
  #define CI_RX_CHAN_SETUP_DUAL_AD2 5
  #define CI_RX_CHAN_SETUP_DUAL_AD12 6

#define CI_RX_FREQUENCY 0x0020
 #define CI_RX_FREQUENCY_REQLEN 5
 #define CI_RX_FREQUENCY_SETRESPLEN 10
  #define CI_RX_FREQUENCY_NCO 0				//param 1 == channel ID
  #define CI_RX_FREQUENCY_DISPLAY 1

#define CI_RX_NCOPHASE 0x0022
 #define CI_RX_NCOPHASE_REQLEN 5
 #define CI_RX_NCOPHASE_SETRESPLEN 9		//param 1 == channel ID param 2 == 32bit phase offset

#define CI_RX_ADCGAIN 0x0023
 #define CI_RX_ADCGAIN_REQLEN 5
 #define CI_RX_ADCGAIN_SETRESPLEN 7			//param 1 == channel ID param 2 == 16bit A/D gain

#define CI_RX_RF_GAIN 0x0038
 #define CI_RX_RF_GAIN_REQLEN 5
 #define CI_RX_RF_GAIN_SETRESPLEN 6			//param 1 == channel ID

#define CI_RX_IF_GAIN 0x0040		//not used by NetSDR/SDRIP
 #define CI_RX_IF_GAIN_REQLEN 5
 #define CI_RX_IF_GAIN_SETRESPLEN 6

#define CI_RX_RF_FILTER 0x0044
 #define CI_RX_RF_FILTER_REQLEN 5
 #define CI_RX_RF_FILTER_SETRESPLEN 6
  #define CI_RX_RF_FILTER_AUTO 0
  #define CI_RX_RF_FILTER_BP1 1
  #define CI_RX_RF_FILTER_BP2 2
  #define CI_RX_RF_FILTER_BP3 3
  #define CI_RX_RF_FILTER_BP4 4
  #define CI_RX_RF_FILTER_BP5 5
  #define CI_RX_RF_FILTER_BP6 6
  #define CI_RX_RF_FILTER_BP7 7
  #define CI_RX_RF_FILTER_BP8 8
  #define CI_RX_RF_FILTER_BP9 9
  #define CI_RX_RF_FILTER_BP10 10
  #define CI_RX_RF_FILTER_BYPASS 11
  #define CI_RX_RF_FILTER_NOPASS 12

#define CI_RX_AF_GAIN 0x0048
 #define CI_RX_AF_GAIN_REQLEN 5
 #define CI_RX_AF_GAIN_SETRESPLEN 6

#define CI_RX_AD_MODES 0x008A
 #define CI_RX_AD_MODES_REQLEN 5
 #define CI_RX_AD_MODES_SETRESPLEN 6
  #define CI_AD_MODES_DITHER 0x01	//bit field defs
  #define CI_AD_MODES_PGA 0x02

#define CI_RX_DOWNCONVERT_SETUP 0x008C		//not used
 #define CI_RX_DOWNCONVERT_SETUP_REQLEN 5
 #define CI_RX_DOWNCONVERT_SETUP_SETRESPLEN 6

#define CI_RX_IN_SAMPLE_RATE 0x00B0
 #define CI_RX_IN_SAMPLE_RATE_REQLEN 5
 #define CI_RX_IN_SAMPLE_RATE_SETRESPLEN 9

#define CI_RX_SYNCIN_MODE_PARAMETERS 0x00B4
 #define CI_RX_SYNCIN_MODE_PARAMETERS_REQLEN 5
 #define CI_RX_SYNCIN_MODE_PARAMETERS_SETRESPLEN 8	//p0=chan, p1=mode, p2,3 = number packets
  #define CI_RX_SYNCIN_MODE_OFF 0
  #define CI_RX_SYNCIN_MODE_NEGEDGE 1
  #define CI_RX_SYNCIN_MODE_POSEDGE 2
  #define CI_RX_SYNCIN_MODE_LOWLEVEL 3
  #define CI_RX_SYNCIN_MODE_HIGHLEVEL 4
  #define CI_RX_SYNCIN_MODE_MUTELOW 5
  #define CI_RX_SYNCIN_MODE_MUTEHIGH 6

#define CI_RX_PULSEOUT_MODE 0x0B6
 #define CI_RX_PULSEOUT_MODE_REQLEN 5
 #define CI_RX_PULSEOUT_MODE_SETRESPLEN 6
  #define CI_PULSEOUT_MODE_OFF 0		//mode defs
  #define CI_PULSEOUT_MODE_RUNSTATE 1
  #define CI_PULSEOUT_MODE_RUNTOG 2
  #define CI_PULSEOUT_MODE_SAMPRATE 3

#define CI_RX_OUT_SAMPLE_RATE 0x00B8
 #define CI_RX_OUT_SAMPLE_RATE_REQLEN 5
 #define CI_RX_OUT_SAMPLE_RATE_SETRESPLEN 9

#define CI_RX_OUTPUT_PARAMS 0x00C4
 #define CI_RX_OUTPUT_PARAMS_REQLEN 4
 #define CI_RX_OUTPUT_PARAMS_SETRESPLEN 5
  #define CI_RX_OUTPUT_PARAMS_LARGE_MTU 0	//Large UDP packets (1444 bytes(24bit data) or 1028 bytes(16bit data) ) (default)
  #define CI_RX_OUTPUT_PARAMS_SMALL_MTU 1	//1 == Small UDP packets (388 bytes(24bit data) or 516 bytes(16bit data) )

#define CI_RX_UDP_OUTPUT_PARAMS 0x00C5
 #define CI_RX_UDP_OUTPUT_PARAMS_REQLEN 4
 #define CI_RX_UDP_OUTPUT_PARAMS_SETRESPLEN 10

#define CI_RX_CALIBRATION_DATA 0x00D0
 #define CI_RX_CALIBRATION_DATA_REQLEN 5
 #define CI_RX_CALIBRATION_DATA_SETRESPLEN 7	//param 1 == channel ID param 2== 16 bit DC offset

/*  Transmitter Specific Control Items  */
/*  Transmitter Specific Control Items  */
#define CI_TX_STATE 0x0118
 #define CI_TX_STATE_REQLEN 5
 #define CI_TX_STATE_SETRESPLEN 6
//Parameter 1 is a 1 byte channel ID.
//Parameter 2 is a 1 byte Transmit state.
	#define TX_STATE_OFF 0
	#define TX_STATE_ON 1
	#define TX_STATE_DELAYOFF 2

#define CI_TX_FREQUENCY 0x0120
 #define CI_TX_FREQUENCY_REQLEN 5
 #define CI_TX_FREQUENCY_SETRESPLEN 10		//param 1 == channel ID

#define CI_TX_DA_MODE 0x012A
 #define CI_TX_DA_MODE_REQLEN 5
 #define CI_TX_DA_MODE_SETRESPLEN 6
  #define CI_DA_MODE_OFF 0x00		//mode defs
  #define CI_DA_MODE_AD 0x01
  #define CI_DA_MODE_NCOTRACK 0x02
  #define CI_DA_MODE_NOISE 0x03

#define CI_TX_CW_MSG 0x0150
 #define CI_TX_CW_MSG_REQLEN 4
 #define CI_TX_CW_MSG_SETRESPLEN 16  //param1 = 1 byte WPM, param2 = 1 byte tone/100Hz, param3 == 10 byte ascii msg

/* Aux Port Control Items  */
#define CI_OPEN_ASYNC_PORT 0x0200
 #define CI_OPEN_ASYNC_PORT_SETRESPLEN 14
#define CI_CLOSE_ASYNC_PORT 0x0201
 #define CI_CLOSE_ASYNC_PORT_SETRESPLEN 5

#define CI_CHANGERATE_ASYNC_PORT 0x0202
 #define CI_CHANGERATE_ASYNC_PORT_SETRESPLEN 9

#define CI_AUXSIGNAL_AMP 0x0288
 #define CI_AUXSIGNAL_AMP_REQLEN 4
 #define CI_AUXSIGNAL_AMP_SETRESPLEN 8
//Parameter 1  is a 2 byte unsigned value specifying the Audio DAC1 gainx1000 (1 to 64000) == 0.001 to 64.000
//Parameter 2  is a 2 byte unsigned value specifying the Audio DAC2 gainx1000 (1 to 64000) == 0.001 to 64.000

/*  Software/Firmware Update MODE Control Items  */
#define CI_UPDATE_MODE_CONTROL 0x0300
 #define CI_UPDATE_MODE_CONTROL_SETREQLEN 10
 #define CI_UPDATE_MODE_CONTROL_SETRESPLEN 10
 #define CI_UPDATE_MODE_CONTROL_ENTER 0
 #define CI_UPDATE_MODE_CONTROL_START 1
 #define CI_UPDATE_MODE_CONTROL_END 2
 #define CI_UPDATE_MODE_CONTROL_ABORT 3
 #define CI_UPDATE_MODE_CONTROL_ERASE 4

#define CI_UPDATE_MODE_PARAMS 0x0302
 #define CI_UPDATE_MODE_PARAMS_SETREQLEN 5
 #define CI_UPDATE_MODE_PARAMS_SETRESPLEN 17

 #define PROG_FLASH_ID 0
 #define CONFIG_FLASH_ID 1

#endif //PROTOCOLDEFS_H