Jump to content

CraigC

Members
  • Posts

    54
  • Joined

  • Last visited

Everything posted by CraigC

  1. I believe you can edit the custom symbols found in the project / application. found here http://forums.ni.com/t5/LabVIEW/Programmatic-read-access-to-project-symbols/td-p/505952 Thus it might be possible to launch via a splash screen and set this symbol if the plugin is found? Just a though Craig
  2. Hi, Why not implement the PID on the FPGA? There is a pallette within FPGA to help you do this. This also means you will not have to concern yourself with FIFOs etc going to/from the real time system. I have implemented PID in LabVIEW FPGA Before fairly easily. The aproach to take was not having to recompile the FPGA consistently so make all the variables within the loop readable / settable from the RT System. Plus the FPGA PID loop should run faster meaning (potentially) better control. Craig
  3. I make crossrulz first solution approx 9 times faster in the shortcut and 4-5 times faster in the non shortcut scenario. You have added a build array and a Bool array to Number into the equation. I think it is the first time I have benchmarked something this low level before! Craig
  4. Hi, The processing order is very much defined. See Here http://www.ni.com/getting-started/labview-basics/dataflow Craig
  5. This is probably the most concise, easy to understand conceptualisation of multi-dimensioned arrays that I have ever seen!!
  6. Hi, I am doing precisely this at the moment. My Order of Operations are. Open VI reference-> Write control Values-> Insert VI in subPanel -> Run VI (Auto Dispose Ref = TRUE). Craig
  7. Hi, I have tried to make a scenario to explain this better. The main use of reset is to reset between samples or to "Stitch" together samples when in continuous mode. In the Scenario Continuous Acquisition With Reset off the VI stores the last Array value in the 1st Sample (White) and uses it as the first Array Value in the 2nd Sample (Red). This effectively "Stitches" together the white and red waveforms in the graph. This helps with data processing as there is no erroneous data point in between samples. although not that important in the time domain it can really skew frequency type stuff. In the Scenario Single shot Acquisition I have emulated a time delay between samples. With the reset off we can see that the VI attempts to "Stitch" together the white and red waveforms and we end up with a flase trigger. Hence when using single shot sampling or using the same vi to sample different waveform we would want to always reset this VI in between calls. This is illustrated in the scenario "Trigger Single shot with reset On" Craig Trigger Reset.vi
  8. Hi From the LabVIEW Help File: "Finds the first level-crossing location in a waveform" The Reset / History is basically saying that the last Value of the waveform is used as the first value in the waveform upon its next call. This is an effort to help to stitch multiple Acquisitions together seamlessly. What you are currently doing is applying the same waveform and finding the first crossing 3 times over. You should find the first threshold then "Remove the first half of the waveform and re-evaluate for the next threshold crossing. Something like this. Craig
  9. I was actually playing around with websocket development with Unity and LabVIEW. Sadly my c# skills suck however I could get bidirectional data in and out of the unity game engine. This would open up a whole world of UI exquisiteness as the unity engine just ports the said front end into whatever target platform you desire... HTML5 web based, android, iphone etc. Making 2D User interfaces within the environment is fairly straightforward. Every game you play has a UI element to it. 3D LabVIEW front ends!!!
  10. All of that code was just to dump out some sort of Queue Structure into a VI so we could see where the Queues are sending Information to / from in a Map Diagram. The Top level structure of test, test_A, test_B is just randomness (except I ensured there was only one De-Q per Queue). I am just trying to illustrate that part of what a "Channel Wire" is trying to accomplish is indicate to the developer where asynchronous data is accessed / flowing (I am not good with terminologies). A different way of relaying this information is in a hierarchy / map file / class hierarchy diagram, which in my opinion is easier to read. Here is the same rough VI I posted but run on an actual project which includes VIs which are dynamically called (and therefore may not be represented by a "Channel Wire" ??). I have anonymised the vi Names hence the blank boxes.
  11. Something Like This.... Auto generated then output to GraphML Although it is fairly specific to application it might be able to be applied as a general tool. Some fairly rough code just to see if it was feasible. Craig Edited post to make the map file colour coded with the BD VIs. Queue Map.zip
  12. Hi Thomas, I thought you were asking how to change this, sorry misunderstood. I have come across the situation where the number of Graphs visable on an XY plot sticks to the last number seen by the plot. I also did not find a way of changing this unless I was to re-run the code presenting the Graph with a different number of plots. Seems there is a need to be able to edit this as you suggest.
  13. Hello, I have been playing around with Hierarchy analysis and yEd graph editor with some interesting results. I believe graphML could become a very nice API to document VI hierarchies especially when coupled with yEd and its web interface tools etc. Here is the hierarchy analysis of the moon landing NI example. You can switch graph types at the click of a button, filter / colour different elements by type etc, select partial neighbours of the hierarchy ... the possibilites go on. graphML is XML based so is pretty easy to do. Craig
  14. I have used Picoscope for years and can recommend them. The software is also very slick https://www.picotech.com/oscilloscope/2200/picoscope-2200-portable-oscilloscopes Not as much fun as a DIY though
  15. Hi, The Array constant Wired to the XY Graph is not empty. The clusters have empty arrays but the array of clusters is not empty. I am guessing there are three elements within the array, you will need to delete one. then run the code. Craig
  16. More about this in the News today. http://www.theregister.co.uk/2015/08/10/windows_10_iot_core_ships/ As a LabVIEW developer I am feeling that I am getting left behind when it comes to the internet of things. I have a lot of LabVIEW and LVRT experience too but nobody can justify current NI hardware and licence costs it currently takes in order to turn on a £0.5 light-bulb. I have been looking into learning other Languages for the Pi/Pi2/websockets etc etc. Been waiting around for a solution from NI for this for too long, time to move along... nothing to see here Craig
  17. Hi, I have re-uploaded with the missing class. It is the same class created by the original poster I have just used his example to get my head around what is happening with websockets. Hope it helps though. Craig
  18. Hi, I had a quick go at thisin order to learn some javascript. Below I have got the websocket server running from a pure script file, no jquery but also no SVG. I managed to get the Front panel of a vi displaying into an HTML 5 canvas and get canvas mouse clicks propegated back to LabVIEW. You can also resizethe vi and the canvas is adjusted accordingly which means you should be able to display a viof your choosing into the canvas. I managed to send the FP over as a byte array and load this into the canvas as a dataURL. I dontknow if this is any quicker than using JSON etc but it seems to work reasonable well. I have posted this as hopefuly it will serve as a simple example of how to setup websockets. Craig First time adding attachment, hope it works Re-uploaded with missing class Websockets.zip
  19. Hi Shaun, Hope all is well with you, been a while since I was up your way. I have looked into Dispatcher and I like the principle although I wont really need peer to peer type comms. the cRIOs should run independantly and just act on commands from the host and report functionality / status back. I probably could use Dispatcher for this purpose but not sure how to handle who is in "Control" (Probably just need to write some sort of state machine in the host to handle that as the connection manager handles all pubs/subs anyway). I have run through some of the OOP stuff and it looks Ideal for what I am after here. Dynamic Dispatch is what I require and Flattened class data seems to include type information in it from what I have read. However I think diving into OOP in this project is a bit much to ask so have decided to stick with what I know and have come up with a workaround for this particular problem. Reading the OOP material and doing some of the exercises I think the penny has dropped as to its potential so have a hobby project in mind to learn the Command Pattern and the factory pattern without TCP comms. This should put me in a good position to fix the TCP bit in the middle at a later stage. In essence after hours of reading I think I have answered my own question but thanks for the suggestion. Cheers Craig
  20. Hello All, Started a post on NI Forums but didnt get much luck so I decided to try here after lurking for years Just trying to come up with some ideas for architecture implementation. I am needing to communicate to multiple cRIO modules and typical use TCP in the past to communicate with each cRIO module. I now have the problem of having multiple cRIO modules running and I want to be able to split the command set into generic and specific commands. i.e a Generic command is received and handled in the same way for each cRIO chassis from the host controlling PC. This allows me to have a generic type def command set and several specific type def command sets within a project. I was hoping to use a poly on the cRIO side (and the host) in order to adapt to which command set it has received and use a different state machine (Which will all be similar) depending on which type def command it has received. This should avoid me having one large type def CMD enum which contains all of the generic commands, all the commands for cRIO A, all the commands for cRIO B etc. Essentially I know this isn't going to work but is there any other ways of doing this? Is this touching on the realms of dynamic dispatch by selecting which vi is run at runtime? Is it time to bite the bullet and use classes? Etc etc If anyone can shed some light it would be appreciated. I have thought of workarounds but that is not what I am after really, just if there is a way of doing it properly and if so where to go read up next. Since Posting on NI forums I have been looking into Dynamic Dispatch and this seems like an ideal use case. However any pointers are still welcome on where to go next. Many Thanks in advance Craig LabVIEW 2012
  21. Hi Michael Quite Jealous as i have been interested in HTPC for some time now. Have you decided what software / front end you are going to use? Please say you are going to design it all in LV as it is something I have always like to do as I believe it is feasable and highly customisable Other ones that I have played with have been Media Portal www.team-mediaportal.com - Alternative to Windows media centre and I found it very slick Myth TV (Mythbuntu) - Never got working to its full potential, prob the most powerfull GeexBox www.geexbox.org- Really small front end bootable of a USB Stick!!! <--in dev and has been for some time but quite promising! Oh and the original XBMC (XBOX Media Centre) on the original(ish) XBOX, which was V good and i would still be using it but needed a HD source. Another which may be of interest is the XBMC ported onto ubuntu which looks very promising. The thing i found with all of these is that they all sacrificed cosy looking skins over performance. When im browsing music i do not necessarily want all the album art!! Hence a custom LV front end would be amazing. Might be very easy to launch say VLC media player from the command line with arguments from LV In the end i settled for a popcorn hour www.popcornhour.com untill I can afford some decent hardware and have some spare time! Craig EDIT - Just noticed the thread is a few months old - you are probably up and running by now
  22. Hi All, Pretty much a lurker here, although i have had more contribution on the NI Forums. I guess my Lurkiness on the LAVA forums is that most of the topics here are research purposes for me and although I know what your talking about I never feel quite qualified to chip in. However the forums are a great resource for getting that little bit extra out of LabVIEW. About Me: Started out at LabVIEW 5.1 in 1998 as a permy, then contracting, now trying to scrape a living doing LabVIEW on my own! Craig
  23. QUOTE (jasonh_ @ May 19 2009, 11:41 PM) Ahh Thanks jasonh, I will look into this. It seems like the modules are written in c so may be easy to wrap into dll or call directly from LabVIEW. As it stands i am getting fairly close to decoding the IQ data as it stands but its a bit of a steep learning curve!! (Got down to symbol level at the moment. Just need to FFT into subcarriers etc etc! Thanks again Craig
×
×
  • Create New...

Important Information

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