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();
}
}
}
