Flatten to/Unflatten from XML on ARM

Using LV 9 with the ARM module on an EK-LM3S8962.
I want to use XML on the embedded target. The data to be converted is a group of arrays in a cluster. The cluster is a type def in the embedded project. The Flatten to/Unflatten from XML VIs from the ARM pallet are used to convert the cluster to XML and back. This works OK on a Windows deployment but the application build for the ARM deployment fails with this message:
 Status: Error
linking...
.\Obj\LabVIEW.axf: Error: L6218E: Undefined symbol FXPLoad32 (referred from ccgxmlsupport.o).
Target not created 
I suspect this has something to do with the schema. Does a copy of the schema (LVXMLSchema.xsd) need to be included in the build specifications? If so, how does one add this to the project?
Thanx
JohnCS

Added a fixed point calculation as suggested and now the VI builds and runs OK. 
So far  so good, but the String to XML primitive does not generate the correct XML string. In my cluster containing two arrays of strings, none of the control labels have been encoded and the array dimensions are encoded as zero. As a consequence, the XML string will not be decoded back to the cluster correctly. In the Windows environment, the same control encodes the labels and dimension sizes.
Is there something wrong  with my type def'ed control or with the Flatten to XML primitive as well?
Here's a copy of my project including the build specification but without the built file.
Attachments:
xmltest.zip ‏19 KB

Similar Messages

  • Unflatten from xml on class in lvlib

    I am using Flatten To XML and Unflatten From XML on a class in LV2009.  This works fine until I put the class in a lvlib.  Then the Unflatten From XML returns an error 1527: Attempted to read flattened data of a LabVIEW class that is not currently loaded into LabVIEW.  In my test case the flatten and unflatten are in the same VI, so the class was there when it was flattened.
    Any help is appreciated.

    I don't know of a good workaround at this time if the class has to be inside a LabVIEW library. I tried a few things that I hoped would work that didn't:
    Bundling the class into a single-element cluster before flattening to XML, then unflattening and unbundling.
    Inserting the class into a Variant before flattening. Then unflatten as a variant and do Variant to Data. This would have added a <LVVariant> tag to the XML, but otherwise would have been harmless.
    Trying the same with a single-element array of the class.
    None of those worked. The best workarounds I have for you if the class is inside a library are:
    Manually serialize and unserialize the class contents to XML using LabVIEW's XML Dom parser. This is a decent amount of work, and won't work with other XML files you create using LabVIEW's default schema.
    Flatten the class to string using Flatten to String. Then wire the string into the Flatten to XML. To get the data out, Unflatten from XML as a string, then Unflatten from String into your class. The XML text isn't pretty or really representative of the data stored in it, but hey, it at least saves and loads the data.
    Jarrod S.
    National Instruments

  • Unflatten From XML to Cluster?

    Hello All,
         I don't know if i'm just having an off day or what but I'm Working on someone else's code (3-subVI layers Deep) and it keeps giving me this Data Type Error. This VI is supposed to read/unflatten from the XML document. I've tried setting the type differently on the unflatten from XML function, i also tried adding just an indicator to see what file type it should be expecting out, and a few other things. can someone show me where i should go next with this?
    Thank you
    "I have not failed. I've just found 10000 ways that won't work." - Thomas A. Edison
    Attachments:
    Load Station Setup 2.vi ‏20 KB

    Solved!
        Thank you for your Wisdom MikePorter it turns out what i was missing was that data type on the front had those extra integer types and one extra boolean type that the previous intern added without making use of the controls. After removing those everything connected as it should be.
    Thank you
    "I have not failed. I've just found 10000 ways that won't work." - Thomas A. Edison
    Attachments:
    Load Station Setup 2 SOLVED.vi ‏22 KB

  • I get an error code 1 from Unflatten From XML

    I'm not quite sure why I'm getting this error code. The code looks fine to me. I hope I'm not missing something obvious. I imagine maybe it's one of the datatypes but I'm not sure. See attached VI (8.6)
    CLD (2014)
    Attachments:
    XML read write.vi ‏10 KB

    How observant of you. I was just going to post the same conclusion. The data type that came off an FPGA "read /write control" node. 
    Neat! Now we have fixed sized arrays in LV! 
    The attached shows it failing a "flattened string to variant" and the different type strings the two have.
    Message Edited by InfiniteNothing on 11-07-2008 02:35 PM
    CLD (2014)
    Attachments:
    Comparison.vi ‏10 KB

  • Load class from XML (Dynamic Dispatch)

    I'm continuing my voyage into the realms of LVOOP.....
    I have encountered a new problem which I am sure there's a solution to.....
    I have a certain hierarchy and I want to implement a single save and load routine for all objects int he hierarchy (located int he parent class of course).
    Using the "flatten to XML" I'm able to create some nice XML files with all parent and sibling information saved (as long as the values are non-default of course).
    Where I am running into problems is the loading of the data within this XML file.  I want to be able to take an object and basically re-initialise it to the values within the file.  All fine and good I thought, but it doesn't work.
    The problem is that when using the VI with Dynamic dispatch inputs, the output of the "Unflatten from XML" is giving me a conflict with the Dynamic dispatch output saying the obejct types do not  necessarily match.  Is it not possible to match the object type on the input and output of the "Unflatten from XML" primitive?
    If I try removing the "Dynamic Dispatch" input to a static input, then it only loads the data for the parent class regardless of the actual input class.
    Am I doing something silly here or is there no other way to properly load a sibling class from a file using only a method residing within the parent class?  I was hoping I could have a single "Save-Restore" function residing within my parent class to make life easier for me.
    Shane.
    Message Edited by Intaris on 06-17-2009 05:24 AM
    Say hello to my little friend.
    RFC 2323 FHE-Compliant

    Hi Tst,
    Problem is that in order for the cast to yield any useful results, I have to make the inputs and outputs non-Dynamic which results in ONLY the data for the parent class being loaded.
    If the inputs and outputs are Dynamic, then a cast will not solve the problem (It could be a grandchild class being cast as a child, thus breaking the dynamic dispatch tables).
    The only solution I see is for the "UnFlatten from XML" to RETAIN the true object type.
    Either that or use my beautiful solution 
    Shane.
    Ps I just did a bit of a test of the race condition probabilities.  I ran 100000 tests (100k) with a program stressing both cores AND ram of my machine in parallel and all 100k of 100k iterations worked out OK.  I suppose that lets me think I should be in the range of at least 99.99%....... 
    Say hello to my little friend.
    RFC 2323 FHE-Compliant

  • Load table from xml

    Hi all
    Please see attach that I send ,, this is vi that write and read from xml file ,, my problem is when I press on load ??
    If you can see that I saved a table data  , I want if I press on load bottom  all the data loaded on the screen  in table shape as table control
    Who can I do that
    Note : press on set limit to save into xml file
    Thanks
    Attachments:
    loadTable.vi ‏28 KB

    Hi elyan
    As i can see you still have problems with xml files
    The for loop is not neened. Just delete it.
    At write buid an array, so at read you can select 1st element.
    At Unflatten from xml, wire a 2D array at "type" input.
    You  must have a look at basic Labview tutorials...

  • 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

  • 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

  • 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.)

  • 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

  • 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

  • Load Sales Order from Xml file

    Hi,
    I want to load a sales order from xml file. How can I do so? Where I'll get the xml schema for Sales Order or other documents (delivery,invoice etc)?
    Plz reply with code and xml file.

    When I'm going to load SO from xml file, it's showing an error:
    "The connected value 0 was not found in table Uasge of Nota Fiscal".
    What is this table for? Which attribute is related with this table?
    How can I find out that?

  • I want to load a sales order from xml file. How can I do.

    Hi,
    I want to load a sales order from XML  file. How can I do ? how can i create the sales order?
    what are the necessary  setting for  create the sales orders.
    with Regards,
    Prakesh.

    Three options come to my mind.
    Option 1: Use SAP transaction SXDA_TOOLS (Object Type BUS2032), Program Type (BAPI) and Program (CREATEFROMDAT2).
    Option 2: Use SAP transaction SXDA_TOOLS (Object Type BUS2032), Program Type (DINP) and Program (RVINVB10).
    Option 3: Translate the xml to IDoc so that ORDER04 / ORDER05 Idoc can be used to create Sales order (WEDI transaction).

  • Pls Help me with steps to add data from xml file to SAP B1 through B1iSN.

    Pls Help me with steps to add data from xml file to SAP B1 through B1iSN. I  am getting stuck in xsl transformation. not able to understand where the mapping code needs to be added.
    Pls explain me the steps for adding data from xml to B1 quotation step by step.
    thanks and regards
    Priya

    Hi,
    Have you checked this: https://sap.na.pgiconnect.com/p45508295/?launcher=false&fcsContent=true&pbMode=normal ?
    Thanks,
    Gordon

Maybe you are looking for