ドーム制御IFなど

 ASCOM制御面からPC側ー対PCコントローラー間のIF関係を考えてみました。ASCOM側のIFでのプロパティとメソッドは以下のものがあります。以下を参照しています。
プロパティ:https://ascom-standards.org/Help/Developer/html/Properties_T_ASCOM_DriverAccess_Dome.htm
メソッド:https://ascom-standards.org/Help/Developer/html/Methods_T_ASCOM_DriverAccess_Dome.htm

ただ自分としては.Netの本格的なソフト開発設計は初めてに近く、そもそもWindowsソフトの経験も少ないので色々と厄介ではあります。まあ、Javaでのサーバーサイド開発は有りますが(と言ってもJava6とか7の頃ですから)。もっと言えば、アセンブラ ⇒ PL/M ⇒ 知る人が極小のCHILL ⇒ C ⇒ Java の流れですが。

1.ASCOMプロパティ(状態や機能の具備などの読み出しなど)
要否は今回の開発での組み込むかどうかです。

名前記述DriverController
要否
備考
AltiitudeThe altitude (degrees, horizon zero and increasing positive to 90 zenith) of the part of the sky that the observer wishes to observe.×スリットで高度関係なし
AtHometrue when the dome is in the home position. Raises an error if not supported.
ドームがホームポジションにあるときにtrueを返す。サポートされていない場合はエラーを返す。
AtParktrue if the dome is in the programmed park position.false不要とした
AzimuthThe dome azimuth (degrees, North zero and increasing clockwise, i.e., 90 East, 180 South, 270 West). North is true north and not magnetic north.
ドームの方位角(度、北をゼロとして時計回りに増加、すなわち東90、南180、西270)。北は真北であり、磁北ではない。
CanFindHometrue if driver can perform a search for home position.
ドライバがホームポジションの検索を実行できる場合はtrue。
true
CanParktrue if the driver is capable of parking the dome.falseパーク指定無し
CanSetAltitudetrue if driver is capable of setting dome altitude.falseスリットで高度関係なし
CanSetAzimuthtrue if driver is capable of rotating the dome (or controlling the roof mechanism) in order to observe at a given azimuth.
ドライバーが、与えられた方位角で観測するためにドームを回転させる(またはルーフ機構を制御する)ことができる場合はtrue。
true
CanSetParktrue if the driver can set the dome park position.
ドライバーがドームをパーク位置に出来る場合はtrue。
falseパーク指定無し
CanSetShuttertrue if the driver is capable of opening and closing the shutter or roof mechanism.
ドライバがシャッターまたはルーフ機構を開閉できる場合はtrue。
true
CanSlavetrue if the dome hardware supports slaving to a telescope.
ドームのハードウェアが望遠鏡へのスレーブ接続をサポートしている場合はtrue。
false自律的追従無し
CanSyncAzimuthtrue if the driver is capable of synchronizing the dome azimuth position using the SyncToAzimuth(Double) method.
ドライバが、SyncToAzimuth(Double) メソッドを使ってドームの方位位置を同期できる場合は true。
true
ConnectedSet true to connect to the device hardware. Set false to disconnect from the device hardware. You can also read the property to check whether it is connected. This reports the current hardware state.
デバイス・ハードウェアに接続するにはtrueを設定する。デバイス・ハードウェアとの接続を解除するには false を設定します。このプロパティを読み込んで、接続されているかどうかを確認することもできます。これは、現在のハードウェアの状態を報告します。
DescriptionReturns a description of the device, such as manufacturer and model number. Any ASCII characters may be used.
製造元やモデル番号など、デバイスの説明を返します。任意の ASCII 文字を使用できます。
ASCOMへはドライバー情報
DriverInfoDescriptive and version information about this ASCOM driver.
このASCOMドライバに関する説明とバージョン情報。
ASCOMへはドライバー情報
DriverVersionA string containing only the major and minor version of the driver.
ドライバーのメジャーバージョンとマイナーバージョンのみを含む文字列。
ASCOMへはドライバー情報
InterfaceVersionThe interface version number that this device supports. Should return 2 for this interface version.
このデバイスがサポートしているインターフェイスのバージョン番号。このインターフェイスのバージョンは 2 を返すべきです。
NameThe short name of the driver, for display purposes
表示用のドライバーの短い名前。
ASCOMへはドライバー情報
ShutterStatusGets the status of the dome shutter or roof structure.
ドームシャッターまたは屋根構造の状態を取得します。
Slavedtrue if the dome is slaved to the telescope in its hardware, else false.
ドームのハードウェアが望遠鏡にスレーブされていればtrue、そうでなければfalse。
false自律的追従無し
Slewingtrue if any part of the dome is currently moving, false if all dome components are stationary.
ドームのいずれかの部分が現在動いている場合はtrue、すべてのドーム構成要素が静止している場合はfalse。
SupportedActionsReturns the list of custom action names supported by this driver.
このドライバがサポートするカスタムアクション名のリストを返します。
検討特にないかも

上記はASCOMプラットフォームとの関係で定義されている最低限に近いプロパティであり、ドライバ自体と対PCコントローラー間では追加の情報が必要と考えています。例:動作ログの指定など。

2.メソッド(動作実行)
要否は今回の開発での組み込むかどうかです。

名前記述DriverController
要否
備考
AbortSlewImmediately stops any and all movement.
あらゆる動きを即座に止める。
ActionInvokes the specified device-specific custom action.
指定されたデバイス固有のカスタムアクションを起動します。
検討
CloseShutterClose the shutter or otherwise shield the telescope from the sky.
シャッターを閉じるか、望遠鏡を空から遮る。
CommandBlindTransmits an arbitrary string to the device and does not wait for a response. Optionally, protocol framing characters may be added to the string before transmission.
任意の文字列をデバイスに送信し、応答を待たない。オプションとして、送信前にプロトコルフレーミング文字を文字列に追加することができる。
検討使い方の調査要
リターン無し指示系メソッド送信での利用
CommandBoolTransmits an arbitrary string to the device and waits for a boolean response. Optionally, protocol framing characters may be added to the string before transmission.
任意の文字列をデバイスに送信し、ブーリアン応答を待つ。オプションで、送信前にプロトコルフレーミング文字を文字列に追加することができる。
検討使い方の調査要
プロパティ取得コマンドに使うのかも
CommandStringTransmits an arbitrary string to the device and waits for a string response. Optionally, protocol framing characters may be added to the string before transmission.
任意の文字列をデバイスに送信し、文字列応答を待つ。オプションとして、送信前にプロトコルフレーミング文字を文字列に追加することができる。
検討使い方の調査要
プロパティ取得コマンドに使うのかも
DisposeDispose the late-bound interface, if needed. Will release it via COM if it is a COM object, else if native .NET will just dereference it for garbage collection.
必要であれば、レイトバインド・インターフェースを破棄する。COMオブジェクトであればCOM経由で解放し、そうでなければ、ネイティブの.NETであれば、ガベージコレクションのために参照解除するだけです。
検討使い方の調査要
汎用的な使い方を想定しているよう。今回は不要と思われる
FindHomeStart operation to search for the dome home position.
ドームホームポジションを検索するための操作を開始する。
OpenShutterOpen shutter or otherwise expose telescope to the sky.
シャッターを開けるなど、望遠鏡を空に向ける。
ParkRotate dome in azimuth to park position.
ドームを方位角方向に回転させ、パーク位置にする。
×Park指定なし
SetupDialogLaunches a configuration dialog box for the driver. The call will not return until the user clicks OK or cancel manually.
ドライバの設定ダイアログボックスを起動する。この呼び出しは、ユーザーがOKをクリックするか、手動でキャンセルするまで戻りません。
SlewToAltitudeEnsure that the requested viewing altitude is available for observing.
要求された観測高度が観測可能であることを確認する。
×自律的追従無し
SlewToAzimuthEnsure that the requested viewing azimuth is available for observing. The method should not block and the slew operation should complete asynchronously.
要求された観測方位が観測可能であることを確認する。このメソッドはブロックしてはならず、スリュー操作は非同期で完了しなければならない。
SyncToAzimuthSynchronize the current position of the dome to the given azimuth.
ドームの現在位置を与えられた方位角と同期させる。
微調整のみ許容とするか

上記はASCOMプラットフォームとの関係で定義されている最低限に近いメソッドであり、ドライバ自体と対PCコントローラー間では追加の情報が必要と考えています。例:初期化レベルの指定や動作ログの転送など。
これらプロパティやメソッドは今後進めるに従い変更があると思います。

 この他に兎に角、下記3ブロックの設計開発があり、
・端末制御部:リレーやエンコーダー関連制御部(RaspiPico使用):MicroPythonかC+PIO
・IF間制御部:端末制御とPCドライバ間での橋渡し制御部:当面ESP32-S3を使用:C
・ASCOMドライバー:PCでのASCOMドームドライバー(今回提示部):C#かVB.Net
色々と言語やプラットフォームも違い、混乱してしまいます。本当に完成するか怪しいですね。

コメント

タイトルとURLをコピーしました