タイトル : Re^4: Chr関数 VB2010でおかしい? 投稿日 : 2017/08/02(Wed) 20:31 投稿者 : MSAKA
> > > シリアル通信ということは、System.IO.Ports.SerialPort クラスですかね。 > > > 今回問題となっている処理は、どのようなコードなのでしょうか? > > >>> sample_0008 と言うものをWebからダウンロード 2010用に変換したものです > > 「それ」を何処から拾ってきたのかを書いてくださいな。(^_^;) > > 検索したら下記がヒットしましたが、これですかね? > http://kana-soft.com/tech/sample_0008_4.htm > > だとしたら、System.IO.Ports.SerialPort クラスのことですね。 > > ※注:上記 URL には "SerialPortコントロール" という表記がありましたが、 > 実際にはコントロール(Control 継承クラス)ではなく、 > コンポーネント(Component 継承クラス)に属します。 > 「それ」を何処から拾ってきたのかを書いてくださいな。(^_^;) > > 検索したら下記がヒットしましたが、これですかね? > http://kana-soft.com/tech/sample_0008_4.htm >>> ハイ そうです > > だとしたら、System.IO.Ports.SerialPort クラスのことですね。 > > ※注:上記 URL には "SerialPortコントロール" という表記がありましたが、 > 実際にはコントロール(Control 継承クラス)ではなく、 > コンポーネント(Component 継承クラス)に属します。>>> この辺は頭が痛くなります *何故拾ってきたのか >>> EasyComm(多分ご存知でしょう)を使いVBAでシリアル通信を 行うように進めてきたのですが機器側から信号を送ってきたときの受信イベントができない (何か方法があるとは思いますが私の知識では思い浮かばず) 色々調べていたらそれが可能な サンプルがあったのでコレコレと思ったのです・・・しかし VB2010等を勉強しなければ ならない・・・という作業が増えてしまいました 早々やってみました 仰せのとおりの結果ですが a AS Char = Chr(&H6) は "-" ですが VBAでの TX$ = Chr(&H6) は "・" で明らかに違います これは何故でしょう で Charで試みましたが相手機器には届きませんでした 機器へのコード例(無線機を送信状態にする)を示してみます(変数はグローバル変数で定義) Private Sub CommandButton6_Click() '送信 PR$ = Chr(&HFE) + Chr(&HFE) ’先頭に付ける同期用コード RE$ = Chr(&H66) ’無線機のアドレス TX$ = Chr(&H0) ’PCのアドレス FI$ = Chr(&HFD) ’メッセージ終了コード CMA$ = Chr(&H1C) ’無線機に対するコマンドコード CMAS1$ = Chr(&H0) ’ サブコマンド CMAS2$ = Chr(&H1) ’ サブコマンド TxString = PR$ + RE$ + TX$ + CMA$ + CMAS1$ + CMAS2$ + FI$ ec.Ascii = TxString ’Portへの書き込み End Sub 無線機に「送信状態にしろ」そうすると「したよ」と返してくる 無線機から返ってくるのも基本的には同じ (REとTXの順序が逆になりますが) 良く判っていない おじいさんにつき合わせてすみません |