掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
MSCommでの出力を安定化について (ID:122968)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
私の文章がへたなせいでねろさんに誤解を招いてしまったようです。 申し訳ありませんです。えっと、まとめて返答させていただきます。 >×.SThreshold = ComGetStringLen >×.RThreshold = ComSendBuffZero '送信バッファ空でOnComm開始 >○.SThreshold = ComSendBuffZero >○.RThreshold = ComGetStringLen >です、これじゃだめなわけだ。 確かにそうでした。値を最後まで受信していませんでした。 ただ4バイト受信するところを、1バイトしか受信しないだけだったので、 後半の値が0になるだけで、プログラム自体には支障はなかったようです。 >>たとえば"ョp"という出力を得ます。これを"Hex"や"Asc"で数字に変えて計算しています。 >要するにバイナリーモードですね。 バイナリモードではなく、テキストモードでないとデータを受信できません。 テキストモードで受信したときが >>たとえば"ョp"という出力 になります。バイナリで受信すると"??"しか返ってきません。 >Buffer = MSComm1.Input '<-ブレークポイントを設定 >Arr = Buffer 例で書いてもらったプログラムではMSComm1.Inputをバイト関数で受け取って いますが、仕様書によると送られてくるのは4バイト分の16進数で送られて くるそうです。ホントこの仕様書わかりずらくて秋月に文句を言いたいくら いなのですが、"~"は16進数が文字化けしているだけのようで、 私は"~"を受信して"Hex()"で"11, 7E, 13, 11"というように変換しています。 ですので送られてくる"~"はバイトではないので"エラー13、型が一致 しません"と出てしまいます。実際試してみてもこのエラーが出ました。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.