OTO - Ohshima Tamashima Observatory- - RubyでTheSky6・CCDSoftを操り、望遠鏡とCCDを制御する Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
!RubyでTheSky6を通して望遠鏡を制御するには(2009.01.19)
ミードのLX-200R望遠鏡の制御はもっぱらTheSky6で望遠鏡を制御しているが行っているが、TheSky6のHelpにはその他の汎用言語からにはいくつもの言語からスクリプトによる制御が可能である、 と可能であると書かれてあり、喜んだ。しかし、SoftwareBisqueのユーザーサポートサイトには、 VB Scriptによる例がたっぷりと書かれてはあるが、その他の言語でどうやったら よいのか、ちっとも言語の場合がちっとも書かれていない。具体的にその他の言語でどうやったらよいのか。
ここでは、 その後Rubyの勉強をしていて見つけた方法を、その方法がやっとわかった。ここでは、RubyとそのWIN32OLEライブラリ (Ruby-1.8以降で標準添付以降では標準添付されている)を使って、望遠鏡を制御する実例を示す。
要は、TheSky6はWindowsのCOM(OLE)オブジェクトというのはオブジェクトというものを使って望遠鏡を制御していて、そのCOM(OLE)というものは、どんな言語からでも利用でき、利用できるようになっているようだ。 TheSky6はそのAPIを公開しているので、使いやすくなっているのである。 Rubyでは、Windows用のCOMオブジェクトを使うライブラリWIN32OLEが利用できるので、 それを使うことにする使ってTheSky6を操作することにする。
なお、WIN32OLEライブラリそのものの使い方については、次のURLや
::http://www.morijp.com/masarl/homepage3.nifty.com/masarl/article/ruby-win32ole.html
::http://jp.rubyist.net/magazine/?0003-Win32OLE
::書籍 [[「Rubyist Magazine出張版 Ruby on Windows」|http://www.amazon.co.jp/Rubyist-Magazine%E5%87%BA%E5%BC%B5%E7%89%88-Ruby-Windows-cuzic/dp/4839926689]]
をご覧くださいが参考になる。
以下のrubyコードは、望遠鏡をジョグで10分角だけ南または北に移動させる操作を行うプログラムである。 TheSky6の望遠鏡シミュレータで動作を確認した。
<<<
#see http://www.morijp.com/masarl/homepage3.nifty.com/masarl/article/ruby-win32ole/excel-1.html
# tested on 20090119 with TheSkyTele6 and the Simulator by O.Ohshima
require 'win32ole'
class WIN32OLE
@const_defined = Hash.new
def WIN32OLE.new_with_const(prog_id, const_name_space)
result = WIN32OLE.new(prog_id)
unless @const_defined[const_name_space] then
WIN32OLE.const_load(result, const_name_space)
@const_defined[const_name_space] = true
end
return result
end
end
module TheSkyTele
def TheSkyTele.new()
theskytele = WIN32OLE.new_with_const('TheSky6.RASCOMTele', TheSkyTele)
# prog_idの前半部"TheSky6."は、オブジェクトブラウザー上では"TheSky6Library"と表示
# されているもの。後半の".RASCOMTele"は、オブジェクトブラウザーのクラス上では
# "TheSkyRASCOMTele"と表示されているものに相当する
return theskytele
end
def TheSkyTele.runDuring(&block)
begin
theskytele = new()
block.call(theskytele)
ensure
theskytele.quit
end
end
end
theskytele = TheSkyTele.new()
#theskytele.jog(10.0, "South")
theskytele.jog(10.0, "North")
>>>
!!COM(OLE)の利用法を知る
使いたいCOMオブジェクトをどのように使うかを知りたい時
(1)Excelを立ち上げる(以下はExcel2000での例)
(2)メニューバーの「ツール」→「マクロ」→「VisualBasicEditor」(以下VBEditor)を起動
(3)VBEditorのメニューバーの「ツール」→「参照設定」で参照可能なライブラリの中から使いたいライブラリを選んでチェックし、「OK」
(4)VBEditorのメニューバーの「表示」→「オブジェクトブラウザ」でオブジェクトブラウザのwindowを表示させる
(5)使いたいライブラリを選ぶと、クラスの一覧が表示されるので、調べたいクラスをマウスで指定するとメソッドやプロパティが右に表示される。
(6)調べたいメソッドやプロパティをマウスで指定すると、最下部に簡単な説明が表示される。
----
[[技術的な覚書き]]へ戻る
[[OTO-Ohshima Tamashima Observatory-]]トップへ戻る
{{counter}}
ミードのLX-200R望遠鏡の制御はもっぱらTheSky6で
要は、TheSky6はWindowsのCOM(OLE)
なお、WIN32OLEライブラリそのものの使い方については、次のURLや
::http://www.morijp.com/masarl/homepage3.nifty.com/masarl/article/ruby-win32ole.html
::http://jp.rubyist.net/magazine/?0003-Win32OLE
::書籍 [[「Rubyist Magazine出張版 Ruby on Windows」|http://www.amazon.co.jp/Rubyist-Magazine%E5%87%BA%E5%BC%B5%E7%89%88-Ruby-Windows-cuzic/dp/4839926689]]
以下のrubyコードは、望遠鏡をジョグで10分角だけ南または北に移動させる操作を行うプログラムである。 TheSky6の望遠鏡シミュレータで動作を確認した。
<<<
#see http://www.morijp.com/masarl/homepage3.nifty.com/masarl/article/ruby-win32ole/excel-1.html
# tested on 20090119 with TheSkyTele6 and the Simulator by O.Ohshima
require 'win32ole'
class WIN32OLE
@const_defined = Hash.new
def WIN32OLE.new_with_const(prog_id, const_name_space)
result = WIN32OLE.new(prog_id)
unless @const_defined[const_name_space] then
WIN32OLE.const_load(result, const_name_space)
@const_defined[const_name_space] = true
end
return result
end
end
module TheSkyTele
def TheSkyTele.new()
theskytele = WIN32OLE.new_with_const('TheSky6.RASCOMTele', TheSkyTele)
# prog_idの前半部"TheSky6."は、オブジェクトブラウザー上では"TheSky6Library"と表示
# されているもの。後半の".RASCOMTele"は、オブジェクトブラウザーのクラス上では
# "TheSkyRASCOMTele"と表示されているものに相当する
return theskytele
end
def TheSkyTele.runDuring(&block)
begin
theskytele = new()
block.call(theskytele)
ensure
theskytele.quit
end
end
end
theskytele = TheSkyTele.new()
#theskytele.jog(10.0, "South")
theskytele.jog(10.0, "North")
>>>
!!COM(OLE)の利用法を知る
使いたいCOMオブジェクトをどのように使うかを知りたい時
(1)Excelを立ち上げる(以下はExcel2000での例)
(2)メニューバーの「ツール」→「マクロ」→「VisualBasicEditor」(以下VBEditor)を起動
(3)VBEditorのメニューバーの「ツール」→「参照設定」で参照可能なライブラリの中から使いたいライブラリを選んでチェックし、「OK」
(4)VBEditorのメニューバーの「表示」→「オブジェクトブラウザ」でオブジェクトブラウザのwindowを表示させる
(5)使いたいライブラリを選ぶと、クラスの一覧が表示されるので、調べたいクラスをマウスで指定するとメソッドやプロパティが右に表示される。
(6)調べたいメソッドやプロパティをマウスで指定すると、最下部に簡単な説明が表示される。
----
[[技術的な覚書き]]へ戻る
[[OTO-Ohshima Tamashima Observatory-]]トップへ戻る
{{counter}}