2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MYJLabAdvent Calendar 2023

Day 20

卒業研究でWindows Formを使って開発をした話

Last updated at Posted at 2023-12-19

卒業研究でWindows Formを使って開発をした話

はじめに

こんにちは
宮治研究室4年の赤坂匠です。今日は、C#未経験の状態から、卒業研究の開発のために、Windows Formを使って開発をした話をしたいと思います。自分が開発をした感じ、Windows Formなどの記事は本当になくて、10年前の記事を読んだり、Udemyを見ながら開発に取り組みました。
なぜ、Windows Formを使って開発をしたのかは、先生に「簡単だからやってみなよ」って言われたのが始まりです。あの時の先生を恨みたいです。(笑)

開発環境

  • RFIDリーダーアンテナ(下記記載のもの)
  • RFIDタグ
  • PC(Windows 11 x86)
  • Visual Studio
  • 下記記載のSDK環境

作成したもの

systemResult2.jpg

今回は、上記の画像のようなものを作成しました!
RFIDリーダーアンテナをPCに接続して、タグから人を検出し、通過タイムを出してくれる優れものです!

詳しくは、論文で書いているので、気が向いたら読んでみてください。

使用したもの

https://rfid.tss21.co.jp/product/dotr-3000/
株式会社 東北システムズ・サポート様の商品を購入し、無償提供いただいているSDKを使って開発を進めました。問い合わせをすると、ダウンロードが可能なので、ぜひ使ってみてください!

開発でこまったこと

開発をしていくうえで困ったことがたくさんありました。

  1. DLLファイルについて
    SDKの中には、DLLファイル(.dll)というものがありました。DLLファイルとは、複数のアプリケーションが共通して使用できる汎用性の高いプログラムをOSにファイルとして保存し、アプリケーションの実行時に必要に応じて利用する方法(https://support.nec-lavie.jp/support/pc/yougo/03_ei/ei070.html) とあります。つまり、SDKの中で、開発済みのモジュールをよんだりできるもの、くらいの認識で自分はいます。このファイルを読みこんで開発をしていきます。
  2. Buildが通らない
    普段、ソフトウェア開発をしている自分にとって、OSが違うくらいでBuildが通らないなど思ってもいませんでした。Buildボタンを押す前に、CPUの設定が自分のPCのものと一致しているかどうか確認をしましょう!私はAny CPUでやっていて、Buildが通らず、x86で実行したらBuildが通りました!

コードについて

SDKの中身について開示して解説をしてしまうと、著作権的によくないと思ったので、自分が開発したコードをちらっとお見せするぐらいにします。

form1.designer.cs
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というファイルが変更されていると思います。逆に言うと、コードからも変更が可能ということです!

form1.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で開発をする楽しさがとても分かりました。
間違っている点や、わからない点があればコメントください!!

2
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?