Error 74 Unflatten from String in video streaming using TCP

I am working on video streaming ( source: USB camera) using TCP. However, am constantly getting held up in "Unflatten from String" with Error 74 occuring stating "Memory corrupt". Kindly help me through in solving the issue.
Attached is the VI having both the send/ recieve together and communicating using localhost. 
Attachments:
Image acquisition & transmit.vi ‏189 KB

Shoaib Akhtar wrote:
Thanks  for the reply!
Restricting the TCP sent dta to two bytes was a mistake, that has been rectified.
However, we are unable to resolve the "Unflatten from String". their just doesn't seem to be any sub-VI or function, that I can find which could convert the string to IMAQ image!
Kindly help in the same!
Best. 
Actually at least in earlier versions of IMAQ the normal Unflatten from string should be able to createthe IMAQ image when you transmit the right data. You can try that by writing the string from IMAQ Flatten.. to a file and reading it back and unflattening. If that works, you know you are making some errors in the TCP communication.
Message Edited by rolfk on 01-11-2010 08:37 AM
Rolf Kalbermatter
CIT Engineering Netherlands
a division of Test & Measurement Solutions

Similar Messages

  • Error 116 at Unflatten from string.....

    Hi I want to save and load the control values of
    the tab pages I am getting the following error
    "Error 116 occurred at Unflatten From String     
          Unflatten or byte stream read operation
    failed due to corrupt, unexpected, or truncated data."
      the attached is the VI can
    anyone tell me what is wrong ….thank you
    Attachments:
    save n load example.vi ‏70 KB

    All that you need to do is right-click on the Read from Text File and Write to Text File functions and uncheck "Convert EOL".
    Other comments:
    You should not hard-code the path inside the VI. Either place a front panel control to specify the path (perhaps with a default value set), or generate the path so that it is relative to the VI (such as being in the same directory as the VI).
    You are not wiring all your errors through so some errors can be lost.
    You do not need to have the VI open a reference to itself. If you delete the Open VI Reference function the code will still work.

  • CRIO: Unflatten from string into lvclass not working in deployment

    Hello,
    I am working on a problem for some hours now and I need some help.
    I am using a cRIO-9022. I need to do some tasks, and I created a couple of classes which contain the parameters and the methods. They contain using dynamic dispatch VIs. I have an array of these classes (all derived from a parent class) which is my "configuration". I am using "flatten to string" and saving those file on disk. "Unflatten from string" is working fine. These file is created on a LV WIndows Application.
    I need to use this file on my cRIO: Unflatten from string, and then work with the array of my classes. When running the cRIO Main VI it's working fine. But when building the application and deploying it as startup, it's not working. I am getting:
    Error 1403 occurred at Unflatten From String in Gantry CommEngine.vi->RT Main.vi
    Possible reason(s):
    LabVIEW:  Attempted to read flattened data of a LabVIEW class. The data is corrupt. LabVIEW could not interpret the data as any valid flattened LabVIEW class.
    What I tried so far:
    - Added the whole lvlib containing the classes and also every single class to "Source files / always included".
    - Created constants of the array (containing the classes) to the VI (forcing LV to include the classes?)
    - Loaded the file from cRIOs flash and also by shared variable
    What else can I do?
    Thanks a lot for support!

    I tried to reproduce the matter, but couldn't. 
    I attached my example to the post. 
    What it does:
    It creates a class with only a string a bool and a number. This class oblect is saved to C:/somename.xml. The number is a random number.
    In the second case the same file is read and the number broadcasted to a variable.
    It worked quite fine building it as a startupexe.
    Nothing else was necessary. Does it work for you?
    Attachments:
    class exe.zip ‏45 KB

  • Unflatten from string takes long time to execute in x64

    Hi All,
    I am running into an issue where "Unflatten from String" is taking enormous amout of memory n time in LV 2012 SP1 x64 to execute. I pass in a NOT flattened string to this function and it consumes ~5 Gigs of memory and takes more than 10 minutes to execute it. On x86, it executes almost instantly.
    It only happens if the input is not a flattened string. 
    Is this a known bug?
    I have attached the vi here for you to see the problem. If you run it on x64, it might take more than 10 mins to execute and your system will be in a hung state. 
    Ritesh
    Attachments:
    Flat String to Data bug.vi ‏9 KB

    LVCoder wrote:
    With "x64" I meant LV x64. It executes instantly on LV x86 running on Win 64 bit but on LV x64 it takes like eternity. 
    I know it cannot unflatten it and I want it to return an error. My actual code can receive a flattened or NOT flattened string and I have a case structure which handles different strings differently. 
    Be careful with that terminology, it only applies to the Windows Operating System with respect to 32-bit and 64-bit processors.  There is no such thing as LabVIEW x64, or LabVIEW x86.  The property terminology is LabVIEW 32-bit (the most common one, most people use, even on 64-bit OS's since it is the most fully supported), and LabVIEW 64-bit (not commonly used, doesn't have full support of all add-on modules and toolkits, and is mainly only used by people who need LabVIEW to analyze very large datasets.)

  • Whats happening internally within the unflatten from string function?

    I am getting unflatten from string error intermitently in my program. I can't post the program to get help but essentially I am storing a GOOP object reference as a string. The reference is flattened to a string and stored upon creation, at a latter time the string is then unflatterned to retrieve the reference and then the data. This works most of the time but occansionaly the unflatterned from string function fails. Prior to passing the string to the function I am checking that the string isn't null. I am assuming something else is corrupting the string prior to passing to this fucntion and would like to know what would trigger the error in the function as it may help me realise what is happening
    prior.
    Cheers,
    Wayne

    Hi,
    It really seems strange this problem, but one thing that might be the cause is how you store the flatten string. You do not mention that. I have once had problems when storing GOOP references as a sting and passing them between test VIs in TestStand using a string parameters in TestStand. A flatten string might have special chars that not all applications (such as TestStand parameters) can handle that and just trunkate the string when such a char is present, mistakenly inteprets that as end of string. Have you tried to check that string length is the same?
    However to make sure you get rid of all problems with string termination, you really should cast your GOOP reference into something else. I would instead cast the reference to an U32, or
    if you want, to solve the string problem for other types than GOOP reference, then flatten the type into string and then convert the string to an array of U8 before storing it. This would by sure solve your problem.
    Regards,
    Mattias Ericsson
    Endevo
    Sweden
    Main developer of the new GOOP2 and GOOP Wizard 3.
    PS! Have you seen that there is a new GOOP release that also may handle inheritance? Please check out: http://www.endevo.se/default.asp?lang=eng and click on "Products". There are examples, demos and white papers describing the new GOOP Inheritance Toolkit.
    Attachments:
    CastRefExample.vi ‏18 KB

  • Bug in "Unflatten from String" (LV7)

    I have binary files with different versions of a certain datatype. When loading a file, I try to unflatten the data using the newest dataversion. If I get an error, I try the 2nd newest dataversion and so on until I found the right datatype. This methode was ok up to LV6.01.
    Now I updated to LV7.0ger and I found following bug:
    When unflatting certain binary datas from string I get an error msg window "Nicht genügend Speicher zum Abschließen dieser Operation". The error-output of the vi is incorrect.
    Does anybody know a workaround of that bug?
    You can test the bug with the attached vi. Include also the two typedefs.
    Attachments:
    f_mancalib_UnflattenTypeCalibList.vi ‏184 KB
    f_mancalib_TypeCalibrationParams.ctl ‏24 KB
    f_mancalib_TypeCalibrationList.ctl ‏28 KB

    Hi,
    From the LV's help: "National Instruments recommends reworking any
    application that uses the Convert 4.x Data mode as a long term solution.".
    Data types may vary with differenct versions of LabVIEW. So, if types are
    not the same, this does not need to be a bug. Right click the Unflatten From
    String, and select Convert 4.x Data. This might not work, because the data
    is stored with Lv 5 or 6, but when you get it working, it will keep working
    for future versions of LV.
    The attached VI shows that a sting in a cluster does not convert to the same
    type string for lv4.x and lv7. Perhaps they are the same for lv4.x and lv6.
    If so, using convert 4.x data would be sufficient. If not, you need to read
    the data in 6, save the binary 4.x strings
    , and use 4.x from then on.
    You might also do the following: (also from the help) "If you use this
    function to flatten data from a custom control or indicator that you saved
    as a type definition, the function strips the type definition of its type
    definition wrapper. If you do not want to strip this wrapper, right-click
    the function and select Expose Typedefs from the shortcut menu."
    Regards,
    Wiebe.
    "albertz" wrote in message
    news:[email protected]..
    I allready told this to a NI tech support in Germany. They told me,
    the bug is known, but they do?nt have a workaround.
    So I hope for LV7.1 or maybe LV7.01.
    [Attachment Different Types.vi, see below]
    Attachments:
    Different_Types.vi ‏22 KB

  • How does "Unflatten From String" take a type and return a value of that type?

    http://zone.ni.com/reference/en-XX/help/371361E-01/glang/unflatten_from_string/
    How exactly does the "type" argument for "Unflatten From String" work? I need to create a VI that takes a type, passes it as an argument to several calls of the "Unflatten From String" function, and returns an array containing elements of the type originally passed. The "Unflatten From String" function seems to do some magic though, because the type of the "value" that it outputs changes depending on the type it is passed as input. How do I do the same magic in my VI?
    Ultimately, what I need to accomplish is an unflatten-list operation. Given a type T and a byte string of length L (which contains a concatenation of T elements that are flattened to their bytes), create a VI that unflattens all the types in the string and return an array of length (L / sizeof(T)) that contains each type.
    Note: performing the unflatten-list operation is trivial, but I cannot for the life of me figure out how to do it in a VI that takes a type and returns an array of the appropriate type. By the way, my data is being given to me from another source, so please don't bother suggesting that I should be flattening an array using LabVIEW's "Flatten To String" function in the first place. My data is not given in LabVIEW's array format: http://zone.ni.com/reference/en-XX/help/371361B-01/lvconcepts/flattened_data/
    Thanks a ton!
    -Wakka

    Take a look at this example:  You can see that the flattened string contains several bytes.  The first four bytes contain the length of array (number of elements).  Since the data type is U32, the next 32 bits (4 bytes) contains the value of the first element, and so on.  Could you possibly use this scheme to do what you want to do?  Other data types present different outputs.  You would have to experiment with them.
    - tbob
    Inventor of the WORM Global

  • How do I unflatten from string to an array of strings in labwindows

    New to Labwindows so please forgive.  I am trying to use STM to read messages from an existing LabView program.  I am using ClientTCPCB from the example that came with the STM library, but it reads in doubles, I want to read in strings.  I can see that I have the correct number of elements in my receive buffer, but I can't figure out how to convert the receive buffer into an array of char arrays (or strings as it were) something like labview's "unflatten from string" with 1-d array of strings as the type.

    So I figured it out... from the lack of info on the web and forums I doubt it will be useful to anyone else, but will post a brief solution.
    So I dumped the raw bytes to a file to look at how they are packed.  The first 4 bytes (int) is the number of strings in the message.  The next 4 bytes (int) are the number of chars that follow, then the corresponding chars, sans any null term character, then the very next int would be the number of chars in the next string and so on and so forth.  So I ended up writing my own charArrUnflatten function.  Anyway, after all this I might try to recode everything to use network vars.  Cheers.

  • HELP: Is it possible to record from multiple video streams using iMovie?

    Is it possible to record from multiple video streams using iMovie.
    I want to record a presenter on a greenscreen and also his powerpoint slides at the same time and cut from one to other.
    Can imovie record from screen and camera at same time?
    If so is there a link to somewhere explaining how to do so?
    If not, what is the most efficient way to do so, without having to learn a whole complex program?
    Please advise asap.
    Very many thanks

    Alan and Anthony,
    Thanks for the quick responses. Unfortunately, there is no backup :(.
    I will ask if they get logged into the global zone, but one thing I forgot to mention is that this zone (as are all our non-global zones and the global zone also) are configured for ldap logins.
    Assuming that they can even try to login to the global zone, can they even see the directory structure in the non-global zone (sorry, I haven't worked with Zones much thus far) from the global zone?
    Also, if they can see the non-global zones directory structure, what should they then try?
    Also, I've been searching and I've seen some suggestions of running a "pkgcheck -af" which might restore the directory permissions to what the various packages expect. Assuming that they can get to the point that they can at least log into the zone, is that something that would work?
    I'm setting up a new test Solaris box now, with a zone, to try to reproduce the problem. If I can reproduce the problem, I'll post back whether or not I see the same thing.
    In the meantime, if anyone has any suggestions, please post them.
    Thanks,
    Jim
    P.S. In case you're wondering, the box/zone that got messed up was a test/integration zone, and they were in the process of installing some software when this chmod happened.

  • Video streaming using bluetooth

    First I'll establish a HP as a server and the other HP as a client for video streaming using bluetooth. Can anyone please tell me if video streaming using bluetooth is possible for Nokia N7610. I have tried my program in emulator WTK2.2, it's working like what I want..but there's a problem when I'm trying in N7610,N3230,N6233..it said that "there's no services" when client program try to find services from server program
    ServiceRecord[] listService=null;
    listService=new ServiceRecord[records.size()];
    for(int i=0;i<records.size();i++)
    {listService[i]=(ServiceRecord)records.elementAt(i);}
    for(int i=0;i<listService.length;i++)
    {while(!isClosed)
    {StreamConnection connection=null;
                   String url=null;
                   try
                     {url=listService[i].getConnectionURL(ServiceRecord.NOAUTHENTICATE_NOENCRYPT,false);
    connection=(StreamConnection)Connector.open(url);
    catch(IOException e)
    {System.err.println("Note: can't connect to:"+url);}
    byte[] movieData=null;
    try
    {InputStream inputStream=connection.openInputStream();
                      int length=inputStream.read()<<8;
                      length|=inputStream.read();
                      if(length<=0)
                        {throw new IOException("Tidak dapat membaca ukuran movie");}
    movieData=new byte[length];
    length=0;
    while(length!=movieData.length)
    {int n=inputStream.read(movieData,length,movieData.length-length);
                            if(n==-1)
                              {throw new IOException("Tidak dapat membaca data movie");}
    length+=n;
    inputStream.close();
    catch(IOException e)
    {System.err.println("Can't read from server for:"+url);}
    finally
    {try
    {connection.close();}
    catch(IOException e)
    try
    {layar=Image.createImage(movieData,0,movieData.length);}
    catch(Exception e)
    {System.err.println("Error: wrong image data from:"+url);
                      continue;
    client.showImage(layar,"Movie");
    I don't know if my problem is in client program or in server program.
    :confused:
    I will appreciate a brief reply how to fix this problem.
    Thanks
    * Timothy *

    This is possible
    because you will get streams for both data in and out...
    but the problem is that the j2me player is not always streaming supported.
    Since your server is mobile for streaming you have to implement a streaming server on ur server mobile.
    but you can play the whole video chunk by chunk... in many fashion...

  • Mobile video streaming using bluetooth

    hi to all!!
    im current ly workin on my project regarding video streaming using bletooth in mobile phones.
    the mobile phones are both the server and the client.
    my question is this:
    Is it possible to stream videos using bluetooth?
    and could you please give references regarding this matter??
    many thanks!

    This is possible
    because you will get streams for both data in and out...
    but the problem is that the j2me player is not always streaming supported.
    Since your server is mobile for streaming you have to implement a streaming server on ur server mobile.
    but you can play the whole video chunk by chunk... in many fashion...

  • Unflatten From String causes runtime error in LV2009

    I found this error when trying suggestions made in this thread.
    http://forums.ni.com/ni/board/message?board.id=170&thread.id=458335
    Unflaten from string causes runtime Error 74 possible reason(s) Memory or data structure corrupt.
    Attachments:
    Unflatten runtime error.vi ‏8 KB
    error1.jpg ‏13 KB

    Of course you are getting the error. The data types are inconsistent. You convert the cluster to an array. You then define the type of flattened string as a cluster. Either don't convert to an array or define the data type as an of paths. Look again at the examples in that post.

  • Unflatten From String Not Functioning in Mobile Module 2011

    Mobile Module does not get updated since version 2011. I am not sure my question will be solved. 
    I have been using Simple Messaging Reference Library (STM) for a couple of years. I use them in my Mobile Module code too. It has been working fine until lately I updated to the latest version of STM.
    I noticed that 'Read Message (TCP).vi' was not functioning properly in the Mobile Module code. After a long debugging, I found the source of the problem. 'Unflattern From String.vi' does not work in Mobile Module any more. I did a test as shown above. 
    My questions are
    1). 'Unflattern From String' was changed so it is not supported in Mobile Module 2011?
    2) Why the same code worked before, but not now?
    I use LabVIEW 2011 and Mobile Module 2011. Thanks. 

    MengHuiHanTang wrote:
    Mobile Module does not get updated since version 2011. I am not sure my question will be solved. 
    I have been using Simple Messaging Reference Library (STM) for a couple of years. I use them in my Mobile Module code too. It has been working fine until lately I updated to the latest version of STM.
    I noticed that 'Read Message (TCP).vi' was not functioning properly in the Mobile Module code. After a long debugging, I found the source of the problem. 'Unflattern From String.vi' does not work in Mobile Module any more. I did a test as shown above. 
    My questions are
    1). 'Unflattern From String' was changed so it is not supported in Mobile Module 2011?
    2) Why the same code worked before, but not now?
    I use LabVIEW 2011 and Mobile Module 2011. Thanks. 
    Is that the real code or just a mockup to demonstrate the issue?  I'm asking because the code is set up to run once and then wait until the stop button is pressed.  Then the VI will complete and exit.  Is the the desired behavior?
    Bill
    (Mid-Level minion.)
    My support system ensures that I don't look totally incompetent.
    Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all.

  • P2p video streaming using jmf (is it possible to "forward" the stream ?)

    Hello
    In my project a peer will start streaming captured video from the webcam to his neighbors and then his neighbors will have to display the video and forward(stream) it to their neighbors and so on . So my question is can i do this using jmf , a simple scenario will be : peer_1 streams to peeer_2 and then peer_2 to forward(stream) the video received from peer_1 to peer_3 .
    I've read the jmf2_0 guide and i've seen that it's only possible to stream from a server to a client and that's about it , but i want also the client to pass the stream forward to another client ... like for example [http://img72.imageshack.us/img72/593/p2pjmf.gif|http://img72.imageshack.us/img72/593/p2pjmf.gif]
    I want to know at least if this it's possible with jmf or should i start looking for another solution ? and do you have any examples of such projects or examples of forwarding the stream with jmf ....
    thanks for any suggestions

    _Cris_ wrote:
    I want to know at least if this it's possible with jmf or should i start looking for another solution ? and do you have any examples of such projects or examples of forwarding the stream with jmf .... You can do what with JMF. Once you receive the stream, it's just a video stream. You can do anything you want with it...display it, record it, or send it as an RTP stream.

  • Wifi video capture using TCP/IP protocol in LabView

    i have designed a robot with a camera and i am trying to control it using LabView. I am using TCP/IP communication protocol (My robot has wifi card for communication, IP: 169.254.0.20)... i am able to control the motor and make my robot moves in any specified direction but i am not able to acquire video from the camera. i have installed NI vision drivers but still i am not able to aquire video. is there any IMAQ wifi driver available. if not, is there any other logic to aquire continious video from a camera using tcp/ip?
    i am using LabView 8.6
    wifi: private IP 169.254.0.20
    Attachments:
    robo.vi ‏9 KB

    Without knowing the specifics of the camera you are working with it is impossible to give you advice on what your code needs to do. For instance, to obtain an image do you connect to the camera or does the camera expect to connect to a server? If you connect to the camera is there a specific protocol you need to use to request the image? Generally in networking there is some application layer protocol required for two devices to communicate with each other.
    I don't have much expereince with IMAQ itself to answer your question as to whether there are VIs that already do this or not.
    Mark Yedinak
    "Does anyone know where the love of God goes when the waves turn the minutes to hours?"
    Wreck of the Edmund Fitzgerald - Gordon Lightfoot

Maybe you are looking for

  • My photo Share is not working correctly.

    the Share part of my PSE 11 isn't working correctly.  Can send photo but cannot control size or quality.  All control features are missing.  Also, cannot add text to e-mail.  I am using Adobe mail.  This isn't like my first experience with PSE.  I st

  • Change Password Option not working in EP 7.0

    Hi, We have done the configurations for changing the password through get support option in the login page. It is working fine in development and quality. In production system, it is allowing us to change the password and sending the mail also. But w

  • F-28 BDC problem when not debugging

    Hello friends, I have developed a BDC for the TCODE F-28 and everything works fine when i do in debug mode. NO problem at all. However when I do a no screen and if I am not debugging, it posts the invoice for one record and from second record on it f

  • Can I make IE 6 to display a transparent background?

    I have a sidebar that has a hand painted background. On this background I have buttons with writing. These buttons are .png with a transparent background. In every browser that I tested the background of the button remains transparent and blends nice

  • [Solved] Program's windows opens in background.

    Hi I have weird problem with my arch. When I run firefox, or opera or chrome or whatever, and I want to open another program (like gnome-terminal, avidemux, xmms, smplayer..or whatever) the window of this program opens in background. I have to click