<?xml version="1.0" encoding="UTF-8" ?>
<rss version="0.91">
  <channel>
    <title>MCOS開発記録</title>
    <description>MCOS開発記録。
自分のための記録です。
別の人が見ても面白いところはないと思います。。。</description>
    <link>http://p98074.sugo-roku.com/</link>
    <language>ja</language>
    <copyright>Copyright (C) NINJATOOLS ALL RIGHTS RESERVED.</copyright>

    <item>
      <title>20181005 明日から3連休！</title>
      <description>明日から3連休。&lt;br /&gt;
進まない進捗を上げるいいタイミング。&lt;br /&gt;
しかし、宣言しよう。&lt;br /&gt;
明日からの3連休ではMCOSの開発はやらない！！&lt;br /&gt;
ゲームをやる！！！&lt;br /&gt;
と言っても、ゲームを作る方だけど。。。&lt;br /&gt;
&lt;br /&gt;
</description> 
      <link>http://p98074.sugo-roku.com/%E6%9C%AA%E9%81%B8%E6%8A%9E/20181005%20%E6%98%8E%E6%97%A5%E3%81%8B%E3%82%893%E9%80%A3%E4%BC%91%EF%BC%81</link> 
    </item>
    <item>
      <title>MCOS3デバッグ中03</title>
      <description>&lt;div&gt;マウスフック処理でマウスの動作を検知する処理がない！&lt;/div&gt;
&lt;div&gt;これは実装しなければ！&lt;/div&gt;
&lt;div&gt;&amp;hellip;&amp;hellip;&amp;hellip;&amp;hellip;&lt;/div&gt;
&lt;div&gt;問題にぶち当たった。&lt;/div&gt;
&lt;div&gt;マウスカーソルの移動量を出すためには、マウスカーソルが移動しなければ検知できない。&lt;/div&gt;
&lt;div&gt;しかし、マウスカーソルには移動制限がある。それは最大で画面サイズ。&lt;/div&gt;
&lt;div&gt;だから、その制限を取っ払わないと、元画面よりも大きな画面には対応が出来ない。&lt;/div&gt;
&lt;div&gt;いいか。とりあえず、この制限はある状態でリリースして、後で対応しよう。&lt;/div&gt;
&lt;div&gt;&amp;hellip;&amp;hellip;&amp;hellip;&amp;hellip;&lt;/div&gt;
&lt;div&gt;ダメだ。動いている途中のマウスの座標を更新しても、効かない。&lt;/div&gt;
&lt;div&gt;おそらく、ソフト的にマウスの座標更新中にマウスが動作するため、ソフトのマウス座標更新が無視されるのだろう。&lt;/div&gt;
&lt;div&gt;困った。&lt;/div&gt;</description> 
      <link>http://p98074.sugo-roku.com/%E6%9C%AA%E9%81%B8%E6%8A%9E/mcos3%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E4%B8%AD03</link> 
    </item>
    <item>
      <title>MCOS3デバッグ中02</title>
      <description>&lt;div&gt;考え方を大きく変える。&lt;/div&gt;
&lt;div&gt;以前に考えていた話だが、すっかり忘れていた。&lt;/div&gt;
&lt;div&gt;マウスの位置を制御するのは一度だけにする。&lt;/div&gt;
&lt;div&gt;大きくマイナスの位置にする。&lt;/div&gt;
&lt;div&gt;この変更は大きい。&lt;/div&gt;
&lt;div&gt;&amp;hellip;&amp;hellip;&amp;hellip;&amp;hellip;&lt;/div&gt;
&lt;div&gt;やってみたが、画面外に出す操作は効かなかった。&lt;/div&gt;
&lt;div&gt;考え方を変えよう。&lt;/div&gt;
&lt;div&gt;&amp;hellip;&amp;hellip;&amp;hellip;&amp;hellip;&lt;/div&gt;
&lt;div&gt;マウスを消す、もしくは動かなくする。&lt;/div&gt;
&lt;div&gt;マウスを消してもマウスのクリックは有効らしい。&lt;/div&gt;
&lt;div&gt;マウスのクリックを無効にする方法を考えた！&lt;/div&gt;
&lt;div&gt;そこにフォームを出せばいい。フォームでマウスのクリックイベントを拾わなければ、、、&lt;/div&gt;
&lt;div&gt;よし。今日はこれでトライしてみよう。&lt;/div&gt;</description> 
      <link>http://p98074.sugo-roku.com/%E6%9C%AA%E9%81%B8%E6%8A%9E/mcos3%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E4%B8%AD02</link> 
    </item>
    <item>
      <title>MCOS3デバッグ中01</title>
      <description>&lt;div&gt;MCOS3ではMCOS2に制御が移っている間、MCOS3側のPCでは&lt;br /&gt;
マウスを移動させない制御を行っているが、&lt;/div&gt;
&lt;div&gt;そのはずだが、全く機能していない。何故だろう。&lt;/div&gt;
&lt;div&gt;そう考えていたが、原因がわかった。&lt;/div&gt;
&lt;div&gt;無駄に処理を行わないように動いていない場合はマウスの制御は行わないとしていたが、&lt;/div&gt;
&lt;div&gt;そこにバグがあった。&lt;/div&gt;
&lt;div&gt;&amp;hellip;&amp;hellip;簡単なようで簡単でないな。&lt;/div&gt;
&lt;div&gt;MCOS3側のPCでマウスが動くのが嫌で、開始時の位置にマウスを動かすようにしているが、&lt;/div&gt;
&lt;div&gt;ただクリックしただけでも、マウスの位置が違うから&amp;hellip;&amp;hellip;なぜ、マウスをクリックしただけで、&lt;/div&gt;
&lt;div&gt;マウスの位置が違うんだ？　そこが問題では？&lt;/div&gt;
&lt;div&gt;動作確認をして、原因の一つを見つけた。マウスの位置制御をしたら、&lt;/div&gt;
&lt;div&gt;Control.MousePositionの値が変わった。Control.MousePositionの指す位置に移動させたのに。&lt;/div&gt;</description> 
      <link>http://p98074.sugo-roku.com/%E6%9C%AA%E9%81%B8%E6%8A%9E/mcos3%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E4%B8%AD01</link> 
    </item>
    <item>
      <title>MCOS3の動作確認完了！？</title>
      <description>&lt;div&gt;少し間が空いただけで何をやっていたのかすっかり忘れていた。&lt;/div&gt;
&lt;div&gt;こういう時に記録があると便利。&lt;/div&gt;
&lt;div&gt;少ししか時間がないけど、ESC*2で制御を戻す対応をいれよう。&lt;/div&gt;
&lt;div&gt;&amp;hellip;&amp;hellip;動作を確認してみた。&lt;/div&gt;
&lt;div&gt;ESC*2で制御が返る。先日対応してしまったのか？&lt;/div&gt;
&lt;div&gt;そう思って、デバッグで動作を確認してみてわかった。&lt;/div&gt;
&lt;div&gt;マウスの位置を制御する(実際にはまだ移動していない)&amp;rarr;イベント発生&amp;rarr;MCOS2に制御が移っていることを示すフラグが変わっているが、&lt;/div&gt;
&lt;div&gt;マウスの位置が変わっていない&amp;rarr;ということはMCOS2に制御を移さねば！！&lt;/div&gt;
&lt;div&gt;という処理になっているため、デバッグ実行をすると、現象が再現している。&lt;/div&gt;
&lt;div&gt;セマフォ的なやつを用意しよう。それで解決する見込み。&lt;/div&gt;
&lt;div&gt;&amp;hellip;&amp;hellip;&lt;/div&gt;
&lt;div&gt;ちょっと綺麗な対応ではないが、セマフォではなく、ワンタイムロックというような対応をしよう。&lt;/div&gt;
&lt;div&gt;キーボードやマウスの移動で、マウスを制御する場合、直後のマウスフックイベントは無視する。&lt;/div&gt;
&lt;div&gt;(自分で動かしたやつが通知されてくるのが分かっているので。)&lt;/div&gt;
&lt;div&gt;&amp;hellip;&amp;hellip;&lt;/div&gt;
&lt;div&gt;出来た！今日はこれで終わろうかしら？&lt;/div&gt;
&lt;div&gt;今週末の課題を明確にしたいな。&lt;/div&gt;
&lt;div&gt;いやいや、明確だわ。&lt;/div&gt;
&lt;div&gt;動作確認を完了させる。MCOS3単独はとりあえず終わり。&lt;/div&gt;
&lt;div&gt;次はMCOS2と接続する。その前にもう少し軽くしないといけない？&lt;/div&gt;</description> 
      <link>http://p98074.sugo-roku.com/%E6%9C%AA%E9%81%B8%E6%8A%9E/mcos3%E3%81%AE%E5%8B%95%E4%BD%9C%E7%A2%BA%E8%AA%8D%E5%AE%8C%E4%BA%86%EF%BC%81%EF%BC%9F</link> 
    </item>
    <item>
      <title>酒の準備が出来るまでに</title>
      <description>&lt;div&gt;酒の準備が出来るまでにもう少し時間があるので、課題の整理。&lt;/div&gt;
&lt;div&gt;マウスの制御が出来てないので、マウスの制御を出来るようにする。&lt;/div&gt;
&lt;div&gt;&amp;hellip;&amp;hellip;マウスの制御って必要ないんじゃ？&lt;/div&gt;
&lt;div&gt;画面外に出してしまえば、元に戻そうとすればMCOS2から戻るようにしておけば。。。&lt;/div&gt;
&lt;div&gt;画面外で右クリックして時にどんな動作になるのか？　CTRL+Aをしたら？&lt;/div&gt;
&lt;div&gt;そこら辺を確認して問題なければ対処は結構簡単になる。&lt;/div&gt;
&lt;div&gt;ならない可能性もあるけど。。。&lt;/div&gt;
&lt;div&gt;やる価値はあるな。&lt;/div&gt;</description> 
      <link>http://p98074.sugo-roku.com/%E6%9C%AA%E9%81%B8%E6%8A%9E/%E9%85%92%E3%81%AE%E6%BA%96%E5%82%99%E3%81%8C%E5%87%BA%E6%9D%A5%E3%82%8B%E3%81%BE%E3%81%A7%E3%81%AB</link> 
    </item>
    <item>
      <title>MCOS3実装完了ならず</title>
      <description>&lt;div&gt;マウスの制御処理が大分重い。&lt;/div&gt;
&lt;div&gt;でも、それだけじゃない。&lt;/div&gt;
&lt;div&gt;&amp;hellip;&amp;hellip;色々いじって分かったことはUDP送信処理が原因だ。&lt;/div&gt;
&lt;div&gt;UDP送信処理を切ったら凄く軽くなった。&lt;/div&gt;
&lt;div&gt;もちろんMCOS3の最重要な処理のため、UDPを単純に消す訳にはいかない。&lt;/div&gt;
&lt;div&gt;恐らくUDPクライアントの生成に時間を要していると思われるため、&lt;/div&gt;
&lt;div&gt;UDPクライアントの生成は下記のいずれかのケースに絞ろう。&lt;/div&gt;
&lt;div&gt;(1)起動時&lt;/div&gt;
&lt;div&gt;(2)MCOS2との通信開始時&lt;/div&gt;
&lt;div&gt;UDPクライアントのクローズ処理は上記ケースと逆。つまり、&lt;/div&gt;
&lt;div&gt;(1)終了時&lt;/div&gt;
&lt;div&gt;(2)MCOS2との通信終了時&lt;/div&gt;
&lt;div&gt;で、もし、上記対応が許されないのであれば、スレッド上で常時UDPクライアントは使い続ける。&lt;/div&gt;
&lt;div&gt;なので、キューに命令を保存して、UDP通信スレッドがそのキューの内容を読み取って、通信処理を行う。&lt;/div&gt;
&lt;div&gt;&amp;hellip;&amp;hellip;&lt;/div&gt;
&lt;div&gt;(1)の対応をしてみたが重い。&lt;/div&gt;
&lt;div&gt;&amp;hellip;&amp;hellip;&lt;/div&gt;
&lt;div&gt;newする処理をことごとく起動時に移すと、動作することがわかったが、同時にわかったことがある。&lt;/div&gt;
&lt;div&gt;ESC&amp;times;2で戻しても、マウスの座標が戻されてしまうため、無限に処理を抜けないということになりえる。&lt;/div&gt;
&lt;div&gt;抜けた場合の処理を実装しよう。&lt;/div&gt;
&lt;div&gt;&amp;hellip;&amp;hellip;&lt;/div&gt;
&lt;div&gt;MCOS2に制御をうつした場合のマウスの座標をマイナスにしてしまおう。&lt;/div&gt;
&lt;div&gt;そうすれば画面の外に出すことが出来る。&lt;/div&gt;
&lt;div&gt;でも、これはもう少し先の話。MCOS2と通信を始めてからの話。&lt;/div&gt;
&lt;div&gt;今日、MCOS2とMCOS3の接続まで行きたかったけど、ここまでか。。。酒飲もう。&lt;/div&gt;</description> 
      <link>http://p98074.sugo-roku.com/%E6%9C%AA%E9%81%B8%E6%8A%9E/mcos3%E5%AE%9F%E8%A3%85%E5%AE%8C%E4%BA%86%E3%81%AA%E3%82%89%E3%81%9A</link> 
    </item>
    <item>
      <title>MCOS3が重すぎる</title>
      <description>&lt;div&gt;MCOS3の動作が重すぎる。&lt;/div&gt;
&lt;div&gt;テスト動作でまともに動作しない。&lt;/div&gt;
&lt;div&gt;処理が重いところを解析しなければ&amp;hellip;&amp;hellip;&lt;/div&gt;</description> 
      <link>http://p98074.sugo-roku.com/%E6%9C%AA%E9%81%B8%E6%8A%9E/mcos3%E3%81%8C%E9%87%8D%E3%81%99%E3%81%8E%E3%82%8B</link> 
    </item>
    <item>
      <title>とりあえずMCOS実装完了(UDP通信は未実装だけど。。。)</title>
      <description>&lt;div&gt;UDPの受信処理は後でやるとして、それ以外は実装完了。&lt;/div&gt;
&lt;div&gt;何故、UDPの受信処理を後でやるかというと、&lt;br /&gt;
通信内容を確認してから実装した方が効率がいいから。&lt;/div&gt;
&lt;div&gt;&amp;hellip;&amp;hellip;&amp;hellip;&amp;hellip;おぉ！　MCOSがとりあえず実装完了した！&lt;/div&gt;
&lt;div&gt;という訳で、引き続きMCOSの動作確認！&lt;/div&gt;
&lt;div&gt;明日中にMCOS2とMCOS3が繋がればいいなぁ。&lt;/div&gt;</description> 
      <link>http://p98074.sugo-roku.com/%E6%9C%AA%E9%81%B8%E6%8A%9E/%E3%81%A8%E3%82%8A%E3%81%82%E3%81%88%E3%81%9Amcos%E5%AE%9F%E8%A3%85%E5%AE%8C%E4%BA%86-udp%E9%80%9A%E4%BF%A1%E3%81%AF%E6%9C%AA%E5%AE%9F%E8%A3%85%E3%81%A0%E3%81%91%E3%81%A9%E3%80%82%E3%80%82%E3%80%82-</link> 
    </item>
    <item>
      <title>少しだけ進んだ</title>
      <description>&lt;div&gt;マウスのホイール制御も含めて対応完了。&lt;/div&gt;
&lt;div&gt;進捗が悪い。ひとえにゲームをしているためだ。&lt;/div&gt;
&lt;div&gt;ゲームをやめればもう少し作業時間を増やすことが出来るのだが&amp;hellip;&amp;hellip;&lt;/div&gt;
&lt;div&gt;それはともかくとして、残りの作業は&amp;hellip;&amp;hellip;満載だ。&lt;/div&gt;
&lt;div&gt;キーボードの監視も必要だし、UDPの受信処理も必要&lt;/div&gt;
&lt;div&gt;&amp;hellip;&amp;hellip;思ってたよりも残作業が少ない。&lt;/div&gt;
&lt;div&gt;ということはこの3連休で実装完了までいけそうだ。&lt;/div&gt;</description> 
      <link>http://p98074.sugo-roku.com/%E6%9C%AA%E9%81%B8%E6%8A%9E/%E5%B0%91%E3%81%97%E3%81%A0%E3%81%91%E9%80%B2%E3%82%93%E3%81%A0</link> 
    </item>

  </channel>
</rss>