Jump to content

Mahbod Morshedi

  • Posts

  • Joined

  • Last visited

Everything posted by Mahbod Morshedi

  1. @Darren Thanks Darren, Indeed, I've checked your HAL implementation. That was my inspiration, but DQMH does not offer tools for generating Objects. That is why I was thinking to make the HAL with SMO and then using DQMH as you have used but I gather it can become even more complicated.
  2. @Neil Pate Thank you Neil, I have already made HAL, I just want to rewrite it (it was my first try and, well, it is messy). But I get your point. Cheers
  3. Hi All, Thank you for your help and sorry for confusing things on my part. I am only one person and am still very much new in programming. I am a chemistry researcher who does a lot of laser instrumentation. I have developed two applications for my own experiments and am going to developed some more and wanted away to combine them all in one application since they have a lot of communalities. I was wondering if the best way is to use LOOP and to do that, I thought that SMOs give more formulised frame for writing HAL. Then I was going to Use DQMH for the rest of the software (UI, Workup, Representation, Data save, export and import and anything else that requires inter Module communications). I have attached a very rough UML diagram (Please don't judge too harshly I am not a programmer; it is done in PowerPoint and right now). So, I was thinking if it is a good approach or should I stick only to one. Bear in mind that I am using the project to also learn LabVIEW. Cheers, MM
  4. Hi All, Is it possible use JKI>SMO to generate my classes and then use those classes in DQMH? And also, is it even a good idea to mix and match this way. Cheers, MM
  5. Well. I'm not sure if this was the best way but it is working perfectly thank you again.
  6. Thank you I will give it try and see if it is working and the right solution. MM
  7. HI BramJ, thank you for the solution, tut that would not work for what I need, as you see I had to add a separate one and off for my plots that is used to select the selected plots for further calculations. I wanted to replace this Booleans with the plot is visible on legend and use that property in its place. Wich in you solution is a little (programmatically) more work that it is worth. Cheers, MM
  8. Hi X__, I am not quite sure I understand dummy graph. Do you mean the graph is going to be nit visible? and I use that only for the legend? Cheers
  9. Hi Sam, I understand what you say and that exactly how I generate my graph (I programmatically assign colour line style point style and legend label). The problem is this graph is a combination of two sets of plots: As I said, scatter plot (points) and fitted (lines) plots. In other words, every two plots belong to the same data. Problem is that I cannot find a way to only show one legend for both plots or away to combine the two plots and show as one plot group. Also, visible apply to plots not the legend for that plot. My question is if there is a way to hide every second legend (not plot) and only the legend. I have tried the legend properties, but the visible property is applied to the whole legend rather than my specified plot legend. Cheers, MM
  10. Hi All, I'm not sure if what I need is even possible in LabVIEW. As you can see in the pic, I have a scatter and fitted data presenting in the graph. What I really need is a way to show only legend for one since they are coupled and not independent. I was thinking it is possible either by somehow combining them or turning off the legends for one but so far, I have not been successful. I was wondering is there a way to achieve that? Cheers,
  11. Thank you ShaunR, That variant looks promising, and I will give that a try a try. I could also use a user even framework such as JKI state machine or DQMH. Any good material you can suggest for me to start with GOOP would be appreciated in the meantime. Cheers Mahbod
  12. I totally Agree and in fact i had that format originally. However, arrays gets rid of the cluster names and replace them wit the first item's name and for me keeping track was becoming difficult even with documentation. it was just easier to have the clusters that can have different name. I know that i could also use a simple enum for indexing but that would add an extra data that needed to add to my system. I also have a duplicate of BG and HRS as an original data and manipulated data. This way when want i can revert back by replacing the data with the original. I am very new to programming and do not have experience in data organisation and almost nothing about labVIEW classes and the NI documentation is just too simple and is not covering any real life application. That is why I was asking for help. Cheers,
  13. Thank you both for your comments, I undrersatnd that my dta organisaion is a mess here. however i use these almost every where and wanthet to use only one wire across. I am not sure if there is a better way to do that since that can programatically change or vis UI. That is why I wanted to use a class to help me with ubn and bbn of the cluster data. Cheers,
  14. Hi All, I am currently facing some challenges with my application for data acquisition and processing. Specifically, the data cluster in the system has grown quite large, making it difficult for me to manage, especially when I consider adding new features. I have heard that converting everything to a class is the best approach, but I am unable to find any suitable resources or examples for it. Most of the available information pertains to simple and uncomplicated data types. Can anyone please guide me towards the appropriate resources or provide an example? Thank you, P.S. The data cluster in question is the subject of my inquiry look like this: and this is the class I atempted:
  15. Thank you codcoder, I really appreciate your response. Cheers,
  16. Hi All, Can you please give me some information about how and where I can take the CLAD in Australia please. There is nothing in the NI site. Or where to find that information please. Thank you in advance if you know.
  17. Hi all, I am trying to do re produce the python dblquad fanctrion in labview with no luck. I just cannot get my head around how to generate the 2d array for this function. the python is running smoothly and gives me accurate valuse for What I am generating: while i<nop: xi=x[i] wz=beamwaist*np.sqrt(1+xi**2) q0=T*delta_phi0/(2*np.pi) # n=2, q0= (2-1)*gamma_2*Ii*Leff q=q0/(1+x[i]**2) def f(r,t): I_input=np.exp(-t**2)/(1+xi**2)*np.exp(-2*r**2/((beamwaist**2)*(1+xi**2))) f=2*np.pi*I_input*r return f quad0,err=dblquad(f,0,3*wz,0,4) This is as far as I have gotten, but all the rsults are incorrect. I have devided the integrand into wo parts f(t): np.exp(-t**2)/(1+xi**2) and f(r): r*(np.exp(-2*r**2/((beamwaist**2)*(1+xi**2)))) and a vi for generation the r[i] and t[i] as in pic the rst of the inputs ar generated and feed into the VIs. I tried to use quadrature.vi as well how ever that same problem exists since I have to prepare tha vi to generate the 2d array of (f(x), f(y)) or an string of integrand which present the same issue. Please, I appreciate any help or suggestions.
  18. Hi PiDi, Firstly, Thank you for thaking the time. As I mentioned, I am not a programmer, and I have no notion of how big of a data package to carry on the shift register on every iteration is acceptable. So far, I have to carry an array of size 3 ( consisting of 20+ arrays of data) for each "fitting" tab data, i.e. silica, solvent, sample, separately and carry that through the whole software and also take transfer that data to the next loop, e.g. acquisition loop --> analysis loop -> Display/(FileI/O) loo. I will eventually add more loops as more capabilities are added to this software. I am not sure about this, but I think in this way, I have three or more copies of the same data set carried on the register each iteration. I would also need to run acquisition asynchronously with the fitting section. When it comes to oop, I thought it would be easier to break data for each of (silica, solvent and sample) and use override VIs since some of the data fitting parameters differ for the different packages, e.g. silica fits independently, but sample uses data acquired from silica to fit its data. This way, When I am writing the samples fitting VIs (OA and CA fitting), I only need to worry about messing up the samples fitting equation and if I know that the silica VI runs with no issues. I assume that is the purpose of using OOP (unless I misunderstood, which is possible). Right now, when I mess up an equation, I have to chase up which data was affected. This an example of of of the VIs right now. I have not seen any real-life DQMH or Actor based applications apart from "TOM's LabVIEW adventures" on youtube, and the thanks are very much to his channel. Unfortunately, I don't know where to look for these applications; the examples packages with LabVIEW are lacklustre, and there are not many tutorials on the subject as far as I have been able to look. I am not sure if this was enough information. Cheers, Mahbod
  19. Hi All, I m trying to build a software, and data management has become too complex. In short, it is acquiring data from three channels and doing some calculations and then showing and reporting that data for the user to make a fitting decision. The user then, can save the file and import the saved worked-up file later to view or manipulate. The data consist of three interdependent data set, and so far, I have collected the dat as an array of clusters (size 3) for three sets and kept user input data in the same manner. I am also using a simple "producer/consumer" design. However, I think that may have been a mistake, and I might be able to do a better job using either actor or QMH design, especially since I need to think about adding the acquisition part (which is not yet developed). The thing is that I have not used oop before at all and am not quite sure if this is the correct approach and how should I bundle my data. Considering that the data (not all but some) need to be accessed by other classes if I goo with oop. For example, should I keep the data as separate class data and use methods for override or keep it as an array in the parent class and use static methods and only use child classes for graphing. These are the type of questions I am struggling with. Also, can anyone help me decide between DQMH, Actor or just standard Producer/Consumer patterns, please? I am completely lost. Thank you in advence. This is how the front pannel looks like: And this is the data set for the system (which I am keeping as an array) there will me more data added to this as the capabiliy grows.
  20. Thank you very much @hooovahh, That was helpful; however, I think my issue was misunderstanding the purpose of offset managed to fix it like this, and now it works fine. Thank you very much, though. Cheers
  21. Hi All, I am trying to plot three XY scatter data and move one against the others. It does work when I make a new x-axis and change the scales of one manually. However, when I try and use it programmatically, the numbers of the scale change, but the plots do not change, meaning the one that was moving is not anymore. I could just recalculate X values separately and replot every time I change scale, but I don't think that should be the only way to do this. Any help would be appreciated.
  22. Thank you, Bryan; I will keep that In mind. Thank you, Neil, as well; Indeed I know about clusters and TypeDefs and Do use them, and I think overall, I will be leaning towards making Classes and storing all the native app data in the class, so they remain private. At this time, I am implementing top-down, bottom-up piece by piece since this is my first real-world programming experience. I appreciate all your comments and help and am very grateful. Cheers,
  23. Hi Bryan, You are absolutely correct the file processing and updating the combo box will happen out side, and the info is will be send to the vi (but since the rest of the app is not developed I left it here to test if it works fine). I am also going to use the same setup to get several other constants and initialisation conditions as another combo box. This was done so I can just save new conditions as new procedures later and reload when needed. I am just not sure if I should open, update the combo only, close the file and then release the reference to save memory. Then when the user selects from the combo box reopen the file and generate the required data for initialisation and only keep that info and close the file again and empty the array, again to save resources. The program have a long way to go and I'm too slow in learning (not a programmer as you can tell) Cheers, Mahbod
  24. Thank you Sam and Bryan, Great help I did not realised that I could just get the label form lable I tought that is the label of the combo box lol. I ened up needing mor info and had to use arrays. Let me know what you think if interested and have the time to spare.
  25. Hi All, I'm new to LabVIEW and overall programming. I wanted to use a combo box to extract the string and associated value to use later for calculation and presentation. I have come up with this one below, which works fine and is very modular (I can just add the solvent info, and it is good to go with no other change, unlike implementation as case structure). However, I wanted to know if this is good or is there a better (more straightforward) way to achieve the same thing? Cheers, Mahbod
  • Create New...

Important Information

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