|
[ruby-list:42159] Re: RS232Cによるパソコン間の通信の不具合(質問): msg#00190lang.ruby.japanese
なかむらさんからご教示いただいたsysread(1)によって、PC間の通信がうまくい き、同時に、電子コンパスからデータが無事読めることを確認しました。ところが、 電子コンパスと繋ぐと一部に不具合があったのですが、さらに悪いことに反応がおか しくなりました。 話が複雑になり、恐縮ですが、電子コンパスとPCとの関係で説明します。 電子コンパスには、PCから命令のパケットを送り、電子コンパスからバイナリー コードのパケットが返ることになっています。 やや詳しくいえば、0D,0A,7Eの3つのStart-of−Packet(sop)を送り、命令コー ド、データバイト数、データ、チェックサムのパケットを送ります。 これに対して、電子コンパスから、sopのエコーに続き、命令コード、データバイト 数、データ(9種の測定値、バイナリー)、チェックサムの情報をパケットで返しま す。 チェックサムはパケットデータの合計値を256で剰余で与えられ、これを求めれ ば、正しいデータが送られることを確認できました。 1 問題は、0Dのバイトが脱落したのです。何故、脱落するのか不明です。ただし、 受信時に無視すれば済むので、計測には影響はない思いました。 問題は残りますが、計測できる見込みがでてきました。(しかし、その喜びもつ かの間でした) 2 ところが、同じように、再度、PCを実行すると、電子コンパスからのパケット を表示開始が極めて遅く、表示と表示との間もあきます。 さらに、内容がでたらめな表示、すなわち、sopや命令コード、データバイト 数、データ(測定値)、チェックサムの内容とは思われません。 もちろん、添付のソフトをすぐに実行すれば、正常に計測し、その反応は迅速で すので、ハード面のトラブルではないことは確かです。 ソフトに問題があることが確実で、すなわち、動作が安定しないということで す。 4 永井さんのご指摘のように、スクリプト上できちんと通信設定するためには、 system "MODE COM1 BAUD=9600 PARITY=N DATA=8 STOP=1"を入れましたが、これは不 十分でしょうか。 5 また、「面倒でも [ruby-list:42127] で紹介されていた ruby-serialport など を使う」ことを検討したいと思いました。しかし、えださんによれば、「僕もおなじ ような状況になって困ったことがあります。とある機械との接続ははruby-serialで 大丈夫なのに、別の機械だとうまく動かない、と。」 この問題が依然として残る可 能性があるのでしょうか。 6 以上の問題は、直接には、Rubyでは対応できないソフト上の問題を内在している のでしょうか。えださんや桜井さんがすでに経験されたように、他の拡張ライブラ リーを使うのが早道で、諦めるべきでしょうか。 最後に私はCやC++を経験していません。拡張ライブラリーを動かそうと、例題に 従い簡単な事例を試みました。makefileを作成した後に、makeによって、 file.soを作るつもりで、 C:\ruby-hy>makeとすると、画面には、 MAKE Version 5.2 Copyright (c) 1987, 2000 Borland と表示されますが、file.soは作成されません。 何故でしょうか。拡張ライブラリーが動かせないと、今後の展開でどうにもなりませ ん。どのテキストや解説を見ても、簡単にmakeでできると書いているだけです。 この作業ができるPC環境が記載されていません。例えば、c++を搭載していること が前提であるという説明はありません。 Rubyしか知らない者はどのような手順を踏めば、拡張ライブラリーを利用できるの か、ご教示いただければ幸いです。 多くの方に議論に参加していただき、さらにご教示いただき、誠に有り難うございま す。 矢幡 久
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | [ruby-list:42158] Re: mainオブジェクトのメソッドを関数形式で呼んだらselfは?, 中西 健 |
|---|---|
| Next by Date: | [ruby-list:42160] Re: RS232Cによるパソコン間の通信の不具合(質問), U.Nakamura |
| Previous by Thread: | [ruby-list:42149] Re: RS232Cによるパソコン間の通信の不具合(質問), KIMURA Koichi |
| Next by Thread: | [ruby-list:42160] Re: RS232Cによるパソコン間の通信の不具合(質問), U.Nakamura |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |