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

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

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

Re[2]: MSCommで受信したデータの一部を変数に格納するには


(過去ログ 83 を表示中)

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

■48819 / inTopicNo.1)  MSCommで受信したデータの一部を変数に格納するには
  
□投稿者/ naota (1回)-(2010/04/14(Wed) 23:22:23)

分類:[VB6 以前] 

使用言語:visual basic6.0
開発環境:windows2000

こんにちは、VBはじめたての初心者です。MSCommコマンドを利用してマイコンと
通信するプログラムを作成中なのですが、わからないことがあるので質問させていただきます。

public aub form_load()
MSComm1.CommPort = 3 'ポート番号設定
MSComm1.Settings = "115200,N,8,1" '設定
MSComm1.PortOpen = True  'ポートオープン
MSComm1.Handshaking = comNone    'フロー制御無し
MSComm1.RTSEnable = False        'RTS制御無し
MSComm1.RThreshold = 1      '1バイト受信毎にOnCommイベント発生

Dim txBuffer As String

End sub

'テキストに表示した受信文字列を変数に格納、さらに必要な文字列だけ抽出する
Private Sub botan_Click()

txBuffer = Text2.Text
x = InStr(1, txBuffer, "e" & vbCrLf, 1)
txBuffer = Mid(txBuffer, x + 3, (Len(txBuffer) - (x + 2)))
Text1.Text = txBuffer       'txBufferの内容確認用

End Sub

Private Sub cmdr_Click()

Text2.Text = ""
MSComm1.Output = "r a0 s 00 j ff" & Chr(13) 'マイコンのデータを読み込むコマンド

End Sub

Private Sub MSComm1_OnComm()

Select Case MSComm1.CommEvent
Case comEvReceive
    Buffer = MSComm1.Input
    Text2.Text = Text2.Text & Buffer
・
・
・
End Select
End Sub

おおざっぱですがこのようなプログラムをつくりました。
目的は受信された文字列(テキストに表示)を変数に格納、さらに必要な文字列だけ抽出する
ことなのですが、このプログラムだとデータを読み込むコマンドを送るボタンとそのデータを
変数に格納して必要な部分を抽出するボタンを二回押さなければならず面倒なので、botan_Click()
の中の命令をそのままcmdr_Click()に入れたのですが、そうするとエラーが出てしまいます。
いろいろと試したのですがどうやらtxBufferの中に受信データが入ってくれないみたいです。
原因は何か。何かいい方法がないかアドバイスいただけたら幸いです。
やりたいことは、一回のボタンクリックで変数に受信データのほしいとこだけを格納させることです。
よろしくお願いします。

引用返信 編集キー/
■48830 / inTopicNo.2)  Re[1]: MSCommで受信したデータの一部を変数に格納するには
□投稿者/ Jitta on the way (609回)-(2010/04/15(Thu) 07:09:00)
No48819 (naota さん) に返信
> 使用言語:visual basic6.0
> 開発環境:windows2000
>
> こんにちは、VBはじめたての初心者です。MSCommコマンドを利用してマイコンと
> 通信するプログラムを作成中なのですが、わからないことがあるので質問させていただきます。
>
> public aub form_load()
> MSComm1.CommPort = 3 'ポート番号設定
> MSComm1.Settings = "115200,N,8,1" '設定
> MSComm1.PortOpen = True 'ポートオープン
> MSComm1.Handshaking = comNone 'フロー制御無し
> MSComm1.RTSEnable = False 'RTS制御無し
> MSComm1.RThreshold = 1 '1バイト受信毎にOnCommイベント発生
>
> Dim txBuffer As String
>
> End sub
>
> 'テキストに表示した受信文字列を変数に格納、さらに必要な文字列だけ抽出する
> Private Sub botan_Click()
>
> txBuffer = Text2.Text
> x = InStr(1, txBuffer, "e" & vbCrLf, 1)
> txBuffer = Mid(txBuffer, x + 3, (Len(txBuffer) - (x + 2)))
> Text1.Text = txBuffer 'txBufferの内容確認用
>
> End Sub
>
> Private Sub cmdr_Click()
>
> Text2.Text = ""
> MSComm1.Output = "r a0 s 00 j ff" & Chr(13) 'マイコンのデータを読み込むコマンド
>
> End Sub
>
> Private Sub MSComm1_OnComm()
>
> Select Case MSComm1.CommEvent
> Case comEvReceive
> Buffer = MSComm1.Input
> Text2.Text = Text2.Text & Buffer
> ・
> ・
> ・
> End Select
> End Sub
>
> おおざっぱですがこのようなプログラムをつくりました。
> 目的は受信された文字列(テキストに表示)を変数に格納、さらに必要な文字列だけ抽出する
> ことなのですが、このプログラムだとデータを読み込むコマンドを送るボタンとそのデータを
> 変数に格納して必要な部分を抽出するボタンを二回押さなければならず面倒なので、botan_Click()
> の中の命令をそのままcmdr_Click()に入れたのですが、そうするとエラーが出てしまいます。
> いろいろと試したのですがどうやらtxBufferの中に受信データが入ってくれないみたいです。
> 原因は何か。何かいい方法がないかアドバイスいただけたら幸いです。
> やりたいことは、一回のボタンクリックで変数に受信データのほしいとこだけを格納させることです。
> よろしくお願いします。
>

ん?何時受信が完了するかわからないから、ボタンは2つ要るのでは?
引用返信 編集キー/
■49129 / inTopicNo.3)  Re[2]: MSCommで受信したデータの一部を変数に格納するには
□投稿者/ naota (3回)-(2010/04/23(Fri) 10:23:45)
連絡が遅れて申し訳ありません。
なんとか解決することができました。
貴重なご意見どうもありがとうございます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

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

管理者用

- Child Tree -