JustAnswer のしくみ:

  • 専門家に質問
    知識豊富な専門家があらゆる質問にお答えするために常に待機しています。
  • 専門家が丁寧に対応
    E メールやサイト内オンラインメッセージなど、さまざまな手段で回答を通知。
    必要に応じてフォローアップの質問をすることもできます。
  • 満足度 100% 保証
    専門家からの回答を確認し評価をすることで、支払うかどうかを決めます。

rushqkに今すぐ質問する

rushqk
rushqk, プログラマー
カテゴリ: プログラミング
満足したユーザー: 766
経験:  AV機器開発、ソフトウェア設計
60440014
ここに プログラミング に関する質問を入力してください。
rushqkがオンラインで質問受付中

テラタームマクロを使って見たいと思っています。 今できることは、logとりだけなので、できるというレベル以下です。

解決済みの質問:

テラタームマクロを使って見たいと思っています。
今できることは、logとりだけなので、できるというレベル以下です。

私は高卒で、工業高校なども出ていないため、プログラミングなどの知識はゼロです。

で、具体的に何をやりたいかというと、
テラタームの画面に表示される機器の状態(log)の文字列を判断して、DOS画面からコマンドを実行させる。または、他のアプリの実行ボタンを押す。
が出来れば良いです。
UWSCはすこーし、基本的な使い方くらいなら操作できます。
ですので、
logの任意の文字列が表示されたら、、DOS画面に文字入力して実行。
logの任意の文字列が表示されたら、、UWSCの操作から別のアプリの「スタート」ボタンを押す。
logに任意の文字列が表示されたら、↑の操作を中断して、テラタームに文字列を打ち込み実行。
これらの操作のタイミングを1〜10秒の間でランダムに実行したい。
logは、同じ内容を数分間隔で繰り返し表示するものになっています。logが繰り返し表示され、その度にDOSやアプリの操作を行い、それが1〜10秒のランダムな間隔で実行される。
ということをしたいと思います。

職場の先輩は、不親切なのかめんどくさいのか教えてくれません。自分で勉強しろといいますが、どこから手を付けて良いのか、わかりません。
やろうとしていることはそれほど難しくないように思えるんですが、いろんなサイトで調べてみてもうまくやれる方法が見つかりません。
どなたか、やり方を教えていただけないでしようか。それか、何をどう勉強すれば良いのか教えていただけますか。
一応、テラタームのマクロ集のサイトは見て、色々とやってみたつもりですが、自分がやりたいと思うことにピタリと来る方法が書かれていませんでした。

すみませんがよろしく回答お願いします。
投稿: 4 年 前.
カテゴリ: プログラミング
専門家:  rushqk 返答済み 4 年 前.

質問ありがとうございます。

 

プログラムの手順としては、簡単でいいので処理順序を書いていけばよいです。

今回の場合は、繰り返し処理という事で大きなループがありますね。

1.Start

2.ループ開始

3.文字列①待ち→文字列検出で3-1へ

4.文字列②待ち→文字列検出で4-1へ

5.文字列③待ち→文字列検出で5-1へ

6.2へ戻る

といった手順になると思います。

 

ところで、機器の出力はシリアル接続でしょうか?それともネットワーク接続でしょうか。

DOS画面からというのが、Teratermのターミナルとの関連がちょっとわからないので

もう少し構成を教えていただくと回答しやすいです。

特にDOS画面に文字入力して実行というのが、どの環境でどのようなコマンドを実行するのか不明です。

 

ざっくりとした書き方ですが、処理に対応するマクロコマンドを書いていくと、、

文字列待ちはwaitln

アプリ起動はexec

文字列入力はinputbox

UWSCの起動はexecでよいでしょう。問題はUWSCの中断です。

ALT+F2で停止できますが、それをTeraTermから行うのがちょっと面倒かもしれませんが

UWSCを使ってUWSCプロセスを止めてしまうのが簡単かもしれません。

Teratermターミナル内で文字列送信はsendln

ランダムな間隔で実行するのであれば、文字列取得後にランダムな時間Waitを入れれば

良いです。具体的には乱数生成はrandomで1~10の範囲生成して、それをtimeoutに

設定して、waiteventで待ってから処理実行する事になります。

これらをwhileループでくくってやればとりあえず完成という事になりますがいかがでしょうか。

rushqk, プログラマー
カテゴリ: プログラミング
満足したユーザー: 766
経験: AV機器開発、ソフトウェア設計
rushqkをはじめその他名のプログラミングカテゴリの専門家が質問受付中
質問者: 返答済み 4 年 前.


回答ありがとうございます。


 


機器の構成について詳しく書いてませんでした。ごめんなさい。


 


機器とPCはシリアルで接続されていて、かつLANでも接続できています。


機器の状態(log)が、シリアルで接続されたテラターム上に表示されます。


logは何もしなくても、機器が動作さえしていれば繰り返し同じ内容を吐き続けます。


 


この状態で、テラタームマクロにて、logの文字列を判断し、XXXが表示されたらDOS画面からpingコマンドを打つ。または、UWSCを起動し、別のアプリから機器に対して接続ボタンを押す。


途中で機器が正常動作しなくなり意図したlogをはかなくなったら、テラターム上に機器を操作する特殊なコマンド(機器の仕様です)を打ち、機器の詳細情報をlogとして表示する。


 


と言うことをしたいです。


すみませんが、追加で教えていただけることがあればよろしくお願いします。

専門家:  rushqk 返答済み 4 年 前.

pingの結果が必要であれば、execでバッチ起動し出力を一旦ログに残して、それを

Teratermのメッセージとして表示したり、GUIのPing送信できるようなソフトを操作

させるなどといったことが考えられます。

動作しているか確認であれば、バッチ起動してログ出力させて、ログを解析することで
メッセージを表示することも可能だと思います。

dosコマンドを実行するだけであれば、

exec 'cmd ping xxx.xxx.xxx.xxx > ping.log'

といった形で実行し、fileopen、filereadlnなどでログ解析し、不達の場合はメッセージ表示

といった方法でもいいかもしれません。

まずはざっくりとした感じでマクロを作成してみて、カットアンドトライで完成に近づけると

よいと思います。今回の場合だと3つの項目があるので、1つずつ確認しながら作成すると

よいでしょう

rushqk, プログラマー
カテゴリ: プログラミング
満足したユーザー: 766
経験: AV機器開発、ソフトウェア設計
rushqkをはじめその他名のプログラミングカテゴリの専門家が質問受付中
質問者: 返答済み 4 年 前.


回答ありがとうございます。今日まで休暇で、明日にならないと、いろいろ試せないので、明日、やってみて、また質問させていただくかもしれません。よろしくお願いします。

質問者: 返答済み 4 年 前.

質問の続きになります。


UWSCでスクリプト実行するには、どうすれば良いですか。


よろしくお願いします。

専門家:  rushqk 返答済み 4 年 前.

マクロコマンドのexecを使って、"uwsc.exe /k スクリプトファイル.uws"とすれば

マクロ内からuwscを起動&実行できます。

rushqk, プログラマー
カテゴリ: プログラミング
満足したユーザー: 766
経験: AV機器開発、ソフトウェア設計
rushqkをはじめその他名のプログラミングカテゴリの専門家が質問受付中
質問者: 返答済み 4 年 前.

ありがとうございます。今週はバタバタしてしまってまだ試せていないのですが、教えていただいたこととか、その他に試しながら動かしながら、しばらくやってみようと思います。


今回はこれで一端終了して、再度疑問があれば新規で質問を投稿します。


ありがとうございました。

ユーザーの声:

 
 
 
  • なかなか解決できないトラブルだったのですが、解決までとことん相談にのってくださいました。また、パソコンをうまく使いこなせていない私でも解りやすくアドバイスしてくださいました。 本当に助かりました! 大阪府 黒崎
< 前へ | 次へ >
  • なかなか解決できないトラブルだったのですが、解決までとことん相談にのってくださいました。また、パソコンをうまく使いこなせていない私でも解りやすくアドバイスしてくださいました。 本当に助かりました! 大阪府 黒崎
  • パソコンの操作は熟知している訳でもなく不慣れですが何回もの質問に丁寧に答えていただき問題解決しました、大変助かりました、感謝しています。 兵庫県明石市 後藤
  • 回答が早く、2日間対処には時間がかかりましたが、80%諦めていたものが解決したので、とにかく感謝の一言です。 ありがとうございました。 千葉県野田市 金澤
  • まずは親身になって回答をして頂ける専門家であったこと。説明が簡潔でわかりやすく、質問者が気持ちの整理をしやすい配慮が伺えた。 岐阜県 石川
  • 短時間で的確なアドバイスを受けることができ、かつ、回答に対する質問に対しても直ちに真摯な回答が得られました。 大阪府高槻市 川嶋
  • 専門知識のある経験豊富な方に出会う機会のない人でも、このサイトで実現出来ることは素晴らしいことだと思いました。 専門家が辛抱強く回答をしてくださる姿勢にも感謝いたしました。 茨城県日立市 池田
 
 
 

専門家の紹介:

 
 
 
  • rushqk

    rushqk

    プログラマー

    満足した利用者:

    9
    AV機器開発、ソフトウェア設計
  • http://ww2.justanswer.com/uploads/RU/rushqk/2011-9-24_21937_CIMG0197.64x64.jpg rushqk さんのアバター

    rushqk

    プログラマー

    満足した利用者:

    9
    AV機器開発、ソフトウェア設計
  • http://ww2.justanswer.com/uploads/TA/taokato/2011-5-30_02329_me.64x64.JPG taokato さんのアバター

    taokato

    プログラマー

    満足した利用者:

    1
    c言語を主に従事。 触った事のある言語: c, c#, VB.net, EXCEL VBA, perl, php, TeraTerm MACRO, H8アセンブラ 他
  • http://ww2.justanswer.com/uploads/OB/obody/2015-6-17_162039_photo.64x64.jpg Nobody_1963 さんのアバター

    Nobody_1963

    プログラマー

    満足した利用者:

    1
    Microsoft Access 専門でサポート致します。
  • http://ww2.justanswer.com/uploads/KW/kwskmkt/2011-7-4_13263_DSC04002.64x64.JPG DKK2002 さんのアバター

    DKK2002

    ITエンジニア

    満足した利用者:

    822
    NTTコミュニケーションズ .com Master★★
  • http://ww2.justanswer.com/uploads/OC/oct1290/2012-4-17_123618_akodesu.64x64.JPG oct1290 さんのアバター

    oct1290

    ITエンジニア

    満足した利用者:

    38
    日本製PCメーカー顧客、企業サポート官庁PCサポート海外3店舗のPC修理業
  • http://ww2.justanswer.com/uploads/HO/holodecks/2011-10-21_0147_20111021091343.64x64.jpg holodecks さんのアバター

    holodecks

    情報整理戦略コンサルタント

    満足した利用者:

    2
    化学科卒システム計画研究所 - シニアシステムエンジニア、ディー・リンク株式会社 取締役