そろそろイベントが必要!!
ダメだ・・・
イベント切れ・・・
OSM 君!! SZK 君!!
そろそろイベントが必要じゃないか???
今考えているイベント
○ チャリで東京まで行ってみよう!!
○ 一週間、冷やし中華だけで生きてみよう!!
○ 健康サンダルでマラソンしてみよう!!
コレらを全部混ぜてみると・・・
健康サンダル履いて、チャリで東京に冷やし中華を喰いに行くって事で良いかな???
帰国、即、執行だぞぉ~
覚悟しておけ!!!
ダメだ・・・
イベント切れ・・・
OSM 君!! SZK 君!!
そろそろイベントが必要じゃないか???
今考えているイベント
○ チャリで東京まで行ってみよう!!
○ 一週間、冷やし中華だけで生きてみよう!!
○ 健康サンダルでマラソンしてみよう!!
コレらを全部混ぜてみると・・・
健康サンダル履いて、チャリで東京に冷やし中華を喰いに行くって事で良いかな???
帰国、即、執行だぞぉ~
覚悟しておけ!!!
この前のM-MDPF http://s14.dcnblog.jp/pri/2011/04/m-mpdf-75f1.html の時に、
「とろみ粉」が出てきて、その原材料に「澱粉」が有りまして、とある事を思い出しました•••
数年前、消防の年末警戒の時に屯所の入り口に「農ビ」のカーテンを取り付けました。
極寒の季節に夜中、屯所のシャッター全開で待機していなければならない為、
せめて冷たい風が入ってこないようにする為に取り付けた訳ですが•••
巡回が来るともちろんカーテンは全開にしなければなりません。
農ビなので透明なビニールのカーテンですが、巡回時には整列したり人員報告したり、色々と儀式が有るんでカーテンは開ける訳ですね。
大凡、30分程で巡回の方々は帰るので、またカーテンを閉めるのですが•••
ソイツは寒さでカッチカチになってる訳ですよ^^;
カーテン閉まらないって!!
あっためると柔らかくなってカーテン閉まるんですよね。
ソコである方(Y田さん)が私に説明をしてくれました。
「コレはガラス転移点だよ」
ま、その時は「寒くて固まって、暖めると柔らかくなる」のがガラス転移点なのか?と思った訳ですが•••
たまたま私もソレに引っかかって「じゃあ、モチを焼くと柔らかくなるのはガラス転移点ですか?」と聞いてみると•••
その時は「不明」だったんですよね。
私もどこかでこの疑問が残っていたのですが、「澱粉」が出てきて思い出し、調べてみる事にしました。
まず、「ガラス転移点」とは?
http://ja.wikipedia.org/wiki/ガラス転移点
ゴムとか樹脂みたいな奴が低温では固いけど温度を上げていくと柔らかくなる。
その柔らかくなる温度の事かな?
固い状態がガラス状態で、ガラス転移点以上の温度で柔らかくなり、その状態がゴム状態。
Wiki そのままですが、「非晶質の固体」でこの現象が起こるらしい。
※結晶体では、温度上昇で固体−>液体になる
ゴムや樹脂は高分子で、イメージとしては沢山の原子が鎖みたいにつながって構成されている感じ?
ソイツらは低分子と同様に熱運動をしており、温度が上がれば運動性も大きくなる。
イメージとしては、温度が低い場合は運動性が低いので鎖の伸びが少ない。 高温では運動性が高いので鎖の伸びが多い。
う〜ん•••
体が冷えていると固いけど、お風呂に入って暖まると柔らかくなる???
いや、何でも良いや^^;
とにかく、この様な奴はガラス転移すると言う事。
で、「モチ」ですが•••
モチはなんで粘るのか?
・ アミロースとアミロペクチン ・ おいしい比率 ・ いろいろなお米
http://www.agri-ch.net/page/259.html
澱粉が糊化して粘性を生みます。
また、モチに関しては、「アミロペクチン」が重要な「粘り」の要素っぽいです。
アミロペクチン
http://ja.wikipedia.org/wiki/アミロペクチン
こうなると、では澱粉が糊化した状態でのガラス転移点はどうか???
食品のガラス状態とその利用
http://www.shokusan.or.jp/asushoku/FoodTech/Technology/T2006/0612.pdf
ズバリ、そのまんまの資料が発見出来ました^^;
と、言う事で、モチが柔らかくなるものガラス転移でした。 で良いのかな???
澱粉は天然の高分子ですので、ある程度納得です。
しかし、注意点が!!
糊化した澱粉のガラス転移点は、水分により大幅に変動すると言う事らしい。
納得!!
高分子は水分とくっつきやすい。
※吸水ポリマー等、吸水性を高めた高分子もある
澱粉の非結晶部位が増えてガラス転移点が変動するのかな???
ともかく、水分を吸収すると柔らかくなってしまう。
柔らかくなると言う事は、常温でガラス転移点と言う事かな?
例えば、天ぷら。
揚げたてはサクサクで、放っとくとしっとりしてしまう。
コレは水分吸着で柔らかくなると思うのですが、
では、揚げたて直後、水分が無い所に置いといたらどうなるのだろうか?
チョットちがうかな^^;
しかし、ガラス転移点をうまく活用すれば、低温でもガラス状態の天ぷら等が有ればずっとサクサクするのでは???
食品のガラス状態とその利用の中で、
鰹節がガラス状態と言う事で、大変なっとく!!!
以前、鰹節の作成行程を何かの番組で見ていたのですが、とにかく水分を無くす。
最終的には、菌を使い水分を徹底的に排除する。
そうする事で鰹節が出来上がると•••
水分が有ると、ガラス転移点が低温化してしまうから、水分を無くさないとあの鰹節の固さが出ないんだな〜と、
と、言う事は鰹節をそのまま暖めるとゴム状態になるのか^^;
ま、いろいろ見てればもっと面白い事が有りそうですが•••
疑問に思った事は調べてみると思わぬ知識を得られて面白いですね。
何の役に立つかは全く知りませんが(爆)
私は、2週間に一回程度「丸美屋の麻婆豆腐」が無性に食べたくなる病気を持っています。
しかしココは中国!!
そんなぞぜいた「素」は入手困難ですし、売っていても大変「お高い丸美屋」になってしまいます。
この状況を打破するには、やはり自作するしか有りません。
そこで、中国のスーパーで購入可能な食材を駆使し、極力「丸美屋の麻婆豆腐」に似た味を再現するプロジェクト。
その名も「M-MPDF エミュレーション」を立ち上げてみる事にしました。
※M-MPDF とは、Marumiya - Ma2 Po2 Dou4 Fu3 (PinYin 読み)である!!
ま、エミュレーションでは無いんですが^^;
コピーって書くとなんか迫力が足りないから(笑)
さて、まず第一ステップは、オリジナルの研究から。
丸美屋のホームページから、ターゲットのスペックを調べてみる。
http://www.marumiya.co.jp/product/brand/tofu/details/tofu01.html
原材料は下記の通り。
麻婆豆腐の素
鶏肉、砂糖、醤油、食塩、米酢、豆板醤、胡麻油、エキス(チキン、酵母)
大豆油、蛋白加水分解物、発酵調味料、調味料(アミノ酸等)
着色料(カラメル、カロチノイド)
トロミ粉
澱粉、生姜、ねぎ、にんにく
この様な構成で成り立っているらしい・・・
私が理解している限りでは、この食品の原材料表記は、含まれている原材料が多い順に記載されているハズなので、
以外に「砂糖」が多い事に気が付く。
そして、問題は・・・
「エキス」「蛋白加水分解物」「発酵調味料」「調味料」
彼らではどちら様でしょう???
とりあえず、インターネットを駆使して調べてみる。
「エキス」
コレは、多分チキンエキス等の鳥ガラスープの素的な奴だろうと判断。
「蛋白加水分解物」
http://ja.wikipedia.org/wiki/%E3%82%BF%E3%83%B3%E3%83%91%E3%82%AF%E5%8A%A0%E6%B0%B4%E5%88%86%E8%A7%A3%E7%89%A9
http://jccu.coop/food-safety/qa/qa01_06.html
コクやうまみの素らしい・・・
グルタミン酸と言う事は、良くきく「うまみ」成分ですねぇ・・・
基本的に食材から出てもらう事を願ってコイツは無視と言う事で!!
「発酵調味料」
http://kotobank.jp/word/%E7%99%BA%E9%85%B5%E8%AA%BF%E5%91%B3%E6%96%99
http://www.gekkeikan.co.jp/enjoy/encyclopedia/00149.html
なんとなく、「みりん」とかそんな感じかなぁ・・・
もちろん「みりん」も日本の調味料ですので、
ココでは一発、中国の料理酒と日本酒のブレンドで!!
「調味料」
http://ja.wikipedia.org/wiki/%E3%81%86%E3%81%BE%E5%91%B3%E8%AA%BF%E5%91%B3%E6%96%99
http://oshiete.goo.ne.jp/qa/1367552.html
多分、こんな感じの奴だと思う。
つまり、味の素か???
中国には味の素に近い「味精」と言うモノが有るので、ソレを使ってみる。
さて、基本的に着色料は興味がないのですが、
「食塩」が、中国のモノは大変しょっぱい為、使い方が難しいです。
その為、着色料と食塩を兼ねて「味噌」を使ってみる事にしました。
「澱粉」は、中国でトロミを付ける時に「生粉」と言う物を使うので、
おそらくソレで良いだろうと判断。
こんな感じでとりあえず基本構成の解析を行いました。
第二ステップは準備!!
ココからは実際の調理になって来ます。
ちなみに原材料の「鶏肉」ですが、鶏肉のひき肉が入手困難な為、豚のひき肉にしました。
後は、私の好みで長ネギを使用しました。
まずは、にんにくと生姜をおろします。
ソコに豆板醤を加えます。
注意点としては、私が使用した豆板醤は結構しょっぱい奴なので、
辛さを求めて多く入れるとかなりしょっぱくなります。
豆板醤の塩分も考慮しましょう。
私は個人的に「油辣椒(食べるラー油の元祖見たいな味)」と言う奴が好きなので、
コイツを豆板醤と同じ位突っ込みました。
ソコに、中国の料理酒と日本酒少々、味噌を加えてグチャ混ぜにします。
ココで使用した調味料はこんな奴です。
鳥ガラスープの素と、味精をお湯で溶きます。
材料の下ごしらえは、豆腐を細かく切ると「中国風」になります。
※味を入れる為に細かく切るのが中国風と思われる。
また、ネギはこの様に大盛りにすると私好みになります^^;
材料を炒めます。
油はサラダ油的な奴を使用して肉をいためる。
ソコに最初に作ったグチャ混ぜ調味料を投入。
肉と調味料が良く混ざったらソコにネギを投入。
適当なタイミングで、鶏がらスープの混合液を入れて少し煮る。
ココで味の調整!!
白酢を少し入れる。
大量に入れると一昨日の麻婆豆腐見たいな味になってしまうので、
様子を見ながら入れる事!! 私は小さじ二杯程にしました。
醤油で塩分を調整。
ココで砂糖を投入!! 意外と多めに入れる。
砂糖で一気に丸美屋が近付いて来ます。
注意点として、この後で豆腐が入り味が薄くなるので、少し濃いめに味が付いてる方が良いです。
豆腐を投入してしばらく煮込みます。
ココで生粉を水で溶いた奴を準備しておく。
具合良く煮込んだ所で、火を消して水溶き生粉を投入&ひっかき回す。
良く混ぜないとムラが出来るからきちんと混ぜる事!!
混ぜ終わったら胡麻油を投入。
「の」の字を書くように^^;
ココで、本格っぽくするには、花椒粉を振り掛けるとソレっぽくなります。
生粉が完全に透明になるまで中火で少し煮る。
出来上がり~
と、言う事で、M-MPDF っぽいモノが出来上がりました。
やはり、本物よりコクが少し足りない気がしますが確かに大変ソレっぽい味になりました。
もちろん、麻婆豆腐としては旨いですよ!!
味は日本人のイメージする麻婆豆腐です。
※中国でさんざ麻婆豆腐を食ってますが、日本の味とは全然違います
M-MPDF との相関値で言うと80ポイント位でしょうか???
やはり「甘み」がチョットわざとらしくなってしまう。
コレは砂糖のせいでしょう。
砂糖だけで甘みを表現すると、軽薄な味になりますね。
例の「エキス」やら何やらが効いているのでしょう。
M-MPDF は、トロミ粉の中に生姜とにんにくが入っているので、
最後の香り付けとして非常に立ちますが、
ナマの生姜、にんにくを使用する場合は、やはり「炒める」段階で使わないといけない為、
にんにくや生姜の香りは表面に出て来ません。 味として出ます。
この辺は、「作った味」では無いのでMPDF としては美味しいですがM-MPDF とは異なる箇所になります。
麻婆豆腐としては本当に美味しいですよ!!
コレならM-MPDF の素が無くても十分病気が治まります。
と言う事で、一応、成功と言う事で良いかな^^;
私と同じ血中M-MPDF 低下症の方はお試しあれ!!
最初に台中に来た頃に良く行っていたPub が先月火災になり9名の犠牲者を出す大事件が発生してしまいました。
このニュースを聞いた時には大変ショックでした。
私もかなり通っていた為いろいろな思い出が有り、また更にこの様な大勢の犠牲者が出てしまった事が大変悲しかったです。
コレを受けて、台中政府と警察局、消防局は、一斉に台中のレストラン、飲み屋の取り締まりを行いました。
私も飲食店の店長に知り合いが多い為、色々と話を聞く事が出来ましたが•••
根本的に間違っている!!!
事件が起きてしまって、その後、政府や消防が叩かれる。
だから今は店舗の消防法適合を調べたり、店舗の登録を調べたり•••
で、登録と営業内容が一致していないと罰金や営業停止等の処置をとる。
んで、ブラックなケースでは、裏の要求等も話を聞きました。
今は台中の飲食店の店舗数を100件程減らすと言う目標が立てられ、
役人はただその目標の為だけに動いているだけです。
今の各機関の動きからは「もう二度と悲惨な事件を起こさない」と言う意識は全く感じられません。
何をやっとるんだと強く言いたい!!!
政府も、警察も、消防も、ただメンツだけ。
一番肝心な事を忘れている。
「なぜ悲惨な事件が起きてしまったのか?」
「どうすれば今後この様な事が起こらないように出来るか?」
ソレが役人の仕事でしょう。
私は日本の地元で消防団の活動を行っておりますが、13年間の消防活動で分かった「消防」とは!!
ズバリ、予防消防です。
事件が起きない事がベストであり、いかに事件が起きないようにするかに努力すべき。
また、万が一事件が発生してしまった時に、いかに犠牲を出さないようにするか?
これら全ては各自が努力するモノであり学ぶモノであります。
飲食店の店長さんで有れば、いかに自分の店で火事を出さない様にするか?
もし火災が発生してしまった時に、いかにお客さん、従業員、自分が避難出来るか?
隣の家まで燃やさないか?
コレをきちんと指導する事が二度と繰り返させない努力でしょう。
消防局のテクニカルな部分に関してはもちろん必要とされる機関では有りますが、
台湾の消防局は事が起きないようにする努力がなされていない事に不満を感じます。
こんな外国人に言われたく無いと思いますが^^;
なんとかして台湾で消防団作れないかな???
防火防犯は「起こる前の消防」で、この使命をメインに消防団は活動しています。
もしこの活動を積極的に行っていけば、二度と悲惨な事件は起きない様に出来るのではないかと思います。
ALA Pub でお亡くなりになられた9名の犠牲者のご冥福をお祈りいたします。
Future in the past だ!!
この前、知り合いとお酒を飲んでる時に「私は自分の夢を裏切った」と発言しました。
コレは説明が長くなりますが・・・
実は私は映画バック・トゥー・ザ・フューチャーの大ファンでして^^;
高校生の時にTVで放送してたヤツを録画し、オニの様に繰り返して見ました。
リアルで100回は見たと思います^^;
当時は日本語吹替のセリフも全部覚えてしまう程見てましたね・・・
この映画の中で、デロリアンと言う車をタイムマシンにして過去や未来にタイムスリップするのですが、
タイムマシンの重要な部分、タイムサーキットとフラックスキャパシターと言う装置が有ります。
フラックスキャパシターを起動するには、1.21GW(ギガワット)と言う超膨大な電力が必要です。
実は、最初のデロリアンは、この電力をプルトニウムで作っていました。
ドクがリビアの過激派からパクったと言う設定になってます^^;
過去に行ったマーティは、帰りのプルトニウムが無い為に、現代へ戻れません。
過去のドクに助けを求めて、最終的にはカミナリの電力でフラックスキャパシターを起動させて現代へ戻りました。
さて!! ココからが今回のポイント!!!
最後に、マーティの過去の手紙で助かったドクは、未来へ行きます。
そして、マーティが家に帰ると、先程未来へ行ったばかりのドクが未来から帰って来ます。
※未来滞在時間は永いと思うが、現代に戻る設定時刻がすぐだった。
急いでマーティを連れて未来へ行く事になるのですが・・・
その時、ドクはゴミ箱をあさり出して、残飯やビールの飲みかけ等をデロリアンの後部の白い装置にぶち込んでいます。
マーティが何をしてるの?と聞くと、
ドクは、燃料だよ!と答えました。
コレです!!
未来に行ったドクはデロリアンを改造し、空を飛べるようにした事と「ゴミで電気を作る」ようにしました。
SF映画なので基本的には空想の物語ですが、なかなか鋭い描写が有ります。
この映画に夢中になっていた当時でも、「空を飛ぶ」と「タイムスリップ」はさすがに厳しいと思っていましたが、
その他は意外と••• と思っておりました。
第二章は未来の話ですが、映画館で「ジョーズ」が3Dで放映されています。
今は既に3D映画も現実になってますし•••
ま、ソレはさておき!!
このバック・トゥー・ザ・フューチャーは1985年の映画で、
※第二章は1989年
設定上の「未来」は、2015年なんです。
つまり、もうそろそろ当時の未来になります。
未だゴミから電気を作る「ミスター•フュージョン(映画での装置名)」が出来ていないんです•••
※1.21GW レベルまでは行かなくても、家庭用ゴミ発電機がと言う意味
当時感じた「未来」はまだ現実になっていないという事と、その未来を「誰かが作ってくれる」と思っていた事に、
「私は自分の夢を裏切った」と思った訳ですね•••
自分の夢をさぼってたと言う気持ちになりました。
最近、私の興味のテーマはズバリ「発電」なんですよね(笑)
ずーっと発電の事を考えています。
その中で、「水素」がかなり有効なのでは?と言う考えに至っております。
まぁ、Blog にそんな感じのニュアンスが現れていると思うのですが^^;
水素生産、水素備蓄、水素の事を色々と調べています。
ソコで「ミスター•フュージョン」とリンクしたんですね•••
ゴミを分解するとどうなるか?
メタンガスが発生する。(メタン菌等のバイオ分解をすれば)
メタンは、CH4 と言う事で、H が有りますがな!!
メタンは水蒸気との反応で、
CH4 + H2O -> CO + 3H2 と言う事で、一酸化炭素と水素混合ガスになります。
この水素は使えないのだろうか???
調べたら「生ゴミ発電」って言うのが有ったんですよ!!
良いじゃない!! 使えるエネルギーだ!!
しかし、ゴミを分解するには時間がかかったり使えるガス•使えないガス等も有るだろうし、色々と問題が有るでしょう。
でも、今のゴミはほとんど燃やしている訳だし、これらを資源にする事は可能じゃないのかな???
もちろん、コレをすべてのエネルギー源には出来ない訳ですが、
前にも取り上げた「小さな発電」の一部に組み込めるのではないかと•••
今後のエネルギー http://s14.dcnblog.jp/pri/2011/03/post-3f49.html
正直、発電には様々な問題が有ります。
一番は「効率」でしょう•••
電気を作るには電気が必要です。
全てとは言いませんがほとんどの場合、エネルギーを必要とします。
その消費エネルギーと生産エネルギーの比率が肝心です。
また、生産コストも「効率」に含まれると思います。
生産コストには、発電の材料、設備のランニングサイクル、人員等、
出来るエネルギーが何円か?
これらを考えた上で発電が現実的なモノになるのだと思います。
「ミスター•フュージョン」は、一般家庭向けの電源だそうです。
20年以上前に未来では「プルトニウム」から「ゴミ発電」にシフトしていますと描写した映画。
バック・トゥー・ザ・フューチャーの中にはまだまだ未来が有ります。
そういえば書いているうちに思い出したのですが^^;
圧縮されたピザ(小さいクッキー位)を解凍すると大きくなる(普通のピザ)技術等も描写されてました。
コレは私も大変興味深かった。
圧縮するとモノの温度が上がるだろうし、膨張させると温度が下がるだろうし•••
そもそも、今の冷凍技術も、モノを外から冷やすという手段で冷凍させている。
暖める技術は、モノを外から暖めるだけではなく、水分を振動させてその熱で加熱する電子レンジの様な内部から暖める事が出来る。
冷凍もこういった内部から冷やす事が出来れば良いのに••• と思っております。
ま、映画を再現するには冷凍+圧縮が必要なのですが^^;
後は、照らせばソコが暗くなるライトとかも有れば面白いなと思いますね。
光の逆。 照射すると反射光を吸収しちゃうみたいな•••
生きている間に色々なモノが発明されて現実に成っていくと思いますが、
そのきっかけは「夢」に有るかもしれませんね。
ジャッキー全財産を東日本大震災などに寄付 総額260億円
http://sankei.jp.msn.com/entertainments/news/110404/ent11040409270005-n1.htm
ついこの前「ベスト•キッド」を見て、ジャッキーの優しい演技を見たばかりなので、本当にコノ記事を見た時には感動した^^;
やっぱり成龍はブッチギリですよ•••
そういえば、キャノンボールでスタリオンとか乗っていたなぁ〜
飛んだぁ〜とか言いながら(笑)
しかし凄い!!
遺産は残さないと•••
コレは普通出来る事ではない。
もはや金銭を遺産と言う形で残すのでは無く、
成龍と言う人が生きてきた証を永遠の遺産にする事が出来た訳ですね。
見事!!!
ジャッキー•チェン最高です!!
と、言う事で•••
先日こしらえていた実験用iPhone プログラムのSocket 部分だけメモに残しておく事に!!
ヘッダファイルにはこのような定義を
変数
//Socket
CFSocketContext _CTX;
CFSocketRef _Socket;
bool _ConectFlag;
//Data
NSString* _RecvStr;
メソッド
//Alart
- (void)showAlert:(NSString*)title text:(NSString*)text;
//Socket
- (void)dataSend:(NSString *)DataStr;
static void SocketCallBack(CFSocketRef socket, CFSocketCallBackType type, CFDataRef address, const void *data, void *info);
@property (nonatomic, retain) NSString *RecvStr;
@property bool ConectFlag;
※Alart は、受信した時やSocket の状態変化でアラートを表示する為に使用
SocketCallBack で使用する変数は渡されたインスタンスから呼ぶ為(self が使えない)プロパティにしておく。
ココからはプログラム。
アラートはこんな感じで•••
- (void)showAlert:(NSString*)title text:(NSString*)text {
UIAlertView* alert=[[[UIAlertView alloc]
initWithTitle:title message:text delegate:nil
cancelButtonTitle:@"OK" otherButtonTitles:nil] autorelease];
[alert show];
}
TCP 接続処理
- (IBAction)clickButtonNo3:(UIBarButtonItem*)sender{
if (_ConectFlag==TRUE) {
[self showAlert:@"SocketOpen" text:@"DoubleConnect"];
return;
}
_CTX.version = 0;
_CTX.info = (void *)self;
_CTX.retain = NULL;
_CTX.release = NULL;
_CTX.copyDescription = NULL;
_Socket = CFSocketCreate(kCFAllocatorDefault,
PF_INET, SOCK_STREAM, IPPROTO_TCP,
kCFSocketConnectCallBack | kCFSocketDataCallBack,
SocketCallBack, &_CTX);
if (_Socket == NULL){
[self showAlert:@"SocketOpen" text:@"CreateError"];
return;
}
CFRunLoopSourceRef sourceRef = CFSocketCreateRunLoopSource(kCFAllocatorDefault, _Socket, 0);
CFRunLoopAddSource(CFRunLoopGetCurrent(), sourceRef, kCFRunLoopCommonModes);
CFRelease(sourceRef);
struct sockaddr_in addr;
memset(&addr, 0, sizeof(addr));
addr.sin_len = sizeof(addr);
addr.sin_family = AF_INET;
addr.sin_port = htons(5000); //Port No.
addr.sin_addr.s_addr = inet_addr([@"192.168.***.***" UTF8String]); //IP Address
NSData *address = [NSData dataWithBytes:&addr length:sizeof(addr)];
CFSocketError SockError = CFSocketConnectToAddress(_Socket, (CFDataRef)address, 2);
if (SockError) {
//Error
_ConectFlag = FALSE;
[self showAlert:@"SocketOpen" text:@"ConnectError"];
CFSocketInvalidate(_Socket);
CFRelease(_Socket);
return;
}
_ConectFlag = TRUE;
//[self showAlert:@"SocketOpen" text:@"Connect!!"];
}
最初に有るのは二重オープン防止
接続処理のはじめは、コンテキストを作成。
ココで、
_CTX.info = (void *)self;
こうする事で、コールバックにself のポインタを渡す。
そうすれば、コールバックからself 内のプロパティやメソッドを呼び出せる。
CFSocketCreate でソケットを作成。 接続時と、データ受信時にコールバックを設定したかったので、
二つのフラグをAnd する。 kCFSocketConnectCallBack | kCFSocketDataCallBack,
コールバック関数は、SocketCallBack です。
後は、RunLoop を追加?して、接続先アドレスを作ってCFSocketConnectToAddress で追加する。
コレで接続処理はOK
ついでに、切断処理とデータ送信処理
- (IBAction)clickButtonNo4:(UIBarButtonItem*)sender{
if (_ConectFlag==FALSE) {
[self showAlert:@"SocketClose" text:@"NoneConnect"];
return;
}
CFSocketInvalidate(_Socket);
CFRelease(_Socket);
_ConectFlag = FALSE;
}
- (IBAction)clickButtonNo5:(UIBarButtonItem*)sender{
if (_ConectFlag==FALSE) {
[self showAlert:@"DataSend" text:@"NoneConnect"];
return;
}
[self dataSend:@"iPhoneSendMessage"];
}
- (void)dataSend:(NSString *)DataStr
{
if (_ConectFlag==FALSE) {
[self showAlert:@"DataSend" text:@"NoneConnect"];
return;
}
NSData *refDataStr = [DataStr dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
CFDataRef refData = CFDataCreate(kCFAllocatorDefault, [refDataStr bytes], [refDataStr length]);
CFSocketSendData(_Socket, NULL, refData, 0);
}
送信処理は、単純にNSString からNSData を作成する。(NSString をASCII に、ソレをByteData にする)
CFSocketSendData でソレを送信。
受信処理はコールバックで•••
static void SocketCallBack(CFSocketRef socket, CFSocketCallBackType type,
CFDataRef address, const void *data, void *info) {
Test_iPhone_APPAppDelegate *SelfClass = info;
if (CFSocketIsValid(socket) == FALSE) {
[SelfClass showAlert:@"SocketCallBack" text:@"Socket Disonnect!!"];
SelfClass.RecvStr = @"Socket Disconnect!!";
CFSocketInvalidate(socket);
CFRelease(socket);
SelfClass.ConectFlag = FALSE;
return;
}
if (type == kCFSocketConnectCallBack) {
[SelfClass showAlert:@"SocketCallBack" text:@"Socket Connect!!"];
SelfClass.RecvStr = @"Socket Connect!!";
}
else if (type == kCFSocketDataCallBack) {
NSData* RcvData = (NSData*)data;
if ([RcvData length] == 0){
[SelfClass showAlert:@"SocketCallBack" text:@"Socket Disonnect!!"];
SelfClass.RecvStr = @"Socket Disconnect!!";
CFSocketInvalidate(socket);
CFRelease(socket);
SelfClass.ConectFlag = FALSE;
return;
}
NSString *TempStr = [[NSString alloc] initWithData:RcvData encoding:NSASCIIStringEncoding];
[SelfClass showAlert:@"SocketCallBack" text:TempStr];
SelfClass.RecvStr = TempStr;
}
}
まずは、先ほどコンテキストで設定したself のポインタで、SelfClass と言うクラスのインスタンスに設定する。
Test_iPhone_APPAppDelegate *SelfClass = info;
コレで、SelfClass を使ってプロパティやメソッドを呼び出す。
例えば、こんな感じ。
[SelfClass showAlert:@"SocketCallBack" text:@"Socket Connect!!"];
SelfClass.RecvStr = @"Socket Connect!!";
コールバックが呼び出されている時点で、
if (CFSocketIsValid(socket) == FALSE) {
こんな事は無いとは思うが、一応、ソケットが無い場合は切断されていましたと言う処理をする。
コネクト時には、下記のtype で呼び出されている。
if (type == kCFSocketConnectCallBack) {
どうやら、本当に接続時だけみたいだった。
データコールバックの時には、
else if (type == kCFSocketDataCallBack) {
NSData* RcvData = (NSData*)data;
if ([RcvData length] == 0){
ココに有るように、RcvData のlength が0の時が有る。
コレは、サーバー側(リスナ側)がクローズした時にこのコールバックが発生する感じ。
※サーバー側は、VB.NET で普通のSystem.Net.Sockets のTcpListener を使用しました。
この時に、切断処理を行います。
ソレ以外の時はデータ受信なので、受信した時の処理を行います。
なんせ資料が少なくて、本当にコレであっているのか不明ですが、
とりあえず通信は出来ました。(接続、切断処理も含め)
まだObjective-C の書き方を良く理解していない為、コールバック内の処理等、怪しいと思います。
※もし、.NET ならコールバックは別スレッドから呼ばれる事になる為スレッドセーフでなくなる?
ソレを、ポインタでクラスのインスタンスに直接アクセスして良いのかどうか?
ま、良く分かりませんが•••
iOS と Socket で検索してもなかなか欲しい情報が無かったので、こんな感じでBlog にメモっときました。
懐かしい処理が出てきました。
コレは、ワークを回転させながらラインスキャンカメラで撮った映像を円形補正し、更にフィルタ処理をかけたモノです。
このフィルタで色々と試行錯誤していた記憶が有ります。
当時のメモによると・・・
3*3
X0 = S0 + (( ∑MiSi ) / 4) * Amp
i=1
X = 処理結果画素
M = マスクパターン
S = 元画像画素
Amp = 強調パラメータ
マスクパターン
----------------
| 0 | 0 | 0 |
----------------
| -1 | 0 | 1 |
----------------
| 0 | 0 | 0 |
----------------
ベースはエンボス処理のアルゴリズム(マスクパターン)を利用し、
その微分値を強調パラメータで増幅し、元画像にフィードバックかけております。
との事・・・
ソコで得られた画像はコチラ↓
ハッキリ言うと、この後の処理は大変やりにくい画像になりますが、
Viewer 画像としては最適な絵になります。
※人が目で見てワークの特徴をつかみやすい絵
人は目で見て直ぐに画像内の特徴や傾向等を処理する事が出来るのですが、
コレをソフトで行うには色々なアルゴリズムを駆使しなければならずなかなかメンドクサイもんです^^;
ちなみに、ソフト的にはこういった絵の方が処理し易い↓
我々の扱う画像処理は、ほとんどが工業向けなので、光学系でなるべくソフト側をカバーするように設計します。
しかし、最近のワークはとにかく厄介(笑)
こういった厄介なワークを処理するのが画像処理アルゴリズムで有る訳ですが、
コレがまた面白かったりする訳ですよ^^;
時間が有ったらまたこういうテーマをやってみたいなぁ~
この前、DTMF 解析の時に使ったFFT で少し実験したい映像が有る。
※ DTMF 解析 http://s14.dcnblog.jp/pri/2011/02/dtmf-0ac9.html
バックグランドの輝度ムラや表面ムラと欠陥との判別とか・・・
低周波成分、高周波成分の分離で出来そうな気がするんだけどなぁ~
たまに昔のノートを開くとその当時やってた仕事の思い出とかよみがえって良いですね。
最近のコメント