-
Posts
3,432 -
Joined
-
Last visited
-
Days Won
289
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by hooovahh
-
Sorry if I came off as too defendant of LabVIEW, I didn't mean to post these solutions as ways of saying "See LabVIEW can do it, you just need to work harder." It was meant to say "Here is a solution". Often times on the forums a user will post a question and I'd like to find a solution, to get discussions going so others can also post their solutions which are often times better than the first ones I came up with. Not supporting gifs with varying timing, longer than 1s delays, and extension blocks feels short of being able to say LabVIEW supports gifs. Having LabVIEW support PNGs without alpha layer transparencies is a similar shortcoming that I've found work arounds for. But again it doesn't mean I'm happy about it. The dragging files to a control from explorer has similar work arounds that I'm sure you've found involving transparent and hidden path controls, floating on top of the control which will have value change events when dropped. These are incomplete features of LabVIEW and I agree NI should fix them.
-
There's a few reasons I don't like this method but might meet the needs of others. This means the gif you load must have even timing between frames, and you need to export the gif frames before hand. I'd prefer a method that you give the path to a gif and it takes care of the rest, but if this method meets your needs go for it. I've also seen images pre-loaded into a picture ring and then write to the terminal which image to show.
-
I whole wholeheartedly agree. That being said customers don't really care what kinds of hoops I have to go through to make something work, they just care about it working the way they think it should (with my input of course). I don't remember a customer putting any kind of requirement on my software to have an animated gif that is clickable, that sounds more like the kind of thing I would look into in my spare time. Because I think it would set my software apart from other LabVIEW software they had seen, and show an expertise in the field. Yes LabVIEW should be able to to do this, and we can complain to NI, vote on it, and tell them all we want. But I'm sorta in the opinion of also trying to come up with a solution that works mostly well with the tools I have today. Then trying to wrap that functionality into a easily reusable example. I did make a thread on the dark side asking about PictureBox animation. One suggestion is to use the ActiveX container for the web browser which has other dependencies but I think could be made to work. Clearly you could do this with an array of images you are updating, but I wanted to avoid polling and timing and updating, and have that off load to some other tool. Attached is an example using the ActiveX web browser and a sub panel. GIF Click Test.zip
-
Oops missed that, like given. Well some tricks could try to be done to detect mouse down and detect where the mouse is clicked, but not getting the gif animated in the first place is a bit of a show stopper anyway.
-
These gifs don't look like the kind of thing the user is clicking. These look like loading gifs or things to look at while stuff happens in the background. If you really needed to detect interactions with the animated image, a picture ring, with changing values, would be suggested but that wouldn't be able to be dynamically loadable either. It all depends on your needs. I was just trying to suggest a way to display an animated gif from a file, on the front panel, that adhered to better timing needs.
-
I tried once getting a gif to load in a .Net picture box but I couldn't get it to animate, I wonder if that would be a better solution. Here is the basics of the code I used to load an image into a picturebox. It looks like it should animate but it doesn't, maybe I'm missing something.
-
I don't think it is. I can't say for certain but if it was I'd assume one of the NI R&D engineers I've talked to would have been excited about it and mentioned it. Are you part of the technology preview? I'm asking of course for a completely unrelated reason and has nothing to do with the current discussion we are having about vector based FP and BD. And sorry no 4K here.
-
Great example Gavin. I had one recently where a subVI would be used to log data into a report. For all most all logged data we have a pass fail criteria so one input is an enum of the different limit types (Greater, Greater or equal, Less, Less or equal, Equal, Not Equal, In Range, Out of Range, or Within Tolerance). But there are a few times when we want to log the data, but not have a limit condition. I could have made a separate function that logged but didn't have a limit, and I could have had a case where my enum had a "None" option, but this enum is used in other places where the None doesn't make sense. So I had my limit set to NaN and I check to see if it is a number and if it isn't then I assume it is unwired, and to not have a limit. It would have been nicer to be able to detect the limit enum was unwired, and to therefor log the data but don't perform any pass/fail checking on it.
-
Odd, I'm unaware of any reason this wouldn't work. Perhaps you need to have a set number of posts, or been a member for so long. I'm sorry I don't know.
-
Don't click See my Activity, just on that page you can enter a message, attached image as an example.
-
When signed in if you click on your profile in the upper right corner and go to Profile you'll see your page. Here you'll find your feed that others can view, and subscribe to follow. I believe in the last rounds of forum updates the simple status update was turned into a more facebook like page with content you follow and posts you've made.
-
I've wanted this feature on several occasions. I had a discussion on LAVA about it a while ago that I can't find and the suggestion by Darren was to use the VI analyzer to find when subVI terminals weren't wired...he clearly didn't understand what I was requesting. So in my project today as a lone developer I probably have 10-20 VIs that I could use this feature on if it existed. Instead I'm usually forced to do something like set the default value and check against it. For doubles this isn't a big deal, I just set the default to NaN and check for that. Arrays I look for an empty array, strings I look for empty strings. But integers I don't have a good solution for and will sometimes make the input a double, and set it to NaN. Admittedly in my cases most could be resolved if wanted to bother with polymorphic VIs. So I may have something like convert a typed cluster to a string that is human readable. But I also might want to convert an array of those clusters into a scalar string. So I'll have a VI that has both the scalar and the array of clusters and look to see if the array is empty, and then operate on the scalar cluster instead. Most examples I have are derivatives of this. Having a path, VI refnum, and string input is another one I remember. If the VI refnum is valid perform some VI server call on it. If it isn't but the path control isn't empty then open a VI reference then operate on that. If the VI refnum is empty, and path are empty, do a open VI reference on the VI name. There are a few advanced string functions I wanted to create for getting string subsets. Where things like unwired inputs meant the rest of the string, mirroring some of the LabVIEW primitives. Of course in these cases I usually have a numeric input that has the default set to -1 and then have the check for <0 and if so do something special. This one is pretty common for getting subsets of other data too like arrays or circular buffers. I would use this function if it existed to make more intuitive code that mirrors some of the palette functions today, and I'd use it to help skirt around the weaknesses of polymorphic VIs. Once you realize how the delete from array function works, you like the fact that it behaves differently when some inputs are unwired. I'd like my code to have similar abilities some times.
-
Very interesting, all the GIFs I was testing with had the same delay between all frames. Wonder if NI this could be an issue brought up to NI and have a CAR assigned if it is related to short frame length, or varying frame length in the images.
-
So what I suspect here is that you were using the TDMS write over and over again but the buffer never caused a flush to disk, and you never explicitly called the flush function. Then the program crashed and no file was written to disk. If your file did at one time flush to disk then you'd have some data to look at. If you have a file but it has an error on open, then you might be able to still pull out chunks of the file and recover some of the data. I tend to have a logging module (actor) that will periodically flush to disk, then check for fragmentation, and close, defrag, and reopen the file if it gets fragmented. This is in parallel to the test running so data will pile into a queue while this is happening. This helps make TDMS a bit more robust, because as you found if you have the whole file in memory and then the system crashes, or there is a power outage, then the file is lost. Flushing to disk periodically help keep at least some of the data.
-
Debugging with Desktop Execution Trace Toolkit
hooovahh replied to Omar Mussa's topic in LabVIEW General
Thanks Mads for teaching me something new. -
Error accessing site when not logged in.
hooovahh replied to ShaunR's topic in Site Feedback & Support
I sent Michael an email. -
Debugging with Desktop Execution Trace Toolkit
hooovahh replied to Omar Mussa's topic in LabVIEW General
Settle down buddy, posting the same question in 3 threads isn't very polite. As far as I know you can't use DETT on EXEs. EXEs don't contain source, or the block diagrams, and many front panels are missing. This makes debugging them very difficult. If the application is stable in source, it would be very odd if it wasn't stable as an EXE. Apparently you can and Mads has the details. -
It's not that they expect it to break, they just would like one less thing to worry about. Maybe for other industries it wouldn't be a big deal, but I doubt I could get my boss to agree to used equipment in a test system. Maybe for basic prototyping, but for that NI is pretty good on loner equipment. Sorry I can't really help.
-
So with a little help, I was able to upgrade the RT Linux part of the system to have LabVIEW 2015 SP1, and with it I was able to add the target, connect, deploy code which ran bash commands, and got the result. Still no UI and there is a good chance that just wasn't included in the package anyway. And still no way to install more software through MAX. After you install the OS using the NI provided ISO, boot up the VM using the network adapter Host-only. Hopefully when it boots it will show the IP address and it can be pinged from your Windows OS. Using Filezilla connect to using "sftp://<IP Address>", username "root" and blank password. Navigate to /usr/local/natinst/labview and delete or rename the lvrt file, and delete the symbolic link liblvrt.so.15.0 (the file can remain) I wanted to upgrade to 2015 SP1 so I transferred over the lvrt and the liblvrt.so.15.0.1 files from the following directory: C:\Program Files (x86)\National Instruments\RT Images\LabVIEW\2015sp1\Linux\x64\ Next we need to set the permissions on these two transferred files, so in Filezilla right click and set the properties of these newly transferred files to 755. Next we need to recreate the symbolic link we deleted earlier. So using putty log into the VM, and navigate to the /usr/local/natinst/labview folder and execute the following command. ln -s ./liblvrt.so.15.0.1 ./liblvrt.so.15.0 Then reboot the controller. Then in LabVIEW 2015 SP1, create a new project, and add a new target or device. Specify it with the IP address, and specify the type as a Real-Time CompactDAQ >> 9135 (this is a controller with x64 RT Linux). You should now be able to connect, and deploy, and run code to the RT system. I tested it running the system exec "ls" and it listed files as bash should. I've also been able to deploy code that uses TCP, UDP, WebDav, Network Streams, DataSocket, and VISA functions so these libraries are installed with the ISO, but no DAQmx, not that this VM needs it. In my mind the most benefit is from being able to use and call into 3rd party libraries and test deploying network code.
-
I'm afraid the resale market on NI stuff is pretty poor. The only real suggestion I have is ebay, but things don't sell well there, just because its not the type of thing most people are in the market for often, and most also consider the warranty of new equipment important.
-
Debugging why TCP disconnects
hooovahh replied to infinitenothing's topic in Remote Control, Monitoring and the Internet
On my Linux RT setup I've seen several issues with TCP connections just getting lost, glad to hear I'm not the only one. For now I've just added a retry which will close, and reopen the connection and issue the previous request and wait for the reply. I've also added code to periodically send a request and get a reply even if I don't need it, just so I can keep the connection alive, and close and reopen it if the connection when down. In my setup I'm talking to 4 pieces of TCP equipment, through a router on one NIC, and on the other talking directly to the Windows PC. The error I've seen on the RT side is 63, connection refused by the server, which makes me want to blame the equipment a bit but its all new, and it is 1:1 like your setup. I haven't figured out the problem, but the retries are working and add a bit of jitter but is acceptable based on the timing needs of the equipment. I'm not saying there is something wrong with the RT Linux TCP stack, but I don't really have much to go on. -
This is not the case in VirtualBox. I installed it on a fresh VM with no OS. I also tried the upgrade method starting with Pharlap but the results were the same in both cases. During the install it complained twice saying something like this isn't supported hardware and it might not work, do you want to continue anyway? And I just said yes until it asked to remove the CD and boot normally.
-
Yeah I tried the "upgrade" route and you're right, it isn't an upgrade and wipes away the OS. Still you can have a RT Linux VM. Just no MAX or installing software...and at the moment you can only develop for it in 2015, but putty, networking, and package management works.
-
I didn't include the HTML file in my zip because the Publish will create it, and then open it in the default browser. It's pretty self contained and has several improvements, but the core basics are the same. Glad you got it working, and glad I finally got around to testing it with a webserver.
- 137 replies
-
- 1
-
-
What I did (not an expert BTW just like playing around) was from the XAMPP I clicked Explorer and searched for Dashboard. Notice that is the folder you are in in your browser. From there I found the root of my server was at: C:\xampp\htdocs So I ran the command mklink /J "C:\xampp\htdocs\Test" "C:\FP Publisher\www" This makes Windows create a folder called Test which points to the www folder where the webpage is actually created. Then from a browser you should be able to go to http://192.168.1.94/Test/Demo HTML5 Page.html and see the page at C:\FP Publisher\www\Demo HTML5 Page.html. Even if the VI isn't running you should see the page with static data. Then run the VI then refresh the page. Obviously update the path in the mklink call to be the location on your disk to where your www folder actually is.
- 137 replies
-
- 1
-