Announcement

Collapse
No announcement yet.

Graphic Update Rate

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Graphic Update Rate

    We have been exploring the serial commands and really like the control we get with it. We don't have a problem, its more of an understanding question.

    Correct me if I am wrong, but every command to place an on screen visual waits until the next frame to update the next command. For example, if I were to draw two lines, and the commands are called immediately after each other, does each line get drawn on a different frame, or do they get drawn and then the frame updated.

    I am noticing that when I have many items on screen, it can take a couple seconds for all the objects to get drawn. Is there a way to draw all the objects and then let the LCD update the resulting image?

    Thanks,
    Alex

  • #2
    Hi Alex,

    Thank you for your inquiry and for your interest in our solutions. There is only one plane on the display, so whatever you put there overlays what is there before. The section "Introduction and Guidelines to the Serial Protocol" of the Serial Command Manual describes how the display processes commands from the host.

    The Serial Protocol used with the SPE Application is a set of commands with associated parameters, to enable
    the Host Controller to display primitives, text, images, play audio, video or data log to micro-SD card, receive
    touch events etc on the 4D Systems Display Module, in the simplest manner available.
    The Serial Protocol is made up of commands and parameters, sent over the Serial Port in byte format to the
    Display Module. Each command is unique, and has a specific set of parameters associated with it. Each
    command that is sent to the Display Module is replied to with a response. Some commands do not specifically
    require a response, so for these commands the Display will reply with an Acknowledge once successfully
    executed.
    Commands that require a specific response may send back a varying number of bytes, depending on the
    command and what the response is.
    Each Command sent to the display will require a certain amount of time before the response is sent, again
    dependent on the command and the operation that has to be performed.
    Commands should only be sent and their response received, before another command is sent. If two
    commands are sent before the first response is received, incorrect operation may follow.

    There is no buffering with the display. However, you could set the contrast of the display to zero first, draw the shapes, then set the contrast back to normal to show the shapes. This implementation may or may not be desirable depending on the nature of your application.

    Hope this helps.
    Doff

    Comment


    • #3
      I guess my question is on the timing of this process. If I have 30 objects to draw and frame rate is 10 frames per second, does it take 3 seconds to draw all the elements on the screen? I guess my question is whether the timing of the drawing is set by the frame rate or the the time it takes to execute?

      Comment


      • #4
        Is there anyone that has some experience with the Serial protocol and making the draw rate faster? Does anyone have any info on the specifics regarding my previous question here?

        Comment


        • #5
          i was abling to stream constant strings (29 strings) streaming from 500kbps canbus to lcd at 200,000baud, its pretty fast.

          Comment


          • #6
            if you wanna sample a speed from the diablo check the other thread i started not too long ago

            https://m.youtube.com/watch?v=zDfCgH...ature=youtu.be

            Comment


            • alexBussiere
              alexBussiere commented
              Editing a comment
              Are you doing that with Serial commands? Looks great!!

          • #7
            serial at 200,000 baud after my first attempt of photoshop animations (after 2 days of googling how to use photoshop... lol!) im stepping the moves at 10 increments tho thats why it jitters a bit, otherwise itll run smooth. theres actually 230 steps transition on the gauge lighting based on vss/rpm, and 100 steps for the fuel/coolant gauge. the map function is ideal for this. to deal with the transparent flicker i replaced it with static 3d text on background since we cant use that area, and changed the layout a bit. the aninations still are there but not shown in this updated photo, if its not smooth enough at 230 steps, i could always spread it out more by redoing more than 400 steps if necessaryClick image for larger version  Name:	IMG_0048.JPG Views:	2 Size:	1.79 MB ID:	55613
            Attached Files
            Last edited by tonton81; 25th January 2017, 01:51 AM.

            Comment


            • #8
              btw, the 3D 'N' at bottom is not a compass, it's gear position 1,2,3,4,5,N,R

              hmm, i need to fill the gradient of the 2 middle shelves, just noticed. i tried to make "customdigits" but failed at it, thats holding me back right now from updating the lcd in the car
              Last edited by tonton81; 25th January 2017, 01:42 AM.

              Comment


              • #9
                great news, i finally figured out how to do custom digits. here we go, behold! 3D DIGITS!!

                https://www.youtube.com/watch?v=x5e9...ature=youtu.be

                oh and if your wondering how i got the transparency on custom digits, it's not really transparent at all., i just used the eyedropper tool on the background image of where im placing the digits and filled in the background layer of the digits psd i created, tada, no black background
                Last edited by tonton81; 26th January 2017, 07:31 AM.

                Comment


                • #10
                  just so anyone knows, or cares, you may also use images and or special characters in your custom digits, I left the extra ends blank and filled the first 6 positions with N,1,2,3,4,5,R, the rest blank
                  I call
                  Code:
                  genie.WriteObject(GENIE_OBJ_CUSTOM_DIGITS , 2, gear);
                  if gear is 0, N appears
                  if gear is 1, 1 appears
                  if gear is 2, 2 appears
                  if gear is 3, 3 appears
                  if gear is 4, 4 appears
                  if gear is 5, 5 appears
                  if gear is 6, R appears


                  bottom of the video you will see the custom digits example using characters and numbers mixed

                  https://youtu.be/FZBzIVToFQ4

                  Comment

                  Working...
                  X