C++でシリアル通信サンプルを動作させる記事ですが。最近2年前の再現でVS2017でビルドしてもエラーがでて記事の内容の再現ができなくなりました。VSを使ったシリアルプログラミングを調べてみると、素人がC++をいじってWIN32でWINDOWSアプリをつくる意味がないらしいことをしりました。FRAMEWORKを使わないと意味がないということです。C++でシリアルプログラムはややこしくて、初心者はとっつきにくい2年前の記事を見て、本ブログでは、自分で実施した記事を基本にしてるのでVSのC++は、無理だと判断して、新たにVS2019のVisualBasicでシリアル通信プログラムにトライしてみました。●VBAとVB.NETの違いExcelVBAは、インタープリタで昔からのBASICの形態ですが、VB.NETは、VisualStudioの言語としてコンパイラ言語です。FRAMEWORKという環境を使ってますので、C++と同様な速度で実行できるBASIC言語です。そのかわり、WINDOWSシステムで使うための手続きが入っています。私が初めて触れるのがスレッド処理です。リアルタイムOSでは、タスクが複数同時に動作するのでスレッド処理をしてプログラムの動作を制御しないとリアルタイムで動かないので、その処理がVB.NETのシリアル通信プログラムにも必要な点が、相違点として新しい学習ポイントとなります。同一な点は、フォームアプリケーションであること、フォーム上のオブジェクトのProperty基準でイベント起動型のプログラム構造になっている点は、同じですので、VBAに慣れた方は入りやすいです。Propertyの種類がVBAの何倍もあって、同じ意味のものがあまりありません。2019をインストールMSのページにいって、ダウンロードしますが、30分程度時間かかります。https://visualstudio.microsoft.com/ja/vs/使うのは、WINDOWSフォームアプリケーションですが、私は、SSDの余裕があったのでVS2019全部インストールして50GBになってしまいました。Windowsフォームアプリケーションで作成すればあとは、フォームのプログラム作成に移れます。フォームアプリの導入解説は、MSDOCにありますhttps://docs.microsoft.com/ja-jp/visualstudio/ide/create-a-visual-basic-winform-in-visual-studio?view=vs-2019●CONTEC社のVB用シリアル通信プログラム解説ページhttps://www.contec.com/jp/support/basic-knowledge/daq-control/serial-communicatin/タグが順についていて、3個のタグを見ながらプログラムを組めば完成しました。プログラミングの方法=>オープン、クローズ=>データ受信だけです。これらを見ながら、いざフォームをつくってプログラムを作ります。プログラム作りだけなら小一時間で動作確認までできました。その前に●マイコン側プログラムマイコンで、9600bpsで文字を送信するプログラムを作っておきます。”NO.i”を0.2秒ごとに送信します。計測器からでも、Arduinoでもmbedでもシリアルで9600bps短い文字送信ならなんでもかまいません。{pc.printf(“No%d\n\r”,i);i++;wait(0.2);}}●プログラム作業CONTECのページ順に作りますが、まとめてメモします。オブジェクトをドラッグドロップこれが、VBの良さです。他の言語なら、ライブラリーを呼び出したり登録するのでややこしい記述があるのですが、VBでは、TOOLボックスからドラッグドロップでボタンとかテキストボックスと同等の扱いでプログラムに登録できます。3プログラムをコピペCONTEC社のプログラムを取捨選択してつなぎ合わせます。私の場合は、とにかくシンプルなプログラムということで以下のものでとりあえず動作しました。スレッド処理もわからないので、そっくりコピペです。ソリューションファイルのZIPも添付しておきます。開始ボタンを押すとフォームが表れて、COM番号を入力して接続ボタンをおすと受信したデータが下のテキストボックスに表示されるはずです。●以後このプログラムをベースに表示をかえたりCSVファイル保存や、速度をあげたりいろいろできますので、機会をみていじっていきます。その後、シリアルの調査をしていたら、WINDOWSでのシリアル通信について詳細な解説がありました。コメントをキャンセルメールアドレスが公開されることはありません。記事再生が慣れてきたので、開発活動を主にできるようになりました。本日は、踏力ベクトル計測の検討です。