Merge remote-tracking branch 'origin/master' into firpbch2_mode

This commit is contained in:
Charles J. Cliffe 2018-04-26 20:09:42 -04:00
commit 4240b0efc2
22 changed files with 2668 additions and 1898 deletions

View File

@ -22,7 +22,7 @@ Utilizes:
Optional Libs:
--------
- FFTW3 (can be compiled into liquid-dsp if desired) (http://www.fftw.org/ -- https://github.com/FFTW/fftw3)
- hamlib (https://sourceforge.net/p/hamlib/wiki/Hamlib/ -- https://sourceforge.net/p/hamlib/code/ci/master/tree/)
- hamlib (https://github.com/Hamlib/Hamlib)
Features and Status:
--------------------

View File

@ -14,253 +14,257 @@ EXPORTS
initrigs3_adat @13
initrigs3_alinco @14
initrigs3_aor @15
initrigs3_drake @16
initrigs3_dummy @17
initrigs3_flexradio @18
initrigs3_icmarine @19
initrigs3_icom @20
initrigs3_jrc @21
initrigs3_kachina @22
initrigs3_kenwood @23
initrigs3_kit @24
initrigs3_lowe @25
initrigs3_pcr @26
initrigs3_prm80 @27
initrigs3_racal @28
initrigs3_rft @29
initrigs3_rs @30
initrigs3_skanti @31
initrigs3_tapr @32
initrigs3_tentec @33
initrigs3_tuner @34
initrigs3_uniden @35
initrigs3_winradio @36
initrigs3_wj @37
initrigs3_yaesu @38
initrots3_amsat @39
initrots3_ars @40
initrots3_celestron @41
initrots3_cnctrk @42
initrots3_dummy @43
initrots3_easycomm @44
initrots3_ether6 @45
initrots3_fodtrack @46
initrots3_gs232a @47
initrots3_heathkit @48
initrots3_kit @49
initrots3_m2 @50
initrots3_prosistel @51
initrots3_rotorez @52
initrots3_sartek @53
initrots3_spid @54
initrots3_ts7400 @55
locator2longlat @56
longlat2locator @57
par_lock @58
par_read_control @59
par_read_data @60
par_read_status @61
par_unlock @62
par_write_control @63
par_write_data @64
port_close @65
port_open @66
probeallrigs3_adat @67
probeallrigs3_drake @68
probeallrigs3_icom @69
probeallrigs3_kenwood @70
probeallrigs3_lowe @71
probeallrigs3_uniden @72
probeallrigs3_yaesu @73
qrb @74
read_block @75
read_string @76
rig_check_backend @77
rig_check_cache_timeout @78
rig_cleanup @79
rig_close @80
rig_confparam_lookup @81
rig_copyright @82
rig_debug @83
rig_ext_level_foreach @84
rig_ext_lookup @85
rig_ext_lookup_tok @86
rig_ext_parm_foreach @87
rig_ext_token_lookup @88
rig_force_cache_timeout @89
rig_get_ant @90
rig_get_caps @91
rig_get_chan_all @92
rig_get_chan_all_cb @93
rig_get_channel @94
rig_get_conf @95
rig_get_ctcss_sql @96
rig_get_ctcss_tone @97
rig_get_dcd @98
rig_get_dcs_code @99
rig_get_dcs_sql @100
rig_get_ext_level @101
rig_get_ext_parm @102
rig_get_freq @103
rig_get_func @104
rig_get_info @105
rig_get_level @106
rig_get_mem @107
rig_get_mem_all @108
rig_get_mem_all_cb @109
rig_get_mode @110
rig_get_parm @111
rig_get_powerstat @112
rig_get_ptt @113
rig_get_range @114
rig_get_resolution @115
rig_get_rit @116
rig_get_rptr_offs @117
rig_get_rptr_shift @118
rig_get_split_freq @119
rig_get_split_freq_mode @120
rig_get_split_mode @121
rig_get_split_vfo @122
rig_get_trn @123
rig_get_ts @124
rig_get_vfo @125
rig_get_xit @126
rig_has_get_func @127
rig_has_get_level @128
rig_has_get_parm @129
rig_has_scan @130
rig_has_set_func @131
rig_has_set_level @132
rig_has_set_parm @133
rig_has_vfo_op @134
rig_init @135
rig_license @136
rig_list_foreach @137
rig_load_all_backends @138
rig_load_backend @139
rig_lookup_mem_caps @140
rig_mW2power @141
rig_mem_count @142
rig_need_debug @143
rig_no_restore_ai @144
rig_open @145
rig_parse_func @146
rig_parse_level @147
rig_parse_mode @148
rig_parse_mtype @149
rig_parse_parm @150
rig_parse_rptr_shift @151
rig_parse_scan @152
rig_parse_vfo @153
rig_parse_vfo_op @154
rig_passband_narrow @155
rig_passband_normal @156
rig_passband_wide @157
rig_power2mW @158
rig_probe @159
rig_probe_all @160
rig_raw2val @161
rig_recv_dtmf @162
rig_register @163
rig_reset @164
rig_scan @165
rig_send_dtmf @166
rig_send_morse @167
rig_set_ant @168
rig_set_bank @169
rig_set_chan_all @170
rig_set_chan_all_cb @171
rig_set_channel @172
rig_set_conf @173
rig_set_ctcss_sql @174
rig_set_ctcss_tone @175
rig_set_dcd_callback @176
rig_set_dcs_code @177
rig_set_dcs_sql @178
rig_set_debug @179
rig_set_debug_callback @180
rig_set_debug_file @181
rig_set_ext_level @182
rig_set_ext_parm @183
rig_set_freq @184
rig_set_freq_callback @185
rig_set_func @186
rig_set_level @187
rig_set_mem @188
rig_set_mem_all @189
rig_set_mem_all_cb @190
rig_set_mode @191
rig_set_mode_callback @192
rig_set_parm @193
rig_set_pltune_callback @194
rig_set_powerstat @195
rig_set_ptt @196
rig_set_ptt_callback @197
rig_set_rit @198
rig_set_rptr_offs @199
rig_set_rptr_shift @200
rig_set_split_freq @201
rig_set_split_freq_mode @202
rig_set_split_mode @203
rig_set_split_vfo @204
rig_set_trn @205
rig_set_ts @206
rig_set_vfo @207
rig_set_vfo_callback @208
rig_set_xit @209
rig_setting2idx @210
rig_strfunc @211
rig_strlevel @212
rig_strmtype @213
rig_strparm @214
rig_strptrshift @215
rig_strrmode @216
rig_strscan @217
rig_strstatus @218
rig_strvfo @219
rig_strvfop @220
rig_token_foreach @221
rig_token_lookup @222
rig_unregister @223
rig_version @224
rig_vfo_op @225
rigerror @226
rot_check_backend @227
rot_cleanup @228
rot_close @229
rot_confparam_lookup @230
rot_get_caps @231
rot_get_conf @232
rot_get_info @233
rot_get_position @234
rot_init @235
rot_list_foreach @236
rot_load_all_backends @237
rot_load_backend @238
rot_move @239
rot_open @240
rot_park @241
rot_probe_all @242
rot_register @243
rot_reset @244
rot_set_conf @245
rot_set_position @246
rot_stop @247
rot_token_foreach @248
rot_token_lookup @249
rot_unregister @250
ser_get_car @251
ser_get_cts @252
ser_get_dsr @253
ser_get_dtr @254
ser_get_rts @255
ser_set_brk @256
ser_set_dtr @257
ser_set_rts @258
serial_flush @259
serial_open @260
serial_setup @261
sprintf_freq @262
to_bcd @263
to_bcd_be @264
write_block @265
initrigs3_barrett @16
initrigs3_dorji @17
initrigs3_drake @18
initrigs3_dummy @19
initrigs3_flexradio @20
initrigs3_flrig @21
initrigs3_icm710 @22
initrigs3_icmarine @23
initrigs3_icom @24
initrigs3_jrc @25
initrigs3_kachina @26
initrigs3_kenwood @27
initrigs3_kit @28
initrigs3_lowe @29
initrigs3_pcr @30
initrigs3_prm80 @31
initrigs3_racal @32
initrigs3_rft @33
initrigs3_rs @34
initrigs3_skanti @35
initrigs3_tapr @36
initrigs3_tentec @37
initrigs3_tuner @38
initrigs3_uniden @39
initrigs3_winradio @40
initrigs3_wj @41
initrigs3_yaesu @42
initrots3_amsat @43
initrots3_ars @44
initrots3_celestron @45
initrots3_cnctrk @46
initrots3_dummy @47
initrots3_easycomm @48
initrots3_ether6 @49
initrots3_fodtrack @50
initrots3_gs232a @51
initrots3_heathkit @52
initrots3_kit @53
initrots3_m2 @54
initrots3_prosistel @55
initrots3_rotorez @56
initrots3_sartek @57
initrots3_spid @58
initrots3_ts7400 @59
locator2longlat @60
longlat2locator @61
par_lock @62
par_read_control @63
par_read_data @64
par_read_status @65
par_unlock @66
par_write_control @67
par_write_data @68
port_close @69
port_open @70
probeallrigs3_adat @71
probeallrigs3_drake @72
probeallrigs3_icom @73
probeallrigs3_kenwood @74
probeallrigs3_lowe @75
probeallrigs3_uniden @76
probeallrigs3_yaesu @77
qrb @78
read_block @79
read_string @80
rig_check_backend @81
rig_check_cache_timeout @82
rig_cleanup @83
rig_close @84
rig_confparam_lookup @85
rig_copyright @86
rig_debug @87
rig_ext_level_foreach @88
rig_ext_lookup @89
rig_ext_lookup_tok @90
rig_ext_parm_foreach @91
rig_ext_token_lookup @92
rig_force_cache_timeout @93
rig_get_ant @94
rig_get_caps @95
rig_get_chan_all @96
rig_get_chan_all_cb @97
rig_get_channel @98
rig_get_conf @99
rig_get_ctcss_sql @100
rig_get_ctcss_tone @101
rig_get_dcd @102
rig_get_dcs_code @103
rig_get_dcs_sql @104
rig_get_ext_level @105
rig_get_ext_parm @106
rig_get_freq @107
rig_get_func @108
rig_get_info @109
rig_get_level @110
rig_get_mem @111
rig_get_mem_all @112
rig_get_mem_all_cb @113
rig_get_mode @114
rig_get_parm @115
rig_get_powerstat @116
rig_get_ptt @117
rig_get_range @118
rig_get_resolution @119
rig_get_rit @120
rig_get_rptr_offs @121
rig_get_rptr_shift @122
rig_get_split_freq @123
rig_get_split_freq_mode @124
rig_get_split_mode @125
rig_get_split_vfo @126
rig_get_trn @127
rig_get_ts @128
rig_get_vfo @129
rig_get_xit @130
rig_has_get_func @131
rig_has_get_level @132
rig_has_get_parm @133
rig_has_scan @134
rig_has_set_func @135
rig_has_set_level @136
rig_has_set_parm @137
rig_has_vfo_op @138
rig_init @139
rig_license @140
rig_list_foreach @141
rig_load_all_backends @142
rig_load_backend @143
rig_lookup_mem_caps @144
rig_mW2power @145
rig_mem_count @146
rig_need_debug @147
rig_no_restore_ai @148
rig_open @149
rig_parse_func @150
rig_parse_level @151
rig_parse_mode @152
rig_parse_mtype @153
rig_parse_parm @154
rig_parse_rptr_shift @155
rig_parse_scan @156
rig_parse_vfo @157
rig_parse_vfo_op @158
rig_passband_narrow @159
rig_passband_normal @160
rig_passband_wide @161
rig_power2mW @162
rig_probe @163
rig_probe_all @164
rig_raw2val @165
rig_recv_dtmf @166
rig_register @167
rig_reset @168
rig_scan @169
rig_send_dtmf @170
rig_send_morse @171
rig_set_ant @172
rig_set_bank @173
rig_set_chan_all @174
rig_set_chan_all_cb @175
rig_set_channel @176
rig_set_conf @177
rig_set_ctcss_sql @178
rig_set_ctcss_tone @179
rig_set_dcd_callback @180
rig_set_dcs_code @181
rig_set_dcs_sql @182
rig_set_debug @183
rig_set_debug_callback @184
rig_set_debug_file @185
rig_set_ext_level @186
rig_set_ext_parm @187
rig_set_freq @188
rig_set_freq_callback @189
rig_set_func @190
rig_set_level @191
rig_set_mem @192
rig_set_mem_all @193
rig_set_mem_all_cb @194
rig_set_mode @195
rig_set_mode_callback @196
rig_set_parm @197
rig_set_pltune_callback @198
rig_set_powerstat @199
rig_set_ptt @200
rig_set_ptt_callback @201
rig_set_rit @202
rig_set_rptr_offs @203
rig_set_rptr_shift @204
rig_set_split_freq @205
rig_set_split_freq_mode @206
rig_set_split_mode @207
rig_set_split_vfo @208
rig_set_trn @209
rig_set_ts @210
rig_set_vfo @211
rig_set_vfo_callback @212
rig_set_xit @213
rig_setting2idx @214
rig_strfunc @215
rig_strlevel @216
rig_strmtype @217
rig_strparm @218
rig_strptrshift @219
rig_strrmode @220
rig_strscan @221
rig_strstatus @222
rig_strvfo @223
rig_strvfop @224
rig_token_foreach @225
rig_token_lookup @226
rig_unregister @227
rig_version @228
rig_vfo_op @229
rigerror @230
rot_check_backend @231
rot_cleanup @232
rot_close @233
rot_confparam_lookup @234
rot_get_caps @235
rot_get_conf @236
rot_get_info @237
rot_get_position @238
rot_init @239
rot_list_foreach @240
rot_load_all_backends @241
rot_load_backend @242
rot_move @243
rot_open @244
rot_park @245
rot_probe_all @246
rot_register @247
rot_reset @248
rot_set_conf @249
rot_set_position @250
rot_stop @251
rot_token_foreach @252
rot_token_lookup @253
rot_unregister @254
ser_get_car @255
ser_get_cts @256
ser_get_dsr @257
ser_get_dtr @258
ser_get_rts @259
ser_set_brk @260
ser_set_dtr @261
ser_set_rts @262
serial_flush @263
serial_open @264
serial_setup @265
sprintf_freq @266
to_bcd @267
to_bcd_be @268
write_block @269

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -14,253 +14,257 @@ EXPORTS
initrigs3_adat @13
initrigs3_alinco @14
initrigs3_aor @15
initrigs3_drake @16
initrigs3_dummy @17
initrigs3_flexradio @18
initrigs3_icmarine @19
initrigs3_icom @20
initrigs3_jrc @21
initrigs3_kachina @22
initrigs3_kenwood @23
initrigs3_kit @24
initrigs3_lowe @25
initrigs3_pcr @26
initrigs3_prm80 @27
initrigs3_racal @28
initrigs3_rft @29
initrigs3_rs @30
initrigs3_skanti @31
initrigs3_tapr @32
initrigs3_tentec @33
initrigs3_tuner @34
initrigs3_uniden @35
initrigs3_winradio @36
initrigs3_wj @37
initrigs3_yaesu @38
initrots3_amsat @39
initrots3_ars @40
initrots3_celestron @41
initrots3_cnctrk @42
initrots3_dummy @43
initrots3_easycomm @44
initrots3_ether6 @45
initrots3_fodtrack @46
initrots3_gs232a @47
initrots3_heathkit @48
initrots3_kit @49
initrots3_m2 @50
initrots3_prosistel @51
initrots3_rotorez @52
initrots3_sartek @53
initrots3_spid @54
initrots3_ts7400 @55
locator2longlat @56
longlat2locator @57
par_lock @58
par_read_control @59
par_read_data @60
par_read_status @61
par_unlock @62
par_write_control @63
par_write_data @64
port_close @65
port_open @66
probeallrigs3_adat @67
probeallrigs3_drake @68
probeallrigs3_icom @69
probeallrigs3_kenwood @70
probeallrigs3_lowe @71
probeallrigs3_uniden @72
probeallrigs3_yaesu @73
qrb @74
read_block @75
read_string @76
rig_check_backend @77
rig_check_cache_timeout @78
rig_cleanup @79
rig_close @80
rig_confparam_lookup @81
rig_copyright @82
rig_debug @83
rig_ext_level_foreach @84
rig_ext_lookup @85
rig_ext_lookup_tok @86
rig_ext_parm_foreach @87
rig_ext_token_lookup @88
rig_force_cache_timeout @89
rig_get_ant @90
rig_get_caps @91
rig_get_chan_all @92
rig_get_chan_all_cb @93
rig_get_channel @94
rig_get_conf @95
rig_get_ctcss_sql @96
rig_get_ctcss_tone @97
rig_get_dcd @98
rig_get_dcs_code @99
rig_get_dcs_sql @100
rig_get_ext_level @101
rig_get_ext_parm @102
rig_get_freq @103
rig_get_func @104
rig_get_info @105
rig_get_level @106
rig_get_mem @107
rig_get_mem_all @108
rig_get_mem_all_cb @109
rig_get_mode @110
rig_get_parm @111
rig_get_powerstat @112
rig_get_ptt @113
rig_get_range @114
rig_get_resolution @115
rig_get_rit @116
rig_get_rptr_offs @117
rig_get_rptr_shift @118
rig_get_split_freq @119
rig_get_split_freq_mode @120
rig_get_split_mode @121
rig_get_split_vfo @122
rig_get_trn @123
rig_get_ts @124
rig_get_vfo @125
rig_get_xit @126
rig_has_get_func @127
rig_has_get_level @128
rig_has_get_parm @129
rig_has_scan @130
rig_has_set_func @131
rig_has_set_level @132
rig_has_set_parm @133
rig_has_vfo_op @134
rig_init @135
rig_license @136
rig_list_foreach @137
rig_load_all_backends @138
rig_load_backend @139
rig_lookup_mem_caps @140
rig_mW2power @141
rig_mem_count @142
rig_need_debug @143
rig_no_restore_ai @144
rig_open @145
rig_parse_func @146
rig_parse_level @147
rig_parse_mode @148
rig_parse_mtype @149
rig_parse_parm @150
rig_parse_rptr_shift @151
rig_parse_scan @152
rig_parse_vfo @153
rig_parse_vfo_op @154
rig_passband_narrow @155
rig_passband_normal @156
rig_passband_wide @157
rig_power2mW @158
rig_probe @159
rig_probe_all @160
rig_raw2val @161
rig_recv_dtmf @162
rig_register @163
rig_reset @164
rig_scan @165
rig_send_dtmf @166
rig_send_morse @167
rig_set_ant @168
rig_set_bank @169
rig_set_chan_all @170
rig_set_chan_all_cb @171
rig_set_channel @172
rig_set_conf @173
rig_set_ctcss_sql @174
rig_set_ctcss_tone @175
rig_set_dcd_callback @176
rig_set_dcs_code @177
rig_set_dcs_sql @178
rig_set_debug @179
rig_set_debug_callback @180
rig_set_debug_file @181
rig_set_ext_level @182
rig_set_ext_parm @183
rig_set_freq @184
rig_set_freq_callback @185
rig_set_func @186
rig_set_level @187
rig_set_mem @188
rig_set_mem_all @189
rig_set_mem_all_cb @190
rig_set_mode @191
rig_set_mode_callback @192
rig_set_parm @193
rig_set_pltune_callback @194
rig_set_powerstat @195
rig_set_ptt @196
rig_set_ptt_callback @197
rig_set_rit @198
rig_set_rptr_offs @199
rig_set_rptr_shift @200
rig_set_split_freq @201
rig_set_split_freq_mode @202
rig_set_split_mode @203
rig_set_split_vfo @204
rig_set_trn @205
rig_set_ts @206
rig_set_vfo @207
rig_set_vfo_callback @208
rig_set_xit @209
rig_setting2idx @210
rig_strfunc @211
rig_strlevel @212
rig_strmtype @213
rig_strparm @214
rig_strptrshift @215
rig_strrmode @216
rig_strscan @217
rig_strstatus @218
rig_strvfo @219
rig_strvfop @220
rig_token_foreach @221
rig_token_lookup @222
rig_unregister @223
rig_version @224
rig_vfo_op @225
rigerror @226
rot_check_backend @227
rot_cleanup @228
rot_close @229
rot_confparam_lookup @230
rot_get_caps @231
rot_get_conf @232
rot_get_info @233
rot_get_position @234
rot_init @235
rot_list_foreach @236
rot_load_all_backends @237
rot_load_backend @238
rot_move @239
rot_open @240
rot_park @241
rot_probe_all @242
rot_register @243
rot_reset @244
rot_set_conf @245
rot_set_position @246
rot_stop @247
rot_token_foreach @248
rot_token_lookup @249
rot_unregister @250
ser_get_car @251
ser_get_cts @252
ser_get_dsr @253
ser_get_dtr @254
ser_get_rts @255
ser_set_brk @256
ser_set_dtr @257
ser_set_rts @258
serial_flush @259
serial_open @260
serial_setup @261
sprintf_freq @262
to_bcd @263
to_bcd_be @264
write_block @265
initrigs3_barrett @16
initrigs3_dorji @17
initrigs3_drake @18
initrigs3_dummy @19
initrigs3_flexradio @20
initrigs3_flrig @21
initrigs3_icm710 @22
initrigs3_icmarine @23
initrigs3_icom @24
initrigs3_jrc @25
initrigs3_kachina @26
initrigs3_kenwood @27
initrigs3_kit @28
initrigs3_lowe @29
initrigs3_pcr @30
initrigs3_prm80 @31
initrigs3_racal @32
initrigs3_rft @33
initrigs3_rs @34
initrigs3_skanti @35
initrigs3_tapr @36
initrigs3_tentec @37
initrigs3_tuner @38
initrigs3_uniden @39
initrigs3_winradio @40
initrigs3_wj @41
initrigs3_yaesu @42
initrots3_amsat @43
initrots3_ars @44
initrots3_celestron @45
initrots3_cnctrk @46
initrots3_dummy @47
initrots3_easycomm @48
initrots3_ether6 @49
initrots3_fodtrack @50
initrots3_gs232a @51
initrots3_heathkit @52
initrots3_kit @53
initrots3_m2 @54
initrots3_prosistel @55
initrots3_rotorez @56
initrots3_sartek @57
initrots3_spid @58
initrots3_ts7400 @59
locator2longlat @60
longlat2locator @61
par_lock @62
par_read_control @63
par_read_data @64
par_read_status @65
par_unlock @66
par_write_control @67
par_write_data @68
port_close @69
port_open @70
probeallrigs3_adat @71
probeallrigs3_drake @72
probeallrigs3_icom @73
probeallrigs3_kenwood @74
probeallrigs3_lowe @75
probeallrigs3_uniden @76
probeallrigs3_yaesu @77
qrb @78
read_block @79
read_string @80
rig_check_backend @81
rig_check_cache_timeout @82
rig_cleanup @83
rig_close @84
rig_confparam_lookup @85
rig_copyright @86
rig_debug @87
rig_ext_level_foreach @88
rig_ext_lookup @89
rig_ext_lookup_tok @90
rig_ext_parm_foreach @91
rig_ext_token_lookup @92
rig_force_cache_timeout @93
rig_get_ant @94
rig_get_caps @95
rig_get_chan_all @96
rig_get_chan_all_cb @97
rig_get_channel @98
rig_get_conf @99
rig_get_ctcss_sql @100
rig_get_ctcss_tone @101
rig_get_dcd @102
rig_get_dcs_code @103
rig_get_dcs_sql @104
rig_get_ext_level @105
rig_get_ext_parm @106
rig_get_freq @107
rig_get_func @108
rig_get_info @109
rig_get_level @110
rig_get_mem @111
rig_get_mem_all @112
rig_get_mem_all_cb @113
rig_get_mode @114
rig_get_parm @115
rig_get_powerstat @116
rig_get_ptt @117
rig_get_range @118
rig_get_resolution @119
rig_get_rit @120
rig_get_rptr_offs @121
rig_get_rptr_shift @122
rig_get_split_freq @123
rig_get_split_freq_mode @124
rig_get_split_mode @125
rig_get_split_vfo @126
rig_get_trn @127
rig_get_ts @128
rig_get_vfo @129
rig_get_xit @130
rig_has_get_func @131
rig_has_get_level @132
rig_has_get_parm @133
rig_has_scan @134
rig_has_set_func @135
rig_has_set_level @136
rig_has_set_parm @137
rig_has_vfo_op @138
rig_init @139
rig_license @140
rig_list_foreach @141
rig_load_all_backends @142
rig_load_backend @143
rig_lookup_mem_caps @144
rig_mW2power @145
rig_mem_count @146
rig_need_debug @147
rig_no_restore_ai @148
rig_open @149
rig_parse_func @150
rig_parse_level @151
rig_parse_mode @152
rig_parse_mtype @153
rig_parse_parm @154
rig_parse_rptr_shift @155
rig_parse_scan @156
rig_parse_vfo @157
rig_parse_vfo_op @158
rig_passband_narrow @159
rig_passband_normal @160
rig_passband_wide @161
rig_power2mW @162
rig_probe @163
rig_probe_all @164
rig_raw2val @165
rig_recv_dtmf @166
rig_register @167
rig_reset @168
rig_scan @169
rig_send_dtmf @170
rig_send_morse @171
rig_set_ant @172
rig_set_bank @173
rig_set_chan_all @174
rig_set_chan_all_cb @175
rig_set_channel @176
rig_set_conf @177
rig_set_ctcss_sql @178
rig_set_ctcss_tone @179
rig_set_dcd_callback @180
rig_set_dcs_code @181
rig_set_dcs_sql @182
rig_set_debug @183
rig_set_debug_callback @184
rig_set_debug_file @185
rig_set_ext_level @186
rig_set_ext_parm @187
rig_set_freq @188
rig_set_freq_callback @189
rig_set_func @190
rig_set_level @191
rig_set_mem @192
rig_set_mem_all @193
rig_set_mem_all_cb @194
rig_set_mode @195
rig_set_mode_callback @196
rig_set_parm @197
rig_set_pltune_callback @198
rig_set_powerstat @199
rig_set_ptt @200
rig_set_ptt_callback @201
rig_set_rit @202
rig_set_rptr_offs @203
rig_set_rptr_shift @204
rig_set_split_freq @205
rig_set_split_freq_mode @206
rig_set_split_mode @207
rig_set_split_vfo @208
rig_set_trn @209
rig_set_ts @210
rig_set_vfo @211
rig_set_vfo_callback @212
rig_set_xit @213
rig_setting2idx @214
rig_strfunc @215
rig_strlevel @216
rig_strmtype @217
rig_strparm @218
rig_strptrshift @219
rig_strrmode @220
rig_strscan @221
rig_strstatus @222
rig_strvfo @223
rig_strvfop @224
rig_token_foreach @225
rig_token_lookup @226
rig_unregister @227
rig_version @228
rig_vfo_op @229
rigerror @230
rot_check_backend @231
rot_cleanup @232
rot_close @233
rot_confparam_lookup @234
rot_get_caps @235
rot_get_conf @236
rot_get_info @237
rot_get_position @238
rot_init @239
rot_list_foreach @240
rot_load_all_backends @241
rot_load_backend @242
rot_move @243
rot_open @244
rot_park @245
rot_probe_all @246
rot_register @247
rot_reset @248
rot_set_conf @249
rot_set_position @250
rot_stop @251
rot_token_foreach @252
rot_token_lookup @253
rot_unregister @254
ser_get_car @255
ser_get_cts @256
ser_get_dsr @257
ser_get_dtr @258
ser_get_rts @259
ser_set_brk @260
ser_set_dtr @261
ser_set_rts @262
serial_flush @263
serial_open @264
serial_setup @265
sprintf_freq @266
to_bcd @267
to_bcd_be @268
write_block @269

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -42,15 +42,15 @@
# undef HAMLIB_DLL_EXPORT
# if defined (__BORLANDC__)
# define HAMLIB_DLL_IMPORT __import
# define HAMLIB_DLL_EXPORT __export
# define HAMLIB_DLL_IMPORT __import
# define HAMLIB_DLL_EXPORT __export
# else
# define HAMLIB_DLL_IMPORT __declspec(dllimport)
# define HAMLIB_DLL_EXPORT __declspec(dllexport)
# define HAMLIB_DLL_IMPORT __declspec(dllimport)
# define HAMLIB_DLL_EXPORT __declspec(dllexport)
# endif
# ifdef DLL_EXPORT
/* HAMLIB_API may be set to __stdcall for VB, .. */
/* HAMLIB_API may be set to __stdcall for VB, .. */
# define HAMLIB_API __cdecl
# ifdef IN_HAMLIB
# define BACKEND_IMPEXP HAMLIB_DLL_EXPORT
@ -60,8 +60,8 @@
# define HAMLIB_IMPEXP HAMLIB_DLL_IMPORT
# endif
# else
/* static build, only export the backend entry points for lt_dlsym */
# define BACKEND_IMPEXP HAMLIB_DLL_EXPORT
/* static build, only export the backend entry points for lt_dlsym */
# define BACKEND_IMPEXP HAMLIB_DLL_EXPORT
# endif
#endif
@ -88,5 +88,3 @@
#if !defined(BACKEND_EXPORT_VAR)
# define BACKEND_EXPORT_VAR(type) BACKEND_IMPEXP type
#endif

View File

@ -29,16 +29,17 @@
/*! \file riglist.h
* \brief Hamlib rig(radio) model definitions.
*
* This file contains rig model definitions for the Hamlib rig API.
* Each distinct rig type has a unique model number (ID) and is used
* by hamlib to identify and distinguish between the different hardware drivers.
* The exact model numbers can be acquired using the macros in this
* file. To obtain a list of supported rig branches, one can use the statically
* defined RIG_BACKEND_LIST macro. To obtain a full list of supported rig (including
* each model in every branch), the foreach_opened_rig() API function can be used.
* This file contains rig model definitions for the Hamlib rig API. Each
* distinct rig type has a unique model number (ID) and is used by hamlib to
* identify and distinguish between the different hardware drivers. The
* exact model numbers can be acquired using the macros in this file. To
* obtain a list of supported rig branches, one can use the statically
* defined RIG_BACKEND_LIST macro. To obtain a full list of supported rig
* (including each model in every branch), the foreach_opened_rig() API
* function can be used.
*
* The model number, or ID, is used to tell hamlib, which rig the client whishes to
* use. It is done with the rig_init() API call.
* The model number, or ID, is used to tell hamlib, which rig the client
* whishes to use. It is done with the rig_init() API call.
*/
#define RIG_MODEL_NONE 0
@ -46,20 +47,25 @@
/*! \def RIG_MODEL_DUMMY
* \brief A macro that returns the model number for the dummy backend.
*
* The dummy backend, as the name suggests, is a backend which performs
* no hardware operations and always behaves as one would expect. It can
* be thought of as a hardware simulator and is very usefull for testing
* client applications.
* The dummy backend, as the name suggests, is a backend which performs no
* hardware operations and always behaves as one would expect. It can be
* thought of as a hardware simulator and is very usefull for testing client
* applications.
*
* It has also been expanded to provide support to "virtual" type of rigs
* such as the network rig control backend and W1HKJ's Flrig application.
*/
#define RIG_DUMMY 0
#define RIG_BACKEND_DUMMY "dummy"
#define RIG_MODEL_DUMMY RIG_MAKE_MODEL(RIG_DUMMY, 1)
#define RIG_MODEL_NETRIGCTL RIG_MAKE_MODEL(RIG_DUMMY, 2)
#define RIG_MODEL_ARMSTRONG RIG_MAKE_MODEL(RIG_DUMMY, 3)
#define RIG_MODEL_FLRIG RIG_MAKE_MODEL(RIG_DUMMY, 4)
/*
* Yaesu
*/
/*
* Yaesu
*/
#define RIG_YAESU 1
#define RIG_BACKEND_YAESU "yaesu"
#define RIG_MODEL_FT847 RIG_MAKE_MODEL(RIG_YAESU, 1)
@ -97,10 +103,12 @@
#define RIG_MODEL_VX1700 RIG_MAKE_MODEL(RIG_YAESU, 33)
#define RIG_MODEL_FT1200 RIG_MAKE_MODEL(RIG_YAESU, 34)
#define RIG_MODEL_FT991 RIG_MAKE_MODEL(RIG_YAESU, 35)
#define RIG_MODEL_FT891 RIG_MAKE_MODEL(RIG_YAESU, 36)
/*
* Kenwood
*/
/*
* Kenwood
*/
#define RIG_KENWOOD 2
#define RIG_BACKEND_KENWOOD "kenwood"
#define RIG_MODEL_TS50 RIG_MAKE_MODEL(RIG_KENWOOD, 1)
@ -138,14 +146,16 @@
#define RIG_MODEL_THD72A RIG_MAKE_MODEL(RIG_KENWOOD, 33)
#define RIG_MODEL_TMD710 RIG_MAKE_MODEL(RIG_KENWOOD, 34)
#define RIG_MODEL_TMV71 RIG_MAKE_MODEL(RIG_KENWOOD, 35)
#define RIG_MODEL_F6K RIG_MAKE_MODEL(RIG_KENWOOD, 36) /* Flex 6000 Series */
#define RIG_MODEL_F6K RIG_MAKE_MODEL(RIG_KENWOOD, 36) /* Flex 6000 Series */
#define RIG_MODEL_TS590SG RIG_MAKE_MODEL(RIG_KENWOOD, 37)
#define RIG_MODEL_XG3 RIG_MAKE_MODEL(RIG_KENWOOD, 38)
#define RIG_MODEL_XG3 RIG_MAKE_MODEL(RIG_KENWOOD, 38) /* Elecraft XG-3 signal generator */
#define RIG_MODEL_TS990S RIG_MAKE_MODEL(RIG_KENWOOD, 39)
#define RIG_MODEL_HPSDR RIG_MAKE_MODEL(RIG_KENWOOD, 40) /* OpenHPSDR, PiHPSDR */
/*
* Icom
*/
/*
* Icom
*/
#define RIG_ICOM 3
#define RIG_BACKEND_ICOM "icom"
#define RIG_MODEL_IC1271 RIG_MAKE_MODEL(RIG_ICOM, 1)
@ -194,16 +204,16 @@
#define RIG_MODEL_IC910 RIG_MAKE_MODEL(RIG_ICOM, 44)
#define RIG_MODEL_IC78 RIG_MAKE_MODEL(RIG_ICOM, 45)
#define RIG_MODEL_IC746PRO RIG_MAKE_MODEL(RIG_ICOM, 46)
#define RIG_MODEL_IC756PROII RIG_MAKE_MODEL(RIG_ICOM, 47)
#define RIG_MODEL_IC756PROII RIG_MAKE_MODEL(RIG_ICOM, 47) /* 48-53 defined below */
#define RIG_MODEL_ICID1 RIG_MAKE_MODEL(RIG_ICOM, 54)
#define RIG_MODEL_IC703 RIG_MAKE_MODEL(RIG_ICOM, 55)
#define RIG_MODEL_IC7800 RIG_MAKE_MODEL(RIG_ICOM, 56)
#define RIG_MODEL_IC756PROIII RIG_MAKE_MODEL(RIG_ICOM, 57)
#define RIG_MODEL_ICR20 RIG_MAKE_MODEL(RIG_ICOM, 58)
#define RIG_MODEL_ICR20 RIG_MAKE_MODEL(RIG_ICOM, 58) /* 59 defined below */
#define RIG_MODEL_IC7000 RIG_MAKE_MODEL(RIG_ICOM, 60)
#define RIG_MODEL_IC7200 RIG_MAKE_MODEL(RIG_ICOM, 61)
#define RIG_MODEL_IC7700 RIG_MAKE_MODEL(RIG_ICOM, 62)
#define RIG_MODEL_IC7600 RIG_MAKE_MODEL(RIG_ICOM, 63)
#define RIG_MODEL_IC7600 RIG_MAKE_MODEL(RIG_ICOM, 63) /* 64 defined below */
#define RIG_MODEL_IC92D RIG_MAKE_MODEL(RIG_ICOM, 65)
#define RIG_MODEL_ICR9500 RIG_MAKE_MODEL(RIG_ICOM, 66)
#define RIG_MODEL_IC7410 RIG_MAKE_MODEL(RIG_ICOM, 67)
@ -214,27 +224,34 @@
#define RIG_MODEL_IC2730 RIG_MAKE_MODEL(RIG_ICOM, 72)
#define RIG_MODEL_IC7300 RIG_MAKE_MODEL(RIG_ICOM, 73)
#define RIG_MODEL_PERSEUS RIG_MAKE_MODEL(RIG_ICOM, 74)
/* next one is 75 */
#define RIG_MODEL_IC785x RIG_MAKE_MODEL(RIG_ICOM, 75)
#define RIG_MODEL_X108G RIG_MAKE_MODEL(RIG_ICOM, 76) /* Xiegu X108 */
#define RIG_MODEL_ICR6 RIG_MAKE_MODEL(RIG_ICOM, 77)
#define RIG_MODEL_IC7610 RIG_MAKE_MODEL(RIG_ICOM, 78)
/* next one is 79 */
/*
* Optoelectronics (CI-V)
*/
/*
* Optoelectronics (CI-V)
*/
#define RIG_MODEL_MINISCOUT RIG_MAKE_MODEL(RIG_ICOM, 48)
#define RIG_MODEL_XPLORER RIG_MAKE_MODEL(RIG_ICOM, 49)
#define RIG_MODEL_OS535 RIG_MAKE_MODEL(RIG_ICOM, 52)
#define RIG_MODEL_OS456 RIG_MAKE_MODEL(RIG_ICOM, 53)
/*
* TenTec (CI-V)
*/
/*
* TenTec (CI-V)
*/
#define RIG_MODEL_OMNIVI RIG_MAKE_MODEL(RIG_ICOM, 50)
#define RIG_MODEL_OMNIVIP RIG_MAKE_MODEL(RIG_ICOM, 51) /* OMNI-VI+ */
#define RIG_MODEL_PARAGON2 RIG_MAKE_MODEL(RIG_ICOM, 59)
#define RIG_MODEL_DELTAII RIG_MAKE_MODEL(RIG_ICOM, 64)
/*
* Icom PCR
*/
/*
* Icom PCR
*/
#define RIG_PCR 4
#define RIG_BACKEND_PCR "pcr"
#define RIG_MODEL_PCR1000 RIG_MAKE_MODEL(RIG_PCR, 1)
@ -242,9 +259,10 @@
#define RIG_MODEL_PCR1500 RIG_MAKE_MODEL(RIG_PCR, 3)
#define RIG_MODEL_PCR2500 RIG_MAKE_MODEL(RIG_PCR, 4)
/*
* AOR
*/
/*
* AOR
*/
#define RIG_AOR 5
#define RIG_BACKEND_AOR "aor"
#define RIG_MODEL_AR8200 RIG_MAKE_MODEL(RIG_AOR, 1)
@ -264,9 +282,10 @@
#define RIG_MODEL_AR7030P RIG_MAKE_MODEL(RIG_AOR, 15)
#define RIG_MODEL_SR2200 RIG_MAKE_MODEL(RIG_AOR, 16)
/*
* JRC
*/
/*
* JRC
*/
#define RIG_JRC 6
#define RIG_BACKEND_JRC "jrc"
#define RIG_MODEL_JST145 RIG_MAKE_MODEL(RIG_JRC, 1)
@ -277,28 +296,30 @@
#define RIG_MODEL_NRD535 RIG_MAKE_MODEL(RIG_JRC, 6)
#define RIG_MODEL_NRD545 RIG_MAKE_MODEL(RIG_JRC, 7)
/*
* Radio Shack
* Actualy, they might be either Icom or Uniden. TBC --SF
*/
/*
* Radio Shack
* Actualy, they might be either Icom or Uniden. TBC --SF
*/
#define RIG_RADIOSHACK 7
#define RIG_BACKEND_RADIOSHACK "radioshack"
#define RIG_MODEL_RS64 RIG_MAKE_MODEL(RIG_RADIOSHACK, 1) /* PRO-64 */
#define RIG_MODEL_RS2005 RIG_MAKE_MODEL(RIG_RADIOSHACK, 2) /* w/ OptoElectronics OS456 Board */
#define RIG_MODEL_RS2006 RIG_MAKE_MODEL(RIG_RADIOSHACK, 3) /* w/ OptoElectronics OS456 Board */
#define RIG_MODEL_RS2035 RIG_MAKE_MODEL(RIG_RADIOSHACK, 4) /* w/ OptoElectronics OS435 Board */
#define RIG_MODEL_RS2042 RIG_MAKE_MODEL(RIG_RADIOSHACK, 5) /* w/ OptoElectronics OS435 Board */
#define RIG_MODEL_RS2041 RIG_MAKE_MODEL(RIG_RADIOSHACK, 6) /* PRO-2041 */
#define RIG_MODEL_RS64 RIG_MAKE_MODEL(RIG_RADIOSHACK, 1) /* PRO-64 */
#define RIG_MODEL_RS2005 RIG_MAKE_MODEL(RIG_RADIOSHACK, 2) /* w/ OptoElectronics OS456 Board */
#define RIG_MODEL_RS2006 RIG_MAKE_MODEL(RIG_RADIOSHACK, 3) /* w/ OptoElectronics OS456 Board */
#define RIG_MODEL_RS2035 RIG_MAKE_MODEL(RIG_RADIOSHACK, 4) /* w/ OptoElectronics OS435 Board */
#define RIG_MODEL_RS2042 RIG_MAKE_MODEL(RIG_RADIOSHACK, 5) /* w/ OptoElectronics OS435 Board */
#define RIG_MODEL_RS2041 RIG_MAKE_MODEL(RIG_RADIOSHACK, 6) /* PRO-2041 */
/*
* Uniden
*/
/*
* Uniden
*/
#define RIG_UNIDEN 8
#define RIG_BACKEND_UNIDEN "uniden"
#define RIG_MODEL_BC780 RIG_MAKE_MODEL(RIG_UNIDEN, 1) /* Uniden BC780 - Trunk Tracker "Desktop Radio" */
#define RIG_MODEL_BC780 RIG_MAKE_MODEL(RIG_UNIDEN, 1) /* Uniden BC780 - Trunk Tracker "Desktop Radio" */
#define RIG_MODEL_BC245 RIG_MAKE_MODEL(RIG_UNIDEN, 2)
#define RIG_MODEL_BC895 RIG_MAKE_MODEL(RIG_UNIDEN, 3)
#define RIG_MODEL_PRO2052 RIG_MAKE_MODEL(RIG_UNIDEN, 4) /* Radio Shack PRO-2052 */
#define RIG_MODEL_PRO2052 RIG_MAKE_MODEL(RIG_UNIDEN, 4) /* Radio Shack PRO-2052 */
#define RIG_MODEL_BC235 RIG_MAKE_MODEL(RIG_UNIDEN, 5)
#define RIG_MODEL_BC250 RIG_MAKE_MODEL(RIG_UNIDEN, 6)
#define RIG_MODEL_BC785 RIG_MAKE_MODEL(RIG_UNIDEN, 7)
@ -308,18 +329,20 @@
#define RIG_MODEL_BCD996T RIG_MAKE_MODEL(RIG_UNIDEN, 11)
#define RIG_MODEL_BC898 RIG_MAKE_MODEL(RIG_UNIDEN, 12)
/*
* Drake
*/
/*
* Drake
*/
#define RIG_DRAKE 9
#define RIG_BACKEND_DRAKE "drake"
#define RIG_MODEL_DKR8 RIG_MAKE_MODEL(RIG_DRAKE, 1)
#define RIG_MODEL_DKR8A RIG_MAKE_MODEL(RIG_DRAKE, 2)
#define RIG_MODEL_DKR8B RIG_MAKE_MODEL(RIG_DRAKE, 3)
/*
* Lowe
*/
/*
* Lowe
*/
#define RIG_LOWE 10
#define RIG_BACKEND_LOWE "lowe"
#define RIG_MODEL_HF150 RIG_MAKE_MODEL(RIG_LOWE, 1)
@ -327,9 +350,10 @@
#define RIG_MODEL_HF250 RIG_MAKE_MODEL(RIG_LOWE, 3)
#define RIG_MODEL_HF235 RIG_MAKE_MODEL(RIG_LOWE, 4)
/*
* Racal
*/
/*
* Racal
*/
#define RIG_RACAL 11
#define RIG_BACKEND_RACAL "racal"
#define RIG_MODEL_RA3790 RIG_MAKE_MODEL(RIG_RACAL, 1)
@ -338,9 +362,10 @@
#define RIG_MODEL_RA3710 RIG_MAKE_MODEL(RIG_RACAL, 4)
#define RIG_MODEL_RA3702 RIG_MAKE_MODEL(RIG_RACAL, 5)
/*
* Watkins-Johnson
*/
/*
* Watkins-Johnson
*/
#define RIG_WJ 12
#define RIG_BACKEND_WJ "wj"
#define RIG_MODEL_HF1000 RIG_MAKE_MODEL(RIG_WJ, 1)
@ -348,9 +373,10 @@
#define RIG_MODEL_WJ8711 RIG_MAKE_MODEL(RIG_WJ, 3)
#define RIG_MODEL_WJ8888 RIG_MAKE_MODEL(RIG_WJ, 4)
/*
* Rohde & Schwarz
*/
/*
* Rohde & Schwarz--ek
*/
#define RIG_EK 13
#define RIG_BACKEND_EK "ek"
#define RIG_MODEL_ESM500 RIG_MAKE_MODEL(RIG_EK, 1)
@ -359,9 +385,10 @@
#define RIG_MODEL_EK895 RIG_MAKE_MODEL(RIG_EK, 4)
#define RIG_MODEL_EK070 RIG_MAKE_MODEL(RIG_EK, 5)
/*
* Skanti
*/
/*
* Skanti
*/
#define RIG_SKANTI 14
#define RIG_BACKEND_SKANTI "skanti"
#define RIG_MODEL_TRP7000 RIG_MAKE_MODEL(RIG_SKANTI, 1)
@ -369,9 +396,10 @@
#define RIG_MODEL_TRP9000 RIG_MAKE_MODEL(RIG_SKANTI, 3)
#define RIG_MODEL_TRP8255 RIG_MAKE_MODEL(RIG_SKANTI, 4)
/*
* WiNRADiO/LinRADiO
*/
/*
* WiNRADiO/LinRADiO
*/
#define RIG_WINRADIO 15
#define RIG_BACKEND_WINRADIO "winradio"
#define RIG_MODEL_WR1000 RIG_MAKE_MODEL(RIG_WINRADIO, 1)
@ -386,69 +414,75 @@
#define RIG_MODEL_G305 RIG_MAKE_MODEL(RIG_WINRADIO, 10)
#define RIG_MODEL_G315 RIG_MAKE_MODEL(RIG_WINRADIO, 11)
/*
* Ten Tec
*/
/*
* Ten Tec
*/
#define RIG_TENTEC 16
#define RIG_BACKEND_TENTEC "tentec"
#define RIG_MODEL_TT550 RIG_MAKE_MODEL(RIG_TENTEC, 1) /* Pegasus */
#define RIG_MODEL_TT538 RIG_MAKE_MODEL(RIG_TENTEC, 2) /* Jupiter */
#define RIG_MODEL_TT550 RIG_MAKE_MODEL(RIG_TENTEC, 1) /* Pegasus */
#define RIG_MODEL_TT538 RIG_MAKE_MODEL(RIG_TENTEC, 2) /* Jupiter */
#define RIG_MODEL_RX320 RIG_MAKE_MODEL(RIG_TENTEC, 3)
#define RIG_MODEL_RX340 RIG_MAKE_MODEL(RIG_TENTEC, 4)
#define RIG_MODEL_RX350 RIG_MAKE_MODEL(RIG_TENTEC, 5)
#define RIG_MODEL_TT526 RIG_MAKE_MODEL(RIG_TENTEC, 6) /* 6N2 */
#define RIG_MODEL_TT516 RIG_MAKE_MODEL(RIG_TENTEC, 7) /* Argonaut V */
#define RIG_MODEL_TT565 RIG_MAKE_MODEL(RIG_TENTEC, 8) /* Orion */
#define RIG_MODEL_TT585 RIG_MAKE_MODEL(RIG_TENTEC, 9) /* Paragon */
#define RIG_MODEL_TT588 RIG_MAKE_MODEL(RIG_TENTEC, 11) /* Omni-VII */
#define RIG_MODEL_TT526 RIG_MAKE_MODEL(RIG_TENTEC, 6) /* 6N2 */
#define RIG_MODEL_TT516 RIG_MAKE_MODEL(RIG_TENTEC, 7) /* Argonaut V */
#define RIG_MODEL_TT565 RIG_MAKE_MODEL(RIG_TENTEC, 8) /* Orion */
#define RIG_MODEL_TT585 RIG_MAKE_MODEL(RIG_TENTEC, 9) /* Paragon */
#define RIG_MODEL_TT588 RIG_MAKE_MODEL(RIG_TENTEC, 11) /* Omni-VII */
#define RIG_MODEL_RX331 RIG_MAKE_MODEL(RIG_TENTEC, 12)
#define RIG_MODEL_TT599 RIG_MAKE_MODEL(RIG_TENTEC, 13) /* Eagle */
/*
* Alinco
*/
/*
* Alinco
*/
#define RIG_ALINCO 17
#define RIG_BACKEND_ALINCO "alinco"
#define RIG_MODEL_DX77 RIG_MAKE_MODEL(RIG_ALINCO, 1)
/*
* Kachina
*/
/*
* Kachina
*/
#define RIG_KACHINA 18
#define RIG_BACKEND_KACHINA "kachina"
#define RIG_MODEL_505DSP RIG_MAKE_MODEL(RIG_KACHINA, 1)
/*
* Gnuradio backend
*/
/*
* Gnuradio backend
*/
#define RIG_GNURADIO 20
#define RIG_BACKEND_GNURADIO "gnuradio"
#define RIG_MODEL_GNURADIO RIG_MAKE_MODEL(RIG_GNURADIO, 1) /* dev model, Chirp source */
#define RIG_MODEL_MC4020 RIG_MAKE_MODEL(RIG_GNURADIO, 2) /* MC4020 */
#define RIG_MODEL_GRAUDIO RIG_MAKE_MODEL(RIG_GNURADIO, 3) /* Sound card source */
#define RIG_MODEL_GRAUDIOIQ RIG_MAKE_MODEL(RIG_GNURADIO, 4) /* I&Q stereo sound card source */
#define RIG_MODEL_USRP_G RIG_MAKE_MODEL(RIG_GNURADIO, 5) /* Universal Software Radio Peripheral */
#define RIG_MODEL_GNURADIO RIG_MAKE_MODEL(RIG_GNURADIO, 1) /* dev model, Chirp source */
#define RIG_MODEL_MC4020 RIG_MAKE_MODEL(RIG_GNURADIO, 2) /* MC4020 */
#define RIG_MODEL_GRAUDIO RIG_MAKE_MODEL(RIG_GNURADIO, 3) /* Sound card source */
#define RIG_MODEL_GRAUDIOIQ RIG_MAKE_MODEL(RIG_GNURADIO, 4) /* I&Q stereo sound card source */
#define RIG_MODEL_USRP_G RIG_MAKE_MODEL(RIG_GNURADIO, 5) /* Universal Software Radio Peripheral */
/*
* Microtune tuners
*/
/*
* Microtune tuners
*/
#define RIG_MICROTUNE 21
#define RIG_BACKEND_MICROTUNE "microtune"
#define RIG_MODEL_MICROTUNE_4937 RIG_MAKE_MODEL(RIG_MICROTUNE, 1) /* eval board */
#define RIG_MODEL_MICROTUNE_4702 RIG_MAKE_MODEL(RIG_MICROTUNE, 2) /* Alan's */
#define RIG_MODEL_MICROTUNE_4937 RIG_MAKE_MODEL(RIG_MICROTUNE, 1) /* eval board */
#define RIG_MODEL_MICROTUNE_4702 RIG_MAKE_MODEL(RIG_MICROTUNE, 2) /* Alan's */
#define RIG_MODEL_MICROTUNE_4707 RIG_MAKE_MODEL(RIG_MICROTUNE, 3)
/*
* TAPR
*/
/*
* TAPR
*/
#define RIG_TAPR 22
#define RIG_BACKEND_TAPR "tapr"
#define RIG_MODEL_DSP10 RIG_MAKE_MODEL(RIG_TAPR, 1)
/*
* Flex-radio
*/
/*
* Flex-radio
*/
#define RIG_FLEXRADIO 23
#define RIG_BACKEND_FLEXRADIO "flexradio"
#define RIG_MODEL_SDR1000 RIG_MAKE_MODEL(RIG_FLEXRADIO, 1)
@ -457,100 +491,127 @@
#define RIG_MODEL_DTTSP_UDP RIG_MAKE_MODEL(RIG_FLEXRADIO, 4)
/*
* VEB Funkwerk Köpenick RFT
*/
/*
* VEB Funkwerk Köpenick RFT
*/
#define RIG_RFT 24
#define RIG_BACKEND_RFT "rft"
#define RIG_MODEL_EKD500 RIG_MAKE_MODEL(RIG_RFT, 1)
/*
* Various kits
*/
/*
* Various kits
*/
#define RIG_KIT 25
#define RIG_BACKEND_KIT "kit"
#define RIG_MODEL_ELEKTOR304 RIG_MAKE_MODEL(RIG_KIT, 1)
#define RIG_MODEL_DRT1 RIG_MAKE_MODEL(RIG_KIT, 2)
#define RIG_MODEL_DWT RIG_MAKE_MODEL(RIG_KIT, 3)
#define RIG_MODEL_USRP0 RIG_MAKE_MODEL(RIG_KIT, 4) /* prototype */
#define RIG_MODEL_USRP0 RIG_MAKE_MODEL(RIG_KIT, 4) /* prototype */
#define RIG_MODEL_USRP RIG_MAKE_MODEL(RIG_KIT, 5)
#define RIG_MODEL_DDS60 RIG_MAKE_MODEL(RIG_KIT, 6)
#define RIG_MODEL_ELEKTOR507 RIG_MAKE_MODEL(RIG_KIT, 7) /* Elektor SDR USB */
#define RIG_MODEL_ELEKTOR507 RIG_MAKE_MODEL(RIG_KIT, 7) /* Elektor SDR USB */
#define RIG_MODEL_MINIVNA RIG_MAKE_MODEL(RIG_KIT, 8)
#define RIG_MODEL_SI570AVRUSB RIG_MAKE_MODEL(RIG_KIT, 9) /* SoftRock Si570 AVR */
#define RIG_MODEL_SI570AVRUSB RIG_MAKE_MODEL(RIG_KIT, 9) /* SoftRock Si570 AVR */
#define RIG_MODEL_PMSDR RIG_MAKE_MODEL(RIG_KIT, 10)
#define RIG_MODEL_SI570PICUSB RIG_MAKE_MODEL(RIG_KIT, 11) /* SoftRock Si570 PIC */
#define RIG_MODEL_FIFISDR RIG_MAKE_MODEL(RIG_KIT, 12) /* FiFi-SDR USB */
#define RIG_MODEL_FUNCUBEDONGLE RIG_MAKE_MODEL(RIG_KIT, 13) /* FunCUBE Dongle */
#define RIG_MODEL_HIQSDR RIG_MAKE_MODEL(RIG_KIT, 14) /* HiQSDR */
#define RIG_MODEL_FASDR RIG_MAKE_MODEL(RIG_KIT,15) /* Funkamateur Sdr */
#define RIG_MODEL_SI570PEABERRY1 RIG_MAKE_MODEL(RIG_KIT, 16) /* Peaberry V1 */
#define RIG_MODEL_SI570PEABERRY2 RIG_MAKE_MODEL(RIG_KIT, 17) /* Peaberry V2 */
#define RIG_MODEL_FUNCUBEDONGLEPLUS RIG_MAKE_MODEL(RIG_KIT, 18) /* FunCUBE Dongle Pro+ */
#define RIG_MODEL_SI570PICUSB RIG_MAKE_MODEL(RIG_KIT, 11) /* SoftRock Si570 PIC */
#define RIG_MODEL_FIFISDR RIG_MAKE_MODEL(RIG_KIT, 12) /* FiFi-SDR USB */
#define RIG_MODEL_FUNCUBEDONGLE RIG_MAKE_MODEL(RIG_KIT, 13) /* FunCUBE Dongle */
#define RIG_MODEL_HIQSDR RIG_MAKE_MODEL(RIG_KIT, 14) /* HiQSDR */
#define RIG_MODEL_FASDR RIG_MAKE_MODEL(RIG_KIT,15) /* Funkamateur Sdr */
#define RIG_MODEL_SI570PEABERRY1 RIG_MAKE_MODEL(RIG_KIT, 16) /* Peaberry V1 */
#define RIG_MODEL_SI570PEABERRY2 RIG_MAKE_MODEL(RIG_KIT, 17) /* Peaberry V2 */
#define RIG_MODEL_FUNCUBEDONGLEPLUS RIG_MAKE_MODEL(RIG_KIT, 18) /* FunCUBE Dongle Pro+ */
#define RIG_MODEL_RSHFIQ RIG_MAKE_MODEL(RIG_KIT, 19) /* RS-HFIQ */
/*
* SW/FM/TV tuner cards supported by Video4Linux,*BSD, ..
*/
/*
* SW/FM/TV tuner cards supported by Video4Linux,*BSD, ..
*/
#define RIG_TUNER 26
#define RIG_BACKEND_TUNER "tuner"
#define RIG_MODEL_V4L RIG_MAKE_MODEL(RIG_TUNER, 1)
#define RIG_MODEL_V4L2 RIG_MAKE_MODEL(RIG_TUNER, 2)
/*
* Rohde&Schwarz
*/
/*
* Rohde & Schwarz--rs
*/
#define RIG_RS 27
#define RIG_BACKEND_RS "rs"
#define RIG_MODEL_ESMC RIG_MAKE_MODEL(RIG_RS, 1)
#define RIG_MODEL_EB200 RIG_MAKE_MODEL(RIG_RS, 2)
#define RIG_MODEL_XK2100 RIG_MAKE_MODEL(RIG_RS, 3)
/*
* Phillips/Simoco PRM80
*/
/*
* Phillips/Simoco PRM80
*/
#define RIG_PRM80 28
#define RIG_BACKEND_PRM80 "prm80"
#define RIG_MODEL_PRM8060 RIG_MAKE_MODEL(RIG_PRM80, 1)
#define RIG_MODEL_PRM8070 RIG_MAKE_MODEL(RIG_PRM80, 2)
/*
* ADAT by HB9CBU
*
* ADDED: frgo (DG1SBG), 2012-01-01
*/
/*
* ADAT by HB9CBU
*
* ADDED: frgo (DG1SBG), 2012-01-01
*/
#define RIG_ADAT 29
#define RIG_BACKEND_ADAT "adat"
#define RIG_MODEL_ADT_200A RIG_MAKE_MODEL(RIG_ADAT, 1)
/*
* ICOM Marine
*/
/*
* ICOM Marine
*/
#define RIG_ICMARINE 30
#define RIG_BACKEND_ICMARINE "icmarine"
#define RIG_MODEL_IC_M700PRO RIG_MAKE_MODEL(RIG_ICMARINE, 1)
#define RIG_MODEL_IC_M802 RIG_MAKE_MODEL(RIG_ICMARINE, 2)
#define RIG_MODEL_IC_M710 RIG_MAKE_MODEL(RIG_ICMARINE, 3)
/*
* TODO:
RIG_MODEL_KWZ30, KNEISNER +DOERING
RIG_MODEL_E1800, DASA-Telefunken
etc.
*/
/*
* Dorji transceiver modules
*/
#define RIG_DORJI 31
#define RIG_BACKEND_DORJI "dorji"
#define RIG_MODEL_DORJI_DRA818V RIG_MAKE_MODEL(RIG_DORJI, 1)
#define RIG_MODEL_DORJI_DRA818U RIG_MAKE_MODEL(RIG_DORJI, 2)
/*
* Barrett
*/
#define RIG_BARRETT 32
#define RIG_BACKEND_BARRETT "barrett"
#define RIG_MODEL_BARRETT_2050 RIG_MAKE_MODEL(RIG_BARRETT, 1)
/*
* TODO:
RIG_MODEL_KWZ30, KNEISNER +DOERING
RIG_MODEL_E1800, DASA-Telefunken
etc.
*/
/*! \typedef typedef int rig_model_t
\brief Convenience type definition for rig model.
*/
typedef int rig_model_t;
/*
* struct rig_backend_list {
* rig_model_t model;
* const char *backend;
* rig_model_t model;
* const char *backend;
* } rig_backend_list[] = RIG_LIST;
*
* TODO:
*
{ RIG_RADIOSHACK, RIG_BACKEND_RADIOSHACK }, \
{ RIG_RADIOSHACK, RIG_BACKEND_RADIOSHACK }, \
*/
#endif /* _RIGLIST_H */

View File

@ -30,11 +30,12 @@
* @{
*/
/*! \file rotator.h
/**
* \file rotator.h
* \brief Hamlib rotator data structures.
*
* This file contains the data structures and definitions for the Hamlib rotator API.
* see the rotator.c file for more details on the rotator API.
* This file contains the data structures and declarations for the Hamlib
* rotator API. see the rotator.c file for more details on the rotator API.
*/
@ -46,212 +47,247 @@ __BEGIN_DECLS
struct rot;
struct rot_state;
/*! \typedef typedef struct rot ROT
/**
* \typedef typedef struct rot ROT
* \brief Rotator structure definition (see rot for details).
*/
typedef struct rot ROT;
/*! \typedef typedef float elevation_t
/**
* \typedef typedef float elevation_t
* \brief Type definition for elevation.
*
* The elevation_t type is used as parameter for the
* rot_set_position() and rot_get_position() functions.
* The elevation_t type is used as parameter for the rot_set_position() and
* rot_get_position() functions.
*
* Unless specified otherwise, the unit of elevation_t is decimal degrees.
*/
/*! \typedef typedef float azimuth_t
typedef float elevation_t;
/**
* \typedef typedef float azimuth_t
* \brief Type definition for azimuth.
*
* The azimuth_t type is used as parameter for the
* rot_set_position() and rot_get_position() functions.
* The azimuth_t type is used as parameter for the rot_set_position() and
* rot_get_position() functions.
*
* Unless specified otherwise, the unit of azimuth_t is decimal degrees.
*/
typedef float elevation_t;
typedef float azimuth_t;
/** \brief Token in the netrotctl protocol for returning error code */
/**
* \brief Token in the netrotctl protocol for returning error code
*/
#define NETROTCTL_RET "RPRT "
/*! \def ROT_RESET_ALL
* \brief A macro that returns the flag for the \b reset operation.
* \sa rot_reset(), rot_reset_t
*/
#define ROT_RESET_ALL 1
/*! \typedef typedef int rot_reset_t
/**
* \def ROT_RESET_ALL
* \brief A macro that returns the flag for the \b reset operation.
* \sa rot_reset(), rot_reset_t()
*/
#define ROT_RESET_ALL 1
/**
* \typedef typedef int rot_reset_t
* \brief Type definition for rotator reset.
*
* The rot_reset_t type is used as parameter for
* the rot_reset() API function.
* The rot_reset_t type is used as parameter for the rot_reset() API
* function.
*/
typedef int rot_reset_t;
/** \brief Rotator type flags */
/**
* \brief Rotator type flags
*/
typedef enum {
ROT_FLAG_AZIMUTH = (1<<1), /*!< Azimuth */
ROT_FLAG_ELEVATION = (1<<2) /*!< Elevation */
ROT_FLAG_AZIMUTH = (1 << 1), /*!< Azimuth */
ROT_FLAG_ELEVATION = (1 << 2) /*!< Elevation */
} rot_type_t;
#define ROT_TYPE_MASK (ROT_FLAG_AZIMUTH|ROT_FLAG_ELEVATION)
#define ROT_TYPE_OTHER 0
#define ROT_TYPE_AZIMUTH ROT_FLAG_AZIMUTH
#define ROT_TYPE_ELEVATION ROT_FLAG_ELEVATION
#define ROT_TYPE_AZEL (ROT_FLAG_AZIMUTH|ROT_FLAG_ELEVATION)
#define ROT_TYPE_OTHER 0
#define ROT_TYPE_AZIMUTH ROT_FLAG_AZIMUTH
#define ROT_TYPE_ELEVATION ROT_FLAG_ELEVATION
#define ROT_TYPE_AZEL (ROT_FLAG_AZIMUTH|ROT_FLAG_ELEVATION)
/*! \def ROT_MOVE_UP
/**
* \def ROT_MOVE_UP
* \brief A macro that returns the flag for the \b UP direction.
*
* This macro defines the value of the \b UP direction which can be
* used with the rot_move() function.
*
* \sa rot_move(), ROT_MOVE_DOWN, ROT_MOVE_LEFT, ROT_MOVE_CCW, ROT_MOVE_RIGHT, ROT_MOVE_CW
* \sa rot_move(), ROT_MOVE_DOWN, ROT_MOVE_LEFT, ROT_MOVE_CCW,
* ROT_MOVE_RIGHT, ROT_MOVE_CW
*/
/*! \def ROT_MOVE_DOWN
#define ROT_MOVE_UP (1<<1)
/**
* \def ROT_MOVE_DOWN
* \brief A macro that returns the flag for the \b DOWN direction.
*
* This macro defines the value of the \b DOWN direction which can be
* used with the rot_move() function.
*
* \sa rot_move(), ROT_MOVE_UP, ROT_MOVE_LEFT, ROT_MOVE_CCW, ROT_MOVE_RIGHT, ROT_MOVE_CW
* \sa rot_move(), ROT_MOVE_UP, ROT_MOVE_LEFT, ROT_MOVE_CCW, ROT_MOVE_RIGHT,
* ROT_MOVE_CW
*/
/*! \def ROT_MOVE_LEFT
#define ROT_MOVE_DOWN (1<<2)
/**
* \def ROT_MOVE_LEFT
* \brief A macro that returns the flag for the \b LEFT direction.
*
* This macro defines the value of the \b LEFT direction which can be
* used with the rot_move function.
*
* \sa rot_move(), ROT_MOVE_UP, ROT_MOVE_DOWN, ROT_MOVE_CCW, ROT_MOVE_RIGHT, ROT_MOVE_CW
* \sa rot_move(), ROT_MOVE_UP, ROT_MOVE_DOWN, ROT_MOVE_CCW, ROT_MOVE_RIGHT,
* ROT_MOVE_CW
*/
/*! \def ROT_MOVE_CCW
#define ROT_MOVE_LEFT (1<<3)
/**
* \def ROT_MOVE_CCW
* \brief A macro that returns the flag for the \b counterclockwise direction.
*
* This macro defines the value of the \b counterclockwise direction which
* can be used with the rot_move() function. This value is equivalent to
* ROT_MOVE_LEFT .
*
* \sa rot_move(), ROT_MOVE_UP, ROT_MOVE_DOWN, ROT_MOVE_LEFT, ROT_MOVE_RIGHT, ROT_MOVE_CW
* \sa rot_move(), ROT_MOVE_UP, ROT_MOVE_DOWN, ROT_MOVE_LEFT, ROT_MOVE_RIGHT,
* ROT_MOVE_CW
*/
/*! \def ROT_MOVE_RIGHT
#define ROT_MOVE_CCW ROT_MOVE_LEFT
/**
* \def ROT_MOVE_RIGHT
* \brief A macro that returns the flag for the \b RIGHT direction.
*
* This macro defines the value of the \b RIGHT direction which can be used
* with the rot_move() function.
*
* \sa rot_move(), ROT_MOVE_UP, ROT_MOVE_DOWN, ROT_MOVE_LEFT, ROT_MOVE_CCW, ROT_MOVE_CW
* \sa rot_move(), ROT_MOVE_UP, ROT_MOVE_DOWN, ROT_MOVE_LEFT, ROT_MOVE_CCW,
* ROT_MOVE_CW
*/
/*! \def ROT_MOVE_CW
#define ROT_MOVE_RIGHT (1<<4)
/**
* \def ROT_MOVE_CW
* \brief A macro that returns the flag for the \b clockwise direction.
*
* This macro defines the value of the \b clockwise direction wich can be
* used with the rot_move() function. This value is equivalent to
* ROT_MOVE_RIGHT .
*
* \sa rot_move(), ROT_MOVE_UP, ROT_MOVE_DOWN, ROT_MOVE_LEFT, ROT_MOVE_CCW, ROT_MOVE_RIGHT
* \sa rot_move(), ROT_MOVE_UP, ROT_MOVE_DOWN, ROT_MOVE_LEFT, ROT_MOVE_CCW,
* ROT_MOVE_RIGHT
*/
#define ROT_MOVE_UP (1<<1)
#define ROT_MOVE_DOWN (1<<2)
#define ROT_MOVE_LEFT (1<<3)
#define ROT_MOVE_CCW ROT_MOVE_LEFT
#define ROT_MOVE_RIGHT (1<<4)
#define ROT_MOVE_CW ROT_MOVE_RIGHT
#define ROT_MOVE_CW ROT_MOVE_RIGHT
/* Basic rot type, can store some useful
* info about different rotators. Each lib must
* be able to populate this structure, so we can make
* useful enquiries about capablilities.
/* Basic rot type, can store some useful info about different rotators. Each
* lib must be able to populate this structure, so we can make useful
* enquiries about capablilities.
*/
/*!
/**
* Rotator Caps
* \struct rot_caps
* \brief Rotator data structure.
*
* The main idea of this struct is that it will be defined by the backend
* rotator driver, and will remain readonly for the application.
* Fields that need to be modifiable by the application are
* copied into the struct rot_state, which is a kind of private
* of the ROT instance.
* rotator driver, and will remain readonly for the application. Fields that
* need to be modifiable by the application are copied into the struct
* rot_state, which is a kind of private of the ROT instance.
*
* This way, you can have several rigs running within the same application,
* sharing the struct rot_caps of the backend, while keeping their own
* customized data.
* NB: don't move fields around, as backend depends on it when initializing
* their caps.
*
* n.b.: Don't move fields around, as the backends depend on it when
* initializing their caps.
*/
struct rot_caps {
rot_model_t rot_model; /*!< Rotator model. */
const char *model_name; /*!< Model name. */
const char *mfg_name; /*!< Manufacturer. */
const char *version; /*!< Driver version. */
const char *copyright; /*!< Copyright info. */
enum rig_status_e status; /*!< Driver status. */
rot_model_t rot_model; /*!< Rotator model. */
const char *model_name; /*!< Model name. */
const char *mfg_name; /*!< Manufacturer. */
const char *version; /*!< Driver version. */
const char *copyright; /*!< Copyright info. */
enum rig_status_e status; /*!< Driver status. */
int rot_type; /*!< Rotator type. */
enum rig_port_e port_type; /*!< Type of communication port. */
int rot_type; /*!< Rotator type. */
enum rig_port_e port_type; /*!< Type of communication port. */
int serial_rate_min; /*!< Minimal serial speed. */
int serial_rate_max; /*!< Maximal serial speed. */
int serial_data_bits; /*!< Number of data bits. */
int serial_stop_bits; /*!< Number of stop bits. */
enum serial_parity_e serial_parity; /*!< Parity. */
enum serial_handshake_e serial_handshake; /*!< Handshake. */
int serial_rate_min; /*!< Minimal serial speed. */
int serial_rate_max; /*!< Maximal serial speed. */
int serial_data_bits; /*!< Number of data bits. */
int serial_stop_bits; /*!< Number of stop bits. */
enum serial_parity_e serial_parity; /*!< Parity. */
enum serial_handshake_e serial_handshake; /*!< Handshake. */
int write_delay; /*!< Write delay. */
int post_write_delay; /*!< Post-write delay. */
int timeout; /*!< Timeout. */
int retry; /*!< Number of retry if command fails. */
int write_delay; /*!< Write delay. */
int post_write_delay; /*!< Post-write delay. */
int timeout; /*!< Timeout. */
int retry; /*!< Number of retry if command fails. */
/*
* Movement range, az is relative to North
* negative values allowed for overlap
*/
azimuth_t min_az; /*!< Lower limit for azimuth (relative to North). */
azimuth_t max_az; /*!< Upper limit for azimuth (relative to North). */
elevation_t min_el; /*!< Lower limit for elevation. */
elevation_t max_el; /*!< Upper limit for elevation. */
/*
* Movement range, az is relative to North
* negative values allowed for overlap
*/
azimuth_t min_az; /*!< Lower limit for azimuth (relative to North). */
azimuth_t max_az; /*!< Upper limit for azimuth (relative to North). */
elevation_t
min_el; /*!< Lower limit for elevation. */
elevation_t
max_el; /*!< Upper limit for elevation. */
const struct confparams *cfgparams; /*!< Configuration parametres. */
const rig_ptr_t priv; /*!< Private data. */
const struct confparams *cfgparams; /*!< Configuration parametres. */
const rig_ptr_t priv; /*!< Private data. */
/*
* Rot Admin API
*
*/
/*
* Rot Admin API
*
*/
int (*rot_init)(ROT *rot);
int (*rot_cleanup)(ROT *rot);
int (*rot_open)(ROT *rot);
int (*rot_close)(ROT *rot);
int (*rot_init)(ROT *rot);
int (*rot_cleanup)(ROT *rot);
int (*rot_open)(ROT *rot);
int (*rot_close)(ROT *rot);
int (*set_conf)(ROT *rot, token_t token, const char *val);
int (*get_conf)(ROT *rot, token_t token, char *val);
int (*set_conf)(ROT *rot, token_t token, const char *val);
int (*get_conf)(ROT *rot, token_t token, char *val);
/*
* General API commands, from most primitive to least.. :()
* List Set/Get functions pairs
*/
/*
* General API commands, from most primitive to least.. :()
* List Set/Get functions pairs
*/
int (*set_position)(ROT *rot, azimuth_t azimuth, elevation_t elevation);
int (*get_position)(ROT *rot, azimuth_t *azimuth, elevation_t *elevation);
int (*set_position)(ROT *rot, azimuth_t azimuth, elevation_t elevation);
int (*get_position)(ROT *rot, azimuth_t *azimuth, elevation_t *elevation);
int (*stop)(ROT *rot);
int (*park)(ROT *rot);
int (*reset)(ROT *rot, rot_reset_t reset);
int (*move)(ROT *rot, int direction, int speed);
int (*stop)(ROT *rot);
int (*park)(ROT *rot);
int (*reset)(ROT *rot, rot_reset_t reset);
int (*move)(ROT *rot, int direction, int speed);
/* get firmware info, etc. */
const char* (*get_info)(ROT *rot);
/* get firmware info, etc. */
const char * (*get_info)(ROT *rot);
/* more to come... */
/* more to come... */
};
/*!
/**
* Rotator state
* \struct rot_state
* \brief Live data and customized fields.
@ -263,26 +299,27 @@ struct rot_caps {
* not be initialized like caps are.
*/
struct rot_state {
/*
* overridable fields
*/
azimuth_t min_az; /*!< Lower limit for azimuth (overridable). */
azimuth_t max_az; /*!< Upper limit for azimuth (overridable). */
elevation_t min_el; /*!< Lower limit for elevation (overridable). */
elevation_t max_el; /*!< Upper limit for elevation (overridable). */
/*
* overridable fields
*/
azimuth_t min_az; /*!< Lower limit for azimuth (overridable). */
azimuth_t max_az; /*!< Upper limit for azimuth (overridable). */
elevation_t min_el; /*!< Lower limit for elevation (overridable). */
elevation_t max_el; /*!< Upper limit for elevation (overridable). */
/*
* non overridable fields, internal use
*/
hamlib_port_t rotport; /*!< Rotator port (internal use). */
/*
* non overridable fields, internal use
*/
hamlib_port_t rotport; /*!< Rotator port (internal use). */
int comm_state; /*!< Comm port state, opened/closed. */
rig_ptr_t priv; /*!< Pointer to private rotator state data. */
rig_ptr_t obj; /*!< Internal use by hamlib++ for event handling. */
int comm_state; /*!< Comm port state, opened/closed. */
rig_ptr_t priv; /*!< Pointer to private rotator state data. */
rig_ptr_t obj; /*!< Internal use by hamlib++ for event handling. */
/* etc... */
/* etc... */
};
/**
* Rotator structure
* \struct rot
@ -293,76 +330,166 @@ struct rot_state {
* rotator. A pointer to this structure is returned by the rot_init() API
* function and is passed as a parameter to every rotator specific API call.
*
* \sa rot_init(), rot_caps, rot_state
* \sa rot_init(), rot_caps(), rot_state()
*/
struct rot {
struct rot_caps *caps; /*!< Rotator caps. */
struct rot_state state; /*!< Rotator state. */
struct rot_caps *caps; /*!< Rotator caps. */
struct rot_state state; /*!< Rotator state. */
};
/* --------------- API function prototypes -----------------*/
extern HAMLIB_EXPORT(ROT *) rot_init HAMLIB_PARAMS((rot_model_t rot_model));
extern HAMLIB_EXPORT(int) rot_open HAMLIB_PARAMS((ROT *rot));
extern HAMLIB_EXPORT(int) rot_close HAMLIB_PARAMS((ROT *rot));
extern HAMLIB_EXPORT(int) rot_cleanup HAMLIB_PARAMS((ROT *rot));
extern HAMLIB_EXPORT(ROT *)
rot_init HAMLIB_PARAMS((rot_model_t rot_model));
extern HAMLIB_EXPORT(int) rot_set_conf HAMLIB_PARAMS((ROT *rot, token_t token, const char *val));
extern HAMLIB_EXPORT(int) rot_get_conf HAMLIB_PARAMS((ROT *rot, token_t token, char *val));
/*
* General API commands, from most primitive to least.. )
* List Set/Get functions pairs
*/
extern HAMLIB_EXPORT(int) rot_set_position HAMLIB_PARAMS((ROT *rot, azimuth_t azimuth, elevation_t elevation));
extern HAMLIB_EXPORT(int) rot_get_position HAMLIB_PARAMS((ROT *rot, azimuth_t *azimuth, elevation_t *elevation));
extern HAMLIB_EXPORT(int) rot_stop HAMLIB_PARAMS((ROT *rot));
extern HAMLIB_EXPORT(int) rot_park HAMLIB_PARAMS((ROT *rot));
extern HAMLIB_EXPORT(int) rot_reset HAMLIB_PARAMS((ROT *rot, rot_reset_t reset));
extern HAMLIB_EXPORT(int) rot_move HAMLIB_PARAMS((ROT *rot, int direction, int speed));
extern HAMLIB_EXPORT(const char*) rot_get_info HAMLIB_PARAMS((ROT *rot));
extern HAMLIB_EXPORT(int)
rot_open HAMLIB_PARAMS((ROT *rot));
extern HAMLIB_EXPORT(int) rot_register HAMLIB_PARAMS((const struct rot_caps *caps));
extern HAMLIB_EXPORT(int) rot_unregister HAMLIB_PARAMS((rot_model_t rot_model));
extern HAMLIB_EXPORT(int) rot_list_foreach HAMLIB_PARAMS((int (*cfunc)(const struct rot_caps*, rig_ptr_t), rig_ptr_t data));
extern HAMLIB_EXPORT(int) rot_load_backend HAMLIB_PARAMS((const char *be_name));
extern HAMLIB_EXPORT(int) rot_check_backend HAMLIB_PARAMS((rot_model_t rot_model));
extern HAMLIB_EXPORT(int) rot_load_all_backends HAMLIB_PARAMS((void));
extern HAMLIB_EXPORT(rot_model_t) rot_probe_all HAMLIB_PARAMS((hamlib_port_t *p));
extern HAMLIB_EXPORT(int)
rot_close HAMLIB_PARAMS((ROT *rot));
extern HAMLIB_EXPORT(int) rot_token_foreach HAMLIB_PARAMS((ROT *rot, int (*cfunc)(const struct confparams *, rig_ptr_t), rig_ptr_t data));
extern HAMLIB_EXPORT(const struct confparams*) rot_confparam_lookup HAMLIB_PARAMS((ROT *rot, const char *name));
extern HAMLIB_EXPORT(token_t) rot_token_lookup HAMLIB_PARAMS((ROT *rot, const char *name));
extern HAMLIB_EXPORT(int)
rot_cleanup HAMLIB_PARAMS((ROT *rot));
extern HAMLIB_EXPORT(const struct rot_caps *) rot_get_caps HAMLIB_PARAMS((rot_model_t rot_model));
extern HAMLIB_EXPORT(int)
rot_set_conf HAMLIB_PARAMS((ROT *rot,
token_t token,
const char *val));
extern HAMLIB_EXPORT(int)
rot_get_conf HAMLIB_PARAMS((ROT *rot,
token_t token,
char *val));
extern HAMLIB_EXPORT(int) qrb HAMLIB_PARAMS((double lon1, double lat1,
double lon2, double lat2,
double *distance, double *azimuth));
extern HAMLIB_EXPORT(double) distance_long_path HAMLIB_PARAMS((double distance));
extern HAMLIB_EXPORT(double) azimuth_long_path HAMLIB_PARAMS((double azimuth));
/*
* General API commands, from most primitive to least.. )
* List Set/Get functions pairs
*/
extern HAMLIB_EXPORT(int)
rot_set_position HAMLIB_PARAMS((ROT *rot,
azimuth_t azimuth,
elevation_t elevation));
extern HAMLIB_EXPORT(int)
rot_get_position HAMLIB_PARAMS((ROT *rot,
azimuth_t *azimuth,
elevation_t *elevation));
extern HAMLIB_EXPORT(int) longlat2locator HAMLIB_PARAMS((double longitude,
double latitude, char *locator_res, int pair_count));
extern HAMLIB_EXPORT(int) locator2longlat HAMLIB_PARAMS((double *longitude,
double *latitude, const char *locator));
extern HAMLIB_EXPORT(int)
rot_stop HAMLIB_PARAMS((ROT *rot));
extern HAMLIB_EXPORT(double) dms2dec HAMLIB_PARAMS((int degrees, int minutes,
double seconds, int sw));
extern HAMLIB_EXPORT(int) dec2dms HAMLIB_PARAMS((double dec, int *degrees,
int *minutes, double *seconds, int *sw));
extern HAMLIB_EXPORT(int)
rot_park HAMLIB_PARAMS((ROT *rot));
extern HAMLIB_EXPORT(int) dec2dmmm HAMLIB_PARAMS((double dec, int *degrees,
double *minutes, int *sw));
extern HAMLIB_EXPORT(double) dmmm2dec HAMLIB_PARAMS((int degrees,
double minutes, int sw));
extern HAMLIB_EXPORT(int)
rot_reset HAMLIB_PARAMS((ROT *rot,
rot_reset_t reset));
/*! \def rot_debug
extern HAMLIB_EXPORT(int)
rot_move HAMLIB_PARAMS((ROT *rot,
int direction,
int speed));
extern HAMLIB_EXPORT(const char *)
rot_get_info HAMLIB_PARAMS((ROT *rot));
extern HAMLIB_EXPORT(int)
rot_register HAMLIB_PARAMS((const struct rot_caps *caps));
extern HAMLIB_EXPORT(int)
rot_unregister HAMLIB_PARAMS((rot_model_t rot_model));
extern HAMLIB_EXPORT(int)
rot_list_foreach HAMLIB_PARAMS((int (*cfunc)(const struct rot_caps *,
rig_ptr_t),
rig_ptr_t data));
extern HAMLIB_EXPORT(int)
rot_load_backend HAMLIB_PARAMS((const char *be_name));
extern HAMLIB_EXPORT(int)
rot_check_backend HAMLIB_PARAMS((rot_model_t rot_model));
extern HAMLIB_EXPORT(int)
rot_load_all_backends HAMLIB_PARAMS((void));
extern HAMLIB_EXPORT(rot_model_t)
rot_probe_all HAMLIB_PARAMS((hamlib_port_t *p));
extern HAMLIB_EXPORT(int)
rot_token_foreach HAMLIB_PARAMS((ROT *rot,
int (*cfunc)(const struct confparams *,
rig_ptr_t),
rig_ptr_t data));
extern HAMLIB_EXPORT(const struct confparams *)
rot_confparam_lookup HAMLIB_PARAMS((ROT *rot,
const char *name));
extern HAMLIB_EXPORT(token_t)
rot_token_lookup HAMLIB_PARAMS((ROT *rot,
const char *name));
extern HAMLIB_EXPORT(const struct rot_caps *)
rot_get_caps HAMLIB_PARAMS((rot_model_t rot_model));
extern HAMLIB_EXPORT(int)
qrb HAMLIB_PARAMS((double lon1,
double lat1,
double lon2,
double lat2,
double *distance,
double *azimuth));
extern HAMLIB_EXPORT(double)
distance_long_path HAMLIB_PARAMS((double distance));
extern HAMLIB_EXPORT(double)
azimuth_long_path HAMLIB_PARAMS((double azimuth));
extern HAMLIB_EXPORT(int)
longlat2locator HAMLIB_PARAMS((double longitude,
double latitude,
char *locator_res,
int pair_count));
extern HAMLIB_EXPORT(int)
locator2longlat HAMLIB_PARAMS((double *longitude,
double *latitude,
const char *locator));
extern HAMLIB_EXPORT(double)
dms2dec HAMLIB_PARAMS((int degrees,
int minutes,
double seconds,
int sw));
extern HAMLIB_EXPORT(int)
dec2dms HAMLIB_PARAMS((double dec,
int *degrees,
int *minutes,
double *seconds,
int *sw));
extern HAMLIB_EXPORT(int)
dec2dmmm HAMLIB_PARAMS((double dec,
int *degrees,
double *minutes,
int *sw));
extern HAMLIB_EXPORT(double)
dmmm2dec HAMLIB_PARAMS((int degrees,
double minutes,
int sw));
/**
* \def rot_debug
* \brief Convenience definition for debug level.
*
* This is just as convenience definition of the rotator debug level,
* and is the same as for the rig debug level.
*
* \sa rig_debug
* \sa rig_debug()
*/
#define rot_debug rig_debug

View File

@ -26,29 +26,35 @@
#define ROT_MAKE_MODEL(a,b) ((a)*100+(b))
#define ROT_BACKEND_NUM(a) ((a)/100)
/**
* \addtogroup rotator
* @{
*/
/*! \file rotlist.h
/**
* \file rotlist.h
* \brief Hamlib rotator model definitions.
*
* This file contains rotator model definitions for the Hamlib rotator API.
* Each distinct rotator type has a unique model number (ID) and is used
* by hamlib to identify and distinguish between the different hardware drivers.
* The exact model numbers can be acquired using the macros in this
* file. To obtain a list of supported rotator branches, one can use the statically
* defined ROT_BACKEND_LIST macro. To obtain a full list of supported rotators (including
* each model in every branch), the foreach_opened_rot() API function can be used.
* Each distinct rotator type has a unique model number (ID) and is used by
* hamlib to identify and distinguish between the different hardware drivers.
* The exact model numbers can be acquired using the macros in this file. To
* obtain a list of supported rotator branches, one can use the statically
* defined ROT_BACKEND_LIST macro. To obtain a full list of supported
* rotators (including each model in every branch), the foreach_opened_rot()
* API function can be used.
*
* The model number, or ID, is used to tell hamlib, which rotator the client whishes to
* use. It is done with the rot_init() API call.
* The model number, or ID, is used to tell Hamlib which rotator the client
* whishes to use. It is done with the rot_init() API call.
*/
#define ROT_MODEL_NONE 0
/*! \def ROT_MODEL_DUMMY
/**
* \def ROT_MODEL_DUMMY
* \brief A macro that returns the model number for the dummy backend.
*
* The dummy backend, as the name suggests, is a backend which performs
@ -56,7 +62,8 @@
* be thought of as a hardware simulator and is very usefull for testing
* client applications.
*/
/*! \def ROT_MODEL_NETROTCTL
/**
* \def ROT_MODEL_NETROTCTL
* \brief A macro that returns the model number for the Network backend.
*
* This backend allows use of the rotctld daemon through the normal
@ -67,16 +74,20 @@
#define ROT_MODEL_DUMMY ROT_MAKE_MODEL(ROT_DUMMY, 1)
#define ROT_MODEL_NETROTCTL ROT_MAKE_MODEL(ROT_DUMMY, 2)
/*
* Easycomm
*/
/*! \def ROT_MODEL_EASYCOMM1
/*
* Easycomm
*/
/**
* \def ROT_MODEL_EASYCOMM1
* \brief A macro that returns the model number of the EasyComm 1 backend.
*
* The EasyComm 1 backend can be used with rotators that support the
* EASYCOMM I Standard.
*/
/*! \def ROT_MODEL_EASYCOMM2
/**
* \def ROT_MODEL_EASYCOMM2
* \brief A macro that returns the model number of the EasyComm 2 backend.
*
* The EasyComm 2 backend can be used with rotators that support the
@ -89,7 +100,9 @@
#define ROT_MODEL_TRAKBOX ROT_MAKE_MODEL(ROT_EASYCOMM, 3)
#define ROT_MODEL_EASYCOMM3 ROT_MAKE_MODEL(ROT_EASYCOMM, 4)
/*! \def ROT_MODEL_FODTRACK
/**
* \def ROT_MODEL_FODTRACK
* \brief A macro that returns the model number of the Fodtrack backend.
*
* The Fodtrack backend can be used with rotators that support the
@ -99,35 +112,41 @@
#define ROT_BACKEND_FODTRACK "fodtrack"
#define ROT_MODEL_FODTRACK ROT_MAKE_MODEL(ROT_FODTRACK, 1)
/*! \def ROT_MODEL_ROTOREZ
/**
* \def ROT_MODEL_ROTOREZ
* \brief A macro that returns the model number of the Rotor-EZ backend.
*
* The Rotor-EZ backend can be used with Hy-Gain rotators that support
* the extended DCU command set by Idiom Press Rotor-EZ board.
*/
/*! \def ROT_MODEL_ROTORCARD
/**
* \def ROT_MODEL_ROTORCARD
* \brief A macro that returns the model number of the Rotor Card backend.
*
* The Rotor-EZ backend can be used with Yaesu rotators that support the
* extended DCU command set by Idiom Press Rotor Card board.
*/
/*! \def ROT_MODEL_DCU
/**
* \def ROT_MODEL_DCU
* \brief A macro that returns the model number of the DCU backend.
*
* The Rotor-EZ backend can be used with rotators that support the
* DCU command set by Hy-Gain (currently the DCU-1).
* The Rotor-EZ backend can be used with rotators that support the DCU
* command set by Hy-Gain (currently the DCU-1).
*/
/*! \def ROT_MODEL_ERC
/**
* \def ROT_MODEL_ERC
* \brief A macro that returns the model number of the ERC backend.
*
* The Rotor-EZ backend can be used with rotators that support the
* DCU command set by DF9GR (currently the ERC).
* The Rotor-EZ backend can be used with rotators that support the DCU
* command set by DF9GR (currently the ERC).
*/
/*! \def ROT_MODEL_RT21
/**
* \def ROT_MODEL_RT21
* \brief A macro that returns the model number of the RT21 backend.
*
* The Rotor-EZ backend can be used with rotators that support the
* DCU command set by Green Heron (currently the RT-21).
* The Rotor-EZ backend can be used with rotators that support the DCU
* command set by Green Heron (currently the RT-21).
*/
#define ROT_ROTOREZ 4
#define ROT_BACKEND_ROTOREZ "rotorez"
@ -137,35 +156,42 @@
#define ROT_MODEL_ERC ROT_MAKE_MODEL(ROT_ROTOREZ, 4)
#define ROT_MODEL_RT21 ROT_MAKE_MODEL(ROT_ROTOREZ, 5)
/*! \def ROT_MODEL_SARTEK1
/**
* \def ROT_MODEL_SARTEK1
* \brief A macro that returns the model number of the SARtek-1 backend.
*
* The sartek backend can be used with rotators that support the
* SARtek protocol.
* The sartek backend can be used with rotators that support the SARtek
* protocol.
*/
#define ROT_SARTEK 5
#define ROT_BACKEND_SARTEK "sartek"
#define ROT_MODEL_SARTEK1 ROT_MAKE_MODEL(ROT_SARTEK, 1)
/*! \def ROT_MODEL_GS232A
/**
* \def ROT_MODEL_GS232A
* \brief A macro that returns the model number of the GS-232A backend.
*
* The GS-232A backend can be used with rotators that support the
* GS-232A protocol.
* The GS-232A backend can be used with rotators that support the GS-232A
* protocol.
*/
/*! \def ROT_MODEL_GS232
/**
* \def ROT_MODEL_GS232
* \brief A macro that returns the model number of the GS-232 backend.
*
* The GS-232 backend can be used with rotators that support the
* GS-232 protocol.
* The GS-232 backend can be used with rotators that support the GS-232
* protocol.
*/
/*! \def ROT_MODEL_GS232B
/**
* \def ROT_MODEL_GS232B
* \brief A macro that returns the model number of the GS-232B backend.
*
* The GS-232B backend can be used with rotators that support the
* GS-232B protocol.
* The GS-232B backend can be used with rotators that support the GS-232B
* protocol.
*/
/*! \def ROT_MODEL_F1TETRACKER
/**
* \def ROT_MODEL_F1TETRACKER
* \brief A macro that returns the model number of the F1TETRACKER backend.
*
* The F1TETRACKER backend can be used with rotators that support the
@ -178,7 +204,9 @@
#define ROT_MODEL_GS232B ROT_MAKE_MODEL(ROT_GS232A, 3)
#define ROT_MODEL_F1TETRACKER ROT_MAKE_MODEL(ROT_GS232A, 4)
/*! \def ROT_MODEL_PCROTOR
/**
* \def ROT_MODEL_PCROTOR
* \brief A macro that returns the model number of the PcRotor/WA6UFQ backend.
*
* The kit backend can be used with home brewed rotators.
@ -187,69 +215,85 @@
#define ROT_BACKEND_KIT "kit"
#define ROT_MODEL_PCROTOR ROT_MAKE_MODEL(ROT_KIT, 1)
/*! \def ROT_MODEL_HD1780
/**
* \def ROT_MODEL_HD1780
* \brief A macro that returns the model number of the HD 1780 backend.
*/
#define ROT_HEATHKIT 8
#define ROT_BACKEND_HEATHKIT "heathkit"
#define ROT_MODEL_HD1780 ROT_MAKE_MODEL(ROT_HEATHKIT, 1)
/*! \def ROT_MODEL_SPID_ROT2PROG
/**
* \def ROT_MODEL_SPID_ROT2PROG
* \brief A macro that returns the model number of the ROT2PROG backend.
*
* The SPID backend can be used with rotators that support the SPID
* protocol.
* The SPID backend can be used with rotators that support the SPID protocol.
*/
/*! \def ROT_MODEL_SPID_ROT1PROG
/**
* \def ROT_MODEL_SPID_ROT1PROG
* \brief A macro that returns the model number of the ROT1PROG backend.
*
* The SPID backend can be used with rotators that support the SPID
* protocol.
* The SPID backend can be used with rotators that support the SPID protocol.
*/
/**
* \def ROT_MODEL_SPID_MD01_ROT2PROG
* \brief A macro that returns the model number of the MD-01/02 (ROT2PROG protocol) backend.
*
* The SPID backend can be used with rotators that support the SPID protocol.
*/
#define ROT_SPID 9
#define ROT_BACKEND_SPID "spid"
#define ROT_MODEL_SPID_ROT2PROG ROT_MAKE_MODEL(ROT_SPID, 1)
#define ROT_MODEL_SPID_ROT1PROG ROT_MAKE_MODEL(ROT_SPID, 2)
#define ROT_MODEL_SPID_MD01_ROT2PROG ROT_MAKE_MODEL(ROT_SPID, 3)
/*! \def ROT_MODEL_RC2800
/**
* \def ROT_MODEL_RC2800
* \brief A macro that returns the model number of the RC2800 backend.
*
* The M2 backend can be used with rotators that support the RC2800
* protocol and alike.
* The M2 backend can be used with rotators that support the RC2800 protocol
* and alike.
*/
#define ROT_M2 10
#define ROT_BACKEND_M2 "m2"
#define ROT_MODEL_RC2800 ROT_MAKE_MODEL(ROT_M2, 1)
/*! \def ROT_MODEL_RCI_AZEL
/**
* \def ROT_MODEL_RCI_AZEL
* \brief A macro that returns the model number of the RCI_AZEL backend.
*
* The ARS backend can be used with rotators that support the ARS
* protocol.
* The ARS backend can be used with rotators that support the ARS protocol.
*/
/*! \def ROT_MODEL_RCI_AZ
/**
* \def ROT_MODEL_RCI_AZ
* \brief A macro that returns the model number of the RCI_AZ backend.
*
* The ARS backend can be used with rotators that support the ARS
* protocol.
* The ARS backend can be used with rotators that support the ARS protocol.
*/
#define ROT_ARS 11
#define ROT_BACKEND_ARS "ars"
#define ROT_MODEL_RCI_AZEL ROT_MAKE_MODEL(ROT_ARS, 1)
#define ROT_MODEL_RCI_AZ ROT_MAKE_MODEL(ROT_ARS, 2)
/*! \def ROT_MODEL_IF100
/**
* \def ROT_MODEL_IF100
* \brief A macro that returns the model number of the IF-100 backend.
*
* The AMSAT backend can be used with rotators that support,
* among other, the IF-100 interface.
* The AMSAT backend can be used with rotators that support, among other, the
* IF-100 interface.
*/
#define ROT_AMSAT 12
#define ROT_BACKEND_AMSAT "amsat"
#define ROT_MODEL_IF100 ROT_MAKE_MODEL(ROT_AMSAT, 1)
/*! \def ROT_MODEL_TS7400
/**
* \def ROT_MODEL_TS7400
* \brief A macro that returns the model number of the TS7400 backend.
*
* The TS-7400 backend supports and embedded ARM board using the TS-7400
@ -259,7 +303,9 @@
#define ROT_BACKEND_TS7400 "ts7400"
#define ROT_MODEL_TS7400 ROT_MAKE_MODEL(ROT_TS7400, 1)
/*! \def ROT_MODEL_NEXSTAR
/**
* \def ROT_MODEL_NEXSTAR
* \brief A macro that returns the model number of the NEXSTAR backend.
*
* The CELESTRON backend can be used with rotators that support the Celestron
@ -269,7 +315,9 @@
#define ROT_BACKEND_CELESTRON "celestron"
#define ROT_MODEL_NEXSTAR ROT_MAKE_MODEL(ROT_CELESTRON, 1)
/*! \def ROT_MODEL_ETHER6
/**
* \def ROT_MODEL_ETHER6
* \brief A macro that returns the model number of the Ether6 backend.
*
* The Ether6 backend can be used with rotators that support the Ether6
@ -280,18 +328,20 @@
#define ROT_MODEL_ETHER6 ROT_MAKE_MODEL(ROT_ETHER6, 1)
/*! \def ROT_MODEL_CNCTRK
/**
* \def ROT_MODEL_CNCTRK
* \brief A macro that returns the model number of the CNCTRK backend.
*
* The CNCTRK backend can be used with rotators that support,
* the LinuxCNC running Axis GUI interface.
* The CNCTRK backend can be used with rotators that support the LinuxCNC
* running Axis GUI interface.
*/
#define ROT_CNCTRK 16
#define ROT_BACKEND_CNCTRK "cnctrk"
#define ROT_MODEL_CNCTRK ROT_MAKE_MODEL(ROT_CNCTRK, 1)
/*! \def ROT_MODEL_PROSISTEL
/**
* \def ROT_MODEL_PROSISTEL
* \brief A macro that returns the model number of the PROSISTEL backend.
*
*/
@ -300,11 +350,13 @@
#define ROT_MODEL_PROSISTEL ROT_MAKE_MODEL(ROT_PROSISTEL, 1)
/*! \typedef typedef int rot_model_t
\brief Convenience type definition for rotator model.
/**
* \typedef typedef int rot_model_t
* \brief Convenience type definition for rotator model.
*/
typedef int rot_model_t;
#endif /* _ROTLIST_H */
/** @} */

Binary file not shown.

Binary file not shown.

View File

@ -2970,26 +2970,28 @@ void AppFrame::toggleAllActiveDemodRecording() {
return;
}
auto activeDemods = wxGetApp().getDemodMgr().getDemodulators();
// All demods, irrespective of their active state:
// recording will start eventually when a demod come in range.
auto allDemods = wxGetApp().getDemodMgr().getDemodulators();
//by default, do a false => true for all:
bool stateToSet = true;
for (auto i : activeDemods) {
if (i->isActive() && i->isRecording()) {
for (auto i : allDemods) {
if (i->isRecording()) {
stateToSet = false;
break;
}
}
for (auto i : activeDemods) {
if (i->isActive() && i->isRecording() != stateToSet) {
i->setRecording(stateToSet);
}
for (auto i : allDemods) {
i->setRecording(stateToSet);
}
//this effectively refresh the BookmarkView buttons, including Recording buttons.
wxGetApp().getBookmarkMgr().updateActiveList();
}
void AppFrame::setWaterfallLinesPerSecond(int lps) {
waterfallSpeedMeter->setUserInputValue(sqrt(lps));
}

View File

@ -553,10 +553,10 @@ bool DemodulatorInstance::isRecording()
void DemodulatorInstance::setRecording(bool recording_in)
{
if (!recording.load() && recording_in) {
if (recording_in) {
startRecording();
}
else if (recording.load() && !recording_in) {
else {
stopRecording();
}
}

View File

@ -190,7 +190,7 @@ void BookmarkView::onUpdateTimer( wxTimerEvent& /* event */ ) {
}
}
bool BookmarkView::skipUserEvents() {
bool BookmarkView::skipEvents() {
return !this->IsShown() || doUpdateActive || doUpdateBookmarks;
}
@ -511,6 +511,9 @@ void BookmarkView::doUpdateActiveList() {
m_treeView->SelectItem(selItem);
}
// Add an extra refresh, that rebuilds the buttons from sratch.
activeSelection(lastActiveDemodulator);
delete prevSelCopy;
}
@ -543,10 +546,6 @@ void BookmarkView::onTreeActivate( wxTreeEvent& event ) {
void BookmarkView::onTreeCollapse( wxTreeEvent& event ) {
if (skipUserEvents()) {
return;
}
bool searchState = (searchKeywords.size() != 0);
if (searchState) {
@ -577,10 +576,6 @@ void BookmarkView::onTreeCollapse( wxTreeEvent& event ) {
void BookmarkView::onTreeExpanded( wxTreeEvent& event ) {
if (skipUserEvents()) {
return;
}
bool searchState = (searchKeywords.size() != 0);
if (searchState) {
@ -697,14 +692,6 @@ void BookmarkView::refreshLayout() {
wxButton *BookmarkView::makeButton(wxWindow *parent, std::string labelVal, wxObjectEventFunction handler) {
wxButton *nButton = new wxButton( m_buttonPanel, wxID_ANY, labelVal);
nButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, handler, nullptr, this);
wxColour bgColor(ThemeMgr::mgr.currentTheme->generalBackground);
// wxColour fgColor(ThemeMgr::mgr.currentTheme->button);
//Force white color:
wxColour textColorWhite(RGBA4f(255,255,255));
nButton->SetBackgroundColour(bgColor);
nButton->SetForegroundColour(textColorWhite);
return nButton;
}
@ -816,9 +803,17 @@ void BookmarkView::onBookmarkChoice( wxCommandEvent & /* event */ ) {
}
}
void BookmarkView::activeSelection(DemodulatorInstancePtr dsel) {
if (dsel == nullptr) {
hideProps();
clearButtons();
showProps();
showButtons();
refreshLayout();
return;
}
m_frequencyVal->SetLabelText(frequencyToStr(dsel->getFrequency()));
m_bandwidthVal->SetLabelText(frequencyToStr(dsel->getBandwidth()));
m_modulationVal->SetLabelText(dsel->getDemodulatorType());
@ -842,14 +837,12 @@ void BookmarkView::activeSelection(DemodulatorInstancePtr dsel) {
addBookmarkChoice(m_buttonPanel);
if (dsel->isActive()) {
if (!(dsel->isRecording())) {
addButton(m_buttonPanel, "Start Recording", wxCommandEventHandler(BookmarkView::onStartRecording));
} else {
addButton(m_buttonPanel, "Stop Recording", wxCommandEventHandler(BookmarkView::onStopRecording));
}
}
if (!(dsel->isRecording())) {
addButton(m_buttonPanel, "Start Recording", wxCommandEventHandler(BookmarkView::onStartRecording));
} else {
addButton(m_buttonPanel, "Stop Recording", wxCommandEventHandler(BookmarkView::onStopRecording));
}
addButton(m_buttonPanel, "Remove Active", wxCommandEventHandler( BookmarkView::onRemoveActive ));
showProps();
@ -1074,6 +1067,10 @@ void BookmarkView::activeBranchSelection() {
void BookmarkView::onTreeSelect( wxTreeEvent& event ) {
if (skipEvents()) {
return;
}
wxTreeItemId itm = event.GetItem();
TreeViewItem* tvi = dynamic_cast<TreeViewItem*>(m_treeView->GetItemData(itm));
@ -1119,10 +1116,6 @@ void BookmarkView::onTreeSelect( wxTreeEvent& event ) {
void BookmarkView::onTreeSelectChanging( wxTreeEvent& event ) {
if (skipUserEvents()) {
return;
}
event.Skip();
}
@ -1203,6 +1196,7 @@ void BookmarkView::onStartRecording( wxCommandEvent& /* event */ ) {
if (curSel && curSel->type == TreeViewItem::TREEVIEW_ITEM_TYPE_ACTIVE) {
if (!curSel->demod->isRecording() && wxGetApp().getConfig()->verifyRecordingPath()) {
curSel->demod->setRecording(true);
wxGetApp().getBookmarkMgr().updateActiveList();
}
}
@ -1216,6 +1210,7 @@ void BookmarkView::onStopRecording( wxCommandEvent& /* event */ ) {
if (curSel && curSel->type == TreeViewItem::TREEVIEW_ITEM_TYPE_ACTIVE) {
if (curSel->demod->isRecording()) {
curSel->demod->setRecording(false);
wxGetApp().getBookmarkMgr().updateActiveList();
}
}
@ -1481,10 +1476,6 @@ void BookmarkView::onTreeEndDrag( wxTreeEvent& event ) {
void BookmarkView::onTreeItemGetTooltip( wxTreeEvent& event ) {
if (skipUserEvents()) {
return;
}
event.Skip();
}

View File

@ -162,8 +162,8 @@ protected:
void onActivateRange( wxCommandEvent& event );
void onUpdateRange( wxCommandEvent& event );
bool skipUserEvents();
bool skipEvents();
TreeViewItem *itemToTVI(wxTreeItemId item);
void SetTreeItemData(const wxTreeItemId& item, wxTreeItemData *data);
@ -201,4 +201,5 @@ protected:
std::vector<std::wstring> searchKeywords;
void setStatusText(std::string statusText);
};

View File

@ -361,7 +361,7 @@ void SDRDevicesDialog::OnUseSelected( wxMouseEvent& event) {
wxPGProperty *prop = runtimeProps[arg.key];
if (arg.type == SoapySDR::ArgInfo::STRING && arg.options.size()) {
settingArgs[arg.key] = arg.options[prop->GetChoiceSelection()];
settingArgs[arg.key] = getSelectedChoiceOption(prop, arg);
} else if (arg.type == SoapySDR::ArgInfo::BOOL) {
settingArgs[arg.key] = (prop->GetValueAsString()=="True")?"true":"false";
} else {
@ -378,7 +378,7 @@ void SDRDevicesDialog::OnUseSelected( wxMouseEvent& event) {
wxPGProperty *prop = streamProps[arg.key];
if (arg.type == SoapySDR::ArgInfo::STRING && arg.options.size()) {
streamArgs[arg.key] = arg.options[prop->GetChoiceSelection()];
streamArgs[arg.key] = getSelectedChoiceOption(prop, arg);
} else if (arg.type == SoapySDR::ArgInfo::BOOL) {
streamArgs[arg.key] = (prop->GetValueAsString()=="True")?"true":"false";
} else {
@ -491,6 +491,27 @@ void SDRDevicesDialog::OnRefreshDevices( wxMouseEvent& /* event */) {
doRefreshDevices();
}
std::string SDRDevicesDialog::getSelectedChoiceOption(wxPGProperty* prop, const SoapySDR::ArgInfo& arg) {
std::string optionName = "";
int choiceIndex = prop->GetChoiceSelection();
if (arg.options.size() > 0) {
if (choiceIndex >= 0 && choiceIndex < arg.options.size()) {
//normal selection
optionName = arg.options[choiceIndex];
} else {
//choose the first one of the list:
optionName = arg.options[0];
prop->SetChoiceSelection(0);
}
}
return optionName;
}
void SDRDevicesDialog::OnPropGridChanged( wxPropertyGridEvent& event ) {
if (event.GetProperty() == devSettings["name"]) {
@ -557,7 +578,7 @@ void SDRDevicesDialog::OnPropGridChanged( wxPropertyGridEvent& event ) {
std::string settingValue = prop->GetValueAsString().ToStdString();
SoapySDR::ArgInfo arg = runtimeArgs[rtp->first];
if (arg.type == SoapySDR::ArgInfo::STRING && arg.options.size()) {
settingValue = arg.options[prop->GetChoiceSelection()];
settingValue = getSelectedChoiceOption(prop, arg);
} else if (arg.type == SoapySDR::ArgInfo::BOOL) {
settingValue = (prop->GetValueAsString()=="True")?"true":"false";
} else {

View File

@ -33,6 +33,10 @@ private:
SDRDeviceInfo *getSelectedDevice(wxTreeItemId selId);
wxPGProperty *addArgInfoProperty(wxPropertyGrid *pg, SoapySDR::ArgInfo arg);
//
std::string getSelectedChoiceOption(wxPGProperty* prop, const SoapySDR::ArgInfo& arg);
bool refresh, failed;
std::map<std::string, std::vector<SDRDeviceInfo *>* > devs;
std::vector<SDRDeviceInfo *>::iterator devs_i;