したがって、これらの質問をこことここで読んだ後、自分の状況を説明せずにこの質問をどのように行いたいかについて、他に考えがありません。
注: 私はフリー/オープン ソフトウェアのバックグラウンドを持っているため、プロプライエタリ プラットフォーム全般についてはまったくの初心者です。
基本的に、私は、マクロを含むスクリプトを使用して、UI 側のプログラムとモーション コントローラー側のファームウェアとの間で通信する、社内独自のモーション コントロール プラットフォーム用のプログラムを使用しています。関連するすべてのソフトウェアの文書化と開発は姉妹会社によって処理されますが、文書化が不足している/完全でない場合は、私たちが行っています彼らからサポートを受けていますが、彼らは細く引き伸ばされており、独自の製品を持っており、2,700マイル離れており、私たちのために社内でオンコールすることはできません.私はソースを持っていません/メインアプリケーションもファームウェアも、そして本当にそれを殺すために、私たちの最後の、唯一の本物のプログラマーが残りました。私たちは、このスクリプトと、ソフトウェアでうまく機能するこのスクリプトに依存する新製品の握りに一人です。スクリプトには、深刻で定期的なバグ チェック ソリューションが必要です。このモーションコントローラーシステムを使用する構成済みのマシンごとに。
そこで、このスクリプトのデバッグを開始します。それがここで起こっていることです。
モックアップの bash 実装を作成しようとしましたが、再帰の程度、.ini ファイルから取り込まれた配列、システム定義のコマンド セット、およびファームウェアでのスクリプトの解析。この bash デバッグの実装は困難であり、重要なものをハッキングせずに完全に実行できるかどうかはわかりません。
ANTLR などの他のオプションも検討しましたが、これも少し頭を悩ませていますが、うまくいく可能性があります。
現在、コントローラーはある種の静的 IPv4 クロスオーバー イーサネット セットアップ (Telnet?) を介して通信しますが、「sout」コマンドから解析されるフォーマットされた文字列を出力する RS-232 シリアルを備えています。事前定義されたシステム コマンドと変数を使用して書式設定された文字列から取得できる限り多くを出力するようにスクリプトを変更することが私の意図でしたが、全体像が得られないのではないかと心配しています。
スクリプト自体は、25 サブルーチンの深さでネストできるグローバル、システム、およびローカル変数と関数を定義します (ハードウェアの制限があるモーション コントローラー側にあるため)。本当の落とし穴は、UI やその他の関数から呼び出されるときに、スクリプトの再帰的な側がこれらの関数に出入りする場所にあるようです。飛び出すことは何もありませんが、詳細なドキュメントがなければ、私は多くのことしか見ることができず、姉妹会社に質問をする別のエンジニアと一緒にこれらすべてを学んでいます.
自分の努力をどのように進めるべきかについて、誰かアドバイスをもらえますか? 質問するのはおそらくたくさんあると思いますが、私はちょっとわだち掘れで立ち往生しており、自分のスキルとコーヒーが許すよりも多くの認知リソースが必要です.
お時間をいただきありがとうございます。