htaからアプリを最小化して起動する いまさらMacOS9でAppleScript
4月 10

Flash + serproxy.exeを使って、シリアル制御するアプリケーションを作成してるのだが、大大大苦戦。

文章にまとめる元気がないので、箇条書き。

  • ArduinoのActionScript 2.0のクラスは、コンストラクタでconnectしてるので、インスタンスを生成したあとに、再度、connectしてしまうと、“failed to open comm port-connection refused”が発生して、接続できなくなる。これでほぼ1日つぶれた・・馬鹿すぎる自分。というか、コンストラクタでconnectすんなよぉ~!
  • ↑この原因にたどり着くまで、かなり遠回りした。Flash→serproxy→モデムと接続して、FlashからATコマンドを送信して、ちゃんと送ることができるかなど。ATモデムなら投入したコマンドのエコーバックがあるからね。
  • シリアルのデバッグというか、接続テストには、Acknowrichが便利。
  • ソケットのデバッグには、Socket Debuggerが便利。
  • ActionScript 2.0は、シリアル制御には向いていないといことがわかった。どういうことかというと、ActionScript 2.0のXMLSocketは、ソケット通信ができるが、送信データの最後に、強制的に”0×00″を付与してしまう。当然、制御先の機器にも送られるので、こちらは”3030″と送ってるつもりでも、相手には、”303000″というデータが送られ、コマンドを理解してくれない。
  • “0×00″(ヌルバイト)を付与しないようなオプションがないため、スクリプトレベルではどうにもできない。
  • ActionScript 3.0は、XMLSocketクラスとは別に、Socketクラスがあり、バイナリデータを送受信できる
  • さて、インターフェースその他スクリプトはAS2.0で作っているし、AS3.0はまだ慣れてない。しかし、AS2.0では通信できない(純粋なコマンドデータを送信できない)。解決策は、AS2.0で画面を含むメイン部分を作成。データ送信部分のみ、AS3.0で作成し、その二つのswfがLocalConnectionで通信し、その結果をserproxyに送信する・・という、プロクシ2段構えでやるしか・・・ないのか!!orz…
  • これはやっぱり早くAS3.0に移行せよ!というAdobeの意志なのだろうか。
  • もう泣きたい・・・

うまくいかないのは、ずーっと、serproxyのバグじゃないかなーと、疑っていたのだが、serproxy.exe自体は、まったく問題なかった。私は人を疑う卑しい心の持ち主です(卑屈モード)

Popularity: 11% [?]

written by ANN

add to hatena hatena.comment (0) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 0

Leave a Reply