#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);
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 );
// パラメータ・データを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;
}
// パラメータ・データを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;
- }
+
}
}
#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
+
}
}