DOWN LOAD BBS

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

ツリー一括表示

Nomal 桐のCOMポート制御(CTI対応?) /hidetake (03/03/17(Mon) 22:25) #154
Nomal Re[1]: 桐のCOMポート制御(CTI対応?) /hidetake (03/03/19(Wed) 10:24) #158 解決済み!


親記事 / ▼[ 158 ]
■154 / 親階層)  桐のCOMポート制御(CTI対応?)
□投稿者/ hidetake -(2003/03/17(Mon) 22:25:02)
    ここはどのぐらいの方が見ておられるのかな? (^_^ゞ

    さて,某所で出た話題ですが次のような処理です
    出来るのでしょうか? CTI に対応した TA (COM
    ポート経由)の場合の話です。

    実際には印字の代わりに call するけど,
    Aterm の場合は,RING と一緒に発信者番号
    もついてくるようだけれど,RING の文字列
    があったら処理をする・・・


    変数宣言 文字列{&str} \
    数値 {&hex}
    &str=#u,&hex=#u

    補助初期化 2
    補助出力 2,"ATZ",13,10

    印字開始 "log.txt"
    /*loop
    /* 補助入力 2,&hex
    /* 印字 _&hex,
    /*end

    loop
    補助入力 2,&hex
    if (&hex=13 .or &hex=10)
    cond (&str) 印字 &str
    /*call (#文字位置(&str,"RING")), hogehoge()
    &str=""
    else
    &str=&str+#jis(&hex)
    end
    /*遅延 1
    end

    印字終了
    補助終了 2
    終了

    しかし,この場合,割り込み処理をしているわけで
    無いので,CPU はフル回転します! :-)

    遅延を入れると取りこぼしているような気もするし
    バッファリングもどうなっているのか良くわからない・・・ (;_;)
    オプションで初期化コマンドや,その辺の制御する
    仕組みでもあるのだろうか?

    フツ〜な人なので,その辺の裏事情はわかりません。

    ※※※※※※※※※※※※※※※※※※※※※※※
    もちろん,動くか動かないかもわからない得たいの
    知れないものです。決して,ベンダーに問い合わせ
    なんてすることの無いように! :-)
    ※※※※※※※※※※※※※※※※※※※※※※※


[ □ Tree ] 返信 [メール受信/OFF] 削除キー/

▲[ 154 ] / 返信無し
■158 / 1階層)  Re[1]: 桐のCOMポート制御(CTI対応?)
□投稿者/ hidetake -(2003/03/19(Wed) 10:24:33)
    > しかし,この場合,割り込み処理をしているわけで
    > 無いので,CPU はフル回転します! :-)

    一部,認識の間違いがありました! :-)

    CPU を喰うのは確かですが,これは「補助入力」が
    データが来ず,待機している状態での負荷のようです。
    「補助入力 2,&hex」だけでは,そこで処理が止まって
    データが来るのをず〜と待ち続けています。
    でも,なんでこんな処理に CPU を 100% も使い切って
    しまうの? (@_@;

    で,データが来なくてもタイムアウトして次に移る仕組
    みって無いの?・・・ て言う疑問も! (^^;

    そこで想像力が働きました? だったらタイムアウトさ
    せるオプションもあって良いのでは? (^_^)

    で,次のようにすれば,CPU にもそれ程負荷をかけずに
    データを取得する事が出来るようです!

    それとバッファリングもされているようで,msgbox 等で
    処理が止まっている間もデータは受けているようです。

    変数宣言 文字列{&str} \
    数値 {&bin,&key,&ret}
    &str=#u,&bin=#u

    補助初期化 2
    補助出力 2,"AT",13,10
    印字開始 "log.txt"

    /*loop
    /* &bin=""
    /* 補助入力 2,&bin,タイムアウト=10,終了状態=&ret
    /* if (&bin)
    /* 印字 _&bin,
    /* else
    /* 遅延 1
    /* 機能キー入力 (1,1),入力待ち=しない,&key
    /* cond (&key=27) break
    /* end
    /*end

    loop
    &bin=""
    補助入力 2,&bin,タイムアウト=10,終了状態=&ret
    if (&bin=13 .or &bin=10)
    cond (&str) 印字 &str
    /*call (#文字位置(&str,"RING")), hogehoge()
    cond (#文字位置(&str,"RING")) \
    msgbox "着信",&str,アイコン =i,ボタン指定=1,制御文字展開=しない
    &str=""
    else if (&bin)
    &str=&str+#jis(&bin)
    else
    遅延 1
    機能キー入力 (1,1),入力待ち=しない,&key
    cond (&key=27) break
    end
    end

    印字終了
    補助終了 2
    終了

    あとは初期化コマンドや,タイミングの設定の問題に,
    どう言ったデータが返ってくるのか,どう判定すれば
    良いのか? と言った工夫は必要でしょうけど・・・

    ※※※※※※※※※※※※※※※※※※※※※※※
    もちろん,動くか動かないかもわからない得たいの
    知れないものです。決して,ベンダーに問い合わせ
    なんてすることの無いように! :-)
    ※※※※※※※※※※※※※※※※※※※※※※※


解決済み!
[ 親 154 / □ Tree ] 返信 [メール受信/OFF] 削除キー/


Mode/  Pass/

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -