新年あけましておめでとうございます。
改めて、今年度もこのBlogを継続させて頂きます。昨年中Blogにお立ち寄りいただいた方にはとても感謝しております。継続できるのも、皆様のおかげです、改めて本年もよろしくお願いいたします。
昨年は、いろいろなことがございましたが、特に震災については、多くの方がなくなった悲しもございますが、それに伴いまして、改めて人と人の絆というものも見直されたのでは無いのでしょうか?
人は決して、一人で生きているわけではなく、多くの人と関わって生きている、ということを改めて感じた一年でもありました。昨年中も多くの方に助けられて、今年の私がいることを改めて思い直したいと思います。
絆と言いますと、やはり駅伝というものは、一人のヒーロがチームを引っ張るということもありますが、チームみんなの絆が勝利をもたらすスポーツですね。
今年も、箱根芦ノ湖のゴールまで応援に行ってきました。
年頭のご挨拶ですので、もっと晴れ晴れとした写真が取れると良かったのですが、あいにくの曇り空でした。しかし気温もあまり上がらないので、選手にとっては非常に走りやすかったのではないでしょうか?
さて、駅伝をゴールで待っているのは良いのですが、何と言っても情報が不足します。そこでこんなサービスがありました。
世の中便利になりましたね。
周りの人もドキドキしているようで、私がもつ情報が気になるようです。いろいろな方がいろいろな想いをもって、応援にきているのですね。
さて、時間は年末に戻りますが、実家からスカイツリーを見ました。
年末限定のライトアップです。
今年も、いろいろな情報をお伝えしたいと思います。
一年間、宜しくお願いいたします。
美齊津さんのブログでは、海から工場を見学していた話が載っていました。それでは、私は中から見学してみたいと思います。
子供の頃は社会科見学というものがあり、我が家の娘達も年に数回学校の授業でいろいろな会社を見学しておりますが、私も社会科見学をしたいと思い、早速工場見学をして参りました。
工場見学といいますと一度行ってみたかったのが、ビール工場です。
なぜかといいますと、中央高速道路を走っているとついつい口ずさんでしまう歌は有りませんか?そう、あの松任谷由実の歌です。
「中央フリーウェイ~、右に見える競馬場~左はビール工場。。。」
という訳で、娘と工場見学するには若干強引でありますがユーミンの歌で憧れていたビール工場へ早速出発です。
おお、確かにアロマホップの香りがします。(もちろん子供はオレンジジュースです)
さて先ほどの、「ユーミン」の歌には続きがあります。「この道は~~まるで滑走路、夜空に続く」と言う訳で次は航空会社です(笑)

ここでは、飛行機がなぜ飛ぶのかから説明してくれます。飛行機が飛ぶ理由は理科の勉強で習っています。飛行機の羽根の形に理由があり上空の空気が早く移動すると気圧が薄くなり、羽を吸い上げるように力が働きます。。。しかしどうも式とか理屈で説明されてもという感じがしますね。そこの説明員の方は唇の下側に紙をおいて、力強く息を吹きます。するとどうでしょう、唇の下側にある用紙がまさに吸い上げるられるように持ち上がるのです。なるほど「百聞は一見にしかず」ですね。どんな教科書よりもわかりやすい気がします。プログラムも本で覚えるだけでなく、実際に書いて動かしてみることが覚えるためには一番の近道だと思います。
さて、この航空会社ではヘルメットをかぶって実際の航空機の整備場に入らせてもらえます。整備場はもちろん飛行場の中にありますから、直ぐ目の前は滑走路です。丁度この日は運良く風向きの都合で目の前で飛行機が着陸するところを見ることが出来ました。
評価用ですので、特に小数点はなしに0~100%まで設定しますので、初期値をそれぞれ以下のように設定します。
プログラムとしては以下ステップで行います。
- 画像ファイルの取り出し。
- 透過率の取り出し。
- 画像データ(ピクセル値)の取り出し。
- 合成処理
- 表示処理
[画像ファイルの取り出し]
前回のBlogで紹介しました表示作業の時に、画像ファイル(ビットマップファイルの中身)を以下のデータに格納致しました。
BitmapData[num];
今回もキーをもとに取り出します。
[画像データ(ピクセル値)の取り出し]
ピクセルデータについては、8bitの色情報(R,G,B)と透過率情報(A)を合わせて32bitのデータとなっております。そこで、構造体として取得可能となるように以下の共有体を作成しました。
残りは合成処理になります、こちらについては、次回ご紹介させて頂きます。
さて、工場見学をしていて感じたことは、説明説する方からその仕事が大好きだという雰囲気を感じることでした。航空会社ですと、参加者から「なんか珍しい形の飛行機ですね。。」と言われますとうれしそうに「あれはMD-90」ですね。。「あの飛行機はエンジンが翼の下についていないので。。」とかなり技術的なことを説明してくれます。
飛行機が好きなんだなぁと感じることが多々有りました。
最後にもう少しホップについて理解するために今度はビターホップを勉強。。
ひっく。。 (*^。^*)
覚えたことを忘れそうです。
さて、秋はスポーツの秋といわれる季節ですね。
この時期まだ、暖かさが残っています(正直まだ暑いですね)ので、グランドにシートを敷いてスポーツのイベントを観戦しているのは非常に楽しいものです。

さて、スポーツの秋と言いますと、何と言っても、運動会ですね。近所でも運動会のお知らせ等が回覧板で回ってきます。私は運動が好きですから、基本参加方向です。
しかし、親となって、どちらかといいますと運動会を見る側が多くなってきています、今までは小学校の運動会だったのですが、中学生/高校生の運動会を見ると、いままでのものとはかなり違います。体育祭の応援はもちろん、進行や案内等すべて学生による手作りです。この手作り感が非常によく、ここまで体育祭を創り上げるまでの苦労等を考えると、「大変だっただろうな?」と思うと共に「楽しんでいるなぁ」と思うと、もう一度学生をやりたくなります。
そして何と言っても迫力が違います。特に、迫力があったのが棒倒しです。
いや~~、高校生がぶつかり合うってすごいですね。自分もやっていたつもりなのですが、改めて見るとあの圧力の中に自分の体をおいておくことが考えられません。
今あの圧力の中にいたら、{{{{(+_+)}}}}
<画像処理3>
前回のBlogで「読み出しの準備」、「ファイルの選択」、「画像の表示」の3Stepで説明しました。今回はStep3として、指定された画像ファイルを表示することにします。
<3.画像の表示>
画像の表示については、[表示]ボタンを押下された際に画面左側に該当するファイルを表示する動作を実装します。
画像を表示するために、ピクチャーボックスを利用します。また、今回も前回同様のキーワードでピクチャーボックスをハッシュテーブルに関連づけます。
ハッシュテーブルの宣言およびTableへの登録については以下の手順で行うことが可能です。
ここでは、今回使用する変数をすべて表示しています。
また、前回画像ファイルを選択する際に共通的な処理にしましたが、今回も同様に[enum]を引数として画像表示を行うための共通関数[showImage()]を作ります。
さて、ここで呼び出されます[showImage()]関数ですか以下の手順で作成します。
① ファイル名の取得
② 該当ビットマップファイルを開く
③ ビットマップファイルの中身を取得 (ここでは400×400[固定]で行なっています。)
④ 表示先ピクチャーボックスの取得
⑤ ピクチャーボックスに表示
[①ファイル名の取得]
関数としての共通化を図るために、引数であるenumを元にテキストボックス名を取得します。
[②該当ビットマップファイルを開く]
取得したテキストボックスに記述されているファイル名からビットマップファイルを開きます。該当するファイルがなかったりする場合もありますので、例外処理も記述します。
[⑤ピクチャーボックスに表示]
ピクチャーボックスに表示する場合は、ピクチャーボックスの[Image]にbitmapファイルを登録するだけでOKです。しかし、ピクチャーボックスのサイズと表示する画像ファイルの大きさが同じとは限りませんので、画像サイズをあわせる必要があります。
[StretchImage]をつけた時と、付けない時では表示画像がこんな感じで異なります。
StretchImage有り StretchImageなし
ようやく、画像の表示ができました。
さて、運動会の花形と言いますとリレーですね。
各チーム必死になってバトンリレーをしていきます。

ここで、いろいろなドラマが生まれますし、見ていて非常に迫力があるところです。
さて、黄色チームのバトンはどうなのでしょうか?
今年は、観光コースの一つに「知恩院」を入れてみました。
実は、法然上人がなくなられたのが西暦1212年と言われておりますので、今年(西暦2011年)は800年の節目となるからです。昨年も目の前を通過したのですが、立ち寄らなかったので今年は節目ということで参拝してみました。
こちらは、よくある写真などで出てくる銀閣なのですが、やはりこれだけ見ると「やっぱり銀色に塗っていないんだ」と思ってしまいますが。
しかし、銀閣寺を単純に近くで見るより、私は庭園(小山)を含んだ景色の方がすばらしいと感じています。
- 読み出しの準備
- ファイルの選択
- 画像の表示
<1.読み出しの準備>
ファイルを呼び出すために以下のようなControlを画面上に配置します。
我が家では、毎年恒例のディズニーランドへ行ってきました。
今回は、いろいろあったこともあり、子供たちへのご褒美も込めてディズニーランドホテルに宿泊しました。
ここは、建設中の時から「いつか泊りたいね」と言っていたホテルであり、念願が叶ったというところです。
以前もブログに書きましたが、ディズニーランドのすごいところは、「これでもか!!」という位にサービスをしているところだと思っています。
もちろん、ディズニーですからミッキーに会いに行きたい人は大勢いると思いますが、ここではエレベータボーイもミッキーです。しかも全てのエレベータで違うミッキーがいると言うところがこだわっているところではないでしょうか?詳しくは是非宿泊した際に体験してくださいということにしておきますが、これは、私たちの仕事にも共通のことが言えますね。
やはりお客様からの仕事をして、当たり前。。そこからどれだけの+α「これでもか」を出せるかが私は重要だと思っています。
さてディズニーランドに入りますと、ビックサンダーマウンテンと言ったような、アトラクションだけでなく、いろいろなところでお客様をもてなす工夫がされています。
今回私が一番楽しかったのは、こちらのショーです。

この方は、自転車をこぎながらピアノを弾くということをしてくれるのですが、ただピアノを弾くだけでなく、周りの人を巻き込みながらみんなが知っている曲を楽しそうに弾くのです。
音楽って何だろう、人を楽しませる(もてなす)って何だろうと思っている原点を教えてくれるようなショーでした。この方全然鍵盤をみないんです。ほとんど周りにいる観客に目を向けていて、周りの人と一緒になって本当に楽しくピアノを弾いているんです。それこそ拍手が足りないとわざと曲を速くして観客をあおったり。。弾いている途中に「がんばって!!」と観客をあおったり。。写真で感じていただけるようにみんな一体となった盛り上がりがありました。
コンサート終了後。いや~~楽しかったね~~と思っていたら、家族はどこかへ。。。
( ̄□ ̄;)!!
携帯電話は便利です(笑)
<画像処理>
最近よく、画像処理ソフトウェアとして「GIMP」を利用することがあります。
私のBlogの中でも自動車のナンバープレートを会社のロゴで隠したりするときもこのソフトウェアを利用しています。写真を掲載されたくない人もおりますので、先に掲載した写真も中央の方以外は若干モザイク処理をかけさせていただきました。
さて、小学校の勉強で、赤いライトと青いライトを重ね合わせると何色になるでしょうか?という問題がありました、今回はソフトウェアでこの回答にチャレンジしたいと思います。
さて、赤と青を色紙に例え単純に重ね合わせますと、当然上側の画像しか見えません。
そこで上側の画像はある程度光を透過させる必要があります。Image的には下の画像を表示させるために上の画像を50%透明にする(透過率50%)ということを行います。紙ではなくセロファンですね。
では、早速赤色のセロファンを青色の紙の上にのせたときの色を計算してみましょう。
上側の画像の透過率をαfとし下側の画像の透過率をαbとします。
上側の画像については、もともとの画素に対してαfで透過されていますから元の色情報(Cf)に対して、下記の通りとなります。
・Cf' = αf×Cf
同様に下側の画像についても、もともとの画素に対してαbで透過されていますから元の色情報(Cb)に対して、下記の通りとなります。
・Cb' = αf×Cf
しかし、ここでよく考えないといけないのは、上記図を見てわかりますように、下側の画像については、上側の画像を通過した光が与えられるために、光の強さが弱まっています。どのくらい弱まっていますと上の画像が通過を許してくれた分です。つまり(1-αf)ということになります。
そこで最終的にできあがる画像については、以下のような計算式で表せることになります。
・C =αf×Cf + (1-αf)×αb×Cb
また画像の透過率についても下側の画像については、(1-αf)分だけ光の強さが弱まっていますので、
・α =αf + (1-αf)×αb
では、上記式をGIMP上で検証してみたいと思います。
そのために以下のBitmapを用意しました。
先日娘の授業参観に行って参りました。
公開授業の内容は「道徳」です。授業では一枚のプリントが配られました。タイトルは「くずれ落ちただんボール箱」です。
この話では、主人公である「私が」、スーパーマーケットに行ったときに、小さな子供がふざけていて、つまれていた段ボール箱を崩してしまうところから始まります。
小さな子供は崩した後に、さっさとどこかへ行ってしまい、子供をつれていたおばあちゃんが心配そうに子供の行く先を見つめながら、段ボールを片付けようとしています。
主人公である「私」はおばあちゃんの「片付けを手伝ってあげます」と言い、おばあちゃんは「ありがとう」と言い、子供の行った先をゆっくりと追いかけていきます。
何となく、どこにでもありそうな話ですね。
実は、この後、この女の子は段ボールを崩した人と間違えられて、スーパーマーケットの店員にむしろしかられてしまいます。
授業では、こういう状況に出会ったとき皆さんはどうしますか?という内容で、生徒と話を進めていきます。
<先生>「みんなだったら、どうですか?」、
「おばあさんに手伝ってあげたのに、むしろ店員にしかられてしまって」。
<生徒>「なんか、損した感じ」、「やらなきゃよかった」。
このような意見が出ました。
でも、先生は「そうかなぁ、みんなは、ほめられるために手伝ってあげたのかな?」、「最初はおばあちゃんが心配だから手伝ってあげたんじゃないのかな?」と生徒に問いかけます。
今被災地などで、日本人のマナーが世界で紹介されています。こういうことも親からあるいは学校から「道徳」というものを通じて小さい頃から教わっているからではないかと感じました。つねに相手のことを想い、自分がほめられるためでなく、人のために行動を起こすと言うことは日本人の大事な心ですね。
また、その授業ではもう一つ重要なことを言っていました。それは、小さな子供が段ボールを崩した時に自分がどういう行動を取るか?です。
半数の生徒は、「はずかしいから、遠くでみている」とか、「誰かがやるかもしれないから。。」という意見でした。そこで先生は質問します。
<先生>「では、手伝ってあげるために必要なことはなんだろうね?」
ある生徒が、「勇気をもって声をかけること」と答えました。
今回の道徳の授業の結論でした。
人生、いろいろな場面で「あのときああしておけばよかった」といったようなことがありますね。でも出来ないことが多い。そのときに必要なもの、それが「勇気」であると私も思います。
あらためて、学校から私もいろいろと教わることがあった授業参観でした。
<volatileの必要性って2>
さて、前回は一見あり得ないようなプログラムですが、現実によくありそうな、そんな例を用いたプログラムでしたが、今回はファームウェアでよくあります、ハードウェアへの制御を例にvolatile宣言の必要性を欠きたいと思います。
今回は、あるハードウェア制御レジスタ(5555番地:2Byteサイズ)に対して以下の手順で初期化を行うプログラムを記述します。
- 0x00FFを書くと初期化を行う。
- 0x0011を書くと制御が開始される。
- 0x0033と書くと制御が停止する。
それぞれの処理結果については、デバッグ用にviewWork[3]という変数にしまっておきます。
簡単にプログラムを書くと以下のようになります。
今回も、CPUの実際の処理を調べるべくアセンブラ表示を行います。
マイコン(DSP)はTI社製である[TMS320F28027]を使っています。
皆様のおかげさまを持ちまして、今年もD-CLUE社員旅行に行くことができました。
今年も恒例の沖縄です。
沖縄にきてしばらくして感じたことは、なんとなく自分がのんびりしているなと感じたことです。それは海があるからなのでしょうか?自然があるからなのでしょうか?昔は全然考えなかったのですが、ふと今回そんなことを感じました。
「海岸線を走っているとき」、「山の中を走っているとき」。それらの全てを含めてここでは時間がゆっくりと流れている感じがしています。もちろん仕事で来ているわけではありませんので、なにかに急かさせることもないのですが、この明るい日差しと波の音がゆっくりとした時間の流れを感じさせてくれるんだなと思い、自分の心をリフレッシュさせることができました。
また、沖縄と言えば「沖縄そば」が有名ですね。私は「ソーキそば」よりもこのもやしがたっぷりと乗った「牛肉そば」が好きです。
testFunc()という関数を考えますと、変数[initialFlag]を"1"に初期化した後、[initialwait()]という関数を呼び出します。
[initialWait()]では[initialFlag]が"0"にクリアされるのを待っていて、"0"になったらwhile文を抜けて[testFunc()]に戻ってきます。
自分で変数を"1"に初期化したのに、"0"を待っているなんて、一見あり得ないようなプログラムですが、以下のような場合が考えられます。
事前にデバイスドライバー等を初期化しておいて、外部からのイベント(電源ボタンの押下等)をひたすら待っている場合等がその例だと思います。
さて、今回これらのプログラムがどう動くかを見てみます。と言うわけで、恒例のアセンブラです。
ここで、問題となるのは49c番地の動作です。
先ほどのソースと大きく違うのは、49c番地の動作では、再度[initialFlag]の中身をLoadせずに、CPU内部の演算結果だけをみていることです。
従って、この場合は、割り込みハンドラ側でイベントを受け付けたことにより"0"を設定しても、while()のLoopは抜けなくなってしまいます。
「デバッグしている時は、動いていたのに、最終試験をすると動かない。。」ということになります。
さて、どうするか。。。そこで[volatile]宣言の活躍です。
先ほどのプログラムから変数の宣言だけを変更します。

そこで、再度アセンブラコードをみますと。

490-494 :r2レジスタにinitialFlagのアドレスをLoadしています。
498 :r3レジスタにinitialFlagの中身をLoadします。(最初は"1")
49a :r3レジスタの値を"0"と比較します。
49c :違っていたら498番地に移動します。
今度の場合は、[498番地]の比較結果がNGの場合は [498番地]に戻っています。
[498番地]では再度r2(initialFlag)の中身をLoadしますので、もしも誰かが変更している場合は、新しく"0"という値が取得出来ることになります。
割り込み処理等が無くシングルタスクの場合、あるいは最適化オプションが無い場合は問題ないかもしれませんが、そのようなプログラムはあまり一般的ではないと思いますので、改めてきちんと付けることにしましょう。
さて、心がリフレッシュできたところで、体はと言いますと。
今年もD-CLUE社員旅行恒例の、「大イベント大会」を行いました。
海岸で体をつかったイベントや、ゲームをやって盛り上がるのですが、今年は急遽「大水泳大会」も追加されました。
急遽はじまった水泳大会ですが、たまにプールに行っていることもあり若干余裕かと思ったのですが、急に泳いだら足がつってしまい。。σ(^◇^;)
ちょっと40歳を超えてなにか、今までのように行かない自分に。。。そんなことも気がつかせてくれるすてきな沖縄でした。(~ヘ~)ウーン。。改めて準備(運動)が必要です。
最後に、沖縄の注意点ですが。。
遊びすぎに注意しましょう。。
あまり遅くに空港に行きますと。
少し情報としては、古くなりますが。近所の桜が満開でしたので、是非この桜を皆さんにお伝えしたいと思い、写真を撮っておきました。
そうです、卒業式には「感謝」というものがあふれているからなのではと感じました。
<GPS情報の取得>
前回から、スマートフォンをいじっています。
前回はプロジェクトの作り方を説明しましたので、今回はスマートフォンを使ってGPSの情報を取得したいと思います。
スマートフォンでGPSを取得使用とした場合、Windowsが提供する以下の「GPS Intermediate Driver」を利用することで簡単に取得ができます。
http://msdn.microsoft.com/en-us/library/bb202086.aspx
上記Driverについては、前回のBlogでお伝えした開発キットをインストールすることでサンプルアプリとともに提供されます。
それでは、以下の手順でGPS情報の取得と行きます。
<STEP1:ドライバーの複写>
「GPS Intermediate Driver」を使ったサンプルアプリはインストール時に特に変更をしていなければ、以下のフォルダーに入っています。
C:\Program Files\Windows Mobile 6 SDK\Samples\PocketPC\CS\GPS
上記フォルダから以下の7つのファイルを自分のプロジェクトにコピーしてきました。
<Step2:フォームの作成>
GPS情報を取得するためのフォームを作成します。
今回用意した画面は、以下の通りです。
[GPS Intermediate Driver]については、newおよび[Open()]の2手順で利用が可能です。
<Step5:位置情報の取得>
[Btn_GetPosition]が押下された時に最新の情報を取得するようにします。そこで、[Btn_GetPosition]のイベント時に以下のコードを記載します。
人に関わるということは、非常に大切なことであり非常に大変なことですね。
関わる部分で一番濃いのはやはり家族ではないでしょうか?子供の学校の成績を自分のことのように一喜一憂するのも、それだけ関わりあいを大事にしているからだと思います。
私が、子供たちと関わるために重要にしていることが2つあります。
一つめは、できるだけ一緒に登校するようにしていることです。
ここは、非常に重要な情報源で、朝歩いているとかなりの情報がとれます。○○君がどうしたとか。給食の時間、男子がふざけて。。。等勉強に関係の無いことですが、一日学校を楽しんだことや、一日嫌だったこと、席替えを早くしたいとか、したくないとか今の子供の気持ちがとれます。
それから、もう一つは、勉強に関わる方法として「パパ塾」なるものを2年間程開いていました。今回はこのパパ塾を少し紹介します。
もともと、人に教えることが大好きなのですが、やはり学校の勉強についていってほしいこと、それから週末の大事なコミュニケーション手段として、特に子供たちと関わり続けるために開いていました。
塾を開校するなら、「やはり黒板は必要だよ!!」ということからホワイトボードを購入し、塾っぽいことをしています。
今回は、地図記号です。さて皆さんはどれだけの地図がわかりますか?
よく、社内では「知識を知恵に変えよう」という話が出てきます。せっかく覚えたことは「使わないと意味がない」、逆に覚えたことは「使えなければ意味がない」ということです。
そういった点で、この塾では、覚えることも大事ですが、覚えたことを実践で使い、覚えた知識を知恵に変えたいと思っています。なかなか難しいのですが、問題を解くだけでなく、問題を自分で作るということがその一つの手法かな?と思っています。
さてこのホワイトボードはどうなるでしょうか?
<スマートデバイス>
iPhoneが口火となり、ここのところスマートフォンの需要は多いですね。
電車に乗っていても、スマートフォンの画面ごしにニュースを見ている人、Twitterをフォローしている人、電車の時刻を検索している人など、皆さん忙しそうです。
そこで、今更ですがWindows Mobileを使ってスマートフォンをいじりたいと思います。
何故Windows Mobileかと言いますと一言で言うと簡単だったからです。いろいろな開発環境はありますが、なるほどWindowsはよくできております。私はVisualStudio 2008を持っているのですが、こちらのソフトウェアがあれば、スマートフォン用のApplicationはただで入手が可能です。
さて、早速ですが、VisualStudio 2008を持っていることを前提に話を進めますと、スマートフォンの開発のためには以下のソフトウェアをMicrosoftのHomapageから入手する必要があります。
- Windows Mobile 6 Professional SDK Refresh.msi
→http://www.microsoft.com/downloads/en/details.aspx?familyid=06111A3A-A651-4745-88EF-3D48091A390B&displaylang=en - Windows Mobile 6 Professional Images (JPN).msi
→http://www.microsoft.com/downloads/en/details.aspx?FamilyID=38c46aa8-1dd7-426f-a913-4f370a65a582 - NETCFSetupv35.msi
→http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=e3821449-3c6b-42f1-9fd9-0041345b3385 - Windows Mobile 6.5.3 Professional Images (JPN).msi
→http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c0213f68-2e01-4e5c-a8b2-35e081dcf1ca
こちらを用意しましたが、あとは通常のApplicationと同じように開発が可能です、今回はC#で試してみます。
<Step1:Projectの作成>
- 上記ソフトウェアをInstallした後、VisualStudio 2008を起動します。
- [ファイル(F)]→[新規作成(N)]→[プロジェクト(P)]より新しいプロジェクトを作成します。
- 「新規スマートデバイスプロジェクトの追加」ダイヤログが表示されますので、ターゲットプラットフォームに「Windows Mobile 6 Professional SDK」を選択し、プロジェクトの種類として[スマートデバイス]を選択します。尚今回のプロジェクト名称は[SampleProject]とします。
<Step2:アプリケーションの開発>
Step1が完了しますと画面上になにやらスマートフォンらしき画面が出てきます。
さて、今回は、テスト用としてボタンをクリックするとテキストボックスの数字をカウントアップするアプリケーションを作ってみます。
作り方は、皆さんご存じかもしれませんし、過去のBlogでも紹介させていただきましたので、今回は少し省略させていただきます。
今回はこんな画面を
さて、前回のブログで三国志の本を紹介しましたが、実は中学生の時にちょうどNHKで「人形劇三国志」という番組をやっていまして、毎週みておりました。特に私は諸葛亮孔明(声:森本レオ)の大ファンでした。武力による武将たちも大好きなのですが、なんと言っても孔明こと「丞相様」です。
そんなことから、実家にある私の大事な湯飲みを紹介します。
ものには、いつか壊れるという運命がありますが、この湯飲みを作った日付をみますと。
昭和59年6月7日とあります、中学生の修学旅行で作った物なんです。諸葛亮孔明とかかれた湯飲みを作るなんて、ちょっと??な中学生でしょうか?
さて先日、三国志の話をしましたが、結構おもしろいです。全部で550ページありますので、電車の移動だけではなかなか読み終わらず、ようやく読み終わりました。しかしこの本、私たちが知っている派手な?武将の歴史だけでなく、そこから新しく文化が出来ていく課程を感じることができます。
これは、どの歴史も同じだと思うのですが、世の中が乱れているときは武力の強い人が必要とされ、だんだんと戦が無くなってくると、いわゆる「文官」というものが大事になってきます。この文官たちが独自の文化を創っていき、逆に武力をもって戦ってきた人たちにとっては「こんな世の中を作るつもりじゃなかった」と思うかもしれませんが、良くも悪くも世の中は平和に変わっていきます。
その新しい世界に適応できない人たちは、自然と消えていく運命にあります。これって三国志とか戦国時代とかだけの問題でなく、今激しく変化している世の中でも同じことがいえると思います。
時代時代で必要とされる、役割が変わります。私も改めて世の中に変化に適応出来るように自分の役割を変え続けていきたいと改めて考えました。
<マルチタスク>
さて、前回はWindowsというOSを便利に使って、開発・評価を速く進めるための手法を紹介しました。安価なマイコンではC言語で開発をしますので、C++上でSimulationができれば非常に開発が楽になりますね。
今回は、とはいえマルチタスク的な環境での評価もしたい場合について少し書きます。組み込みファームウェアでは「タスク」という言葉を使いますが、その他の環境ではよく「スレッド」という言葉を使います。こちらの意味については、書籍に書いてありますし「何がタスクで何がスレッドで。。」なんて議論もありますね。
持論は置いておいて、今回はWindows上のスレッドを利用します。
μiTRONでタスクを生成するのは、[cre_tsk()]ですね。このcre_tsk()を元にWindows上でスレッド(タスク)を生成します。
cre_tskの引数については以下の通りに規定されています。

こちらの関数をWindows用のスレッド生成手順にあわせます。
Windowsでスレッドを生成するためには、以下の通りの手順で行います。
さて差分を埋めると、以下の表の通りです。

非常に似通っていることがよくわかりますね。
C言語で記載することで、tskstrは無視できます(=TA_HLNG[固定])、またスタックサイズについてはここでは言及しないので、"0"ということにします。すると、そのまま移行できます。
さて早速タスク(スレッド)を生成しましょう。
まずは、cre_tskのAPI実装です。
特に、ファームウェア開発を行っていますと、システムの開発としては後工程になりますので、出来るだけ先手先手を打って、開発後半のリスクを減らしたいと考えています。
さて、冒頭に中学生の時に作った湯飲みの話をしましたが、約25年たって、ある不具合を見つけました。
あっ、葛の字が。。
本当に「丞相様」のファンだったのでしょうか。
中学生でしたので許してください。




