Announcement

Collapse
No announcement yet.

Real Time Image Update

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

  • #16
    Hello,
    I was successful in obtaining real time image transfer by using the display in serial mode with BLIT . I need to get clarity on two things

    1) Is there any way to change the mode of the screen ViSi Genie to serial or vice-versa programmatically by sending some commands over to the display module instead of doint it by opening Workshop 4 IDE and performing SPE load .

    2) Whenever I switch on the device I am getting the getting started page on the screen as shown in the image . Is there any way to avoid this ( not displaying the getting started page or changing it) .

    Click image for larger version

Name:	display screen.JPG
Views:	14
Size:	102.8 KB
ID:	66045

    Thank You
    -Sumanth
    Attached Files
    Last edited by interns.ug@constelli.com; 19th November 2018, 03:51 PM.

    Comment


    • #17
      Hello Sumanth,

      May I know why you want to switch environments during run-time?

      I don't think that's possible, but maybe we could give some advice on achieving your goal with just one environment.

      For more information on modifying the splash screen, you could try the solution provided on this forum thread.

      changing splash screen µOLED-96-G2
      https://forum.4dsystems.com.au/forum...2%B5oled-96-g2

      It's for a goldelox module but the information is still relevant for most of our displays.

      Best regards,
      Michael

      Comment


      • #18
        Hello,

        I'm going to use my display in serial mode (gen4-uLCD-24DT) . Is there any way to put up an image as splash screen instead of default screen ?

        Comment


        • #19
          Hello,

          This solution is based on the link that I previously posted.

          1.) In ViSi, create a project that shows the splash image that you want and compile it.

          2.) In C:\Users\Public\Documents\4D Labs\4DUpdates\Utils, find the file that matches the name of your module (in this case 'Gen4-uLCD-24DT.inc')

          3.) Delete the contents of the file and Paste the code from your ViSi project and save it.
          Note: you might want to keep a copy of the original file in case you want to change back to the riginal splashscreen.

          4.) Your compiled ViSi project should generate a file named <project name>const.inc, place that file on C:\Users\USERNAMEAppData\Local\Temp
          Note: replace 'USERNAME' with your username

          5.) Restart Workshop4 and reload the SPE Application, you should have your custom splashscreen by this moment.

          I hope this helps.

          Best regards
          Last edited by michael_4D; 3rd December 2018, 02:27 PM.
          Michael

          Comment


          • #20
            Hi Micheal ,

            Thanks for the quick reply .

            I didn't understand the third point which you have mentioned . Which code i have to paste in that .INC file . I am not aware of using ViSi environment i can only use ViSi Genie mode . If you elaborate a bit more on how to do it especially the third point it would be useful.

            Thank You
            -Sumanth
            Last edited by interns.ug@constelli.com; 2nd December 2018, 05:15 PM.

            Comment


            • #21
              Hello Sumanth,

              Here's what I would like you to try.

              To create the splash image project, please consult these application notes:

              ViSi Getting Started - First Project for Picaso and Diablo16
              https://www.4dsystems.com.au/appnote/4D-AN-00119/

              ViSi Displaying Images from the uSD Card - WYSIWYG FAT16
              https://www.4dsystems.com.au/appnote/4D-AN-00069/

              I've included a zip project containing a few files.
              a.)Gen4-uLCD-24DT_edited.inc
              b.) Splash screen ViSi project.

              I'd like you to extract the contents of the zip file and then;

              1.) Open the ViSi project, change the Image1 into which ever image you want.
              2.) Under the project tab, Change the display into a gen4-uLCD-24DT.
              3.) Compile the project and copy the graphics files to an SD card.
              4.) After succesfully compiling the project, look for the folder named "Splash screen.4Dwork"
              5.) Inside that folder look for 'Splash screenConst.inc', copy that file and paste it to C:\Users\USERNAME\AppData\Local\Temp
              Note: replace 'USERNAME' with your username

              6.) goto C:\Users\Public\Documents\4D Labs\4DUpdates\Utils and find Gen4-uLCD-24DT.inc.
              7.) Move that file out of the Utils folder.
              8.) Rename the 'Gen4-uLCD-24DT_edited.inc' into 'Gen4-uLCD-24DT.inc' and move it to C:\Users\Public\Documents\4D Labs\4DUpdates\Utils.
              9.) Restart Workshop4 and reload the SPE Application.

              I hope this helps.

              Best regards,
              Attached Files
              Michael

              Comment


              • #22
                Thank you for your quick response i'll get back to you after i've tried it

                Comment


                • #23
                  Hi,
                  Thank you michael_4D for your help . It is working fine ( splash screen image ) .
                  I have configured my display ( gen4 u LCD 24DT) with a baud rate of 2187500 which means an image of size 210*300 (1008000 bits ) has to take 400 milli seconds but it is taking 800 milli seconds and sometimes 1500 milli seconds which is making my display look lagging . What might be the possible problem ? Any help would be appreciated .
                  FYI I am using the display in serial mode and sending real time image by "BLITTING" more details are available in the above discussion .

                  Thank You
                  - Sumanrth Reddy

                  Comment


                  • #24
                    Hello Sumanth,

                    Apologies for the delay in response, You said you were able to update images in real-time, did these images have a similar size to your splash screen image?

                    I'm thinking this is because aside from receiving data (which takes approx. 400ms), the display is also doing other functions like displaying the image itself, this could possibly cause additional delays.

                    Perhaps these forum threads could provide additional insights on optimizing your process.

                    sector and address math

                    Principles of off screen displays and blitting

                    I hope this helps.


                    Best Regards,
                    Michael

                    Comment


                    • #25
                      I don't think u understood the point here . Let me break it down for you .

                      I am using a different software to send data serially to the screen I am sending a command to blit and image data as pixel by pixel . It takes only around 400 Milli seconds to transfer the data from pc to screen but in this case it is taking 800-1100 ms for an image sized 210*300 . I have a method in my software to read the time taken for sending the data . The overall image ( one image ) is displayed in 1040 ms where 826 ms of that time is taken only in sending data from pc to screen . I take the other 200 ms might be for other functions as u mentioned and that is fine , I want to know why it is taking 800ms but not 400 ms .
                      What might be the possible reason ?

                      Comment


                      • #26
                        Hello Sumanth,

                        May I know how your software works? specifically, the part where you start and stop the "timer". I'd like to better understand the mechanism of this software e.g. is it really just measuring the transfer time? or maybe there are some other processes involved that we're not currently seeing.

                        Perhaps a code snippet or even a pseudo-code structure of this timer routine would be helpful.

                        Best regards,
                        Michael

                        Comment


                        • #27
                          Hello Michael,

                          I am using LabVIEW Software to interface the display and using it. The way timer works is pretty simple, it just counts the milli seconds elasped from the start of the timer. It is more like a counter which counts the milli seconds. LabVIEW is a graphical programming software where we have blocks for each functionality. I am measuring the time take only for the writing block to execute so yes it is just only measuring the time taking to transfer the data from system to display. I have excluded all the other processes' blocks and measured time solely for the block which transfers data. I even tried it with a simple code which only sends the image data without any other processes and facing the same problem.

                          Does it have something to do with the interface cable cos I am using 4D programming cable and gen4-IB and it shouldn't be a problem ?

                          Can you tell me any possible reasons for this problem and solutions for the same so that i could verify and debug the problem .

                          I was busy with something else so I couldn't get back to you soon

                          Thank you
                          Last edited by interns.ug@constelli.com; 30th January 2019, 01:33 AM.

                          Comment


                          • #28
                            Hello Sumanth,

                            Please note that aside from the image itself, there are also other information that the display sends (e.g. stop bit)

                            Aside from that, the baudrate may not be exactly 2187500.

                            You can find additional information here:

                            setbaud(BAUDRATE) upper and lower tolerance baudrate threshold
                            https://forum.4dsystems.com.au/node/66576

                            Lastly, the programming cable could also be a contributing factor.

                            By default, the Programming cable may not be able to handle transmissions greater than 2M baud.

                            You might want to reconfigure the settings for your programming cable as stated on this forum thread.

                            File Transfer over serial (Programming) cable Utility
                            https://forum.4dsystems.com.au/node/62492

                            I hope this helps.

                            Best regards,
                            Michael

                            Comment

                            Working...
                            X