Post Reply 
G1 problem with WAIT in latest firmware
08-08-2021, 06:03 PM (This post was last modified: 08-22-2021 07:56 PM by Gene222.)
Post: #8
RE: G1 problem with WAIT in latest firmware
I was not able to downgrade the hardware A physical calculator to version 2020-01-16. Oh well.

Below is the test program I used for WAIT(-1). It is not very good, as I don't understand how to handle time dependent variables.

When tapping the screen, the screen handler captures the first data set, and prints it. The program moves on to the menu handler procedures, but the system is still returning the screen tap data. I had to add a third test condition, datMK(3) greater than 220, to avoid capturing the screen tap data.

Code:
// 8/22/2021
EXPORT WaitTest2improved()
BEGIN
  LOCAL dynMK=0, LoopExit;
  REPEAT
    LoopExit := 0;
    dynMK := 0;
    RECT_P();
    DRAWMENU("tab1", "tab2", "tab3", "tab4", "", "exit");
    TEXTOUT_P("Press a red button, app key or menu tab.",G0,0,0);
    RECT_P(G0, 10, 80, 40, 100, RGB(196,0,0));
    RECT_P(G0, 10, 110, 40, 130, RGB(196,0,0));
    dynMK := WAIT(-1);
    dynMK := B→R(dynMK);
    CASE
      // Timeout event
      IF TYPE(dynMK)==0 AND dynMK==-1 THEN
        BREAK 1;
      END;
      // Key event
      IF TYPE(dynMK)==0 THEN
        CASE
          IF dynMK==4 THEN //Exc key
            BREAK 1;
          END
          IF dynMK==1 THEN //Symb key
            TEXTOUT_P("Symb key press",G0,170,110);
            TEXTOUT_P(dynMK,G0,170,130);
          END
          IF dynMK==6 THEN //Plot key
            TEXTOUT_P("Plot key press",G0,170,110);
            TEXTOUT_P(dynMK,G0,170,130);
          END
          IF dynMK==11 THEN //Num key
            TEXTOUT_P("Num key press",G0,170,110);
            TEXTOUT_P(dynMK,G0,170,130);
          END
          IF dynMK==9 THEN //View key
            TEXTOUT_P("View key press",G0,170,110);
            TEXTOUT_P(dynMK,G0,170,130);
          END
          IF dynMK==13 THEN //Menu key
            TEXTOUT_P("Menu key press",G0,170,110);
            TEXTOUT_P(dynMK,G0,170,130);
          END
        END; //case
      END;
      // Mouse Down event in screen area
      IF TYPE(dynMK)==6 AND dynMK[1]==0 AND dynMK[3]<219 THEN
        CASE
          // button 1
          IF 10<dynMK[2]<40 AND 80<dynMK[3]<100 THEN
            TEXTOUT_P("button 1 press",G0,60,90);
            TEXTOUT_P(dynMK,G0,60,110);
          END
          // button 2
          IF 10<dynMK[2]<40 AND 110<dynMK[3]<130 THEN
            TEXTOUT_P("button 2 press",G0,60,90);
            TEXTOUT_P(dynMK,G0,60,110);
          END
        END; //case
      END;
      // Mouse Click event in menu area
      IF TYPE(dynMK)==6 AND dynMK[1]==3 AND dynMK[3]>219 THEN
        CASE
          IF dynMK[2]<52 THEN
            TEXTOUT_P("menu tab 1 press",G0,40,150);
            TEXTOUT_P(dynMK,G0,40,170);
          END
          IF 52<dynMK[2]<105 THEN
            TEXTOUT_P("menu tab 2 press",G0,40,150);
            TEXTOUT_P(dynMK,G0,40,170);
          END
          IF 105<dynMK[2]<158 THEN
            TEXTOUT_P("menu tab 3 press",G0,40,150);
            TEXTOUT_P(dynMK,G0,40,170);
          END
          IF 158<dynMK[2]<211 THEN
            TEXTOUT_P("menu tab 4 press",G0,40,150);
            TEXTOUT_P(dynMK,G0,40,170);
          END
          IF 211<dynMK[2]<264 THEN
            //TEXTOUT_P("menu tab 5 press",G0,40,150);
            //TEXTOUT_P(dynMK,G0,40,170);
          END
          IF 264<dynMK[2]<=319 THEN
            BREAK 1;
            //TEXTOUT_P("menu tab 6 press",G0,40,150);
            //TEXTOUT_P(dynMK,G0,40,170);
          END
        END; //case
      END;
    END; //case
    WAIT(.7);
  UNTIL LoopExit=1;
END;

8/22/21. Corrected case statement to the newer format. Also, removed default statement. Corrected tab coordinates.
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: G1 problem with WAIT in latest firmware - Gene222 - 08-08-2021 06:03 PM



User(s) browsing this thread: 1 Guest(s)