金高真悟の奇天烈(キテレツ)大百科

日々徒然なるままに

株式会社ニコシスの新入社員が毎日のあれやこれやを語ります。

目的は達成したが・・・・・まだまだ課題が多い( ;∀;) ウヒャ…

さて今日の成果は??(´-ω-`;)ゞポリポリ

こんばんは。
キテレツです。

さて、今日の成果ですが・・・・またまた行動を変えなければならない部分を見つけてしまったです。(;゚Д゚))
昨日のブログでも書きましたが、プログラミングの部分や設計に関わる部分の自分の行動を変えていく試みをしているのですが、今日もあれこれと自分で自分にツッコむところがありまして。

バーコードリーダーを解析して値を読み出せ!!!

ってテーマがありました。
んで、

  1. こやつ(バーコードリーダー)がそもそもどんなプロトコルなのか
  2. そのプロトコルはどうやったら受信できるのか?
  3. 受信するときの手順は確立できるのか?
  4. 受信するときの要件や前提条件は?
  5. どういうタイミングでどうやって使う??

ってのを考えながら、設計的な部分をやろうとしたんですが、、、、ついつい深くまで調べこんでしまって余計な時間を使ってしまってました。(´-ω-`;)ゞポリポリ
目的は、こいつの招待を知るところに絞らなければならないわけで、そこがブレちゃうと自己満足の世界になっちゃいますw

はい。。失敗①!!!です。

気を取り直し、アレコレ調べてみたら、RS-232CとHIDの両方をサポートしている。
ただし、今回手元にあるのはHIDでの通信しかできないみたい。

まずは動かそう

ってテーマに切り替えて、ドライバを探します。
簡単に見つかりました。
技術資料もPDFで公開されています。

しめしめ!!です。。゚ヽ(゚´Д`)ノ゚。 ヤッターン♪

で、ドライバ突っ込んだのでさっそく動作確認。
HIDプロトコルなので、キーボードエミュレーションな動作をするはず!!と想定しています。
はたして想定通りに・・・・なった!!

ヽ(・∀・)ノワチョーイ♪

キーボードのかわりとして動作

することを確認しました。
動作確認できたらさっそくプログラミング・・・・と行きそうな所をSTOPです。
ここで先走ってしまって過去に失敗しているので、もうちょい調べてみるように自分を軌道修正。

すると、アレコレとわかってきました。
こいつはどうも想像以上に高機能です。
さらに、RS-232Cをサポートしているので、STXやETXの制御コードももりこめます。
つまり、ある程度はプロトコルバーコードリーダー側で決められるようです。

これは嬉しい!!
プログラミングの負担がすこし減ります。
このあたりとても重要でして、単純にバーコードのデータを吐き出されるだけでは、どこが開始でどこが終了なのかわからなくなるんですよね。

調べてみると、気をつけなければならないこともわかってきました。
いくつかの国のキーコードに対応しているんですが・・・・キーボードをエミュレートしているので、実際のキーボードとバーコードリーダーのどちらで入力されたものなのか判断がつかない。

いや、、Windowsのメッセージの仕組みを考えれば、どうにかして判断できるのだろうけれど、、、、これ課題だなぁ。

さぁプログラミング・・・の前に、ちょっと設計です。

いきなりキーボード叩くとだいたいろくなことにならない過去があるので、いちおうちょっと設計。

テキストボックスにそのまま撃ちこむのも芸がない。
そもそも、キーコードを画面上にテキストボックスで表示しても意味がないきがする。
※必要かもしれない、、んが、相手方の担当者が不在だったから要求事項の打ち合わせできなかったんです。

WindowFormを表示して、ラベルを貼り付けて。。。。
それだけで十分かな。
WindowsFormのイベントでキースキャンすればいいだけかな。
やったことないから調べながらになるけれど・・・・

ってところまで考えてコーディング開始

こうやって文章に書いてみると・・・・考えてないなぁ。(´-ω-`;)ゞポリポリ
いくつかのパターンを予め考えるべきだったことにあとから気がつくわけです。

結論からいうと、「今日中にリーダーの値をラベルに出す!」ってミッションは成功しました。
んが、無駄なコードを書きまくりました。

完成したプログラムのコードは・・・・なんと20行くらいで完了してしまいました。
しかし、試行錯誤したりあれこれ試したコードは、多分1000行くらいいっちゃってるかなと思います。

途中、別のことや調べ事をやってましたが、5時間くらいかけてハードウェアの調査実験からコーディング完了。
最初から知ってたら・・・ってのは考えないこととして、もう少し早くおわらせられなかったものかと反省です。

コーディングのやりかたを調べる → コーディング → テスト → 失敗

ってループが多すぎるんですね。
コードサンプル見つけたらとにかく動かしてみてマッチするかどうかをチェックしてたんですが、サンプルを動かす前にもっと精査しなければ。

あとは・・・・・

そうだ。
目的に対して、シンプルな工程で実現できるようにしなければ。
いくつかの手順を経て目的を達成するんですが、出来るだけ少ないステップで目的が達成される方が望ましい。

結論

明日は考える選択肢を今日よりも増やしてみよう。
んで、資料を眺める作業を、今の3倍に仕様。
時間を書けて読むんじゃなくて・・・・表現が難しいけれど、斜め読みを繰り返したほうがキテレツにはあってるかもしれあい。
もちろん、過去の失敗も踏まえて目次重視で。

さぁ、明日はお客さんとお話して要件定義書類を作成するぞ。
んで、見積もりしなきゃです。
簡単なツールなので丁度いいかも。

後日には大物も待ち構えています・・・・(゚Д゚;)