Cで書かれたサンプルプログラムがエラーを吐き出していたが、デバッグというか対処方法が思ったより簡単に見つかった。
このサンプルプログラムは、RSP1だけでなく他のハードウェア(Duo等)にも対応していて、ハードウェアによってデバイスパラメータやチューナーのパラメータを変更している。
そこのところの手順を全部スキップして、デフォルトで動作させてやったら、エラーなく動作した。 パラメータを変えたいときはどうするか?という問題は解決していないので、まあ、問題先送りというやつだけど..。
で、ハードウェア対応の部分を省いたAPI関数の実行手順を確認してみると、以下のようになる。(引数は省略)
開始手順
sdrplay_api_Open()
sdrplay_api_LockDeviceApi()
sdrplay_api_GetDevices()
sdrplay_api_SelectDevice()
sdrplay_api_UnlockDeviceApi()
CallBack関数を指定
sdrplay_api_Init()
ループを作って、データを処理
終了手順
sdrplay_api_Uninit()
sdrplay_api_RereaseDevice()
sdr_api_UnlockDeviceApi()
sdrplay_api_Close()
処理自体は、意外と単純だなぁ。
これで、C#に移植できるかな..