2010年2月1日月曜日

ヌーメモローン

どうも、メッケーモとかヌーメロローンとか分かる人には廃人全開にしか見えないであろうQです、こんちには。

人生は色々あるとは思いますが、時として色々賭けざるを得ない状況もあるような気がします。てか、まあどうも僕は何かを作ったり、熱中してないと死にたくなる人種だということは最近理解しました.

というわけでメモ。

1.DUB-9、シリアルポートの割り当て
PCのポートの場合、

1.CD:データキャリア検出
2.RD:データ受信
3.TD:データ送信
4.DTR:データ端末レディ、PC送信中
5.GND:信号のグラウンド
6.DSR:データセットレディ、周辺装置稼働中
7.RTS:PCからの送信要求
8.CTS:周辺装置の受信可能通知
9.RI:周辺装置から呼出信号検出の報告

マイコン的に重要なのは
RD <- 周辺装置TD
TD -> 周辺装置RD
GND -- 周辺装置GND
RTS -> CTS
DTR -> DSR

この辺の情報は調べると錯綜気味な内容が多いが、とりあえず自分の環境ではこれでいける。




2.イヤホン用ジャックの耐電流
調べるのが意外と大変。本気で調べようと思うと、JIS規格のPDFを購入する必要があるっぽい。まあとりあえず調べた限りでは、

3.5Φジャック 約1[A]
6.3Φジャック 約2[A]

と見積もれば大丈夫っぽい。まあ、このイヤホン用ジャックで耐電流を気にするような使い方は普通しないと思うけど、着脱性と入手性は良さはトップレベルかもしれない・・・。




3.incompatible implicit declaration of built-in function
built-in関数の不正な?暗黙の宣言。
要するに、適切な宣言が行われていない関数が存在する時に発生する警告。

自分はstrlen()を呼ぶときにstring.hがincludeされてなくて出た。本やホームページに書いてあるソースが常に信頼に値するわけではないことを学習した.




4.Xにおけるフォント関連
xlsfonts:Xで使えるフォントの一覧
xfd -fn hogefont:当該のフォントの中身を見る

フォントの読み込み
Font font = XLoadFont(d,"hogefont");
なおフォント名はX Logical Font Description Conventionsに従っている必要があり、?や*による正規表現が可能。

GCにフォントを設定
XSetFont(d,gc,font);

文字列を書く
XDrawString(d,w,gc,x,y,"hugahuga",length);
w:書きたいwindow
gc:この場合は設定したフォント
x,y:よく分からんが、windowの左上を原点として、文字列の最初の文字の左端、下から3分の1位の位置を指定する感じ。フォントによって違うかも。
length:文字列長さ




5.window回り
window内にwindowを作ることができ、これをsubwindowと呼ぶらしい。

sub_window = XCreateSimpleWindow(d,parent_window,,,,)
これでsub_windowはparent_windowのsubwindowになる。

また
XsetSubwindowMode(d,gc,subwindow_mode)
という関数があり、subwindow_modeには
ClipByChildren:親windowへの書き込みがsubwindow内に影響しない。
IncludeInferiors:親windowへの書き込みがsubwindow内に影響する。
この辺をクリッピングとか言うらしい。
defaultはClipByChildren。

XRaiseWindow(d,w)
wをwindow stackのtopに置く。要するに一番上に表示させる。またExposeイベントをキューイングする。

XMapWindow(d,w)
wを実際に表示させる。manualのancestorの意味がいまいち掴めんが、親windowの連なり、のことをいってるのかな?要するに親(とその親とその親の・・・)windowが全てmapされてなければ、表示される資格が与えられるのみで、表示はされない。

subwindowを全部表示するのがメンドクサイときは
XMapSubWindows(d,parent_window)
を使う。manualでも推奨されています。

XMapRaised(d,w)
Mapして最上位に表示。




6.ボタンを作るのに便利なイベント
イベントタイプがButtonPressのとき、
Event.xany.window
でどのwindowでButtonPressが発生したのかを拾うことができる。
subwindowに使うとボタンに相当する機能が実現できる.




7.wc
トイレのことではなく、行数や文字数を表示するコマンド。





ほげほげほげ
ほげほげほげほげ
げほっげほ!!

0 件のコメント:

コメントを投稿