【WPF】パチスロデータカウンターアプリの作り方[徹底解説]

記事内に広告を含みます

完成品

実際にデータカウンターアプリを動かしてみたらこんな感じです。

この記事が自分でデータカウンターを作ってみたいという方の参考になれば幸いです。

では中身を見ていきましょう。

システム

システム構成は、データ収集機、PC、パチスロ実機を繋いだ構成となります。

データカウンターの構成図

ハードウェア

データカウンターシステムのハードウェアです。

パチスロ実機パチスロ 新世紀エヴァンゲリオン 〜まごころを、君に〜
ArduinoArduino Nano Every
PCWindows11 64bit

ユニバーサル基板上にArduinoをプルアップ抵抗とともに実装し、データ収集機として取り扱います。

ソフトウェア

データ収集機とPCに対し、それぞれ専用のソフトウェアを開発します。ソフトウェアの名称は下記とします。

データ収集機DataCollector
PCDataCounter

このうち、データ収集機側のソフトウェア『DataCollector』は、以前の記事で作成しましたのでこちらをご参照ください。

データカウンター(PC)解説

開発環境

開発環境はMicrosoftの『Visual Studio Community 2022(64bit) Ver.17.10.4』を使用します。インストール方法については、こちらの記事をご参照ください。

UIフレームワーク

WPF(Windows Presentation Foundation)という.NET Frameworkに含まれるUIフレームワークを使用します。

もちろん他のUIフレームワークでも問題ありません。

使用ライブラリ

品目バージョン用途
Prism.Unity9.0.537MVVMの設計パターンのフレームワーク
ScottPlot.WPF5.0.47グラフ描画のためのライブラリ
System.IO.Ports9.0.0シリアル通信クラスを利用するための入出力ライブラリ
System.Text.Json9.0.0JSON形式のデータ加工のためのライブラリ
Microsoft.Xaml.Behaviors.Wpf1.1.135XAMLで「Interaction.Triggers」を使用するためのライブラリ
MaterialDesignThemes5.1.0WPFをモダンなUIデザインにするためのライブラリ
MahApps.Metro2.4.10WPFをモダンなUIデザインにするためのライブラリ
MahApps.Metro.IconPacks5.1.0Metroに合うアイコンのライブラリ

アプリケーションを開発する際には、ライブラリを使用するのが一般的です。今回使用したのはこちらです。

特に『Prism.Unity』、『ScottPlot.WPF』、『System.IO.Ports』、『System.Text.Json』については、別の記事で詳細に解説していますのでご参照ください。

また、『MaterialDesignThemes』、『MahApps.Metro』、『Microsoft.Xaml.Behaviors.Wpf』については、他のサイトで詳しく解説されているので、そちらをご参照いただけたらと思います。

フローチャート(UML:アクティビティ図)

開始ノード

アクティビティの開始を表します。

アクション

具体的に行う操作や作業を表します。

~を…する』のように目的語+述語 程度の粒度で揃えると、理解しやすいアクティビティ図になります。

終了ノード

アクティビティの終了を表します。

受信ノード

イベントの発生の待機を表しています。

送信ノード

イベントの通知を表しています。

開発したデータカウンターのアクティビティ図

DataCounterのプログラム全体フローチャート(アクティビティ図)です。

橙色のレーンがModel、青色のレーンがViewModelを表しています。フローの始まりは一番左のシリアル通信クラスで、受信をきっかけにして全体のフローが流れていきます。

また、フローを見るとViewModelでやることは、Modelのメソッドの呼び出し』と『プロパティの変更通知を受けてViewの表示を更新する』ことのみです。

これがMVVMの設計コンセプトであると私は理解しています。詳しくはこちらの記事をご参照ください。

ソースコード

こちらがソースコードです。

App.xaml.cs

MODEL

VIEWMODEL

VIEW

プログラムはこちらのGitHubに置いてます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です