MAS-8500 APIサンプルを作成してみました。(ソースファイルを添付致します。)
オーディオアナライザで主に使用される設定・測定値を表示するサンプルとなります。弊社のオーディオアナライザー製品も自動計測で機器を共有するケースが多くなっておりますので、参考にしてみて下さい。
今回の製品は2022年7月からリリースしております、「MAS-8500」デジタルオーディオI/Fを搭載した製品となります。
この機会にご評価等もご検討下さい!!
下記の設定・測定を行う内容となっております。
① USB通信接続 (COM7で接続)
② 設定初期化
③ レスポンス OFF設定 (※APIを使用する時は、レスポンスをOFFにする)
④ OSCレベル設定 (10dBV に設定)
⑤ OSC周波数設定 (1000Hz に設定)
⑥ OSC出力設定 (Lチャンネルを ON)
⑦ ひずみ率測定タイプ設定 (THD+Nに設定)
⑧ オート設定 (ACレンジ、DCレンジ、基本波除去フィルタをオートに設定)
⑨ 平均値処理の OFF設定
⑩ 表示単位設定 (Log表示に設定)
⑪ LPF設定 (80kHz に設定)
⑫ L/R入力切換え設定 (Lチャンネルに設定)
⑬ AC入力方式設定 (不平衡に設定)
⑭ 測定モード設定 (ひずみ率測定に設定)
⑮ トーカモード設定 (周波数測定値、信号レベル、測定結果値に設定)
⑯ 測定前ウエイト (1000 ms)
⑰ 測定データ取得 (周波数測定値、信号レベル、ひずみ率測定値を表示)
参考ソースコード<右のタグをクリックして下さい>
/*********************************************************************************/ // MAS-8410, MAS-8500 API sample C# code // 実行確認環境 :Microsoft Visual Studio 2017 // プロジェクト :コンソールアプリ (.NET Framework) // // 2022/09/30 // Keisoku Giken Co., Ltd. /*********************************************************************************/ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace ConsoleApp { class Program { public static void Main() { // MAS8400のControlクラスのインスタンスを生成 MAS8400.Control mas8400 = new MAS8400.Control(); int error = 0; // エラーフラグ /*********************************************************************************/ // USB通信接続 (COM7 で接続する場合) /*********************************************************************************/ if (mas8400.Connect_USB("COM7") != 0) { // エラー処理 (戻り値が0以外の時) // Err_Messageプロパティからエラー内容を取得して表示 Console.WriteLine("USB接続 " + mas8400.Err_Message); error++; } /*********************************************************************************/ // 設定初期化 /*********************************************************************************/ if (mas8400.Init() != 0) { // エラー処理 (戻り値が0以外の時) // Err_Messageプロパティからエラー内容を取得して表示 Console.WriteLine("初期化実行 " + mas8400.Err_Message); error++; } /*********************************************************************************/ // レスポンスON/OFF設定 (レスポンスをOFFに設定 ※APIを使用する時は、レスポンスはOFFにしてください) /*********************************************************************************/ if (mas8400.Response(0) != 0) { // エラー処理 (戻り値が0以外の時) // Err_Messageプロパティからエラー内容を取得して表示 Console.WriteLine("レスポンス設定 " + mas8400.Err_Message); error++; } /*********************************************************************************/ // OSCレベル設定 (10dBV に設定する場合) /*********************************************************************************/ if (mas8400.OSC_Level(10f, "DB") != 0) { // エラー処理 (戻り値が0以外の時) // Err_Messageプロパティからエラー内容を取得して表示 Console.WriteLine("OSCレベル設定 " + mas8400.Err_Message); error++; } /*********************************************************************************/ // OSC周波数設定 (1000Hz に設定する場合) /*********************************************************************************/ if (mas8400.OSC_Freq(1000f, "HZ") != 0) { // エラー処理 (戻り値が0以外の時) // Err_Messageプロパティからエラー内容を取得して表示 Console.WriteLine("OSC周波数設定 " + mas8400.Err_Message); error++; } /*********************************************************************************/ // OSC出力設定 (Lチャンネルを ONに設定する場合) /*********************************************************************************/ if (mas8400.OSC_Output("ON", 1) != 0) { // エラー処理 (戻り値が0以外の時) // Err_Messageプロパティからエラー内容を取得して表示 Console.WriteLine("OSC出力設定 " + mas8400.Err_Message); error++; } /*********************************************************************************/ // ひずみ率測定タイプ設定 (THD+Nに設定する場合) /*********************************************************************************/ if (mas8400.HD_Mode(0) != 0) { // エラー処理 (戻り値が0以外の時) // Err_Messageプロパティからエラー内容を取得して表示 Console.WriteLine("ひずみ率測定タイプ設定 " + mas8400.Err_Message); error++; } /*********************************************************************************/ // オート設定 (ACレンジ、DCレンジ、基本波除去フィルタをオートに設定します) /*********************************************************************************/ if (mas8400.AU_Mode() != 0) { // エラー処理 (戻り値が0以外の時) // Err_Messageプロパティからエラー内容を取得して表示 Console.WriteLine("オート設定 " + mas8400.Err_Message); error++; } /*********************************************************************************/ // 平均値処理のON/OFF設定 (平均値処理をOFFに設定する場合) /*********************************************************************************/ if (mas8400.Average(0) != 0) { // エラー処理 (戻り値が0以外の時) // Err_Messageプロパティからエラー内容を取得して表示 Console.WriteLine("平均値処理のON/OFF設定 " + mas8400.Err_Message); error++; } /*********************************************************************************/ // 表示単位設定 (Log表示にする場合) /*********************************************************************************/ if (mas8400.Unit_LinLog(1) != 0) { // エラー処理 (戻り値が0以外の時) // Err_Messageプロパティからエラー内容を取得して表示 Console.WriteLine("表示単位設定 " + mas8400.Err_Message); error++; } /*********************************************************************************/ // LPF設定 (80kHz に設定する場合) /*********************************************************************************/ if (mas8400.Filter_LPF(2) != 0) { // エラー処理 (戻り値が0以外の時) // Err_Messageプロパティからエラー内容を取得して表示 Console.WriteLine("LPF設定 " + mas8400.Err_Message); error++; } /*********************************************************************************/ // L/R入力切換え設定 (Lチャンネルに設定する場合) /*********************************************************************************/ if (mas8400.Input_Ch(1) != 0) { // エラー処理 (戻り値が0以外の時) // Err_Messageプロパティからエラー内容を取得して表示 Console.WriteLine("L/R入力切換え設定 " + mas8400.Err_Message); error++; } /*********************************************************************************/ // AC入力方式設定 (不平衡に設定する場合) /*********************************************************************************/ if (mas8400.Balance(0) != 0) { // エラー処理 (戻り値が0以外の時) // Err_Messageプロパティからエラー内容を取得して表示 Console.WriteLine("AC入力方式設定 " + mas8400.Err_Message); error++; } /*********************************************************************************/ // 測定モード設定 (ひずみ率測定に設定する場合) /*********************************************************************************/ if (mas8400.M_Mode(1) != 0) { // エラー処理 (戻り値が0以外の時) // Err_Messageプロパティからエラー内容を取得して表示 Console.WriteLine("測定モード設定 " + mas8400.Err_Message); error++; } /*********************************************************************************/ // トーカモード設定 (周波数測定値、信号レベル、測定結果値に設定する場合) /*********************************************************************************/ if (mas8400.T_Mode(7) != 0) { // エラー処理 (戻り値が0以外の時) // Err_Messageプロパティからエラー内容を取得して表示 Console.WriteLine("トーカモード設定 " + mas8400.Err_Message); error++; } /*********************************************************************************/ // 測定前ウエイト (1000 ms) /*********************************************************************************/ Thread.Sleep(1000); /*********************************************************************************/ // 測定データ取得 /*********************************************************************************/ string Get_Data = mas8400.GetData(); if (Get_Data == null) { // エラー処理 (戻り値がnullの時) // Err_Messageプロパティからエラー内容を取得して表示 Console.WriteLine("測定データ取得 " + mas8400.Err_Message); } else { // 設定状態を出力 Console.WriteLine("測定データは " + Get_Data + " です"); } // 結果出力 if (error == 0) { // 正常終了 Console.WriteLine("測定は正常に行われました"); } Console.WriteLine("終了するには何かキーを押してください . . ."); Console.ReadKey(); } } }