Jump to content

Sparkette

Members
  • Posts

    399
  • Joined

  • Last visited

  • Days Won

    28

Everything posted by Sparkette

  1. Maybe you could use the Project Provider Framework for your tool. Does T3C5K7W9SBNRJLX2 ring a bell? (Yes, I do have that memorized.)
  2. Okay, going into the build specification and changing the Design Strategy (in the Xilinx Options section) to Minimum Compilation Time seems to fix it.
  3. I guess it came with my FPGA? It's a RIO Evaluation Kit from eBay. Actually, it's more likely that it was installed when I installed the Xilinx FPGA compile tool, because LV said I needed it.
  4. It's just some text in the Xilinx Log section of the compile progress window. ### Generate Xilinx IP (Generate Xilinx IP) ### ### Estimate Resources - PlanAhead (Estimate Resources - PlanAhead) ### ****** PlanAhead v14.7 (64-bit) **** Build 321239 by xbuild on Fri Sep 27 19:29:51 MDT 2013 ** Copyright 1986-1999, 2001-2013 Xilinx, Inc. All Rights Reserved. INFO: [Common 17-78] Attempting to get a license: PlanAhead INFO: [Common 17-290] Got license for PlanAhead INFO: [Common 17-86] Your PlanAhead license expires in -10 day(s) INFO: [Device 21-36] Loading parts and site information from D:/NIFPGA/programs/Xilinx14_7/PlanAhead/data/parts/arch.xml
  5. Now it's been stuck on Mapping; compile time is 00:25:37 and counting. It said something about a PlanAhead license expiring in -8 days; is this something that was speeding it up and now that it's expired it's taking longer? If so, can anyone recommend a good free alternative I can replace it with?
  6. The last two times I tried to compile an FPGA VI it took a significantly longer time than it used to, and it never ended up compiling. I forgot what stage it got to the first time, but the second time it just stayed frozen on "Placing and routing" for a half an hour, so I cancelled it, because I figured something was wrong. It was a simple VI; similar VI's compiled in like 5 minutes or less. I hadn't compiled any FPGA VI's for a week or two in between, so I don't know what I could have done in that time that broke it. Has anyone else had a problem like this / know how to fix it? Thanks.
  7. I have this type of setup too; my C drive is a 160GB SSD, and my D drive is a 2TB HDD. Understandably, I store the vast majority of my files on drive D. And for me, the NIFPGA folder appeared on drive D without me having to do anything. I did install LabVIEW on that drive; did anyone here install it on their SSD?
  8. Huh. All this time I thought VI's were backward-compatible. Sorry about that. If you're interested in the generated code though, here's an example: Well actually that's after doing a block diagram cleanup; the raw code as it's generated is practically unreadable since everything is placed at (0, 0), and it doesn't programmatically do a cleanup because there's no real reason to. EDIT: I just realized that the VI snippet will only work in 2014 as well. At least you can see what it looks like.
  9. I needed to sort an array by using a different array's sorted order, but I couldn't find a function to do that. The easiest way I could find was to use Index & Bundle Cluster Array with the sorting array first, sort the cluster array, and then unbundle the original values from the array in a For loop. I decided to create an XNode to make this process easier! Since it's an XNode, it can work with any type of array. Example usage and download: LabVIEW 2014 version: Sort Using Other Array.zip LabVIEW 2009 version, uploaded by request: Sort Using Other Array.zip
  10. Forgive me if I'm missing something, but wouldn't simply closing and re-opening the VI also do the trick? Or is the undo history actually saved in the VI file unlike most programs' behavior?
  11. Has anyone else noticed this similarity before? It only shows up depending on the horizontal position of the array wire. http://i.imgur.com/L4wjsdY.png

  12. Wouldn't be very useful without the VI's. But I guess there's always a chance that whoever changed it didn't know that. Also, right now I'm working on a tool that automatically generates the interface VI's using scripting. That is, the VI's that output those huge clusters full of paths. I already finished all the scripting code (those diagrams can get quite complicated!) and now I'm going to create the actual interface for it. EDIT: Finished; check the OP.
  13. Sorry, I wouldn't know where to begin with that. Maybe someone else can once we know more about the framework. This PowerPoint presentation is pretty much the only official documentation about the API by the way, and I noticed something kind of weird with it. On slide 25, it shows an example INI file, and it mentions how a signature is required. The signature shown in the sample INI file is "J7W9927AAAAAA5TBNTSSTTKWR29CNT9X". The six A's in a row caught my eye, and then I realized that 'A' isn't even a valid character in a signature! The correct signature would be "J7W9927KW29BR5TBNTSSTTKWR29CNT9X". Strange.
  14. Remember, only include strings, not numbers or Booleans. You put the 0 from IsActive in there, which is why the hash is different. I checked without that 0 in the string and the signature is correct. EDIT: Wait, you're one of the developers of OpenGDS, so don't you already know how the signature is generated? Or does NI just give you a program that signs it for you?
  15. The Project Provider Framework is an API provided by LabVIEW that has minimal support from NI. This API can be used to create new types of project items, add new menu items, and other stuff like that. They only share documentation about the API with those who apply to be partners, however, and there is a signature mechanism to enforce this. Well I've figured out how that signature is generated, so hopefully the LAVA community can do some cool stuff with this! I haven't really played around with it at all, but I plan to. Each plugin is defined by an INI file, located in resource\Framework\Providers\GProviders. Each INI file has a Signature key, which is required to be valid in order for LabVIEW to load the plugin. To generate this signature, first you need to concatenate all the values (not the keys) in the INI file. Only string values though, not numeric or Boolean ones. I'll use GOOP_MyComputer.ini from OpenGDS as an example: [Provider] SupportedType={CEFE1B10-1732-4678-A70A-299293455410} IsPrimary=0 ItemInterfaceVI=..\Open_GDS\GOOP_MyComputer_Item_Interface.vi CreateNewWizardInterfaceVI=..\Open_GDS\GOOP_MyComputer_CreateNewWizard_Interface.vi CreateNewWizardHost=Source LicenseName=None InterfaceVersion=1.0 Signature=KS5CBT93T9SSJK3SNWB239RLN95WTC9W Ignore the Signature line as well, of course. The concatenated string here will be "{CEFE1B10-1732-4678-A70A-299293455410}..\Open_GDS\GOOP_MyComputer_Item_Interface.vi..\Open_GDS\GOOP_MyComputer_CreateNewWizard_Interface.viSourceNone1.0". Take the MD5 hash of this string. In this case, the hash is "8423091770884C816AF971DB7A632067". The next step is to apply a simple substitution cipher to the MD5 hash: 0123456789ABCDEF T3C5K7W9SBNRJLX2 Just replace the character on the top with the one under it. So the new string will be "SKC5TB399TSSKJS3WN2B93LR9NW5CTW9". One more step! For each pair of characters, i.e. "SK", "C5", "TB", ..., switch the two characters. In this case you'll have "KS5CBT93T9SSJK3SNWB239RLN95WTC9W". And look! That's the signature in the INI file! I've attached a VI that does this for you, minus the step of concatenating the INI values. Just pass the VI a string and it will output the signature. Enjoy, but keep in mind the usual warning about using unreleased features of LabVIEW: don't use it for anything too high-stakes. Generate PPF Signature.vi EDIT: To make this process easier, I have also written a C# program that will automatically sign an INI file for you. Just drag and drop the INI file onto the EXE, or use the command line to specify an output filename as well. Both the source code and EXE are included here. SignPPFPlugin.zip Also, here's some palette files for the PPF's API VI's. Since they won't all fit on one page, I did some very simple categorization, simply creating separate menus for "Get" functions, "Set" functions, and one for all the others. Extract the ZIP file to menus\Categories\Addons, and then just put it in your palette from the palette editor. PPF Menus.zip Finally, here's a tool that will automatically generate the interface VI's for you. I found it annoying to always have to update them. Basically they're just VI's that output a cluster with a bunch of paths to "method VI's", which are basically the PPF equivalent to XNode ability VI's. So this will just search for method VI's in the same folder, and generate an interface VI for you through scripting. I called it "PPF Assistant" in case I ever decide to add stuff to it for other PPF-related tasks. This requires OpenG, as well as gb119's Scripting Tools. PPF Assistant.zip EDIT2: Looks like the PPF was recently officially made public (though still not supported) including NI's official INI signing tool. Glad my thread here could be of assistance to the people having trouble with that tool!
  16. Does "T3C5K7W9SBNRJLX2" sound familiar to anyone?

  17. Does anyone know what object style number 3503 is? Trying to create one with scripting crashes LabVIEW with no explanation.

  18. Generate VI Object? You mean like through scripting, right? I mainly just want to see what's hidden in LabVIEW, as I believe I've made pretty obvious in my other posts. I have seen some interesting stuff in the Style list. Like who's Simon, and why does he have his own gauge? And there's this thing called "User Item" that appears as an I32 indicator, but it's just a box that says "38x38" and can crash LabVIEW. Also there's an "Array Interface Control" which looks like an empty array control, but it's kind of slow, and when I put a control in there it turns yellow. Yes, I know I'm kind of getting off-topic; I'll stop now
  19. By "private diagram nodes" do you mean private methods and properties? As in the brown property/invoke nodes? Is there a tutorial for this anywhere?
  20. I tried turning on "View as Icon" on its terminal, and it shows up like a normal I/O name control would, only it says "TAG" instead of, say, "RIO".
  21. I used scripting to create a constant from a "RIO Device" type descriptor, using Flattened String to Variant. But now it's giving me some kind of I/O name control I've never seen before. The down-arrow on the right is disabled, and when I right-click it, there's a new menu item that says "Select User Defined Tag Type". I googled it and didn't find anything. That menu contains "crioRefnumTag", "Data Exchange", "Variable", several FPGA-related items, "RIO Resource", and "System Config". When I select one, it seems to change into an I/O name control of that type, and the menu goes away. Has anyone seen this behavior? I've attached a control that has that menu on it in case anyone else wants to mess with it. TagType.ctl EDIT 1/26/22: Here's a VI containing the user-defined refnum/tag controls, as well as four private nodes that look relevant. Useful Objects.vi
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.