Visual Studio 2005 イーサネットによるデータ取得プログラム
-
iwsw
Visual Studio 2005 イーサネットによるデータ取得プログラム
Visual Studio 2005 イーサネットによるデータ取得プログラム
Visual Studio 2005 C++ 用いて,計測センサからイーサネットを通してデータを取得して表示させるプログラムを教えてください.
初心者なので,できれば詳しく教えて欲しいです.
Visual Studio 2005 C++ 用いて,計測センサからイーサネットを通してデータを取得して表示させるプログラムを教えてください.
初心者なので,できれば詳しく教えて欲しいです.
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
通信プロトコルとか何を使えば良いでしょうか?
通信すべき内容もよくわかりませんので「計測センサ」の資料がサイトを教えてください。
それとC++でMFCとかも使って良いのでしょうか?
それと知恵袋やokwaveでも同じ質問をされていますが、相互リンクがこの掲示板のルールですので相互リンクをお願いします。
http://detail.chiebukuro.yahoo.co.jp/qa ... 1162958881
http://okwave.jp/qa/q6759361.html
詳しくは、フォーラムルールをお読みください。質問テンプレートもあります。
http://dixq.net/board/board.html
通信すべき内容もよくわかりませんので「計測センサ」の資料がサイトを教えてください。
それとC++でMFCとかも使って良いのでしょうか?
それと知恵袋やokwaveでも同じ質問をされていますが、相互リンクがこの掲示板のルールですので相互リンクをお願いします。
http://detail.chiebukuro.yahoo.co.jp/qa ... 1162958881
http://okwave.jp/qa/q6759361.html
詳しくは、フォーラムルールをお読みください。質問テンプレートもあります。
http://dixq.net/board/board.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
ご連絡,ありがとうございます.
相互リンクのやり方をインターネットや周りの人に聞いて調べてみたのですが
結局のところ理解できなくまだ行っておりません.
分かりやすいサイトがあれば教えて頂きたいです.
本題に戻ります.
使用環境は,
Windows XP , Visual Studio 2005 C++ です.
1.通信プロトコルをきちんと理解してないのですが,Ethernet data protocol でLANケーブルを用いてPCに接続します.
2.計測センサは,「ibeo LUX」 でドイツの会社です.
ibeo LUX http://www.ibeo-as.com/index.php?option ... 95&lang=en
日本でこの商品を取り扱っている会社は,SICK JAPAN社とABOTT MF JAPAN社です.
SICK社 http://www.sick.jp/product/automatic/la ... or/LD-MRS/ (LD-MRSとibeo LUXの機構は同じで用途が違うだけです.)
ABOTT MF JAPAN社 http://www.abott-mf.com/new/new.html
3.Windows XPなのでC++でMFCで使用して大丈夫だと思います.
マニュアルは,SICK社 http://www.sick.jp/product/automatic/la ... or/LD-MRS/ の方に少しあります.
ちなみになんですが
SICK社とABOTT MF JAPAN社の両者にメールにて連絡しましだが
良い返答はなかったです.
相互リンクのやり方をインターネットや周りの人に聞いて調べてみたのですが
結局のところ理解できなくまだ行っておりません.
分かりやすいサイトがあれば教えて頂きたいです.
本題に戻ります.
使用環境は,
Windows XP , Visual Studio 2005 C++ です.
1.通信プロトコルをきちんと理解してないのですが,Ethernet data protocol でLANケーブルを用いてPCに接続します.
2.計測センサは,「ibeo LUX」 でドイツの会社です.
ibeo LUX http://www.ibeo-as.com/index.php?option ... 95&lang=en
日本でこの商品を取り扱っている会社は,SICK JAPAN社とABOTT MF JAPAN社です.
SICK社 http://www.sick.jp/product/automatic/la ... or/LD-MRS/ (LD-MRSとibeo LUXの機構は同じで用途が違うだけです.)
ABOTT MF JAPAN社 http://www.abott-mf.com/new/new.html
3.Windows XPなのでC++でMFCで使用して大丈夫だと思います.
マニュアルは,SICK社 http://www.sick.jp/product/automatic/la ... or/LD-MRS/ の方に少しあります.
ちなみになんですが
SICK社とABOTT MF JAPAN社の両者にメールにて連絡しましだが
良い返答はなかったです.
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
相互リンクは、フォーラムルールにあります通り他の掲示板でも同じ質問をしていることを回答者に示すことです。
知恵袋やokwaveで補足を使って、複数の掲示板で質問をしている事と、その掲示板の質問URLを貼りつけてください。
知恵袋なら、この掲示板とokwaveのURLを貼る必要があります。okwaveなら知恵袋とこの掲示板のURLを貼る必要があります。
それと各掲示板の回答には各々ちゃんと返答をするようにお願いします。
とりあえず、相互リンクをお願いします。
資料はこれから読ませていただきます。
>Windows XPなのでC++でMFCで使用して大丈夫だと思います.
これは、有料版のVisual Studio 2005 standard以上を利用中でC++も理解できてGUIアプリを作ると言う理解でよろしいでしょうか?
【追記】
ちなみにこれって、大学の卒研か何かでしょうか?
知恵袋やokwaveで補足を使って、複数の掲示板で質問をしている事と、その掲示板の質問URLを貼りつけてください。
知恵袋なら、この掲示板とokwaveのURLを貼る必要があります。okwaveなら知恵袋とこの掲示板のURLを貼る必要があります。
それと各掲示板の回答には各々ちゃんと返答をするようにお願いします。
とりあえず、相互リンクをお願いします。
資料はこれから読ませていただきます。
>Windows XPなのでC++でMFCで使用して大丈夫だと思います.
これは、有料版のVisual Studio 2005 standard以上を利用中でC++も理解できてGUIアプリを作ると言う理解でよろしいでしょうか?
【追記】
ちなみにこれって、大学の卒研か何かでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
英語マニュアルを読んでみましたが、「LD-MRS View visualisation tool」で使い方しか書いてありませんでした。
これだとリバース・エンジニアリングしないと開発は無理ではないでしょうか?
開発環境やライブラリも提供されてないようですし、サンプルコードも見当たりません。
[訂正]かろうじてやり取りされるデータの形式logに記録されるデータ形式だけは資料に書かれてますが。
これだとリバース・エンジニアリングしないと開発は無理ではないでしょうか?
開発環境やライブラリも提供されてないようですし、サンプルコードも見当たりません。
[訂正]かろうじてやり取りされるデータの形式logに記録されるデータ形式だけは資料に書かれてますが。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
相互リンクの件ですが
複数のサイトを書き込むのが大変なので,
yahooの知恵袋はまだ書き込みがなかったので削除して,okwaveの方はこちらのサイトで解答して頂けるようにお願いしました.
使用しているのは有料版のVisual Studio 2005 professional で,C++の理解度は大学の講義程度です.
GUIってのは,恥ずかしながらよく分かりません.
マニュアルのことなんですが
商品の付属としてCD-ROMに他のマニュアルがあるのですが
添付とか送ることはできないのでしょうか??
【追記】
この問題は,大学の研究です.
1ヶ月半,この問題に対して試行錯誤トライしてみましたが成果は得られませんでした.
そのため,C言語のベテランの人に助けともらいたいと思い,書き込みました.
複数のサイトを書き込むのが大変なので,
yahooの知恵袋はまだ書き込みがなかったので削除して,okwaveの方はこちらのサイトで解答して頂けるようにお願いしました.
使用しているのは有料版のVisual Studio 2005 professional で,C++の理解度は大学の講義程度です.
GUIってのは,恥ずかしながらよく分かりません.
マニュアルのことなんですが
商品の付属としてCD-ROMに他のマニュアルがあるのですが
添付とか送ることはできないのでしょうか??
【追記】
この問題は,大学の研究です.
1ヶ月半,この問題に対して試行錯誤トライしてみましたが成果は得られませんでした.
そのため,C言語のベテランの人に助けともらいたいと思い,書き込みました.
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
送付されるとたぶんライセンス上の問題が有りますので、ちょっと待ってください。
こちらにあるマニュアルと内容に差がありますか?
http://www.sick.jp/product/automatic/la ... or/LD-MRS/
違うものがあれば、マニュアル名と概要を教えてください。
それとCD-ROMにC言語/C++の開発キットとかライブラリとかサンプルコードが付いているかも確認して下さい。
こちらにあるマニュアルと内容に差がありますか?
http://www.sick.jp/product/automatic/la ... or/LD-MRS/
違うものがあれば、マニュアル名と概要を教えてください。
それとCD-ROMにC言語/C++の開発キットとかライブラリとかサンプルコードが付いているかも確認して下さい。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
マニュアルのことなんですが
全く違うマニュアルです.
マニュアルが10個くらいありまして関連するものを書き込みます.
1
マニュアル名 Ethernet data protocol LD-MRS and LD-MRS HD
概要 Ethernet data protocol
2
マニュアル名 ibeo LUX Family Ethernet Manual v1.23
概要 Ethernet data protocol ibeo LUX family and ibeo LUX systems
主に書かれていることは,
Ethernet configuration, Data encoding, Data header, Commands and command repliesなどです.
付属のCD-ROMにサンプルプログラムはありますが
プログラムが複雑すぎて理解するには,かなり時間を要すると思うので簡単な方法があればと思っております.
サンプルプログラムを試しに実行しているのですが
分からないエラーが表示されていて,購入した会社に連絡を取っているところです.
全く違うマニュアルです.
マニュアルが10個くらいありまして関連するものを書き込みます.
1
マニュアル名 Ethernet data protocol LD-MRS and LD-MRS HD
概要 Ethernet data protocol
2
マニュアル名 ibeo LUX Family Ethernet Manual v1.23
概要 Ethernet data protocol ibeo LUX family and ibeo LUX systems
主に書かれていることは,
Ethernet configuration, Data encoding, Data header, Commands and command repliesなどです.
付属のCD-ROMにサンプルプログラムはありますが
プログラムが複雑すぎて理解するには,かなり時間を要すると思うので簡単な方法があればと思っております.
サンプルプログラムを試しに実行しているのですが
分からないエラーが表示されていて,購入した会社に連絡を取っているところです.
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
とりあえず、1と2のマニュアルを見せていただかないと分かりませんね。
公開するのは問題があると思うのでメールで送って頂けますか?
出来ればサンプルプログラムも圧縮ファイル化して送付して頂けると助かります。
メールアドレスは、
です(すいません。アドレスを手で打ち込んでください)。
公開するのは問題があると思うのでメールで送って頂けますか?
出来ればサンプルプログラムも圧縮ファイル化して送付して頂けると助かります。
メールアドレスは、
です(すいません。アドレスを手で打ち込んでください)。by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
昨夜,メールが重すぎて遅れなかったので
先にマニュアルのみお送りします.
そのあと,サンプルプログラムを極力小さくしてからお送りします.
先にマニュアルのみお送りします.
そのあと,サンプルプログラムを極力小さくしてからお送りします.
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
マニュアル到着しました。iwsw さんが書きました:昨夜,メールが重すぎて遅れなかったので
先にマニュアルのみお送りします.
そのあと,サンプルプログラムを極力小さくしてからお送りします.
見ましたが肝心のことが書いてないですね。
やはり、サンプル見ないとダメみたいです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
サンプルプログラムを圧縮しても42MBで
まだ送れそうにないのですが,何か他の方法はないでしょうか?
それとも
分割でお送りした方がいいでしょうか?
まだ送れそうにないのですが,何か他の方法はないでしょうか?
それとも
分割でお送りした方がいいでしょうか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
それはまた豪快ですね。iwsw さんが書きました:サンプルプログラムを圧縮しても42MBで
まだ送れそうにないのですが,何か他の方法はないでしょうか?
それとも
分割でお送りした方がいいでしょうか?
ツールやら画像データやら余分なものがいっぱい付いていそうです。
とりあえず、.c/.h/.cppあたりとサンプルに付属するテキスト・ドキュメント類だけ送ってもらえば十分です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
プログラムの主要なC++のGetting Startedファイルと
それに必要な.hがあるincludeファイルをお送りします.
libはいるが必要となると思うのですが重いので
必要なときにお送りします.
それに必要な.hがあるincludeファイルをお送りします.
libはいるが必要となると思うのですが重いので
必要なときにお送りします.
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
遅れてすみません.
zipファイルがGmailで受信できないことに気づかず
何度も送っていました.
お手数ですが,zippをzipに変更してお使いください.
宜しくお願いします.
zipファイルがGmailで受信できないことに気づかず
何度も送っていました.
お手数ですが,zippをzipに変更してお使いください.
宜しくお願いします.
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
ZIPは解凍しました。
IbeoAPIのドキュメントは見当たりませんね。
CD-ROMの何処かに無かったでしょうか?
ConnectScanner.cppを見る限りは簡単なインターフェイスでアクセス出来そうですが、コンパイルは通っているんですよね?
少なくともIbeoAPIにあるhppの類は解析する必要がないようにマニュアル類も用意されているはずなのですが。
IbeoAPIのドキュメントは見当たりませんね。
CD-ROMの何処かに無かったでしょうか?
ConnectScanner.cppを見る限りは簡単なインターフェイスでアクセス出来そうですが、コンパイルは通っているんですよね?
少なくともIbeoAPIにあるhppの類は解析する必要がないようにマニュアル類も用意されているはずなのですが。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
1.IbeoAPIは,
CD-ROMの中にibeoapi-1.8.1-r20902-win32-msvc80がありまして
その中身は,bin,doc,include,lib,shareです.
ドキュメントは,docのことでしょうか?
docをメールにてお送りします.
2.ConnectScanner.cppのコンパイルついては
GettingStarted.txtに沿って操作を行い,ビルドは成功しました.
releaseに作成した実行ファイルを実行すると以下のエラーが表示されました.
「このアプリケーションの構成が正しくないため,アプリケーションを開始できませんでした.
アプリケーションを再度インストールすることにより問題を解決する場合があります.」
解決策として行った操作は
Dependency Walkerのソフトを用いて不足なファイルを検索して
msvcp80.dll msvcp80d.dll msvcr80.dll msvcr80d.dll
を実行ファイルと同じ場所にコピーしました.
残りのエラーとしてあるのがIEShims.dllとwer.dllが見つけられないことです.
エラー表示は以下のようになっていました.
「Error: Side-by-Side 設定情報の"C:\Home\IsseiIWASAWA\StartScan\start\release\start.exe"にエラーが含まれていま す.このアプリケーションの構成
が正しくないため、アプリケーションを開始できませんでした。アプリケーションを再度インストールすることにより 問題が解決する場合があります。 (14001).
Warning: 1つ以上の遅延ロード依存モジュールが見つかりませんでした.
Warning: 1つ以上のモジュールで遅延ロードモジュールのエクスポート関数の間違いで解決できないインポートがあります. 」
このエラーを購入したメーカーに問い合わせましたが,未だに連絡が来てなく困っているところです.
3.マニュアルについては
あと考えられるマニュアルibeo LUX (model 2010) Manual.pdfなので
こちらもメールにてお送りします.
残りにあるマニュアルは,CAN Munual,センサ図面,配線などといったハード的なマニュアルです.
CD-ROMの中にibeoapi-1.8.1-r20902-win32-msvc80がありまして
その中身は,bin,doc,include,lib,shareです.
ドキュメントは,docのことでしょうか?
docをメールにてお送りします.
2.ConnectScanner.cppのコンパイルついては
GettingStarted.txtに沿って操作を行い,ビルドは成功しました.
releaseに作成した実行ファイルを実行すると以下のエラーが表示されました.
「このアプリケーションの構成が正しくないため,アプリケーションを開始できませんでした.
アプリケーションを再度インストールすることにより問題を解決する場合があります.」
解決策として行った操作は
Dependency Walkerのソフトを用いて不足なファイルを検索して
msvcp80.dll msvcp80d.dll msvcr80.dll msvcr80d.dll
を実行ファイルと同じ場所にコピーしました.
残りのエラーとしてあるのがIEShims.dllとwer.dllが見つけられないことです.
エラー表示は以下のようになっていました.
「Error: Side-by-Side 設定情報の"C:\Home\IsseiIWASAWA\StartScan\start\release\start.exe"にエラーが含まれていま す.このアプリケーションの構成
が正しくないため、アプリケーションを開始できませんでした。アプリケーションを再度インストールすることにより 問題が解決する場合があります。 (14001).
Warning: 1つ以上の遅延ロード依存モジュールが見つかりませんでした.
Warning: 1つ以上のモジュールで遅延ロードモジュールのエクスポート関数の間違いで解決できないインポートがあります. 」
このエラーを購入したメーカーに問い合わせましたが,未だに連絡が来てなく困っているところです.
3.マニュアルについては
あと考えられるマニュアルibeo LUX (model 2010) Manual.pdfなので
こちらもメールにてお送りします.
残りにあるマニュアルは,CAN Munual,センサ図面,配線などといったハード的なマニュアルです.
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
APIのマニュアルはdocの中にありました。
main.htmlを開いてみてください。結構丁寧に説明されています。
それと「msvcp80.dll msvcp80d.dll msvcr80.dll msvcr80d.dll」は正式なインストールをしてみてください。
http://www.microsoft.com/downloads/ja-j ... 0B62A191EE
そして、ローカルから「msvcp80.dll msvcp80d.dll msvcr80.dll msvcr80d.dll」を削除しておいてください。
これで「IEShims.dllとwer.dll」の問題も含めて全部直ることを期待しております。
[追記]
届いたファイル(GettingStarted)にMSVC90と言うフォルダがあったのですが、こればVisualStudio2008用のものです。
たしか、VisualStudio2005をお使いでしたよね?
それとよく良く考えてみると、「msvcp80.dll msvcp80d.dll msvcr80.dll msvcr80d.dll」はすべてVisualStudio2005の開発環境に入っているはずです。
なので、このエラーが出ること自体がおかしいです。
MSVC80のものがあるなら、そちらをお使いください。
main.htmlを開いてみてください。結構丁寧に説明されています。
それと「msvcp80.dll msvcp80d.dll msvcr80.dll msvcr80d.dll」は正式なインストールをしてみてください。
http://www.microsoft.com/downloads/ja-j ... 0B62A191EE
そして、ローカルから「msvcp80.dll msvcp80d.dll msvcr80.dll msvcr80d.dll」を削除しておいてください。
これで「IEShims.dllとwer.dll」の問題も含めて全部直ることを期待しております。
[追記]
届いたファイル(GettingStarted)にMSVC90と言うフォルダがあったのですが、こればVisualStudio2008用のものです。
たしか、VisualStudio2005をお使いでしたよね?
それとよく良く考えてみると、「msvcp80.dll msvcp80d.dll msvcr80.dll msvcr80d.dll」はすべてVisualStudio2005の開発環境に入っているはずです。
なので、このエラーが出ること自体がおかしいです。
MSVC80のものがあるなら、そちらをお使いください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
main.htmlを読んでみます.
英語なので時間かかると思いますが,頑張ってみます.
「msvcp80.dll msvcp80d.dll msvcr80.dll msvcr80d.dll」の正式なインストールは
以下のサイトからインストールするのみで何か特別な作業はしなくて大丈夫ですか?
使用している環境は,VisualStudio2005です.
MSVC80は見当たらなかったので,メーカーの方へお問い合わせしてみます.
英語なので時間かかると思いますが,頑張ってみます.
「msvcp80.dll msvcp80d.dll msvcr80.dll msvcr80d.dll」の正式なインストールは
以下のサイトからインストールするのみで何か特別な作業はしなくて大丈夫ですか?
使用している環境は,VisualStudio2005です.
MSVC80は見当たらなかったので,メーカーの方へお問い合わせしてみます.
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
本来は、VisualStudio2005をインストールすると自動的にインストールされて何もしなくても参照できるはずなんです。iwsw さんが書きました:「msvcp80.dll msvcp80d.dll msvcr80.dll msvcr80d.dll」の正式なインストールは
以下のサイトからインストールするのみで何か特別な作業はしなくて大丈夫ですか?
なのでVisualStudio2005のインストール自体に問題がある可能性もあります。
何にしても、「msvcp80.dll msvcp80d.dll msvcr80.dll msvcr80d.dll」がローカルフォルダにあるのは問題があるのでやめたほうが良いです。
ちなみにVisualStudio2005のC++がvc++8.0で、VisualStudio2008のC++がvc++9.0となっています。iwsw さんが書きました:使用している環境は,VisualStudio2005です.
MSVC80は見当たらなかったので,メーカーの方へお問い合わせしてみます.
msvc80とかmsvcp90も、その表記に従っているはずなんですけどね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
「msvcp80.dll msvcp80d.dll msvcr80.dll msvcr80d.dll」はローカルフォルダから削除します.
msvc80を入手でき次第,自分なりに頑張ってトライしてみます.
また,分からない点やエラーなどがありましたら,その時は宜しくお願いします.
なるほど.勉強になります.softya(ソフト屋) さんが書きました:ちなみにVisualStudio2005のC++がvc++8.0で、VisualStudio2008のC++がvc++9.0となっています。
msvc80とかmsvcp90も、その表記に従っているはずなんですけどね。
msvc80を入手でき次第,自分なりに頑張ってトライしてみます.
また,分からない点やエラーなどがありましたら,その時は宜しくお願いします.
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
VC2005自体の再インストールなど様々な手段で試してみましたが上手くできませんでした.
また,上手くできなかった旨とMSVC80についてメーカにお問い合わせしましたが,良い返事が頂けませんでした.
そこで,ibeo LUX計測センサを使用している他大学に聞いたところTCPソケット通信でデータ取得できるようです.
(さすがに,プログラムは頂けませんでした.)
ソケット通信について,インターネットで調べ試してみましたが
上手くいきませんでした.
他大学に聞いたところによると,以下のようなデータ取得プログラムです.
1.TCPソケットにibeo LUXを接続
2.ソケットからデータの読み込み
3.データ保存
2と3の間で,データを整理しますが,これは多分僕自身でできます.
常々,お聞きして申し訳ないのですが
分かりやすいソケット通信方法が載っているサイトやプログラムを教えていただけないでしょうか?
また,上手くできなかった旨とMSVC80についてメーカにお問い合わせしましたが,良い返事が頂けませんでした.
そこで,ibeo LUX計測センサを使用している他大学に聞いたところTCPソケット通信でデータ取得できるようです.
(さすがに,プログラムは頂けませんでした.)
ソケット通信について,インターネットで調べ試してみましたが
上手くいきませんでした.
他大学に聞いたところによると,以下のようなデータ取得プログラムです.
1.TCPソケットにibeo LUXを接続
2.ソケットからデータの読み込み
3.データ保存
2と3の間で,データを整理しますが,これは多分僕自身でできます.
常々,お聞きして申し訳ないのですが
分かりやすいソケット通信方法が載っているサイトやプログラムを教えていただけないでしょうか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
どのレベルのTCP/IP通信が必要が分からないのでwinsockのページをご紹介します。
「Geekなぺーじ : winsockプログラミング」
http://www.geekpage.jp/programming/winsock/
TCPクライアントとして通信してみてください。
「Geekなぺーじ : winsockプログラミング」
http://www.geekpage.jp/programming/winsock/
TCPクライアントとして通信してみてください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
TCPクライアントを試してみまして,センサとの接続が上手くできたのですが
データ受信が上手くできませんでした.
試行錯誤にやってみましたがよく分からなかったので
ソースコードを見て頂けることはできないでしょうか?
ちなみに実行表示は以下にようになっています.
Connected.
0.000000, (null)
Connected.はちゃんと接続できてるかの確認のために表示しました.
データ受信が上手くできませんでした.
試行錯誤にやってみましたがよく分からなかったので
ソースコードを見て頂けることはできないでしょうか?
ちなみに実行表示は以下にようになっています.
Connected.
0.000000, (null)
Connected.はちゃんと接続できてるかの確認のために表示しました.
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
受信サイズが0.000なのはなぜでしょうか?
printf("%d, %s\n", n, buf);
intなので0なら分かるのですが。
printf("%d, %s\n", n, buf);
intなので0なら分かるのですが。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
それと「ibeo LUX」と「LD-MRS View visualisation tool」との通信でどの様なデータがやり取りされているかWiresharkなどのパケット・アナライザ・ソフトでパケットを解析してみてください。
それを見れば、「ibeo LUX」がどの様な手順で通信する必要があるかが分かります。
「Wiresharkでネットワーク・プロトコルを解析する(基本操作編) - @IT」
http://www.atmarkit.co.jp/fwin2k/win2kt ... shark.html
パケットの16進数ダンプを貼ってもらうとこちらでの少しは分かることがあります。
それを見れば、「ibeo LUX」がどの様な手順で通信する必要があるかが分かります。
「Wiresharkでネットワーク・プロトコルを解析する(基本操作編) - @IT」
http://www.atmarkit.co.jp/fwin2k/win2kt ... shark.html
パケットの16進数ダンプを貼ってもらうとこちらでの少しは分かることがあります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
printf("%d, %s\n", n, buf);
Connected.
32, ッタツ
%dで変な値が出たので,%fで表示しました.
Connected.
0.000000, (null)
Wiresharkでどんな通信か見てみます.
Connected.
32, ッタツ
%dで変な値が出たので,%fで表示しました.
Connected.
0.000000, (null)
Wiresharkでどんな通信か見てみます.
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
32が長さですね。その後ろは文字化けです。iwsw さんが書きました:printf("%d, %s\n", n, buf);
Connected.
32, ッタツ
%dで変な値が出たので,%fで表示しました.
Connected.
0.000000, (null)
Wiresharkでどんな通信か見てみます.
返却されるデータが文字列ではなくバイナリデータの様です。
紹介したサイトが文字列前提なので、うまく表示できなかったようです。
まずバッファをこちらに変えてもらって
usigned char buf[32]; ← 変更
int i; ← 追加
printfを16進ダンプに変えましょう。
printf("n=%d", n);
for( i=0 ; i<n ; i++ ) {
if( (i%16)==0 ) printf("\n"); //16バイトごとの改行
printf( "%02x ", buf[n] ); //1バイトを16進表示
}[追記]
なお、この後どの様に通信して「ibeo LUX」からデータを得るかは不明なままなのでWiresharkでのパケットの解析は必ず必要です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
解析してみました.
データは取得できているみたいなのですが,何を意味するものなのかよく分かりません.
どの部分を読み取れば良いのか,教えていただけないでしょうか?
データは取得できているみたいなのですが,何を意味するものなのかよく分かりません.
どの部分を読み取れば良いのか,教えていただけないでしょうか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
貼ってもらえば少しは分かると思います。
内容はバイナリデータです。
BALDRMSen_8012948_TB89_20090701.pdfの84ページあたりからあるフォーマットだと思いますが、読み方はわかりますか?
内容はバイナリデータです。
BALDRMSen_8012948_TB89_20090701.pdfの84ページあたりからあるフォーマットだと思いますが、読み方はわかりますか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
バイナリデータはこれですか?
0000 00 06 77 85 07 86 00 26 55 bc c3 fe 08 00 45 00 ..w....& U.....E.
0010 00 30 7f 87 40 00 80 06 f9 8a c0 a8 00 64 c0 a8 .0..@... .....d..
0020 00 01 09 35 2e e2 63 1a 6b 48 00 00 00 00 70 02 ...5..c. kH....p.
0030 ff ff fa ef 00 00 02 04 05 b4 01 01 04 02 ........ ......
僕の理解では16進数でデータが取得されて前からの順番によってどんなデータが入っているかが分かるものだと理解しています.
ちなみに,先ほどのプログラムですが
int n = recv(sock, buf, sizeof(buf), 0);
の部分で,「error C2664: 'recv' : 2 番目の引数を 'unsigned char [32]' から 'char *' に変換できません。」ができました.
どうしたら良いのか分からないので教えて頂きたいです.
0000 00 06 77 85 07 86 00 26 55 bc c3 fe 08 00 45 00 ..w....& U.....E.
0010 00 30 7f 87 40 00 80 06 f9 8a c0 a8 00 64 c0 a8 .0..@... .....d..
0020 00 01 09 35 2e e2 63 1a 6b 48 00 00 00 00 70 02 ...5..c. kH....p.
0030 ff ff fa ef 00 00 02 04 05 b4 01 01 04 02 ........ ......
正直,正確に理解はできてませんがsoftya(ソフト屋) さんが書きました:BALDRMSen_8012948_TB89_20090701.pdfの84ページあたりからあるフォーマットだと思いますが、読み方はわかりますか?
僕の理解では16進数でデータが取得されて前からの順番によってどんなデータが入っているかが分かるものだと理解しています.
ちなみに,先ほどのプログラムですが
int n = recv(sock, buf, sizeof(buf), 0);
の部分で,「error C2664: 'recv' : 2 番目の引数を 'unsigned char [32]' から 'char *' に変換できません。」ができました.
どうしたら良いのか分からないので教えて頂きたいです.
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
int n = recv(sock, (char*)buf, sizeof(buf), 0);
でお願いします。
先頭4バイトの00067785に該当するものが見当たらないんですよね。
でお願いします。
は、送ったパケット?それとも受けたパケットでしょうか?iwsw さんが書きました:0000 00 06 77 85 07 86 00 26 55 bc c3 fe 08 00 45 00 ..w....& U.....E.
0010 00 30 7f 87 40 00 80 06 f9 8a c0 a8 00 64 c0 a8 .0..@... .....d..
0020 00 01 09 35 2e e2 63 1a 6b 48 00 00 00 00 70 02 ...5..c. kH....p.
0030 ff ff fa ef 00 00 02 04 05 b4 01 01 04 02 ........ ......
先頭4バイトの00067785に該当するものが見当たらないんですよね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
ごめんなさい.
送信の方を送ってたと思います.
受信の方をお送りします.
長いので前の10行をお送りします.
0000 00 26 55 bc c3 fe 00 06 77 85 07 86 08 00 45 00 .&U..... w.....E.
0010 05 dc 00 00 40 00 ff 06 f4 65 c0 a8 00 01 c0 a8 ....@... .e......
0020 00 64 2e e2 0b 24 00 10 22 46 3d 3b 65 3a 50 10 .d...$.. "F=;e:P.
0030 20 00 0b d1 00 00 20 fe bd 01 dc 00 00 00 01 40 ..... . .......@
0040 20 fe bd 01 d8 00 00 00 02 40 18 fe b6 01 c8 00 ....... .@......
0050 00 00 03 40 18 fe b7 01 c4 00 00 00 00 50 10 fe ...@.... .....P..
0060 c2 01 c8 00 00 00 01 50 10 fe bf 01 c8 00 00 00 .......P ........
0070 02 50 08 fe b9 01 bc 00 00 00 03 50 08 fe bb 01 .P...... ...P....
0080 b8 00 00 00 00 40 00 fe bd 01 dc 00 00 00 01 40 .....@.. .......@
0090 00 fe bd 01 dc 00 00 00 02 40 f8 fd ba 01 c8 00 ........ .@......
00a0 00 00 03 40 f8 fd bb 01 c4 00 00 00 00 50 f0 fd ...@.... .....P..
送信の方を送ってたと思います.
受信の方をお送りします.
長いので前の10行をお送りします.
0000 00 26 55 bc c3 fe 00 06 77 85 07 86 08 00 45 00 .&U..... w.....E.
0010 05 dc 00 00 40 00 ff 06 f4 65 c0 a8 00 01 c0 a8 ....@... .e......
0020 00 64 2e e2 0b 24 00 10 22 46 3d 3b 65 3a 50 10 .d...$.. "F=;e:P.
0030 20 00 0b d1 00 00 20 fe bd 01 dc 00 00 00 01 40 ..... . .......@
0040 20 fe bd 01 d8 00 00 00 02 40 18 fe b6 01 c8 00 ....... .@......
0050 00 00 03 40 18 fe b7 01 c4 00 00 00 00 50 10 fe ...@.... .....P..
0060 c2 01 c8 00 00 00 01 50 10 fe bf 01 c8 00 00 00 .......P ........
0070 02 50 08 fe b9 01 bc 00 00 00 03 50 08 fe bb 01 .P...... ...P....
0080 b8 00 00 00 00 40 00 fe bd 01 dc 00 00 00 01 40 .....@.. .......@
0090 00 fe bd 01 dc 00 00 00 02 40 f8 fd ba 01 c8 00 ........ .@......
00a0 00 00 03 40 f8 fd bb 01 c4 00 00 00 00 50 f0 fd ...@.... .....P..
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
プログラムの改良して実行してみました.
実行結果の以下のようになりました.
Connected.
n=32
cccccccccccccccccccccccccccccccc
cccccccccccccccccccccccccccccccc
もう少しで出来そうな気がするのですが
まだ原因がわかりません.
実行結果の以下のようになりました.
Connected.
n=32
cccccccccccccccccccccccccccccccc
cccccccccccccccccccccccccccccccc
もう少しで出来そうな気がするのですが
まだ原因がわかりません.
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
あれ?iwsw さんが書きました:プログラムの改良して実行してみました.
実行結果の以下のようになりました.
Connected.
n=32
cccccccccccccccccccccccccccccccc
cccccccccccccccccccccccccccccccc
もう少しで出来そうな気がするのですが
まだ原因がわかりません.
memset(buf, 0, sizeof(buf));でクリアしてますよね?
ccの連続ってのが不可解ですね。
説明によると
10.4 Data header
Each message begins with a "data header". It contains information about the data to be expected.
At the beginning of each "data header", the "magic word", a special byte order
(0xAFFEC0C2) is being sent. This "magic word" can be used to detect the beginning of a new
でAFFEC0C2で始まるマジックワードがあるようなのですが見当たりませんね。
なんか資料を読み違えてる可能性も捨てがたいのでパケットの全容も知りたい気がします。
ところで、このパケットって「LD-MRS View visualisation tool」を起動した瞬間のパケットですか?
iwsw さんが書きました:0000 00 26 55 bc c3 fe 00 06 77 85 07 86 08 00 45 00 .&U..... w.....E.
0010 05 dc 00 00 40 00 ff 06 f4 65 c0 a8 00 01 c0 a8 ....@... .e......
0020 00 64 2e e2 0b 24 00 10 22 46 3d 3b 65 3a 50 10 .d...$.. "F=;e:P.
0030 20 00 0b d1 00 00 20 fe bd 01 dc 00 00 00 01 40 ..... . .......@
0040 20 fe bd 01 d8 00 00 00 02 40 18 fe b6 01 c8 00 ....... .@......
0050 00 00 03 40 18 fe b7 01 c4 00 00 00 00 50 10 fe ...@.... .....P..
0060 c2 01 c8 00 00 00 01 50 10 fe bf 01 c8 00 00 00 .......P ........
0070 02 50 08 fe b9 01 bc 00 00 00 03 50 08 fe bb 01 .P...... ...P....
0080 b8 00 00 00 00 40 00 fe bd 01 dc 00 00 00 01 40 .....@.. .......@
0090 00 fe bd 01 dc 00 00 00 02 40 f8 fd ba 01 c8 00 ........ .@......
00a0 00 00 03 40 f8 fd bb 01 c4 00 00 00 00 50 f0 fd ...@.... .....P..
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
memset(buf, 0, sizeof(buf)); はクリアして,ビルドは成功しています.softya(ソフト屋) さんが書きました:memset(buf, 0, sizeof(buf));でクリアしてますよね?
ccの連続ってのが不可解ですね。
しかし,実行は cc の連続です.
もう一度,解析し直してみます.softya(ソフト屋) さんが書きました:ところで、このパケットって「LD-MRS View visualisation tool」を起動した瞬間のパケットですか?
その解析した結果をお送りすることはできないでしょうか?
pcapファイルなのですが,これをお送りしたら見ることはできないでしょうか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
pcapファイルは見れますよ。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
pcapファイルは,この掲示板から送れますか?
それとも,メールで送ったほうがよろしいでしょうか?
それとも,メールで送ったほうがよろしいでしょうか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
メールでお願いします。
掲示板にファイル添付するには、ここのmixc++にユーザー登録する必要があります。
掲示板にファイル添付するには、ここのmixc++にユーザー登録する必要があります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
プログラムの struct sockaddr_in server;で以下のような警告が出てたのですが
これは特に問題ないでしょうか?
warning C4101: 'server' : ローカル変数は 1 度も使われていません。
これは特に問題ないでしょうか?
warning C4101: 'server' : ローカル変数は 1 度も使われていません。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
ソースコードを貼ってもらわないとわからないですね。iwsw さんが書きました:プログラムの struct sockaddr_in server;で以下のような警告が出てたのですが
これは特に問題ないでしょうか?
warning C4101: 'server' : ローカル変数は 1 度も使われていません。
ただ、serverを使わずに通信出来るはずがないのですが。
pcapは、今しらばくお待ちください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
少し長いのですがソースコードを貼ります.
コードタグを修正しました。[]で囲んでくださいね。 by softya(ソフト屋)
#include <stdio.h>
#include <winsock2.h>
int main()
{
WSADATA wsaData;
struct sockaddr_in server;
SOCKET sock;
unsigned char buf[32];
///// winsock2の初期化 //////
WSAStartup(MAKEWORD(2,0), &wsaData);//WSACleanup()とセット
// MAKEWORD(2,0)はバージョン
// &wsaDataはWSAStartup()が初期化した状態を入れるための変数を渡す
///// ソケットの作成 /////
sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
///// エラーチェック /////
if (sock == INVALID_SOCKET) {
printf("error : %d\n", WSAGetLastError());
getchar();return 1;
}
///// 接続先指定用構造体の準備 /////
struct sockaddr_in srv_addr;
short port=12002;//ポート番号
char *IPaddress="192.168.0.1";//IPアドレス
srv_addr.sin_family = AF_INET;//インタネット(INET)ドメインの2ホスト間プロセス通信
srv_addr.sin_port = htons(port);//ポート番号の指定
srv_addr.sin_addr.s_addr = inet_addr(IPaddress);//宛先IP 指定
// inet_addr IPアドレスを表現して文字列をバイナリ値に変換するための関数
///// ソケットの接続 および エラーチェック /////
if(connect(sock,(struct sockaddr *)&srv_addr, sizeof(srv_addr) ) < 0 )
printf("Can’t connect.\n");
else
printf("Connected.\n");
///// サーバからデータを受信 /////
memset(buf, 0, sizeof(buf));// メモリ領域のバイト列を指定する
int n = recv(sock, (char*)buf, sizeof(buf), 0);// recv 受信データがbufアドレスに格納される.
if(n==SOCKET_ERROR) printf("recv error:%d\n",WSAGetLastError());
// sizeof データサイズを返す演算子
int i;
printf("n=%d", n);
for(i=0;i<n;i++){
if((i%16)==0)printf("\n");//16バイトごとの改行
printf("%02x",buf[n]);//1バイトを16進表示
}
///// winsock2の終了処理 /////
WSACleanup();//WSAStartup()とセット
getchar();
return 0;
}
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
すみません.ソースコードの貼り方が上手くできませんでした.
ソースコードの貼り方を教えてもらえませんか?
ソースコードの貼り方を教えてもらえませんか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
投稿するときの上に赤で表示されるフォーラムルールに書かれています。iwsw さんが書きました:すみません.ソースコードの貼り方が上手くできませんでした.
ソースコードの貼り方を教えてもらえませんか?
先程のは[]が足らなかったです。
投稿前にプレビューしてもらうと確認できますよ。
で、原因ですが、
struct sockaddr_in server;
と
struct sockaddr_in srv_addr;
の2つ定義していてsrv_addr;だけ使っているのが真実のようです。のでserverは消しても問題ないです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
全部解析すると死にそうなんので解析の仕方を書きます。
たとえば、11番目のパケット192.168.0.100→192.168.0.1なので装置に送られたパケットです。
これは、先にPCから装置にパケットを送る必要があることを示していますね。
途中にaf fe c0 c2があるのが分かると思います。
これがマニュアル(BALDRMSen_8012948_TB89_20090701.pdf)のp84にあるData headerのMagic word(0xAFFEC0C2)だと思います。
そこから後ろだけ取り出してData headerとそれに続くデータの形に整形します。
で、13番目のパケットがその返答(レスポンス)です。
TCPのパケット構造は、こちらに。
「@IT:連載 基礎から学ぶWindowsネットワーク 第15回 信頼性のある通信を実現するTCPプロトコル(2) 1.TCPパケットの構造」
http://www.atmarkit.co.jp/fwin2k/networ ... 15_02.html
TCPのパケットの種類や通信シーケンスはこちら。
「@IT:連載 基礎から学ぶWindowsネットワーク 第14回 信頼性のある通信を実現するTCPプロトコル(その1)」
http://www.atmarkit.co.jp/fwin2k/networ ... 14_01.html
「@IT:連載 基礎から学ぶWindowsネットワーク 第15回 信頼性のある通信を実現するTCPプロトコル(2)」
http://www.atmarkit.co.jp/fwin2k/networ ... 15_01.html
「@IT:連載 基礎から学ぶWindowsネットワーク 第16回 信頼性のある通信を実現するTCPプロトコル(3)」
http://www.atmarkit.co.jp/fwin2k/networ ... 16_01.html
たとえば、11番目のパケット192.168.0.100→192.168.0.1なので装置に送られたパケットです。
これは、先にPCから装置にパケットを送る必要があることを示していますね。
0000 00 06 77 85 07 86 00 26 55 bc c3 fe 08 00 45 00 ..w....& U.....E.
0010 00 44 dc 7a 40 00 80 06 9c 83 c0 a8 00 64 c0 a8 .D.z@... .....d..
0020 00 01 05 1f 2e e2 e2 d5 1d ac 00 00 19 ba 50 18 ........ ......P.
0030 ff ff 81 ec 00 00 af fe c0 c2 00 00 00 00 00 00 ........ ........
0040 00 04 00 01 20 10 d1 91 7d 66 98 00 00 00 01 00 .... ... }f......
0050 00 00 ..
途中にaf fe c0 c2があるのが分かると思います。
これがマニュアル(BALDRMSen_8012948_TB89_20090701.pdf)のp84にあるData headerのMagic word(0xAFFEC0C2)だと思います。
そこから後ろだけ取り出してData headerとそれに続くデータの形に整形します。
となります。- Data header - format "big endian"
af fe c0 c2 Magic word(0xAFFEC0C2)
00 00 00 00 Size of the previous message
00 00 00 04 Size of this message
00 reserved
01 DeviceID
20 10 Data type
d1 91 7d 66 98 00 00 00 NTP time
- data type 0x2010 - format "little endian" ← ここでエンディアンが変わるので注意。
01 00 Command ID たぶん、「ID - Status request」コマンド
00 00 reserved
で、13番目のパケットがその返答(レスポンス)です。
TCPのパケット構造は、こちらに。
「@IT:連載 基礎から学ぶWindowsネットワーク 第15回 信頼性のある通信を実現するTCPプロトコル(2) 1.TCPパケットの構造」
http://www.atmarkit.co.jp/fwin2k/networ ... 15_02.html
TCPのパケットの種類や通信シーケンスはこちら。
「@IT:連載 基礎から学ぶWindowsネットワーク 第14回 信頼性のある通信を実現するTCPプロトコル(その1)」
http://www.atmarkit.co.jp/fwin2k/networ ... 14_01.html
「@IT:連載 基礎から学ぶWindowsネットワーク 第15回 信頼性のある通信を実現するTCPプロトコル(2)」
http://www.atmarkit.co.jp/fwin2k/networ ... 15_01.html
「@IT:連載 基礎から学ぶWindowsネットワーク 第16回 信頼性のある通信を実現するTCPプロトコル(3)」
http://www.atmarkit.co.jp/fwin2k/networ ... 16_01.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
任せっきりで,すみません.
僕も頑張って解析してみます.
確認なんですが,解析結果で必要なのは以下のような
数値が意味するものを調べれば良いのですか?
僕も頑張って解析してみます.
確認なんですが,解析結果で必要なのは以下のような
数値が意味するものを調べれば良いのですか?
softya(ソフト屋) さんが書きました:- Data header - format "big endian"
af fe c0 c2 Magic word(0xAFFEC0C2)
00 00 00 00 Size of the previous message
00 00 00 04 Size of this message
00 reserved
01 DeviceID
20 10 Data type
d1 91 7d 66 98 00 00 00 NTP time
- data type 0x2010 - format "little endian" ← ここでエンディアンが変わるので注意。
01 00 Command ID たぶん、「ID - Status request」コマンド
00 00 reserved
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
パソコンのツールと装置でどの様なパケットがやり取りされていて、どんなコマンドを送るとどんな形で返ってくるかを調べることが必要です。
これを自分のソフトで再現すれば装置との通信ができるようになります。
それと書き忘れましたが、PCAPで得られるデータの
これを自分のソフトで再現すれば装置との通信ができるようになります。
それと書き忘れましたが、PCAPで得られるデータの
先頭の部分の54(0x36)バイトはTCPパケット自体のデータですので、winsockで送受信するデータには含まれません。0000 00 06 77 85 07 86 00 26 55 bc c3 fe 08 00 45 00 ..w....& U.....E.
0010 00 44 dc 7a 40 00 80 06 9c 83 c0 a8 00 64 c0 a8 .D.z@... .....d..
0020 00 01 05 1f 2e e2 e2 d5 1d ac 00 00 19 ba 50 18 ........ ......P.
0030 ff ff 81 ec 00 00
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
長いこと解析してみて,ふとマニュアルを読み返してみたのですが
「Ethernet data protocol ibeo LUX family and ibeo LUX systems」のマニュアルの中に
p15にibeo LUX command interfaceがありまして
送信コマンドなのか分からないですがありました.
これは違うものですか?
メールにて,そのマニュアルをお送りします.
ご確認をお願いします.
「Ethernet data protocol ibeo LUX family and ibeo LUX systems」のマニュアルの中に
p15にibeo LUX command interfaceがありまして
送信コマンドなのか分からないですがありました.
これは違うものですか?
メールにて,そのマニュアルをお送りします.
ご確認をお願いします.
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
たぶん、これですね。iwsw さんが書きました:長いこと解析してみて,ふとマニュアルを読み返してみたのですが
「Ethernet data protocol ibeo LUX family and ibeo LUX systems」のマニュアルの中に
p15にibeo LUX command interfaceがありまして
送信コマンドなのか分からないですがありました.
これは違うものですか?
メールにて,そのマニュアルをお送りします.
ご確認をお願いします.
ただ、通信手順が必要なのかも良くわかっていないので、コマンドを送ってもうまくいかないときは実際のパケットも合わせて調べたほうが良いと思います。
とりあえずは、「ID - Status request」コマンドを送って戻ってくるデータを得るプログラムを作られたらどうでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
コマンドを送るには,softya(ソフト屋) さんが書きました:とりあえずは、「ID - Status request」コマンドを送って戻ってくるデータを得るプログラムを作られたらどうでしょうか?
send(sock, message, strlen(message), 0 ); を追加すれば良いのでしょうか?
それとも別に
TCPサーバのプログラムを作成した方が良いのでしょうか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
こちらで試してみてください。iwsw さんが書きました:コマンドを送るには,
send(sock, message, strlen(message), 0 ); を追加すれば良いのでしょうか?
HTTPクライアントと同じ手順で良いはずです。
メンドなのはビッグエンディアンの処理でしょうか。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
HTTPクライアントのやり方がよく分からないので
ソースを載せるので教えて欲しいです.
宜しくお願いします.
ソースを載せるので教えて欲しいです.
宜しくお願いします.
#include <stdio.h>
#include <winsock2.h>
int
main(int argc, char *argv[])
{
WSADATA wsaData;
SOCKET sock;
char buf[32];
///// winsock2の初期化 //////
WSAStartup(MAKEWORD(2,0), &wsaData);//WSACleanup()とセット
// MAKEWORD(2,0)はバージョン
// &wsaDataはWSAStartup()が初期化した状態を入れるための変数を渡す
///// ソケットの作成 /////
sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
///// エラーチェック /////
if (sock == INVALID_SOCKET) {
printf("error : %d\n", WSAGetLastError());
getchar();return 1;
}
///// 接続先指定用構造体の準備 /////
struct sockaddr_in srv_addr;
short port=12002;//ポート番号
char *IPaddress="192.168.0.1";//IPアドレス
srv_addr.sin_family = AF_INET;//インタネット(INET)ドメインの2ホスト間プロセス通信
srv_addr.sin_port = htons(port);//ポート番号の指定
srv_addr.sin_addr.s_addr = inet_addr(IPaddress);//宛先IP 指定
// inet_addr IPアドレスを表現して文字列をバイナリ値に変換するための関数
///// ソケットの接続 および エラーチェック /////
if(connect(sock,(struct sockaddr *)&srv_addr, sizeof(srv_addr) ) < 0 )
printf("Can’t connect.\n");
else
printf("Connected.\n");
// HTTPで「/」をリクエストする文字列を生成
memset(buf, 0, sizeof(buf));
_snprintf(buf, sizeof(buf), "GET / HTTP/1.0\r\n\r\n");
// HTTPリクエスト送信
int n = send(sock, buf, (int)strlen(buf), 0);
if (n < 0) {
printf("send : %d\n", WSAGetLastError());
return 1;
}
// サーバからのHTTPメッセージ受信
while (n > 0) {
memset(buf, 0, sizeof(buf));
n = recv(sock, buf, sizeof(buf), 0);
if (n < 0) {
printf("recv : %d\n", WSAGetLastError());
return 1;
}
// 受信結果を表示
fwrite(buf, n, 1, stdout);
}
closesocket(sock);
WSACleanup();
return 0;
}
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
すいません、投稿を見逃していました。
すいません余分なことを書いてしまったみたいですね。
接続したらsendしてrecvするだけです。
sendする内容は、前に書いたこれです。
あくまで手順だけなので、HTTPと同じパケットを送ってもだめですよ。iwsw さんが書きました:HTTPクライアントのやり方がよく分からないので
ソースを載せるので教えて欲しいです.
すいません余分なことを書いてしまったみたいですね。
接続したらsendしてrecvするだけです。
sendする内容は、前に書いたこれです。
softya(ソフト屋) さんが書きました:そこから後ろだけ取り出してData headerとそれに続くデータの形に整形します。
- Data header - format "big endian"
af fe c0 c2 Magic word(0xAFFEC0C2)
00 00 00 00 Size of the previous message
00 00 00 04 Size of this message
00 reserved
01 DeviceID
20 10 Data type
d1 91 7d 66 98 00 00 00 NTP time
- data type 0x2010 - format "little endian" ← ここでエンディアンが変わるので注意。
01 00 Command ID たぶん、「ID - Status request」コマンド
00 00 reserved
となります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
iwsw
Re: Visual Studio 2005 イーサネットによるデータ取得プログラム
大変遅くなりましたが,なんとかデータ受信できるようになりました.
あとはデータ整理のみなので試行錯誤,トライ&エラーで頑張ってみます.
大変厄介な質問にお答え頂きありがとうございました.
とても適切な回答で本当に助かりました.
あとはデータ整理のみなので試行錯誤,トライ&エラーで頑張ってみます.
大変厄介な質問にお答え頂きありがとうございました.
とても適切な回答で本当に助かりました.