C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[15]: データを数値と認識する方法。 [1]


(過去ログ 51 を表示中)

[トピック内 28 記事 (21 - 28 表示)]  << 0 | 1 >>

■28471 / inTopicNo.21)  Re[10]: データを数値と認識する方法。
  
□投稿者/ .SHO (188回)-(2008/11/26(Wed) 16:45:31)
ちなみに byte に入れようとしている数値の取り得る範囲ってわかりますか?

2バイトで16ビットの数値ってことはないですよね?
引用返信 編集キー/
■28472 / inTopicNo.22)  Re[11]: データを数値と認識する方法。
□投稿者/ .SHO (189回)-(2008/11/26(Wed) 16:53:02)
あと、具体的にどうやって機器からデータを受信してるのですか?

機器のメーカから受信データを string に入れて返すライブラリ(ドライバ?)
か何かがサポートされてるのかな?
引用返信 編集キー/
■28473 / inTopicNo.23)  Re[12]: データを数値と認識する方法。
□投稿者/ Q3 (1回)-(2008/11/26(Wed) 18:16:20)
私が思うに、たけしさんが思っているのは

 "<文字列>" + "0AAB"

見たいなフォーマットを期待してるんですかね?
それだと1バイトを表現するのに2バイトの文字列が必要なので
Parseで値が取得できそうです。
でも、実際は

"<文字列>" + 0x0A 0xAB

のようなバイナリデータを直接受信してるんですかね?
だったらbyte配列とかで受信したデータ入れとけば良いだけなような?


単純に、ボーレートとかの設定が間違っていて文字化けしてるだけだったりして
引用返信 編集キー/
■28474 / inTopicNo.24)  Re[8]: データを数値と認識する方法。
□投稿者/ Jitta on the way (231回)-(2008/11/26(Wed) 18:21:40)
No28452 (たけし さん) に返信
> ■No28437 (渋木宏明(ひどり) さん) に返信
> >>「??\9\\7\t」で、ちゃんとバイナリデータとして受信できてるのでは?
> >>よくわかんないけど…
>>
>>「ブロックデータ」なんて書いてあるので、「自分が思った通りに、切れ目よく受信できる」と思ってるんでしょう。
>>
>>まずは、書籍などで「PCでのシリアル通信の基礎知識」をきちんと身につけること、そしてプログラム的には
>>
>>>バイト型で受信しようとするとエラーが起きてしまいます。
>>
>>を解決するところから手をつけるべきでしょう。
>>
>
> この機器ではブロックデータというもので返ってきてしまいます。
>
> ブロックデータの説明は、前述したとおりです。


あちゃー(*_*)
えっと、プログラミング歴は、どれくらいですか?
渋木さんのこの発言は、「受信できたからといって、送られてきた全てのデータが受け取れているというわけではない。」です。私は、そこは大丈夫だと思っていたのですが、この返信を見て不安になってきた。



> 機器から返ってくる
> ↓
> ブロックデータ=<文字列><データバイトの並び>
>
>
> となっていまして、
普通は、これに、各々のバイト数を付加します。

データ:
文字列(ヌル詰め20バイト)
数値(1バイト×8個)






> 「?\?\\a7\t」というのが、ブロックデータより文字列を切り捨て、データのみを取ったものです。
>
> それを「数値データ」として読み取りたいため、バイト型で格納しようと考えました。
最初の、バイト型で受け取って Parse したコードを教えて下さい。それを添削するのが早いと思います。



> >バイト型で受信しようとするとエラーが起きてしまいます。
> >を解決するところから手をつけるべきでしょう。
>
>
> 受信する段階では文字列がくっついているので、無理かと。。

文字列もバイト型のデータです。なので、受信は出来口口口
引用返信 編集キー/
■28489 / inTopicNo.25)  Re[13]: データを数値と認識する方法。
□投稿者/ まんごーぷりん (49回)-(2008/11/27(Thu) 00:24:49)
まんごーぷりん さんの Web サイト
回答者が推理力を発揮しながら、解決に向かおうとしているスレはここでしょうか?w

テーゲットとなる機器から帰ってくるコードは何なのか?
なんという値が返ってくるのが正しいのか?

質問者の方は、まずはこれを確認して明記した方が良いと思います。
引用返信 編集キー/
■28499 / inTopicNo.26)  Re[13]: データを数値と認識する方法。
□投稿者/ .SHO (190回)-(2008/11/27(Thu) 09:56:00)
No28473 (Q3 さん) に返信

> 単純に、ボーレートとかの設定が間違っていて文字化けしてるだけだったりして

質問者は<文字列>の部分には何も言及していないので
それはないと思います。
(また推理だけど…)
引用返信 編集キー/
■28547 / inTopicNo.27)  Re[14]: データを数値と認識する方法。
□投稿者/ Q3 (2回)-(2008/11/27(Thu) 17:01:38)
通信はRS232Cでやってると仮定した場合ですが、

通常

 <STX>文字列0A<ETX>

見たいな感じで、制御コードで通信の始まりと終わりを判別することが多いです。
もしくはトリガーとなるもの(たとえば<文字列>といっているもの)から
固定長のデータを受信したら1データの塊とする場合などもあります。


通信プロトコルを理解し、きちんと受信処理が出来ていない場合、
受信完了していないのに。受信バッファ内のゴミデータを一生懸命解析する羽目になったりします。
(私が良く調べもしないで、思い込みでやっててハマる事が多いので(谷;)・・・)




.SHOさん
>> 単純に、ボーレートとかの設定が間違っていて文字化けしてるだけだったりして
>
>質問者は<文字列>の部分には何も言及していないので
>それはないと思います。
>(また推理だけど…)

単純に<文字列>分の文字数で受信データの先頭を切り捨ててたらだめかなぁ・・・・
とか「推理」してみた結果の回答でした^^;
引用返信 編集キー/
■28548 / inTopicNo.28)  Re[15]: データを数値と認識する方法。
□投稿者/ .SHO (207回)-(2008/11/27(Thu) 17:09:24)
No28547 (Q3 さん) に返信

> 単純に<文字列>分の文字数で受信データの先頭を切り捨ててたらだめかなぁ・・・・
> とか「推理」してみた結果の回答でした^^;

たぶんそれでいいと私も思います。
とにかく質問者の方が出てこないと、もうどうにも回答できないですね^^;
引用返信 編集キー/

<前の20件
トピック内ページ移動 / << 0 | 1 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -