From: suikan Date: Sat, 6 Jun 2015 05:38:28 +0000 (+0900) Subject: コマンドAPIのテスト済み。解釈は特に行っておらず、SHから渡された値をAPIがそのまま返している。 X-Git-Tag: 0.9~14 X-Git-Url: http://git.osdn.net/view?p=trx-305dsp%2Fdsp.git;a=commitdiff_plain;h=b1481da3c7f609f6008441bd10cff501e1238deb コマンドAPIのテスト済み。解釈は特に行っておらず、SHから渡された値をAPIがそのまま返している。 --- diff --git a/trx305/demodulator.h b/trx305/demodulator.h index cbe5a58..c6aa11c 100644 --- a/trx305/demodulator.h +++ b/trx305/demodulator.h @@ -15,22 +15,23 @@ #define radio_api_getAAT_attack() (radio.comdata[3]) #define radio_api_getAFA_fade() (radio.comdata[4]) #define radio_api_getAST_noise_squelch_level() (radio.comdata[5]) -#define radio_api_getASP_cw_pitch() (radio.comdata[6]) +#define radio_api_getACP_cw_pitch() (radio.comdata[6]) #define radio_api_getADN_denoiser() (radio.comdata[7]) #define radio_api_getAAN_auto_notch() (radio.comdata[8]) #define radio_api_getAGL_gain_level() (radio.comdata[11]) // Flag 0 -#define radio_api_getAIF_filter() ((radio.comdata[0]>>1)|0x7) -#define radio_api_getABN_noise_blanker_on() ((~radio.comdata[0]>>11)|0x1) -#define radio_api_getARG_agc_on() ((radio.comdata[0]>>13)|0x1) - -//TASK: Flag10以下未実装 -#define radio_api_getANE_noise_squelch_on() ((~radio.comdata[10]>>1)|0x1) -#define radio_api_getAFP_hpf() ((radio.comdata[10]>>4)|0x3) -#define radio_api_getAFP_lpf() ((radio.comdata[10]>>2)|0x3) - -#define radio_api_getAVP_voice_squelch_level() ((radio.comdata[12])|0x3F) -#define radio_api_getAVS_voice_squelch_on() ((~radio.comdata[12]>>7)|0x1) +#define radio_api_getAIF_filter() ((radio.comdata[0]>>1)&0x7) +#define radio_api_getABN_noise_blanker_on() ((~radio.comdata[0]>>11)&0x1) +#define radio_api_getARG_agc_on() (~(radio.comdata[0]>>13)&0x1) + +// Flag10 +#define radio_api_getANE_noise_squelch_on() ((radio.comdata[10]>>1)&0x1) +#define radio_api_getAAF_hpf() ((radio.comdata[10]>>4)&0x3) +#define radio_api_getAAF_lpf() ((radio.comdata[10]>>2)&0x3) + +// Flag 12 +#define radio_api_getAVP_voice_squelch_level() ((radio.comdata[12])&0x3F) +#define radio_api_getAVS_voice_squelch_on() ((~radio.comdata[12]>>7)&0x1) void init_demodulator(void); diff --git a/trx305/framework.c b/trx305/framework.c index 451c6b1..6e5a840 100644 --- a/trx305/framework.c +++ b/trx305/framework.c @@ -13,6 +13,7 @@ static void init_sport0_tx(void); static void pack_af_sample( short left, short right, unsigned int * pri_ch, unsigned int * sec_ch); static void unpack_wide_fm ( unsigned int pri_ch, unsigned int sec_ch, int* idata, int* qdata ); static void unpack_non_wide_fm( unsigned int pri_ch, unsigned int sec_ch, int* idata, int* qdata, int* valid_iq ); +static void set_command_data( unsigned int command, unsigned int data ); @@ -376,11 +377,7 @@ static void unpack_wide_fm ( unsigned int pri_ch, unsigned int sec_ch, int* idat // パラメータ・データをrx_parameter.data配列に格納する。 // 配列インデックスは comaddr、データはcomdataから。 -#ifdef DEBUG_COMMAND - if ( radio.comdata[command] != data ){ - syslog(LOG_NOTICE, "pri_ch : %8x, sec_ch : %8x, Command : %d, Data : %d", pri_ch, sec_ch, command, data ); - } -#endif + set_command_data( command, data); radio.comdata[ command ] = data; } @@ -416,15 +413,30 @@ static void unpack_non_wide_fm( unsigned int pri_ch, unsigned int sec_ch, int* // パラメータ・データをrx_parameter.data配列に格納する。 // 配列インデックスは comaddr、データはcomdataから。 + set_command_data( command, data); + + // IQデータが無効であると通知する + *valid_iq = FALSE; + } +} + +/** + * \brief SHからのコマンドとパラメタを保存する + * \param command + * \param data + * \details このルーチンはcfgファイルで宣言され、SPORT0 RX 割り込みハンドラとして登録される。 + * SPORT0 RX DMAがバッファの受信を終えるたびに呼び出される。 + * 割り込み専有時間を小さくするため、実際には、割り込みのクリアと受信タスクへの通知しかしていない。 + */ +static void set_command_data( unsigned int command, unsigned int data ) +{ #ifdef DEBUG_COMMAND if ( radio.comdata[command] != data ){ - syslog(LOG_NOTICE, "pri_ch : %8x, sec_ch : %8x, Command : %d, Data : %d", pri_ch, sec_ch, command, data ); + syslog(LOG_NOTICE, "Command : %d, Data : %d", command, data ); } #endif radio.comdata[ command ] = data; - // IQデータが無効であると通知する - *valid_iq = FALSE; - } + } @@ -698,5 +710,25 @@ void monitor_task(VP_INT exinf) } #endif // DEBUG_QUEUEDEPTH +#ifdef DEBUG_COMMAND_API + syslog( LOG_NOTICE, "radio_api_getARM_mode() %d", radio_api_getARM_mode() ); + syslog( LOG_NOTICE, "radio_api_getAIS_if_shift() %d", radio_api_getAIS_if_shift() ); + syslog( LOG_NOTICE, "radio_api_getAAT_attack() %d", radio_api_getAAT_attack() ); + syslog( LOG_NOTICE, "radio_api_getAFA_fade() %d", radio_api_getAFA_fade() ); + syslog( LOG_NOTICE, "radio_api_getAST_noise_squelch_level() %d", radio_api_getAST_noise_squelch_level() ); + syslog( LOG_NOTICE, "radio_api_getACP_cw_pitch() %d", radio_api_getACP_cw_pitch() ); + syslog( LOG_NOTICE, "radio_api_getADN_denoiser() %d", radio_api_getADN_denoiser() ); + syslog( LOG_NOTICE, "radio_api_getAAN_auto_notch() %d", radio_api_getAAN_auto_notch() ); + syslog( LOG_NOTICE, "radio_api_getAGL_gain_level() %d", radio_api_getAGL_gain_level() ); + syslog( LOG_NOTICE, "radio_api_getAIF_filter() %d", radio_api_getAIF_filter() ); + syslog( LOG_NOTICE, "radio_api_getABN_noise_blanker_on() %d", radio_api_getABN_noise_blanker_on()); + syslog( LOG_NOTICE, "radio_api_getARG_agc_on() %d", radio_api_getARG_agc_on()); + syslog( LOG_NOTICE, "radio_api_getANE_noise_squelch_on() %d", radio_api_getANE_noise_squelch_on()); + syslog( LOG_NOTICE, "radio_api_getAAF_hpf() %d", radio_api_getAAF_hpf() ); + syslog( LOG_NOTICE, "radio_api_getAAF_lpf() %d", radio_api_getAAF_lpf() ); + syslog( LOG_NOTICE, "radio_api_getAVP_voice_squelch_level() %d", radio_api_getAVP_voice_squelch_level() ); + syslog( LOG_NOTICE, "radio_api_getAVS_voice_squelch_on() %d", radio_api_getAVS_voice_squelch_on() ); +#endif // DEBUG_COMMAND_API + } } diff --git a/trx305/framework.h b/trx305/framework.h index a63651d..db7a927 100644 --- a/trx305/framework.h +++ b/trx305/framework.h @@ -54,9 +54,10 @@ * * コメントアウトすると機能がディセーブルになる */ -// #define DEBUG_QUEUEDEPTH // シリアルポートから、タスク間Queueの深さを表示させる -// #define DEBUG_DSPLOAD // シリアルポートからDSP負荷率を表示させる + #define DEBUG_QUEUEDEPTH // シリアルポートから、タスク間Queueの深さを表示させる + #define DEBUG_DSPLOAD // シリアルポートからDSP負荷率を表示させる #define DEBUG_COMMAND // DSPに送られてくるコマンドの表示 +//#define DEBUG_COMMAND_API // 復調器から使えるAPIのデバッグ用 /** * \brief RX_IF受信SPORTバッファのDMAサイズ @@ -131,8 +132,9 @@ * 各タスクの優先度の定義 */ -#define TASK_PRIORITY_RX_IF 10 /* RX-IF DMA処理タスクの優先度。復調も行う */ #define TASK_PRIORITY_AF 5 /* AF DMAタスクの優先度。送信なので優先度高 */ +#define TASK_PRIORITY_RX_IF 10 /* RX-IF DMA処理タスクの優先度。復調も行う */ +#define LOGTASK_PRIORITY 12 /* デフォルトの初期優先度を上書きする */ #define TASK_PRIORITY_MONITOR 15 /* モニター・タスクの優先度。優先度低 */ /*