Jump to content

All Activity

This stream auto-updates     

  1. Yesterday
  2. I will... Thanks to everyone who helped... I've made a lot of progress... In the end I think try to write up something to help others who run into Tripp-Lite road blocks...
  3. Even before this became available, the Hidden Gems palette would expose Split String.vi and Join Strings.vi which come bundled with LabVIEW (vi.lib\AdvancedString\) but which are not shown in the palette out-of-the-box. I'm not sure why NI created new VIs instead of exposing the Hidden Gems ones. I liked the Hidden versions better as they take less space on the block diagram. Note also that the out-of-the-box version has fewer features: The Hidden Gems version allows you to Ignore Case The OpenG version allows you to Ignore Case AND Ignore Duplicate Delimiters
  4. Then I am completely convinced that I have nothing to add to that discussion (which I guess was the purpose of this enlightening statement).
  5. Perfect... Don't have to worry about some data there messing up my parsing... You guys are amazing....
  6. The double semicolons will result in empty array elements in those locations.
  7. Holy guacamole! When did this make it into vanilla LabVIEW? I have been using the OpenG one for so long now... it is present in 2019 and not in 2015.. I noticed its opposite number is also now in, nice 🙂
  8. LogMAN Interesting... I like it, then my data is in an array that I can index for the values I need Any concern about the double semicolons? Bob
  9. Yes. It is an excellent change from CurGen that makes source management far easier for all use cases that we have evaluated.
  10. Thanks, this perfectly clarifies the matter. Nihil novi sub sole?
  11. I would do it in two steps 1. Discard protocol data (~00D and 037) - This is typically done when reading the data string anyway. 2. Split the payload using Delimited String to 1D String Array.vi.
  12. I have a question on how you guys deal with parsing a data string. The data string looks like this ~00D0370;0;0;0;;1;0;0;1;0;;0;0;0;0;1;0;0;0;1 I understand the ~00D is telling me the string contains data and the 037 tells me the length of the data string. I could easily use String Subset to select the variables I want, or Match Pattern to drop the semicolons in the string. I'm sure there are hundreds of methods to accomplish this. If you have a better method I'm all ears. One thing is worrying me... where they have the double semicolons... Could I ever expect a value to end up between the double semicolons? Because that would totally mess up my parsing. How would you deal with the double semicolons? Thanks, Bob
  13. Can you elaborate on your concern? Generally speaking - directly sharing source across multiple projects can easily lead to making changes in one project which unintentionally breaks another project. The recommendation is that if you have a piece of code that you want to reuse in multiple projects (maybe its a framework or a library) you should separate that code into its own module. The projects would then depend on the built component - a gll for example, so this enables you to maintain versioning and avoid the case I described. Alternatively you could distribute the shared component as an addon, but you would not be able to directly edit the shared dependency from the project which is dependent on it. You are still able to directly share GVIs between different projects, we just don't recommend that you do it.
  14. I agree with both your points. For your first point - we debated about how much customization should be available in the conversion wizard. We want to make you aware of any issues that you should fix up before conversion, but we didn't want to duplicate IDE functionality. For example - refactoring your architecture is easier with all the tools in the editor, so we wanted to get you through the conversion wizard quickly so you could use those tools instead of duplicating them in the wizard. This breaks down a bit in the case where we generate multiple projects. Customization like you are describing - being able to choose specific files not to convert or which project should own a shared dependency - are improvements we liked but weren't sure how much they would be used. It is certainly something we can come back and improve later, it just hasn't been a priority yet.
  15. Well if you do get something working, please post any code you feel comfortable sharing. Obviously others might be interested in the protocol the UPS uses.
  16. Maybe it would be an option for you to run the installer in silent mode (and/or) with the reboot suppression: Customize and Automate Installation of a Single NI Installer This article might be of some use also: Running a Batch File Automatically After an Installation to Access Installed Files And here's the similar thread, that points to these two articles mentioned. I also think, there's an option to not use a single LabVIEW installer, but use a bunch of msi installers by pulling them from that .exe and putting all the files into one final Inno setup .exe. You could try to run each msi with one of those flags to suppress the reboot message: msiexec /qn /i Application.msi REBOOT=ReallySuppress msiexec /qn /i Application.msi REBOOT=R msiexec /package Application.msi /norestart
  17. Last week
  18. A huge thank you to all who have chimed in here. Here is an update as to where I'm at now. At least one of the USB to RS-232 converter cables work. I have been able to get some communications going with the UPS. I used some software that allowed me to monitor the comm port. While running the Tripp-Lite software I was able to see the protocol the UPS was using. Needless to say it differed in large ways from the document Tripp-Lite supplied me. I was angry at first but I'm over it. In another post I started "My Lack Of Knowledge On Hex" Rolf Kalbermatter sent me to a site https://github.com/networkupstools/nut/blob/master/drivers/tripplitesu.c which has some code (C code) that someone uploaded. Between all the help you guys have given me and the code I think I'm going to be able to get something going. Well See. But honestly thank you guys... You are a huge help... Bob
  19. I think you need to give the User a choice at step 2 of what to do with the loose files. In my case they are just deprecated VIs that never got deleted (deleting files in Current Gen is very inconvenient). Step 3 need a choice too, as adding the shared files to one of the projects will usually be the right choice.
  20. I do use Inno setup, and I am familiar with some of these options. But I've never really tested the cancel functionality and what it might do or how to clean up. Sorry.
  21. I may be incorrect in my assumptions here - but when you converted the single project how did you specify which files to convert in the conversion utility? The logic for creating multiple NXG projects works something like this: If you just selected a lvproj file its easy, we load the project, all files in it, and their dependencies. Then we determine which files will be converted and put them all in the same NXG project. Similarly, if you just select VIs, we load the VIs and their their dependencies, determine which files will be converted, and put them all in the same NXG project. Things get more complicated if you select some combination of VIs and a lvproj, or multiple lvproj files (or a folder with some combination). We load everything and find all dependencies. We create a NXG project for each lvproj file. If there are additional files which are not part of any of the lvproj files we create an additional LooseFiles project for those files. If files are shared between multiple projects, we create a Shared folder next to the projects which contains the shared files. This is because we can't preserve your file disk heirarchy - NXG requires the project and disk hierarchy match, so the only alternative would be to choose one of the projects to be the 'owner' and that didn't seem correct. Unfortunately that leads to these shared files showing up under the 'Links' section of each project. In an ideal case these shared dependencies would be converted into a component in their own project and built into a gll that is shared between the projects, or some similar process. Directly sharing source VIs on disk between projects is not the recommended way of sharing code in NXG. In your case - I have seen this happen in the past where a folder containing a project is converted and some files are not detected to be part of that project so they are put in another project. Autopopulating folders can also make this worse in some cases. In general this is a part of the conversion utility that I would like to simplify because it can be really confusing, it is just not a top priority at the moment.
  22. Something to consider... If the Tripp Lite software Power Alert software is installed on the same host, it may be preventing VISA from reading and writing. If you're trying to monitor the state of your UPS from your application, you could try this https://forums.ni.com/t5/Example-Code/NET-PowerModeChanged-Notifier-Monitor-your-UPS-or-Laptop-Power/ta-p/3493249?profile.language=en
  23. JSONtext was a single project, but for some reason the conversion tool created two projects: "JSONtext" and "LooseFiles_JSONtext for NXG", plus a "Shared" folder, which actually held the JSONtext.gcomp. I fixd the issue by: closing NXG moving the floder with all the JSONtext files into the same "JSONtext" folder as teh JSONtext project reopening the JSONtext project "Excluding" (bad terminology?) the now-broken JSONtext.gcomp "link" (was annoyed there was no way to fix the link by pointing to the new location) "Add file.." to add JSONtext.gcomp from new location (was pleasently surprised that this then fixed all dependencies without LabVIEW CGs endless dialogs)
  24. @rharmon@sandia.gov I'm glad to hear that you're making progress! Hopefully TrippLite is able to help.
  25. Well ~00R means reject. That is of course not to helpful but it tells you that: 1) you can send commands to the device 2) It receives them and reacts to them I checked the source code and it's my bad. The identification command is UID, so try that instead of the IDN. Must have been thinking of GPIB/SCPI when I wrote that part. Now the next command to try is would be the ~00P003VER vor a version query. Then the various status commands STA, STB, STI, STO.
  26. Everyone... Thank you I contacted the company today honestly tech support is trying to help but they don't understand the communications portion so they can't really help. He offered to ask the subject matter expert if he would be willing to talk to me. That was this morning, still no response so I'm beginning to feel hurt cuz he doesn't want to talk to me... Oh well I guess I'll get over it. Bryan I noticed the typo right away so it didn't effect me, I just followed what you were saying and it helped. Rolf thanks for the explanation, I think it may have really helped. Especially with the NUTS source code. I'm a labview guy so it's not going to be easy but there is a bunch of information in there... I might be able to piece it together. Especially with your explanation. I sent ~00P003IDN and the response was ~00R I kind of expected some model number or something. I think lessons learned here are the protocol document Tripp-Lite is sending out is wrong. The commands I'm sending don't even come close to the format the protocol document states. Again, thanks to everyone who chimed in... I'm feeling optimistic I can get something accomplished here. Bob
  1. Load more activity
  • Create New...

Important Information

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