Jump to content
News about the LabVIEW Wiki! Read more... ×

All Activity

This stream auto-updates     

  1. Today
  2. Yesterday
  3. For released installers, GitHub provides a very sensible feature called Releases (https://help.github.com/articles/about-releases/). Each GitHub Release is linked against a tag in your repo, and you can have multiple files within each Release -- for example: One installer for your server PC, one installer for your client PCs, and one Linux RT disk image for your cRIO end node (created via the NI RAD Utility). Each file can be up to 2GB, but there is no hard limit on the total disk space occupied by all your Releases. You can also write release notes for each release which gives you a changelog for your whole project. BitBucket doesn't have something as comprehensive as GitHub Releases, but it does provide a Downloads feature where you can put your installers (https://bitbucket.org/blog/new-feature-downloads). It allows up to 2 GB per file.
  4. Michael Aivaliotis

    Managing large files within GIT repo size limitations.

    So it seems Bitbucket has some solution for this actually. I think Github as well. It's called LFS (Large File System), and it manages large files outside of the repository. Here's their tutorial: https://www.atlassian.com/git/tutorials/git-lfs You just have to specify git lfs track '<pattern>' This can be a folder, file wildcard etc as explained in the docs. I think released installers should not be versioned. It doesn't make sense, and is not very convenient, to revert your entire repo to a tag, just to send someone the correct version of the installer. So I definitely think those files are candidates to be off on dropbox. The space on dropbox is much cheaper than the space on Bitbucket, even if it's using LFS. But LFS is useful if you can't predict which files will be large, such as a support folder that should be versioned. For example if it contains build support tools or parts of the installer build support etc. These need to be versioned in case they change throughout the development cycle.
  5. Devashish Dhyani

    Frequency axis not correct in plot

    Hey @mross I have a very similar issue. Your help would be greatly appreciated. I am trying to get the FFT of a 1D array which is basically an excited sine wave (or what many know as a 'chirp'). However, the data points seem to be too large in magnitude. Is there a scaling factor or anything of that sort that I may be missing? I have made sure that the inputs to the FFT block are what I am expecting and that the FFT is set to process a 1D array. Since this partial work-product, I am unable to supply the VI but have added extensive pics detailing the issue. 'Alpha 4' shows the chirp mid way and shows the waves are clean and without distortion at a high frequency. 'Beta 1' shows the same thing but at a lower frequency. 'AlphaOut' is the signal that I want and I have probed/zoomed to verify this. The top 4 graphs are all the same (i.e. a sine wave being excited from 0-1500Hz in 5 secs at a rate of 300Hz/second). All graphs have been zoomed in at different points to show clarity. The 'Real Part' graph is where I am stuck. Please let me know if any other info is needed. Any ideas or help would be greatly appreciated. Thanks
  6. Michael Aivaliotis

    Managing large files within GIT repo size limitations.

    I use tags as well to mark where a new release version is built. This way I can go back to the tag if I need to branch, to fix a bug on that version or to track down a version related issue. I'm in agreement. Whoah. 10Gb is definitely larger and would basically solve my problem. More than enough (famous last words). However, a lot of these decisions are also related to the surrounding ecosystem of tools. Bitbucket surrounds itself with Atlassian products which I love and use. I previously switched from Kiln and the main reason is not so much the repo management but the surrounding tools were out of date and not getting any feature additions or development support. I just like having everything under one umbrella. Ya, I'm already aware of the tools and already have an automated build process in place. I was just hoping to skip this work. But in the end I will do this of course. What else can you do.
  7. flarn2006

    Need help creating Candy Crush type of game.

    Neat idea using LabVIEW for game programming
  8. gregoryj

    Need help creating Candy Crush type of game.

    crossposted here: https://forums.ni.com/t5/LabVIEW/How-do-I-create-a-Candy-Crush-game-in-Labview/m-p/3884161#M1101235
  9. LogMAN

    Managing large files within GIT repo size limitations.

    Technically, no repository should ever grow to that size (as in "best practice"). Especially executables and installers will never change, so there is no reason to keep a history of it. I suggest putting them in a separate folder. For the same reason LV allows to separate compiled code in the first place. If you insist on keeping these files in the repository, consider making changes to the structure of your repository to keep it manageable. I've been in a similar situation in the past, where a repository exceeded a size of 10 GB. Very painful to pull and push, even on a local network. That repository contained installation scripts and of course the installation files that were bundled with it. Similar to your situation, these support files were the main reason for the size of the repository. The solution was simple: Split the repository into two repositories. One repository contains the installation scripts, another the support files. The repository with the support files was made a submodule in the main repository (using git submodules), essentially keeping the original structure in place. To reduce the size of the main repository, history was simply rewritten using git filter-branch. Don't do that! First create a copy of the repository and then make changes to the copy. That way the old repository can be archived for future reference (lessons learned 😅). Of course, the repository for the support files also grows over time. The solution is to create a new empty repository for every major revision (or whatever fits your needs) and re-link the main repository to it. It is still possible to checkout older revisions (the ones pointing to the "previous" repository) but it requires re-initializing submodules when doing so (because it points to a different repository). I had similar issues on Windows 7, where the build fails if the output folder is open in Windows Explorer. You should take a look at the application builder palette and automate the process by moving files after the build finished. We did so recently with great results. With a simple click of a button it builds all files, puts everything in a ZIP file (named according to naming standard) and moves it to a secure server location that is automatically shared to everyone who need to know about it. The only thing needed is to set the build version before pressing start and to commit (and tag) after it finished. Hope that is of some use.
  10. Hello there, I was looking for some help in making a game similar to Candy Crush, I'm working with a friend to try and get this game to work but I'm stuck on quite a few parts of the Labview Code. I am using someone else's code for a basis but they have only managed to get an Array up to load the graphics but the specifics I cannot get down and here is where the problems lie. For one I cannot get it so that the click is restricted to only moving in 4 directions and only swapping with the block next to it. My problem at the moment is you can click any block freely which destroys the purpose of the game. Secondly I need to find a way so that when similar coloured blocks are next to each other they get removed and replaced with random coloured blocks, please if anyone could give any help that would be much appreciated. mygame_DRAFT_CA.vi
  11. Nope, at the moment the progress bar is an indicator only. It can be value only, which will use the web control made in javascript so the appearance will be slightly different, but there is no way at the moment to interact with it. If you understand JS better than me, then you could probably add the control functionality. As for the background image I've never had a need for that, but I can see that it might be useful. One option might be to just place a 2D picture control behind all other controls on the front panel, and load it with an image. It should default to Image Only mode, and if I did the Z order stuff properly it should work, but to be clear I never tried using that control.
  12. Hi, I need help with the redesign of an old framework: A sequencer has a general plugin front panel for each family of instruments drivers. Each of the general plugins manages a front panel while interacting with a general family driver which is actually a dll server that accesses the instrument. That dll server accesses a dll that wraps the vis from the instrument manufacturer using family standard vis. For example: Instrument manufacturer Init vi -> Instrument family standard Initialize vi -> specific instrument standard dll -> general family driver server dll -> General family front panel plugin -> sequencer The result is the ability to build a sequence with a general family front panel + general driver and replace the general driver with a specific driver when it is done. It shortens the development time since the sequence and the driver can be written in parallel while maintaining a bug free standard that gets all the other benefits of the sequencer or the already written front end logic. At the moment the driver family server is written in c because it was written when LabVIEW missed lots of features. Since it reminded me of the actors HAL example, I'm thinking about an actor that will hold the family front panel and lvlibp general driver with inheriting lvlibps that uses the manufacturer vis implementing standard family vis. Is there a simpler solution that will let me reuse as much of the framework? Thanks in advance.
  13. Hello, I am having a big problem in unpacking a zip file containing subfolders on PharLap. Unpacking attached zip file results in error: Open/Create/Replace File in ZLIB Read Compressed File__ogtk.vi->ZLIB Get File__ogtk.vi->ZLIB Extract All Files To Dir__ogtk.vi->Untitled 2.vi<APPEND> C:\q\qqqqqq/IOExport.csv It seems that the separator decoding does not work properly, so I have looked inside lvzip.llb\ZLIB Common Path to Specific Path__ogtk.vi: Here I see no case for Pharlap (neither for modern windows), while I guess that it should convert common path "/" separator to PharLap's "\". Is my guess correct? I am using ZLIB version 1.2.3 and LabVIEW2017 q.zip
  14. smithd

    Managing large files within GIT repo size limitations.

    Yeah if you have only source, 2 GB is plenty even for labview. Not sure about build process issues, but for me I ran a little function post-build to upload the exe/etc to an internal server running an artifact repository. Given that you run lava, I'm guessing you could set something like that up and host it yourself, or maybe your workload is light enough you could use the free tier of amazon/ms/oracle/google's cloud services. As to specifics: I used artifactory, but a nice simple route would be to just set up a separate git server with lfs support and then your post build step is a push to a different repo. Or you could even set up your /build directory as a git submodule or subtree (i forget the diff, I think submodule is right for this) where the main repo points at github while the submodule points at your server. Gitlab I think has a free instance for self hosting, and gitea is a free github clone, and amazon has a hosted version thats free up to a limit as does google. Edit: or just use gitlab: https://about.gitlab.com/2015/04/08/gitlab-dot-com-storage-limit-raised-to-10gb-per-repo/
  15. Very nice tool. I don't generally customize wires but this looks like a fun project. 😃
  16. Rolf Kalbermatter

    Managing large files within GIT repo size limitations.

    We use our internal SVN services so this might not be the answer you look for. But I generally refrain from adding the build executables to the repository and prefer to set tags for each release. Yes this means that I might have to go back to a specific tag and rebuild the executable, which is time consuming and has the potential to not create exactly the same executable anymore depending on driver installations that happened in the meantime for another project. But this happens very rarely as most times you want to have the latest and greatest software version. Obviously if you develop a product that might be sold to different customers over the years and might require you to be able to reproduce old versions frequently to support a specific client, this might be something that makes this approach very unusable. And I definitely never ever add the Installer to the repository. That is going to mess with your repository big time, no matter what.
  17. Hello hoovahh, the Force Update.Vi dosent support multiple Pages. i mean it will force the update in all webpages of the last VI been called do you have any idea what could be causing the Problem. best regards
  18. I'm currently using Bitbucket, but I've used other cloud services and have used GitHub as well. The ones I've used have limitations and typically cap your repo size at 2 Gb. Recently I hit this limit on a large project. Mainly because of all the support files. However if you've worked on any large LabVIEW project that has constant development for a decade, then you can probably hit this limit considering the binary nature of LabVIEW source. So this question is mostly to get community feedback on what approach you use to handle this, if at all. I went down a rabbit hole recently on one big project. I decided to keep ONLY source code in GIT and move all support files to dropbox. I also tried putting the build output and other transitory files to dropbox as well. However I found an issue because dropbox would interfere with the build process (any insight to this from others is welcome). Thanks for your help.
  19. Hello everyone, I made a very light update. Up to now a background image to the front panel was not allowed. I added this possibility by modifying the HTML generated by the HTML JS Template.vi file (attached below). When the function "show border" is not enabled (if you want a border, maybe, you dislike to have a background image…) you might underimpress an image defined in the "bkgrnd dim" control. Size and filename are requested by this control. Of course, the image name must be expressed in html mode (considering the generated html file as root folder). If someone wants to use this option must bring out the added control to the preferred main vi. Hope it might be helpful HTML JS Template.vi
  20. Hi Hooovahh, do you think normal that progressbars work only as indicators? I tried to use them (a simple numeric slide) to simulate a scrollbar in an array indicator but it did not work. Even if configured as VALUE ONLY or VALUE AND VISIBILITY, the control did not respond to change requests, as if it was only an image…. When value was changed from LabVIEW side the change was read, instead. My fault or something odd in the control behavior? Thanks for your help
  21. Ok, I see. Why don't you contact me in private so that we may analyze the issue, find the solution and post it to the general forum. I fear that we fulfil the forum with this problem otherwise…. Thanks
  22. Last week
  23. flarn2006

    Sharing serial device from Raspberry Pi to VISA?

    Thanks for your help. As it turns out though, I'm actually just going to keep running my code on that Raspberry Pi and use LabVIEW only for an additional component. There's another serial connection I'd need to share with LabVIEW, but it's an RS-485 adapter, and as it turns out, the sbRIO-9636 I'm using has an RS-485 connection built in, so I can just use that instead.
  24. Darren

    Programmatically Set a Property Item

    If I recall correctly, it was deprecated because the current property is more explicit about how you're assigning the property name (ID, short name, long name), whereas the deprecated property was more ambiguous (you could wire in any of them I think). But to my knowledge, there's no problem using the deprecated property. When I update the VI Server Rename plugin, I'll make sure to only call the deprecated property if there's a period in the specified property name.
  25. Phillip Brooks

    Sharing serial device from Raspberry Pi to VISA?

    ser2net - shares a serial interface as a telnet compatible socket. Here's an example setup: https://garettmd.com/create-a-console-server-with-a-raspberry-pi.html
  26. Exactly, no ihm but file Under explorer match with page 2.
  27. You know how you can change the wire appearance for a class in the class properties? As it turns out, LabVIEW internally allows for more flexibility than that dialog gives you. So I made an advanced wire editing tool...and unlike a lot of stuff I post, you can actually use this for serious projects, because it does not use any private/unsupported LabVIEW functionality! With this tool, you can set wire size without limits (with results similar to this), customize both wire layers with any 8x8 monochrome pattern, and also mess with different draw options. Strangely, a few of these settings seem to have no effect, and many of the options for one of them actually crash LabVIEW. (These ones are disabled in my tool, but you can re-enable them by editing a typedef.) Given that this is actually a documented, supported property that's officially supposed to work, I've reported this as a bug to NI; if any NI engineers see this and feel like investigating, you can refer to service request #7762024. Download: Wire Studio.zip
  28. drjdpowell

    [LVTN] Messenger Library

    I'm afraid I have no answer as how to test actual UI code, other than an actual set of tests done by a person. That is quite a big problem. However, I commonly do have business logic in some kind of subVI or class method, and that can be unit tested. So for example, I can test if the "Save Data" and "Load Data" methods properly write/read the data, but I can't test if the "Save" and "Load" Menu items actually call those method correctly. One can, though, test the message-interaction of an actor in a Unit Test. And one can use Queries to help do this quite easily, even if the actor, in actual use, is interacting much more asynchronously. Below is a part of such a test of a ModbusTCP Server. I included a diagram of the actor interactions at top (a secondary value of unit tests is that they allow one to demonstrate the use of a component in a simplified setup). Note that I quickly made a simple message loop to stand in for the "Device", needed to handle some of the commands sent over Modbus (the actual actor that is the Device in the application is much more complicated). Not shown, off the bottom of the screen, I use the Plasmionique Modbus Library as a test Modbus client to run a series of communication tests with the server. Note, though that this is an example of an Actor that involves no UI at all. If it had UI elements, I could not test that automatically.
  1. Load more activity
×

Important Information

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