![見出し画像](https://assets.st-note.com/production/uploads/images/100221547/rectangle_large_type_2_219ef1e55c8f0c7f49a7ef8d28b7a23a.png?width=1200)
XP VB6で制御
7+VB6制御ブログからフォーク
そういうノートをかいたけど、そっち路線うまくいかないので、フォークしたよ。
いろいろあって書き換えることに
カメラ第2号さんがどうも調子悪いので第1号さんを引っ張り出してきて、そいつと通信することを狙うことに。ただ、急ぎで他にToDoあるので、通信できるはいつの日のことか。
いまだにVB6で制御するマシンがある
actors:ユーザー(おれ)
モーター機 (usb、15年選手)
カメラ一号さん (gpib、25年選手)
PC (OS = xp、拾ってきた)
soft kit (installer DVD、15年選手)
自作コード (vb6)
sequenceDiagram
user->>;motor: initialize yrself
user-->>;camera: open shutter!
user-)sdk: install everything into xp-pc!
数年前にこの問題(soft kit)は金で解決したと思い込んでいただけだった。冷静にアレをみてみると、対応OSは、Windows7まで. 古いsdk(15年選手)は、XPだけ対応で、exampleはVB6でかかれている。新しいほう(3年目ルーキー)は、7まで対応。10には対応してない。exampleは、ドットネットでかかれている。
XPマシンでなんとかするか。
XPマシンは、すぐみつかった。平成31年の夏に使った実績がある。むかしはすんなり立ち上がったはずのプログラム(vbp)が起動せず、変なエラーメッセージがでてくる。XPマシンは(マザボとHDDが)最近こわれた。バックアップソフトで救済して、代わりのXPマシンを準備したけど、おそらくバックアップが完全ではなく、必要なsoftwaresがインストールされてないのだ。しかも光学ドライブ(ODD)が壊れてるのかトレイがひらかない。installer discsの中身をフラッシュドライブにコピーすればよい。さすればインストールできるはず。
VB6のコンポネントが見つからない系のエラー。追加画面. それゆえ、どっかから、導入しなおせばいいような気がする。かなり光明が見えてきたか。(追記→これ解決)
モーターマシンと通信するところまで
とりあえずモーターと通信するところまで試みてみよう。SDKにexampleがあったはず。それでできるはずだ。というかむかしむかしXPしかなかったころはそれで制御していただから・・・
通信しました!
モーターとは通信しました。やっぱりバックアップが完全ではなかったのが原因。強制的に実行ファイルを消去したあとで再インストールしたらうまくいった。XPをクリーンインストールしたい!!
ソフトはちゃんと光学ディスクからインストールすべき?
ソフトのインストールがうまくいってなさそうだ。きのう、インストールして今日中身を見てみたら、欠落しているダイナミックライブラリーがある。フラッシュドライブへのコピーがちゃんといかないのか。あたらしいほうのソフトを先にインストールしてしまったのが間違いのもとか?こういう順序を間違うと・・・どつぼにはまるってのがソフトの場合あるんだよな。(追記→ふしぎなことになっていた。後述)
光学ドライブを見つけてつけかえました
光学ドライブからインストールしたほうがいいよねってことで、みつけてつけかえた。フラッシュドライブではなくディスクからインストールした。ハードディスクの中にいったんインストーラーが格納されるシステムらしく、そちらもインストールしたら、でたでた。見覚えのあるexampleコードが出てきたわ。
いろいろなアクティブXが抜け落ちてる。
これはXPにVS2005をインストールしたからだとおもう。mscomctl.ocxとかが抜けている。横にあるマシンから、コピペしてきて、registryに登録して・・ってのを繰り返した。そしたらエラーメッセージが減ってきて、見覚えのある設定画面がでるようになった。本当はマシンのマニュアルをちゃんと熟読しなおして、正確なパラメータ入力できたら・・・とおりそう。
regsvr32 C:\Windows\System32\MSCOMCTL.OCX
C:\Windows\regtlib.exe C:\Windows\system32\msdatsrc.tlb
regsvr32 C:\Windows\System32\MSCOMCT2.OCX
regsvr32 C:\Windows\System32\MScomfmt.dll
カメラと通信するところまで
カメラを制御するところまでこころみよう。シャッターのカシャカシャ音が出るのでたのしいはずだ。
あやしい点は二つ
バージョンの不一致問題
レジストリも書き直した。
間違ってインストールした新しいほうのソフトがアンインストールしてもいつまでも居座り、しかも古いソフトが上書きしにいかないという謎挙動で苦労させられた。横にある7のマシンからダイナミックリンクライブラリおよびレジストリをもってきて、なんとかした。これなら最初から7での制御をあきらめなければよかった。なにをやってるんだろ?
カメラ第1号さんも試みる
うえでかいたような経緯で、第1号さんも引っ張り出してきた。こちらも、カシャカシャは出来るけど、信号はとってこれないのか?一号さんは、SDKで制御できない。GPIBポートがあるタイプなので、もしかしたら直にコマンドを送るしかないのか
manual見つけ出すのに苦労
見つけ出すのが大変だった。みつかった。なんか見覚えのあるコマンドが・・
過去に書いたコード
こちらも見つけるのに大変くろうした。でもみつかった。こちらについてなんとVB5でかいてあった。
マニュア主要ページ印刷
印刷しなきゃ・・・