Mistjapan 1.0.3

Mistjapan(ミストジャパン TEY510)

ミストジャパン製オートセッター TEY510(ホアロン仕様)を制御するライブラリです。Conlux などと同様の簡易コマンド API で、RS-485 経由で制御できます。


概要

  • Tey510: オートセッター制御用の端末クラス。RS-485 で子機と通信します。
  • Tey510Command: プロトコル送受信・フレーム解析を担うコマンドクラス。静的ヘルパーでパースやデータ整形も利用できます。
  • Monoterminal および NLog に依存

インストール

dotnet add package Mistjapan

依存パッケージ(Monoterminal、NLog)は自動で復元されます。


通信仕様

項目 仕様
規格 RS-485 準拠
通信速度 9600 bps
データビット 8 ビット
パリティ 偶数(Even)
ストップビット 1

フレーム形式: STX 'S' 子機番号(3桁) コマンド データ列 ETX BCC

  • BCC: STX の次から ETX まで(ETX 含む)の XOR

クイックスタート

参照の追加

using Net.Monotas.Terminals.Mistjapan.Tey510;

インスタンス作成とオープン

var device = new Tey510
{
    PortName = "COM4",   // 実際の COM ポート名に合わせる
    MachineId = "001"    // 子機番号(3桁、001~999)
};

device.Open();

基本的な利用フロー

try
{
    // ポーリング(状態取得。変化なしの場合は EOT)
    var status = await device.PollAsync();
    if (status.IsEot)
        Console.WriteLine("変化なし (EOT)");
    else
        Console.WriteLine($"State={status.State}, RemainingBalls={status.RemainingBalls}");

    // 設定の取得
    var settings = await device.RequestSettingsAsync();

    // 残球数・残時間の設定
    await device.SetBallsAndTimeAsync(RemainingBalls: 50, RemainingMinutes: 60);

    // リセット(エラー72・73時など)
    await device.SendResetAsync();
}
finally
{
    device.Close();
}

API 一覧

Tey510 のメソッド

メソッド コマンド 戻り値 説明
PollAsync() P DeviceStatusResponse ポーリング。状態変化がない場合は EOT(IsEot == true
PollImmediateAsync() I DeviceStatusResponse 即時で状態を要求
RequestSettingsAsync() M DeviceSettingsResponse 設定内容を要求
SetBallsAndTimeAsync(RemainingBalls, RemainingMinutes) B DeviceStatusResponse 残球数・残時間を設定
SetTParamsAsync(TimeoutMinutes, TeeHeight, ManualBalls, ManualMinutes) T DeviceSettingsResponse タイムアウト・ティー高さ・マニュアル用球数・時間を設定
SendInterruptAsync() A DeviceStatusResponse 中断要求
SendDataClearAsync() C DeviceStatusResponse データクリア要求
SendResetAsync() U DeviceStatusResponse リセット(エラー72・73のみ有効)

プロパティ

プロパティ 説明
PortName シリアルポート名(例: "COM4")
MachineId 子機番号(3桁、既定値 "001")

レスポンス型

DeviceStatusResponse(ステータス応答)

プロパティ 説明
MachineId string 子機番号
State char 状態(N/W/R/D 等)
ShotCount int 打数
RemainingBalls int 残球数
ElapsedMinutes int 経過時間(分)
RemainingMinutes int 残時間(分)
ErrorCode string エラーコード(2桁)
IsEot bool EOT 応答(変化なし)のとき true

状態(State)の目安DeviceState enum と対応):

  • N … Idle(待機)
  • W … StartWait(開始待ち)
  • R … Operating(稼働中)
  • D … OpenWait(オープン待ち)

DeviceSettingsResponse(設定応答)

プロパティ 説明
MachineId string 子機番号
TimeoutMinutes int タイムアウト(分)
TeeHeight int ティー高さ
ManualRemainingBalls int マニュアル残球数
ManualRemainingMinutes int マニュアル残時間(分)

パラメータ範囲(設定用)

メソッド/データ パラメータ 範囲
SetBallsAndTimeAsync RemainingBalls 0~99999
SetBallsAndTimeAsync RemainingMinutes 0~9999
SetTParamsAsync TimeoutMinutes 0~999
SetTParamsAsync TeeHeight 0~999
SetTParamsAsync ManualBalls 0~99999
SetTParamsAsync ManualMinutes 0~9999

範囲外を指定すると ArgumentOutOfRangeException が発生します。


Tey510Command の静的ヘルパー

フレーム解析やデータ整形を自前で行う場合に利用できます。

メソッド 説明
Tey510Command.ParseStatusResponse(byte[]) 受信フレームをパースして DeviceStatusResponse を返す
Tey510Command.ParseSettingsResponse(byte[]) 設定応答(F)フレームをパースして DeviceSettingsResponse を返す
Tey510Command.FormatBallsAndTimeData(int, int) B コマンド用データ列(残球5桁+残時間4桁)を生成
Tey510Command.FormatTParamsData(int, int, int, int) T コマンド用データ列を生成
Tey510Command.TryExtractFrame(byte[], int) 受信バッファから 1 フレーム分を抽出。EOT 単体にも対応

定数: Tey510Command.EOT (0x04) — EOT のバイト値


注意事項

  • 通信前に Open()、利用後は Close() を呼び出してください。
  • SendResetAsync() はエラー72・73のときのみ有効です。
  • ポーリングで変化がないときは EOT が返り、DeviceStatusResponse.IsEottrue になります。このとき他のステータス項目は未設定です。
  • リポジトリの docs フォルダにオートセッター通信仕様書があります。

ライセンス

MIT © Monotas Inc.

No packages depend on Mistjapan.

See Mistjapan/USAGE.md in repository for API and usage.

.NET 8.0

Version Downloads Last updated
1.0.5 2 03/31/2026
1.0.4 2 03/31/2026
1.0.3 3 03/29/2026
1.0.2 1 03/29/2026
1.0.1 2 03/29/2026
1.0.0 4 02/12/2026