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プロパティ(状態や機能の具備などの読み出しなど)
要否は今回の開発での組み込むかどうかです。
名前 | 記述 | Driver | Controller 要否 | 備考 |
Altiitude | The altitude (degrees, horizon zero and increasing positive to 90 zenith) of the part of the sky that the observer wishes to observe. | × | ー | スリットで高度関係なし |
AtHome | true when the dome is in the home position. Raises an error if not supported. ドームがホームポジションにあるときにtrueを返す。サポートされていない場合はエラーを返す。 | 〇 | 要 | |
AtPark | true if the dome is in the programmed park position. | false | ー | 不要とした |
Azimuth | The 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)。北は真北であり、磁北ではない。 | 〇 | 要 | |
CanFindHome | true if driver can perform a search for home position. ドライバがホームポジションの検索を実行できる場合はtrue。 | true | 要 | |
CanPark | true if the driver is capable of parking the dome. | false | ー | パーク指定無し |
CanSetAltitude | true if driver is capable of setting dome altitude. | false | ー | スリットで高度関係なし |
CanSetAzimuth | true if driver is capable of rotating the dome (or controlling the roof mechanism) in order to observe at a given azimuth. ドライバーが、与えられた方位角で観測するためにドームを回転させる(またはルーフ機構を制御する)ことができる場合はtrue。 | true | 要 | |
CanSetPark | true if the driver can set the dome park position. ドライバーがドームをパーク位置に出来る場合はtrue。 | false | ー | パーク指定無し |
CanSetShutter | true if the driver is capable of opening and closing the shutter or roof mechanism. ドライバがシャッターまたはルーフ機構を開閉できる場合はtrue。 | true | 要 | |
CanSlave | true if the dome hardware supports slaving to a telescope. ドームのハードウェアが望遠鏡へのスレーブ接続をサポートしている場合はtrue。 | false | ー | 自律的追従無し |
CanSyncAzimuth | true if the driver is capable of synchronizing the dome azimuth position using the SyncToAzimuth(Double) method. ドライバが、SyncToAzimuth(Double) メソッドを使ってドームの方位位置を同期できる場合は true。 | true | 要 | |
Connected | Set 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 を設定します。このプロパティを読み込んで、接続されているかどうかを確認することもできます。これは、現在のハードウェアの状態を報告します。 | 〇 | 要 | |
Description | Returns a description of the device, such as manufacturer and model number. Any ASCII characters may be used. 製造元やモデル番号など、デバイスの説明を返します。任意の ASCII 文字を使用できます。 | 〇 | 要 | ASCOMへはドライバー情報 |
DriverInfo | Descriptive and version information about this ASCOM driver. このASCOMドライバに関する説明とバージョン情報。 | 〇 | 要 | ASCOMへはドライバー情報 |
DriverVersion | A string containing only the major and minor version of the driver. ドライバーのメジャーバージョンとマイナーバージョンのみを含む文字列。 | 〇 | 要 | ASCOMへはドライバー情報 |
InterfaceVersion | The interface version number that this device supports. Should return 2 for this interface version. このデバイスがサポートしているインターフェイスのバージョン番号。このインターフェイスのバージョンは 2 を返すべきです。 | 〇 | ー | |
Name | The short name of the driver, for display purposes 表示用のドライバーの短い名前。 | 〇 | 要 | ASCOMへはドライバー情報 |
ShutterStatus | Gets the status of the dome shutter or roof structure. ドームシャッターまたは屋根構造の状態を取得します。 | 〇 | 要 | |
Slaved | true if the dome is slaved to the telescope in its hardware, else false. ドームのハードウェアが望遠鏡にスレーブされていればtrue、そうでなければfalse。 | false | ー | 自律的追従無し |
Slewing | true if any part of the dome is currently moving, false if all dome components are stationary. ドームのいずれかの部分が現在動いている場合はtrue、すべてのドーム構成要素が静止している場合はfalse。 | 〇 | 要 | |
SupportedActions | Returns the list of custom action names supported by this driver. このドライバがサポートするカスタムアクション名のリストを返します。 | 検討 | ー | 特にないかも |
上記はASCOMプラットフォームとの関係で定義されている最低限に近いプロパティであり、ドライバ自体と対PCコントローラー間では追加の情報が必要と考えています。例:動作ログの指定など。
2.メソッド(動作実行)
要否は今回の開発での組み込むかどうかです。
名前 | 記述 | Driver | Controller 要否 | 備考 |
AbortSlew | Immediately stops any and all movement. あらゆる動きを即座に止める。 | 〇 | 要 | |
Action | Invokes the specified device-specific custom action. 指定されたデバイス固有のカスタムアクションを起動します。 | 検討 | ||
CloseShutter | Close the shutter or otherwise shield the telescope from the sky. シャッターを閉じるか、望遠鏡を空から遮る。 | 〇 | 要 | |
CommandBlind | Transmits 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. 任意の文字列をデバイスに送信し、応答を待たない。オプションとして、送信前にプロトコルフレーミング文字を文字列に追加することができる。 | 検討 | 使い方の調査要 リターン無し指示系メソッド送信での利用 | |
CommandBool | Transmits an arbitrary string to the device and waits for a boolean response. Optionally, protocol framing characters may be added to the string before transmission. 任意の文字列をデバイスに送信し、ブーリアン応答を待つ。オプションで、送信前にプロトコルフレーミング文字を文字列に追加することができる。 | 検討 | 使い方の調査要 プロパティ取得コマンドに使うのかも | |
CommandString | Transmits an arbitrary string to the device and waits for a string response. Optionally, protocol framing characters may be added to the string before transmission. 任意の文字列をデバイスに送信し、文字列応答を待つ。オプションとして、送信前にプロトコルフレーミング文字を文字列に追加することができる。 | 検討 | 使い方の調査要 プロパティ取得コマンドに使うのかも | |
Dispose | Dispose 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であれば、ガベージコレクションのために参照解除するだけです。 | 検討 | 使い方の調査要。 汎用的な使い方を想定しているよう。今回は不要と思われる | |
FindHome | Start operation to search for the dome home position. ドームホームポジションを検索するための操作を開始する。 | 〇 | 要 | |
OpenShutter | Open shutter or otherwise expose telescope to the sky. シャッターを開けるなど、望遠鏡を空に向ける。 | 〇 | 要 | |
Park | Rotate dome in azimuth to park position. ドームを方位角方向に回転させ、パーク位置にする。 | × | Park指定なし | |
SetupDialog | Launches a configuration dialog box for the driver. The call will not return until the user clicks OK or cancel manually. ドライバの設定ダイアログボックスを起動する。この呼び出しは、ユーザーがOKをクリックするか、手動でキャンセルするまで戻りません。 | 〇 | ー | |
SlewToAltitude | Ensure that the requested viewing altitude is available for observing. 要求された観測高度が観測可能であることを確認する。 | × | 自律的追従無し | |
SlewToAzimuth | Ensure that the requested viewing azimuth is available for observing. The method should not block and the slew operation should complete asynchronously. 要求された観測方位が観測可能であることを確認する。このメソッドはブロックしてはならず、スリュー操作は非同期で完了しなければならない。 | 〇 | 要 | |
SyncToAzimuth | Synchronize 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
色々と言語やプラットフォームも違い、混乱してしまいます。本当に完成するか怪しいですね。
コメント