• ベストアンサー

シリアルポートにデータを送るプログラム

VISUALC初心者です。実際Cも良く分かってないと思います。パソコンにも詳しくないです。 シリアルポートにデータを送るプログラムをVISUALCで作りたいんですが、何をやって良いかさっぱり分かりません。 仕様はダイアログベースで、ボタンを押すと、エディットボックスに書いたファイルパスのファイルのデータをRS232Cに送るということをやりたいのですが、全くもって分かりません。 ファイルの指定の仕方。 および一ビットずつシリアルポートに転送の仕方。 のすべてを教えてください。 以下を参考にしていますが、やっぱり良く分からないというのが現状です。 http://www2.muroran-it.ac.jp/circle/yume/serialport/index.html

質問者が選んだベストアンサー

  • ベストアンサー
  • nabezo-
  • ベストアンサー率50% (2/4)
回答No.4

#専門家ではなく、「一般人」ですが。。。 補足に書かれたことについてコメントします。 WriteFile()の第2パラメータにハンドルを渡しています。 #エラーにならないのかな??? WriteFile()の前にReadFile()でファイルからデータをメモリ上に読み込んで、 そのアドレスを第2パラメータに渡す必要があると思います。 ファイルデータが固定長ならば予めリードするデータの領域を 確保しといてもいいし、データ長が不定ならGetFileSize()で 得たサイズをアロケートすればいいと思います。 間違ってたらごめんなさい。

jigenthethird
質問者

お礼

ありがとうございました。 解決しました。 プログラムの知識ももちろんのこと、コンピュータの知識なども勉強しなければならないという事を痛感しております。 またお世話になるかと思います。そのときはよろしくお願いします。

その他の回答 (3)

  • poor_Quark
  • ベストアンサー率56% (1020/1799)
回答No.3

 WIN2000なら、「WINDOWS2000デバイスドライバ入門」(CQ出版社:2500円)に、シリアルポート制御の解説がはじめの方に載ってます。私は勉強になりました。

jigenthethird
質問者

お礼

すいません補足ではなくお礼に書くべきでした。 教えてgooの使い方がよくわからなかったもので。 おそくなりましたがありがとうございました。

jigenthethird
質問者

補足

皆様本当にありがとうございます。 少し分かってきたので、また質問させてください。 fileHANDLE = CreateFile(filename,GENERIC_READ,0,0,OPEN_EXISTING,0,0); として、232Cに送りたいデータのあるファイルを開いて、 GetFileSize(fileHANDLE,NULL); として、そのファイルのサイズを得て、 BOOL WriteFile( HANDLE hFile, // COM1のハンドル LPCVOID fileHANDLE, // データのあるファイルハンドル DWORD nNumberOfBytesToWrite, // GetFileSizeで得たバイト数 LPDWORD lpNumberOfBytesWritten, // 書き込んだバイト数 LPOVERLAPPED lpOverlapped // NULL ); としてWriteFileを用いたいのですが、それは可能でしょうか? やってみたところ、書き込んだバイト数が0となってしまいます。 根本的に間違っているのでしょうか? よろしくおねがいします。 VCでやらねばなりません。 ヒントでもなんでもかまわないので分かるかた、お願いします。

  • prome
  • ベストアンサー率32% (64/196)
回答No.2

C言語に詳しくない上に、パソコンにも詳しくないとすれば、 VCよりもまずVBから入られた方がいいかと思います。 もっともVCでプログラミングしなければならない理由があるのなら別ですが。 参考にされているURLは、Cに詳しくない方にはきついと思います。 私もCに詳しくないので、よくわかりませんでした。 参考にするのなら、サンプルプログラムが豊富なサイトの方がいいかと。 私はRS-232Cでのデータのやり取りをVBで作っています。 RS-232C関連の本は非常に少ないですが、何とか見つけたのが以下の本です。 技術評論社「自動計測システムのためのVB6入門」金藤 仁著 ISBN4-7741-0940-1 \3,200(税別) この本にはRS-232C、GP-IBのサンプルPGMがいくつか載っており、 CD-ROMもついています。 雑誌でなく、本で出ているもので、私が見つけたのはこれだけでした。 お役にたてば幸いです。 あと、文化オリエント社のPDQ Commを使うと、RS-232CによるCOMポートの PGMはもっと簡単になります。このマニュアルにもサンプルPGMがあります。

jigenthethird
質問者

お礼

おそくなりましたが、ありがとうございました。

  • zerosix
  • ベストアンサー率31% (47/149)
回答No.1

何もかも教えてくれということでは、プログラム関係は回答は得られませんよ。 上記のURLを見ましたが、APIを詳しく示していますよね。 でしたら、そのAPIをどのようにして使うか、検索エンジンを使って 調べるのが一番早いですよ。 勉強のWebページとして「猫でもわかるプログラミング」のURLを示します。 ご参考あれ。

参考URL:
http://www2m.biglobe.ne.jp/~yasutaka/
jigenthethird
質問者

お礼

おそくなりましたが、ありがとうございました。

関連するQ&A

  • VisualC++でRS232C経由のデータの送受信方法

    仕事でVisualC++でプログラムを作っているのですが、VC++は初心者なので解からない事がいっぱいです。 今作っているプログラムは、VisualC++でRS232Cを使って送られてくるデータをダイアログのエディットボックスに表示するというプログラムなんですけど、どうやってデータを受取るのかまたそのデータをどうやって表示するのかがまったく解からない状態です。 解かる方は教えて下さい。 よろしくお願いします。

  • シリアルが2ポートあるノートPC

    こんにちは。 シリアルデータのバッティングを確認するために、RS232Cポートを2つ持つノートPCを物色しています。 以前にはあったと思うのですが、どうしてもない、という場合は、カードバスでRS232Cを追加したり、USBをRS232C化することも考えています。 スペック的には Windows98 が動作すればいいので、XXメーカにあった、XXという機種だった、という情報をお願いいたします。

  • RS232、RS232C、シリアルポート

    RS232とRS232Cと シリアルポートって何が違うのでしょうか。 くだらない質問で申し訳無いですが、 初心者に分かりやすく教えてください。

  • .NETのシリアルポートの送信で困っています

    環境はwindowsXP、C#、.NET Framework 2.0です。 rs232cを使ってデータを別のPCのアプリ(windowsXP、C)と送受信するプログラムを 作っています。 System.IO.Ports.SerialPort クラスを使用しており、 通常は問題なく送受信できます。でも、送信するデータを 10240バイト(10キロバイト)にすると受信側が4096バイトしか受信できません。 SerialPort.Write (Byte[10240], 0, 10240) で送信し、 WriteBufferSizeは1024×11に設定しています。(関係ないかも しれませんがReadBufferSizeも10240以上に設定 ) 送受信データを監視する別ツールで確認しても、送信側が4096しか 送れていないです。 他に設定を変更すべき所があるのでしょうか?要因が分からず 困っています。ご教授ください。

  • COM1(シリアル)ポートについて

    現在、ASUSのP5Qというマザーボードを使用しているのですが、 JDMプログラマというPICライタをシリアルポートに接続したいので、 COM1ポートにシリアルポート(RS232C)のブランケットを 取り付けました。 デバイスマネージャではCOM1ポートを確認できるのですが、 いざ、JDMプログラマの書き込みソフトICProgを使って、 PICの書き込みを行うと失敗し、 ほかのシリアルポート接続の機器を接続しても動作しませんでした。 USBシリアル変換ケーブルはJDMプログラマでは、 電圧の関係で使用できませんので、 直接シリアルポートで接続できるにはどうしたらいいか 分からなくて困っています。 わかる方教えてください。 よろしくお願いします。

  • シリアルとCOMポートとRS-232Cはどこが違うんですか?

    “シリアル”端子に“RS-232C”を接続し、デバイスマネージャーでCOMポートした。 これってどこがちがうんですか?

  • シリアルポートって何ですか?

    タブレットを使おうとしたのですが、マウスは動いてもタブレットが 動作しなくて 【BIOSの設定で、使用するシリアルポートが、使用可能になっているか確認】 【同一のシリアルポートを、他のソフトが使用していないか確認】 (ex._ デジカメ/シリアルマウス/モデムなど) という事をしなければいけないのですがどういう意味ですか?何をどうやって いいのか全く分からなくて困っています。初心者な質問ですみません。 それと、 【C:¥windows¥system.iniファイルをメモ帳などで開く】 これが開けないのですがどうすれば・・・?教えて下さい。

  • PCで使用可能なシリアルポート数を調べるには

    Visual C++でPCの使用可能なシリアル(RS-232C)ポートの総数又はチャンネル数を調べる方法がありましたら、教えて下さい。

  • 測定機器のデータをシリアルポートで受けたい。

    測定機器にはRS232C用プリンターがついているんですが、プリンターの代わりにパソコンのシリアルポートからデータを受けたいんですが方法はありますでしょうか?ちなみに測定装置は25ピンのタイプでパソコンは9ピンです。クロスのケーブルを使用し、ハイパーターミナルで受けた場合は数字・英語・カタカナは認識しますが日本語が文字化けして認識しません。もし日本語を認識させる方法がありましたら教えて下さい。

  • シリアル・ポート ってなんでしょうか?

    昔は Rs232C とかいう、大きな 差込があったなあ。確かモデムを使っていたころだっのた、ような 気がします。 今頃になって、へんな事をおたずねいたしますが、いまわたし エプソンの Na14sと いうちいさなノートPCに、SSDを乗せて、使っています。 最近は、GPS付きの、サイクルコンピューターが、面白くって使っていますが、これがなんとUSB接続でありながらシリアルポートを使っているらしいんです。私のノートは、どうやらこのポートが無いらしく USBに接続しても、まったく認識しないのです。それでこの質問ですが、なんとなく、わかってきました。 さいきんは、とんと見なくなりましたが、ペンティアムぐらいの古いパソコンなら、探せばありましょうね。 いつごろきえたのでしょうか。 IDEのHDDも、古くはSASIを追いやったSCSIも、もう刺さるソケット すらないし、複雑なきぶんです。