卒業研究でWindows Formを使って開発をした話
はじめに
こんにちは
宮治研究室4年の赤坂匠です。今日は、C#未経験の状態から、卒業研究の開発のために、Windows Formを使って開発をした話をしたいと思います。自分が開発をした感じ、Windows Formなどの記事は本当になくて、10年前の記事を読んだり、Udemyを見ながら開発に取り組みました。
なぜ、Windows Formを使って開発をしたのかは、先生に「簡単だからやってみなよ」って言われたのが始まりです。あの時の先生を恨みたいです。(笑)
開発環境
- RFIDリーダーアンテナ(下記記載のもの)
- RFIDタグ
- PC(Windows 11 x86)
- Visual Studio
- 下記記載のSDK環境
作成したもの
今回は、上記の画像のようなものを作成しました!
RFIDリーダーアンテナをPCに接続して、タグから人を検出し、通過タイムを出してくれる優れものです!
詳しくは、論文で書いているので、気が向いたら読んでみてください。
使用したもの
https://rfid.tss21.co.jp/product/dotr-3000/
株式会社 東北システムズ・サポート様の商品を購入し、無償提供いただいているSDKを使って開発を進めました。問い合わせをすると、ダウンロードが可能なので、ぜひ使ってみてください!
開発でこまったこと
開発をしていくうえで困ったことがたくさんありました。
- DLLファイルについて
SDKの中には、DLLファイル(.dll)というものがありました。DLLファイルとは、複数のアプリケーションが共通して使用できる汎用性の高いプログラムをOSにファイルとして保存し、アプリケーションの実行時に必要に応じて利用する方法(https://support.nec-lavie.jp/support/pc/yougo/03_ei/ei070.html) とあります。つまり、SDKの中で、開発済みのモジュールをよんだりできるもの、くらいの認識で自分はいます。このファイルを読みこんで開発をしていきます。 - Buildが通らない
普段、ソフトウェア開発をしている自分にとって、OSが違うくらいでBuildが通らないなど思ってもいませんでした。Buildボタンを押す前に、CPUの設定が自分のPCのものと一致しているかどうか確認をしましょう!私はAny CPUでやっていて、Buildが通らず、x86で実行したらBuildが通りました!
コードについて
SDKの中身について開示して解説をしてしまうと、著作権的によくないと思ったので、自分が開発したコードをちらっとお見せするぐらいにします。
StartButton.Location = new Point(8, 61);
StartButton.Name = "StartButton";
StartButton.Size = new Size(113, 37);
StartButton.TabIndex = 3;
StartButton.Text = "スタート時間";
StartButton.UseVisualStyleBackColor = true;
StartButton.Click += StartButton_Click;
Windows Formでは、ツールボックスというものから、GUIでボタンやテーブルの作成が可能です!GUIで動かした後、designer.csというファイルが変更されていると思います。逆に言うと、コードからも変更が可能ということです!
private static string GetConnectionString()
{
var builder = new SqlConnectionStringBuilder
{
DataSource = @"your-pc-info",
InitialCatalog = "db-name",
IntegratedSecurity = true
};
return builder.ToString();
}
private DataSet ExecuteSqlQuery(string connectionString, string query)
{
using (var connection = new SqlConnection(connectionString))
using (var adapter = new SqlDataAdapter(query, connection))
{
var dataSet = new DataSet();
adapter.Fill(dataSet);
return dataSet;
}
}
// 呼び出し側のコード
// SQL接続文字列を取得
var connectionString = GetConnectionString();
// SQLクエリを実行し、データセットにデータをいれる
var dataSet = ExecuteSqlQuery(connectionString, "your sql");
あんまりきれいなコードじゃないとは思うのですが、SQLの実行をするために、SQL Serverとの接続部分をお見せします!こんな感じで簡単に接続ができて、データの取得はSQLから実行をするだけです!自分はDBにデータを入れたり、取得したりしただけなので、これで簡単にできたのは驚きでした!
さいごに
今からWindows Formを開発しようとしている方々は、参考にする記事の少なさで絶望をしていると思いますが、この記事がその方々の少しでもお役に立てれば幸いです。IoTで開発をする楽しさがとても分かりました。
間違っている点や、わからない点があればコメントください!!