qcoptest


ダウンロード

バイナリ qcoptest_0.1.1_arm.ipk

ソース qcoptest_0.1.1.tar.gz

概要

以下の2つの機能を持つツールです。

アプリケーションというよりは、解析好きな人のために贈るテストツールです。どんなときにどんなQCopメッセージが出ているのかがわかるので、ドキュメント化されていない未知のQCop指令を発見できたりするかもしれません。QCopを使うアプリケーションのデバッグなどにも使えると思います。

また、そういった性格のツールなので、以下の使用方法の説明は不親切です(^^;。日本語化もしていません。

受信機能

以下のQCopチャンネルを開きます。

そして、それぞれのチャンネルで受信したQCopメッセージを受信時刻付きで画面に表示し、なおかつ指定したディレクトリ下に

というファイル名で記録します。

格納ディレクトリと任意指定チャンネルは、以下の方法で指定します。

ファイル/home/zaurus/Settings/qcoptest.confのconfigセクションに、

LogDirectory = 格納先ディレクトリ

ChannelName = 任意指定チャンネル名

と記述。

なお、任意指定チャンネル名は、'QPE/'は外した形で指定します。例えば、QPE/Aaaaaなら'Aaaaa'、QPE/Application/qtmailなら'Application/qtmail'と記述します。

例:

[config]
LogDirectory = /home/zaurus/
ChannelName = Application/datebook
また、任意指定チャンネルは、実行中に変更することもできます。qcoptestに対して、'setDocument(QString)'メッセージで、変更したいチャンネル名(QPE/抜き)を渡します。

例:

qcop QPE/Application/qcoptest 'setDocument(QString)' Aaaaaa

ちなみに、このqcoptest自身がqcopメッセージ送信機能を持ちますから、それを利用して、自分自身へqcopメッセージを送ることができます。そんなわけで、特に任意指定チャンネルを変更するためのメニューやボタン等は用意していません。送信機能を使って切り替えを行ってください。

起動すると、オープンしたチャンネルについて、それぞれチャンネル名のタブが作成され、その画面で受信したqcopメッセージをリアルタイムに表示します。同時に、ファイルへの記録も行っています。

ただし、任意指定チャンネルは、指定されていない場合、および指定されたチャンネルがオープンしていない場合(そのチャンネルを開くアプリケーションが起動していないなど)には、タブが作成されません。

また、すでにわかっているメッセージで、頻繁に受信されるために記録に残したくないものがある場合は、confファイルのignoreセクションに

entry0 = Network up()
entry1 = System raise(QString)
などのように、チャンネル名+空白1文字+メッセージ名(パラメタの型付)と記述すると、それに該当するメッセージは、受信しても表示・記録しません。0〜99まで作成できます。間の空白は、必ず1文字である必要があります。(あくまでテスト用ツールなので、その辺には手間をかけておらず、融通が利きません)

送信機能

Send QCopタブより、QCopメッセージの送信を行うことができます。入力欄はすべて、履歴・オートコンプリート付のコンボボックスになっています。履歴はすべて保存され、追加されていきます。なお、既存の履歴を削除する機能はありません。(どうしても削除したい場合はconfファイルをみて、適当に直してください)

Channel Name欄に、"QPE/"をのぞいたチャンネル名を入力します。受信機能で受信しているチャンネルは、あらかじめ履歴に追加されているため、そこから選択するか、あるいは1〜2文字入力するとオートコンプリートされます。

Command欄に、送信したいQCopメッセージを指定します。たとえば、'setLed(int,bool)'のように、引数の型名付で記述します。

Argument1〜4欄には、1つ以上の引数を指定したときに、それを一つずつ記述します。なお、QString/QCStringやintの場合はそのもの(QString/QCStringは文字列、intは数字)を記述、boolの場合はtrue/falseあるいは1/0のいずれかを記述します。QStringListの場合は、入力欄の内容を、空白を区切りとしたStringListとして扱います。たとえば、"aaaa" "bbbb"というリストを渡したい場合は"aaaa bbbb"と記述します。

QDateTimeの時は、yyyy/mm/dd hh:mm:ss形式で日付と時刻を指定します。

例:
2004/01/04 12:00:00

出力の時と形式が違うので注意してください。

今のところ、わかっているQCopメッセージでは、パラメタの型は

のいずれかなので、送信も受信も、この6種類の型にのみ対応しています。もし、それ以外の型の引数を持つQCopメッセージを発見したら、ぜひ掲示板などでお知らせください。

ともかく、言葉で説明するよりは、実際に使ってみてください。

なお、いくつか注意点があります。

注意点はありますが、これらはすべて、qcoptestが実行中にのみ影響するものであり、特にシステムの設定を変更したりするわけではないので、なんか変だと思ったらqcoptestを終了させれば、まず問題はありません。(たとえば、電源ON/OFFの時にはかなり大量のqcopメッセージが発生しているので、qcoptestを起動中に電源on/offをすると、普段よりかなり時間がかかります。でも、それをやれば、on/offの時に何が行われているのかがよくわかります。)

使用結果

これによって存在を知ったqcopメッセージのうち、webなどで見かけた覚えのないものをいくつか示しておきます。

QPE/TaskBar

setLed(int,bool)

int = 0の時、boolで、メールLEDの点灯(true)・消灯(false)を指定する。int = 1の時、boolで、メールLEDの点滅(true)・点滅取り消し(false)を指定する。

たとえば、KeyHelperで、メニューに

xx_LED点灯 = @qcop<tab>QPE/TaskBar setLed(int,bool) 0 1
xx_LED消灯 = @qcop<tab>QPE/TaskBar setLed(int,bool) 0 0
xx_LED点滅 = @qcop<tab>QPE/TaskBar setLed(int,bool) 1 1
xx_LED点滅解除 = @qcop<tab>QPE/TaskBar setLed(int,bool) 1 1

などとして利用することが可能。

QPE/Network

start(QString,QString)

1つ目のQStringに、/home/root/Applications/Network/modules/以下のLAN.conf/WLAN.conf/DialUp.confを指定すると、それぞれ、有線LAN、無線LAN、PHSカードの接続を行う。2つ目のQStringはNULL。C860では、connectRequest()を実行すると、必ず接続のダイアログが出て結構うざったいのに対して、これを使ったときはダイアログが出ない。(それくらいしか使い道は思いつかないけど(^^;)

repaint()

接続のダイアログを表示する。

QPE/Application/qtmail

sendrecv()

メールの送受信を行う。メールボタン長押しのときと同じ動作だが、ボタンのときと異なり、事前にqtmail(標準のメーラー)は起動しておく必要がある。

動作機種

SL-C700およびSL-C860で動作確認しています。C750/760、B500、A300でも動作するはずです。

開発メモ

2004/1/1 0.1.1リリース

もともと、自分のテスト・デバッグ用に作成したプログラムですが、意外と使い道があるかも、と思って、ある程度汎用的なつくりにしてみました。とりあえず動かしておいて、いろいろな操作をしてみるだけで、結構情報が得られます。使えるかも、と思ったメッセージは、送信機能を使ってすぐに試せます。

なお、SDカードやCFカードにインストール可能ですが、当然ながら、これをSDカードにインストールして実行中に、SDカードを抜いたときにどのようなqcopメッセージが出るのだろうと思ってSDカードを抜こうとすると………なので、なるべく本体メモリにインストールしたほうが無難です。同様に、記録ファイルも本体メモリに記録するようにしたほうが無難です。


[戻る]