仕事の関係で、最近研究してるもの、ICカード。

何故かというと、私の会社はまだ紙のタイムカードを打っていて、毎月その集計を事務さんがやっているわけだ。

そこで、カードかざすだけで勤怠を記録出来れば、集計も自動で出来れば手間が浮くんじゃないか、余った人手で他の仕事が早く終わらせれるようになるんじゃないかということで、作ってみた。

動画では1台で2度連続で打ってるけど、2台つなげて処理を変える事も出来るし、特定ICカードの時だけ管理メニューを表示する機能を付けたりも出来る。

SQLiteを組み込んで、スタンドアロンで稼働させて、色々集計とかやってもいいし、サーバーに接続して支店の端末から情報を吸い上げるのも楽しそう。

1社員あたり複数のカードを登録する事も出来るし、スマホのNFC機能でも使える。

プログラムの大まかな流れは以下の通り。

1.カードリーダーを待機状態にする
2.カードが置かれたらイベント実行
3.カードと通信し、カードのIDmを取得
4.IDmをSHA256でハッシュ値化して、さらにBase64で変換する
5.ユーザーリストのキーから、IDm変換後の情報と一致するものを探す
6.出社の情報を記録

ライブラリとして、PCSCとPCSC.ISO7816を使用。
これらはNuGetで簡単にインストール出来る。

参考にしたい方のために、作りかけではありますがZIPしてソースを置いておきます。

ダウンロード → [PCSCテスト]