Ticket #40501

ブロードキャストコマンドのUnicode化

Open Date: 2020-06-23 00:03 Last Update: 2020-07-03 23:51

Reporter:
Owner:
Status:
Open [Owner assigned]
Component:
MileStone:
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
Fixed
File:
None
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Details

  • Unicodeを扱えるようにする
    • Unicode(漢字)などが入力できるようにする
    • 同様にペーストできるようにする

Ticket History (3/9 Histories)

2020-06-23 00:03 Updated by: zmatsuo
  • New Ticket "ブロードキャストコマンドのUniode化" created
2020-06-23 00:04 Updated by: zmatsuo
Comment
2020-06-23 00:18 Updated by: zmatsuo
Comment
  • broadcast ブランチで調整中
  • broadcast がすぐに伝わらない事があるようだ
    • メッセージポンプの GetMessage() でブロックしている?
2020-06-23 00:19 Updated by: zmatsuo
  • Details Updated
2020-06-23 08:49 Updated by: doda
  • Summary Updated
2020-06-28 23:28 Updated by: zmatsuo
Comment

時々ブロードキャストの受信が遅い現象が見られたため調査。

  • 通常はウィンドウメッセージを処理するウィンドウプロシージャは メッセージポンプを経由してコールされる
        メッセージポンプ
           GetMessage()
           TranslateMessage()
           DispatchMessage()
           idle処理など
         ↓
         各ウィンドウプロシージャ
    
  • なにかのきっかけで SendMessage() のメッセージは ウィンドウプロシージャに直接送られ、メッセージポンプを通らなくなる
    • なにかのきっかけで、再度メッセージポンプを通るようになる
  • Tera Termではメッセージポンプ内のidle処理で送受信処理を行う
  • ブロードキャスト処理では SendMessage(WM_COPYDATA) で VTWin に文字を送り込む
  • このため、ブロードキャストでは時々送受信処理が止まることがある
  • Tera Termで何らかのメッセージ処理が行われると溜まっていた処理が行われる
    • ウィンドウ上をマウスカーソルが移動するなど
(Edited, 2020-06-28 23:49 Updated by: zmatsuo)
2020-06-28 23:47 Updated by: zmatsuo
Comment

r8819 で対策しました。

WM_COPYDATA メッセージを処理する際、 SetTimer()を使ってWM_TIMERを発生させるようにしました。

SetTimer() は、指定した関数を呼び出せるためか、 WM_TIMRはプライオリティの低いメッセージのためか、 必ずメッセージポンプを経由するようです。

r8818 はテストをするために作成した、 文字列を送り込むコマンドラインのプログラムです。

Tera Term の設定でマルチキャスト名を設定できるようにして、 これと合わせて使えば便利に使えるかもしれません。

いまのところ cmake ビルドでのみビルドされます。

1週間程度様子を見て、trunk にマージします。

2020-06-28 23:52 Updated by: zmatsuo
  • Resolution Update from None to Fixed
2020-07-03 23:51 Updated by: zmatsuo
Comment

trunkにマージしました。

r8823, r8824, r8825, r8826, r8827, r8828, r8829, r8830

Attachment File List

No attachments

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login