« 靴の中と足の関係はデリケート その4(今度こそ結末かな) | トップページ | 今更ながら Nokia N78 を購入した 続き »

2015年3月13日 (金)

Python: PyTaskServer を修正した V0_2_6a

2015-03-13(金)晴れ

 PyTaskServerを修正しました。
 PyTaskServerはHiisiさん作のアプリです。バックグラウンドで動作して、データファイル(*1)に登録されたアプリを、指定された時刻に起動するアプリです。

  *1:起動すべき時刻とアプリを必要な行数登録したファイル
  PyTaskServer についてはPythonスクリプト雑記の
      28.通貨レート取得表示スクリプト を見て下さい。

 PyTaskServerは、毎日の色々なアプリを起動するのに使用しています。先日、E52が動かなくなったかと慌てたときに、代替機にしようかとC5-03にセットアップしました。しかし、PyTaskServerが動かないのです。
 トレースルーチンを組み込んで解析したところthreadモジュールの「thread.start_new_thread」が機能していないらしいことが分かりました。

Pytaskserver01

 今までの処理のフローチャートです。真ん中にある thread.start_new_thread (図では間違えてthread.start_new_server と書いてしまった) がserverルーチンを起動できていません。この現象が、私のC5-03のみの問題か、S60 5thの問題かは不明です(他の機種で試していないから、、)。thread.start_new_threadをサブルーチンコールにすれば動きました。但し、コールされたserverルーチンは無限ループなので、mainの最後にある終了監視処理が実行されず、終了させることが出来ません。
そこで、改造することにしました(このアプリはGNU General Public Licenseなので改造は問題なし)。

改造内容:
 ・thread.start_new_threadをやめて、サブルーチンコールにする。
 ・待ち時間処理は、タイマーをスタートさせた後、一旦ルーチンを抜ける
  ような処理とする。

次の図が、改造後のフローです。

Pytaskserver02

 これで、問題なく動くようです。一日ぐらいしかテストしていませんが、多分大丈夫でしょう。

インストール方法
・sisモジュール作成は難しかったので、元のPyTaskServerをインストールした後
 インストールしたメモリ(C: またはE:)のPythonディレクトリの中の PyTaskServer.py
 を上書きして置き換える方法としました。

これで、何とか対策することが出来ました。

モジュール
  「PyTaskServer_0_2_6a.py」   

|

« 靴の中と足の関係はデリケート その4(今度こそ結末かな) | トップページ | 今更ながら Nokia N78 を購入した 続き »

Python」カテゴリの記事

アプリケーション」カテゴリの記事

携帯電話」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/513620/61276028

この記事へのトラックバック一覧です: Python: PyTaskServer を修正した V0_2_6a:

« 靴の中と足の関係はデリケート その4(今度こそ結末かな) | トップページ | 今更ながら Nokia N78 を購入した 続き »