Machine Vision

cancel
Showing results for 
Search instead for 
Did you mean: 

Huge Delay during image transfer

Solved!
Go to solution

Well it's quite difficult to say from the code snapshot. It's better to have source code (VI) for additional troubleshooting...

 

CLA, CTA, CLED
0 Kudos
Message 11 of 20
(3,506 Views)

Hi

 

Here is the whole code of my project. The name of my VI program is micro1.vi.

 

https://www.dropbox.com/sh/kjo5p2oj07e63wv/AAApdGSNcFY9NLLfxxTz7pANa?dl=0

 

 

Regards

0 Kudos
Message 12 of 20
(3,502 Views)

Well let's forget about your code. I don'T have 20+ monitors to explore it...

Beeing you I'd start with simple test. Something like attached code. Does it capture some images?

CLA, CTA, CLED
0 Kudos
Message 13 of 20
(3,498 Views)

Hi

 

I added the files in my project and I started the example. Here is the error that I received:

 

Debug_Error.jpg

0 Kudos
Message 14 of 20
(3,486 Views)
Solution
Accepted by tiho

Well,
what steps you've done for solving this error? Considering your previous experiences with Jenoptik API you should immediately find out that I forgot to connect the reference wire. You might be able to see it on the first sight. Try to think before asking...

 

missing wire.png

 

Maybe you should consider to visit LabVIEW Core 1 and 2 classes first...

CLA, CTA, CLED
Message 15 of 20
(3,480 Views)

Thank you for your answer. It's working now. 

 

Regards

 

0 Kudos
Message 16 of 20
(3,459 Views)

Hey,
it's good to hear that. However I still strongly recommend you to rewrite your application. Having code in a size of 20+ FullHD displays is a programmer's nightmare. There are commonly used techniques and design patterns that can help you to build reliable and maintainable application. You can start at NI Community for example here » https://decibel.ni.com/content/docs/DOC-22047

Good luck!

 

Ondřej K.

NIEE AE

CLA, CTA, CLED
Message 17 of 20
(3,455 Views)

Hi

 

What do you mean with  " a size of 20+ FullHD displays"? I will reduce the number of my image displays. I have a lot of events in my event structure. Is it OK or I have to reduce them. I really wnat to rewrite the application because at this time it is not so stable. This is my first iteration. I wanted to check if I can use labview for this task. I have a lot of  accynchronous processes that I have to reorder somehow because now the visualization doesn't work well. I use many flags but I am not sure if it is correct in labview.

 

Best regards

0 Kudos
Message 18 of 20
(3,422 Views)

Hello,

sorry I don't have time to explain it in details but having version 1, 2, 3 .... is sort of time wasting. My recommendation is to think it through and decide for certain architecture. Once you will have it it's time to implement code modules (=functionalities) into your application. These modules should have low coupling and might work as a standalone code which will interact with application engine over I/O of your VIs.

You can check out what I did for you...it's a very simple example of the application with separate loops where each loop handles different task such as UI events handling, displaying data or processing user request. Again it uses standard LabVIEW design patterns (or it's combinations) and as you can see it's not a rocket science. Block diagram will fit on one screen and it's easy to read (no a spaghetti code like it is shown on the attached screenshot).

Try to consider using data clusters (bundle / unbundle) queue frameworks and so on... (and stop using local variables!)

If you're Czech speaker you can call CZ/SK Tech Support during the business hours because this text-based support has reached its end.

Regards

Ondřej K.

CLA, CTA, CLED
Download All
Message 19 of 20
(3,398 Views)

Hi

 

Thank you very much for your support.

As you know, I am using a consumer/producer architecture with event handler. I have one producer loop with an event structure  and 4 consumer loops for each hardware device control. I have selected this kind of architecture because I have a lot of devices for control. Each consumer loop has a timeout queue (case). All timeout queues (cases) are called at the same time in the main event stucture. I tried to synchronize them using flags. According to the state of the flag, different parts of the tmeout events are executed. Unfortunately I think that with flags it is not possible to synchronize all queues, called simultaneously.

 

My question is: Is it allowed or correct to call in one case from the producer loop all 4 queues at the same time or I have to call them in series?

 

Almost all of my controls (buttons, edits, booleans) change their state automatically after pushing one main button and according to the state of the different flags. The main button has a case defined in the event structer after value changed but some controls and flags could not be defined in the event structure because their state is changed automatically by the main button. Therefore I use so much local variables and my code is like a spaghetti in all timeout cases of all consumer loops.

 

0 Kudos
Message 20 of 20
(3,376 Views)