That makes sense. Thanks very much for your explanation.

Regards,

Heyi


在 11/8/2017 4:46 PM, Ni, Ruiyu 写道:
Yes. 2 seconds is for some other terminal tools, that cannot do the F10 
translation.

Thanks/Ray

-----Original Message-----
From: Heyi Guo [mailto:heyi....@linaro.org]
Sent: Wednesday, November 8, 2017 4:45 PM
To: Ni, Ruiyu <ruiyu...@intel.com>; Zeng, Star <star.z...@intel.com>; edk2-
de...@lists.01.org
Cc: Dong, Eric <eric.d...@intel.com>
Subject: Re: [MdeModulePkg/TerminalDxe] Why do we delay 2s for ESC
being pressed?



在 11/8/2017 4:34 PM, Ni, Ruiyu 写道:
No.
Even a terminal tool can recognize F10, it still needs to translate it into "ESC
[ V"
and send the three bytes to firmware.
Got it. But the 2 seconds timeout is not for this situation, right? If terminal
tool could translate and send the key sequence, I think it can complete 3
bytes transfer in a very short time, isn't it? E.g. 9600 baud / 8 = 1200 Bytes/s
(ignore control bits).

So 2 seconds timeout is still for user to enter the sequence "ESC [ V"
manually?

Thanks,

Heyi

Thanks/Ray

-----Original Message-----
From: Heyi Guo [mailto:heyi....@linaro.org]
Sent: Wednesday, November 8, 2017 4:31 PM
To: Ni, Ruiyu <ruiyu...@intel.com>; Zeng, Star <star.z...@intel.com>;
edk2- de...@lists.01.org
Cc: Dong, Eric <eric.d...@intel.com>
Subject: Re: [MdeModulePkg/TerminalDxe] Why do we delay 2s for ESC
being pressed?



在 11/8/2017 3:55 PM, Ni, Ruiyu 写道:
Heyi,

If you check the comments below in TerminalConIn.c:

https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Universal
/C
onsole/TerminalDxe/TerminalConIn.c#L1319

TerminalDxe driver needs to determine whether user wants to press
ESC alone, or press "ESC [ V" for F10 (PCANSI terminal).
Do you mean F10 is not directly supported on some terminal tools so
that we need to press 3 keys "ESC [ V" quickly and continuously to
emulate F10?
Thanks,

Heyi
So a 2 second timeout is added to wait additional keys.

Thanks/Ray

-----Original Message-----
From: Zeng, Star
Sent: Wednesday, November 8, 2017 3:25 PM
To: Heyi Guo <heyi....@linaro.org>; edk2-devel@lists.01.org
Cc: Ni, Ruiyu <ruiyu...@intel.com>; Dong, Eric
<eric.d...@intel.com>; Zeng, Star <star.z...@intel.com>
Subject: RE: [MdeModulePkg/TerminalDxe] Why do we delay 2s for
ESC
being pressed?

Cc Terminal expert Ray to see if any comments on this.


Thanks,
Star
-----Original Message-----
From: Heyi Guo [mailto:heyi....@linaro.org]
Sent: Wednesday, November 8, 2017 3:04 PM
To: edk2-devel@lists.01.org
Cc: Zeng, Star <star.z...@intel.com>; Dong, Eric
<eric.d...@intel.com>
Subject: [MdeModulePkg/TerminalDxe] Why do we delay 2s for ESC
being
pressed?

Hi folks,

We found ESC key responded fairly slow on serial port terminal, and
we think it might be caused by the code in UnicodeToEfiKey in
TerminalConIn.c:
        if (UnicodeChar == ESC) {
          TerminalDevice->InputState = INPUT_STATE_ESC;
        }

        if (UnicodeChar == CSI) {
          TerminalDevice->InputState = INPUT_STATE_CSI;
        }

        if (TerminalDevice->InputState != INPUT_STATE_DEFAULT) {
          Status = gBS->SetTimer(
                          TerminalDevice->TwoSecondTimeOut,
                          TimerRelative,
                          (UINT64)20000000
                          );
          ASSERT_EFI_ERROR (Status);
          continue;
        }

It seems we intentionally add 2 seconds delay for ESC key press.
This provides not so good user experience when we press ESC to exit
or cancel some operation.

We tried reducing this timeout value to 1 second, then the
experience improved much and we didn't find any issue introduced.

What's the reason for this timeout value and is there any improvement?

Thanks and regards,

Heyi

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to