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

日々徒然なるままに

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

ほっそい糸をたぐり寄せるように・・・って勝手にイメージ

ファームウェアが書き換えられない!! ・・・(・∀・i)タラー・・・

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

シリアル通信によるバーコードリーダー操作を行おうとしているキテレツですが・・・あれこれ障害満載です。

バーコードリーダーがマニュアル通りに動かない

んですね。
まぁ、組み込みではよくあることなんですが動きません。
その場合は、マニュアルが古いってオチが多いんですが、調べてみるとそうではありませんでした。

中途半端に動くっていう

最悪な状態です。
壊れているのか違うのかの判断ができないんですね。
あるモードはきちんと動く。
でも、別のモードは動かない。

マニュアル通りの設定が有効にならない。
どうする????

エェ━━━━(´Д`υ)━━━━・・・

ってなるわけですが、型式やらなにやら拾える情報を駆使して、Google先生に問い合わせるしかありません。
メーカーから直接購入なら、担当の営業さんがいるんですが、こういう時にメーカーさんのサポートって大切ですね。

英語のサイトでソレらしい情報が!?

見つかりました。
リンクを辿って行くと深いところにありました。orz

英語のサイトで翻訳しながら読んでみると、診断ツールとあります。
結構高級な部類に入る機械みたいなので、複雑なソフトウェアが乗っかってるらしいです。

正常に動作するかどうかを判断してくれるみたい。

キテレツ翻訳も怪しいですが、まぁ、、、、

(´・ω・)ノ 「壊れることはないだろうからやってみちゃえ!!」

でやってみました。
すると・・・・・

ファームウェアが古い

って診断結果が。(*゚Д゚*)ェ…

手元のこの機械。
入手ルートの問題で古いものが来ていたらしく、型式ではそれが判別できませんでした。
メーカーに問合せしようにも連絡先が分からず・・・・

どうやってファームウェアをアップデートするのか??

悩んでも仕方がないので、同じ商品扱ってる所にあつかましく聞いてみよう。(*´∀`)ノ

っていう暴挙にでることにしました。
※上司の了解を得てます。

すると・・・ありがたい!!
なんとご教示頂けました。
感謝感激です。 (*ノ゚Д゚)八(*゚Д゚*)八(゚Д゚*)ノィェーィ!

んが・・・アップデーターが途中で止まる。。。

Windows7の64bitOSです。
実行ファイルのバージョンも間違ってない。

なのに、ファーム更新ソフトが途中で止まる。
何が悪いのか・・・・

今日はココで撃沈。
明日も頑張ろう。

C#開発が始まりますよ~~!

久しぶりのシリアル通信 ヽ(・∀・)ノワチョーイ♪

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

ほんとーーに久しぶりのパソコンシリアル通信。
マイコン触らなきゃ絶対に触ることないだろうなぁと思っていたら触ることになりました。

HIDプロトコルであれこれは・・・結構シンドかった(´д`ι)

んですよ。
慣れもあるとは思いますが、HIDプロトコルでイベント検出してあれこれ制御って結構面倒でした。
面倒な上に、取りこぼしとかあったりして悩みます。

ソフトの書き方が悪いんだとは思いますが、何が正解なのかが分からないので、研究開発なノリになっちゃいます。・・・(・∀・i)タラー・・・

結局シリアル通信でアレコレ

って手法に切り替えることになりました。
昔ながらのやり方ですね。

幸い、C#にはシリアル通信コンポーネントが追加されています。
これを使って機能を実現しようと。

久しぶりに触ると懐かしいやら面白いやらで久しぶりに楽しいですね。

基本的な所を抑えておけば言語が変わっても一緒

だというのを痛感です。
パソコンでシリアル通信する時の基本的な流れ場、VB6の頃から変わりませんね。

まぁ、マイコンを例に考えてもH8でもARMでもAVRでも考え方は一緒なので、パソコンもそうなのかなと。
考えれば当たり前ですね。
部品の性能は変わったとはいえ、基本的な構成は一緒なわけですから。

でも安心はできません。(゚Д゚;)

データの扱いとか特性は、しっかりとテストしないと掌握できません。
バッファの取り方とかクリアの仕方とか。

通信データをメモリに保持してくれているはずなんですが、それが破壊される条件とか。

事前にパターンを洗い出しておく

ことが大切ですね。
考えられるパターンを考えられるだけ用意して、そのデータを使ってテストを行い、想定通りの結果になることを確認しなければ。
データの取りこぼしの無いように中尉です。

明日は、実際にバーコードデータを入れてみて、通信データをロギングしながらテストです。
バックグラウンドで監視して、データが揃ったら一番手前に自分を表示しなければなりません。

まずは、受信ルーチンを確立しなければ。

Windowsって大変!!と感じるのは、キテレツが知らないことが多いから・・だな。(´д`ι)

情報収集に明け暮れた一日

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

今日のキテレツは・・・・昨日からみょーーーーに調子が悪く。。。(´д`ι)
気合で乗り切った一日です。
明日、回復できるように行動しなければ。

情報収集

です。
何かと申しますと

(´・ω・)ノ 「バーコードリーダーとのHID通信とシリアル通信の仕組みと方法」

についてです。
どちらかと言うと、キテレツの大好物な分野ですね。
HID通信については初めてなのでどうやるのか興味津々です。
シリアル通信は・・・まぁ、だいたい想像は付く感じです。

HID通信は結構難しそう

そもそものやりたい事ですが

  1. ExcelとかWord使ってても、バーコードでQRコードを読み込んだら自作アプリが起動する
  2. 自作アプリ上にQRコードのデータを表示する

というのが大きな目的です。
この、「ExcelとかWord使ってても」という部分がくせ者ですね。
つまり、どうにかしてバックグラウンドでバーコードリーダーのスキャンを検出しなければなりません。
※これって運用サイドで「バーコードリーダー使うときは、アプリをアクティブにする」って運用をしてくれたら必要なくなるんですが・・・

サービスアプリとかバックグラウンドとか

よくわからない単語と仕組みが出てきました。
しっかり理解して使わないと、デバッグできないとか何が正しいのかわからないとか、、、迷宮入りしそうな雰囲気を感じます。

Windows7でハードウェア割り込み

を自由に設定することは出来ないんですね。
ハードウェアの全てはWindows7が管理しているので。(MS-DOSの頃は自由にできたそうです)
マイコンのように、「割り込みベクタに対して割り込み信号アドレスを割り当ててメモリフック」ってテクニックは不可能です。
※頑張ればできるみたいですが、イレギュラーに近い方法のようなので採用したくありません。

VisualStudioでC#開発

を行います。
C#Windowsのイベント(コンポーネント)を拾えるかどうかって所からスタートですね。
基本的な構造とか色々調べないといけません。
ソレがわかってないとソフト書けません。

キーボードを2つ接続したのと同じ状況になる

というのもポイントです。
HIDプロトコルバーコードリーダーを接続した場合、それはWindowsから見たらキーボードが接続されているとみなされるようです。
と言うことは・・・接続されているキーボードの種別を判定!?して、バーコードリーダー側のキーボードが反応したことを検出しなければなりません。

それも、バックグラウンドで・・・・
なかなかにハードル高そうです。

何かを作るときには、細部まで作れる自信を持ってから手を動かすべき。(なるたけ理想で終わらせない)

なんとか予定通りに終了。(´д`ι)

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

なんとか、予定通りに終了しました。
いや、正確には終了させました。

全てを完璧には出来ない状況

があるので、可能な限り目的に近づける努力をしながら作業を行った結果、本来の目標には程遠いですが、作業できない理由があるものなので仕方なく落とし所を決めました。
※もちろん相談して決めました。

データベースの設計者とアレコレお話しなければならない部分があるんですけれども、そのあたりがうまくいってないんですね。
まだ取り決めなければならないことも沢山あるみたいですし。

なんとなくですが、後に引きそうな・・・

いや、確実ですね。
今、進められない部分について、大どんでん返しの可能性が大いにある部分なのは明白。(゚Д゚;)
なので、今後の動きによっては、今日まで四苦八苦した部分について

(*´∀`)ノ 「やり直しかもぉ!!あはははぁ!!!」

って最悪のパターンも想定されます。
※是非このパターンは回避したい

そもそもですが、なぜそんなことになるのか??

というところですが、諸々の事情があったにせよ、一番最初の概要設計部分で話が雲掛かった状態になっちゃってた部分が今になって問題になってるんですよね。
資料作成も、通常のシステム開発と同様に「概要設計」で指針を設けて、可能な限り作るものをハッキリさせてからスタートするべきだったんではないかと思うキテレツです。
※まぁ、マニュアル通りに事が運ばないのも現場ではよくあることらしいのですが。

改めてシステム向け資料作成の手順

を考えてみます。
理想と現実は違うとはいえ、理想を外すと大変なことになるのも事実。

  1. 現状の全ての印刷資料の洗い出し
  2. 印刷資料に記載する情報の元ネタの洗い出し
  3. 洗いだした印刷資料で必要なものをピックアップ
  4. 洗いだした印刷資料の運営視点での利用タイミングの洗い出し
  5. フォントとかフォーマットとか、最低限の前提条件のすり合わせ
  6. 共通前提条件を盛り込んだテスト印刷資料をレビュー
  7. 業務ごとに区分けした印刷資料の設計
  8. 設計結果のレビュー
  9. 製造開始
  10. 適度に製造したものをレビュー
  11. 製造完了
  12. 運用レビュー
  13. 納品完了

こんな感じでしょうか。
今回、作業を進めていて痛烈に感じたのは

(´・ω・)ノ 「作るものが明確になっていないのに製造してはいけない」

当たり前のようだけれど、気がついたら手が動いている状況って結構あると思います。
作るものが明確になっていないのに製造してはいけない。
作るものを明確にするための部品作りとか検証として何かを作ることはあると思いますけれどね。

タスクは基本前倒しの方がいいですね。

パワーの使い方

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

パワーの使い方について。
まぁ、多くの人が実感していることを改めて感じただけではありますが、午前中は集中できますね。
幸い、キテレツには途中で飛び入り発生するタスクがありません。
なので、自分で調整しながら仕事を進められます。

全体を通してスケジューリングする

と日本語で書くと伝わりにくいのですが、

(*´∀`)ノ 「やることをこれだけって決めたら・・・・目標時間に終わるように調整する」

ってやりかたと

(*´∀`)ノ 「やることをこれだけって決めたら・・・・可能な限り前倒しでやっつける」

ってやり方があると思います。
さぁ、どっちが良いだろうと考えると、正直な所は

(*´∀`)ノ 「目標時間に終わるように仕事のスピードを調整する」

ってやり方のほうが楽チンです。
一日って流れの中で、時間をタスクの数で割り算すると、1タスクにかけられる時間が計算できます。
んが・・・それってですね。

(´・ω・)ノ 「キテレツさん!!あのね。こんな案件あるんですけれど。。。」

ってタスクが入ってきた時点で破綻します。
余裕が無いからですね。
それを、イレギュラーだから仕方がないと考えるか、かっちょわるいと考えるか。

(*´∀`)ノ 「急なお願いにもサクッと対応できて、作業も終わっている状態がかっちょいい」

のは、間違いないですね。
その状態に持って行くには・・・・

(*´∀`)ノ 「やることをこれだけって決めたら・・・・可能な限り前倒しでやっつける」

って根性で仕事してないと無理なようです。
相手の立場なら、急に降ってもアレコレ考えてくれてやっつけてくれる人だったら印象はとても良いです。

結果としてはできるだけ前倒しで

やったほうが良いですね。
そっちのほうがかっこいです。
※キテレツはそう思いました。

でも、それってキテレツには結構ストレスだったりします。
そこに楽しみを覚えるような何かが必要です。

自分ルール

予定通りに進んだり、早く作業が終わった時に、なんらかのご褒美を自分にあげるって作戦がアリかなと。
小さなことでも。
それが

ヽ(・∀・)ノワチョーイ♪ 「昼飯の時に、ちょっとお高いメニューにしてみるか!?」

とか

♪⌒ヽ(*゚ω゚)ノ ヤッターッ! 「3時の休憩の時にデザートとかいっちまうか!?」

とか。
何か嬉しい目標があったら頑張れそうな安いキテレツです。(゚Д゚;)

基本はタスクを前倒し

って意識で進めたほうがよさそうです。
余裕ができるなら定時で帰ればいいし。
※本来はそれがベストなんでしょうけれども。

ずーーーーーっとタスクというよりは、集中してタスクこなしたら、次のタスクまでの間にちょっと時間がある方が効率いい気がします。

んで、今日も1日前倒しのつもりでやったんですが、、、

(´д`ι) 「前倒しのつもりでやったのに、予定通りにしか進まんかった」

って結果になっちゃいました。
これ、前倒しの意識でやってなかったら間に合って無いですねぇ。orz

思い出しシステムが必要です

残り物がかなりしんどい(-_-;)

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

最後に残した制作物がかなり大変です。
適度に調整しとかないとあとが大変、、、というのを身を持って体験しております。

気持ちの切り替え

って、できたとしても思い出すのが大変ですね。
作業中に過去の仕事について質問があり、すぐに思い出せなくてちょっと待ち状態になっちゃったんです。
二ヶ月前のことなんですが、ほぼ完全に忘れています。

思い出す方法を作っておくべき

でした。
きっと皆さんはやってるんだろうなぁ。
思い出す方法を作っておくことを。

記録の取り方とか、きっかけづくりとか。
何か一つ、自分の中でシステム化しとかないと、また次も同じようになっちゃいます。

業務のメモの取り方

かな。
この日報にあれこれ書くのはできないので、検索できる自分の業務のデータベースをもつべきですね。
テキストベースで、さっと残せてサクッと検索できるもの。

研究してみよう。

面倒なことを後回しにすると、結局後で(´д`ι)ってなりますね。

大変だとわかっていても、面倒なのをあとに残しちゃう

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

(´д`ι) 「これ面倒だなぁ・・・しゃしゃっとできるやつを先にやっちゃえ」

って気分になることが結構有ります。
んで、第一弾の資料作成も終盤にさしかかり、面倒な奴しか残っていない状況になってるキテレツです。

やたら複雑で時間がかかるやつ

ばっかり残ってるので、進み具合がググっと落ちちゃいます。
しょうがないですね。
自分が蒔いた種です。

今月で第一弾を全て終わらせる段取り

を取ることになりました。
予定では、キテレツ以外のメンバーにもこの作業を手伝って頂ける予定でしたが・・・・
残念ながらキテレツ一人でこなさなければならない状況になりまして、頑張って全てを目標のレベルまで作り上げなければなりません。

スケジュールを引いてみた

んです。
結果、何とかなりそうです。
自分が健康で、それに集中できる状況であれば、1日で最低5ファイルは作れそう。
残りは30ファイルくらい。

今までの経験で、1ファイルで難しくても2時間くらい。
1日5ファイルを目標くらいが妥当かなと。
それ以上を目標にするのであれば残業が必要。

次にはまたC#ツールが控えています。

はい。
控えています。
ソレについては・・・・・まだ打合せも出来ていません。
納期は決まっているのに、まだ打合せできていない。・・・(・∀・i)タラー・・・
今の作業が終わってからしましょうって話なんですが、どんな仕様になるやら。
仕様によっては時間がかかるなぁぁぁと思いながら、ちょっとだけ心配しています。

他のメンバーの手伝い

も必要になる可能性も出てきました。
幸い、キテレツがやっている作業についてはなんとかなりそうなんですが、他のスタッフの作業が押してしまっています。
分担できる所は分担させて頂いて、チームとしての最終目標にすこしでも近づけるように尽力しなければ。