OSDN Git Service

コマンドAPIのテスト済み。解釈は特に行っておらず、SHから渡された値をAPIがそのまま返している。 experimental_35189_command
authorsuikan <suikan@users.sourceforge.jp>
Sat, 6 Jun 2015 05:38:28 +0000 (14:38 +0900)
committersuikan <suikan@users.sourceforge.jp>
Sat, 6 Jun 2015 05:38:28 +0000 (14:38 +0900)
trx305/demodulator.h
trx305/framework.c
trx305/framework.h

index cbe5a58..c6aa11c 100644 (file)
 #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);
index 451c6b1..6e5a840 100644 (file)
@@ -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
+
     }
 }
index a63651d..db7a927 100644 (file)
  *
  * コメントアウトすると機能がディセーブルになる
 */
-// #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サイズ
  *  各タスクの優先度の定義
  */
 
-#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  /* モニター・タスクの優先度。優先度低 */
 
 /*