- 481 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/14(月) 23:46:01 ]
- >>480
まあシリアルなんてLabviewでも使えばいいのかもしれないけどね octaveの場合 cygwin版は f=fopen('/dev/ttyS0','r+'); とやればCOM1が開いて fprintf(f,'ATI\n'); とやれば書き込める場合があるんだけど、読み出せない id=fscanf(f,'%s') とするとハングする。のでfopenした直後に fcntl(f,F_SETFL,O_NONBLOCK) とやる必要がある (ノートなんかの内蔵モデムの多くはソフトモデムで、まともにATコードが通らない場合がある) MSVC版とMingw版はこの fcntl(f,F_SETFL,O_NONBLOCK) というのが通らない。 fcntl無しでf=fopen('COM1','r+')してみると、エラーも無くファイルハンドル=3が返ってくる COM4とか存在しないポートを開こうとするとエラーが返るのでCOM1をちゃんと開いているように見える。 これでシリアル通信が出来るかというと、どうもそうでは無いようだった。 fscanfしてもどっかに余ってるバッファが返ってくる。 Cで書いてdllでも作ればいいんだろうけど
|

|