Jump to content

All Activity

This stream auto-updates

  1. Past hour
  2. Nope. I can't beat it. To get better performance i expect you would probably have to use different hardware (FPGA or GPU). Self auto-incrementing arrays in LabVIEW are extremely efficient and I've come across the situation previously where decimate is usually about 4 times slower. Your particular requirement requires deleting a subsection at the beginning and end of each acquisition so most optimisations aren't available. Just be aware that you have a fixed number of channels and hope the HW guys don't add more or make a cheaper version with only 2.
  3. Today
  4. These graphs are just an example, and sometimes the slope may not be a constant. I would now like to tell you about my idea or need. This kind of graph above is done by planning in advance, I know the correspondence between each group (X,C) and W. I need to read the value of X and C from two encoders to find the corresponding value of W. But since it is ideal, the values of X and C are divided equally, for example, the value of X is 10 and divided into 10 parts, each with an interval of 1, but the values I read from the encoders may be 1.1 or 2.3, 3.5, etc., and the same goes for the value of C! And the values of X and C can't correspond to each other, so I can't just interpolate X or C in one dimension to get W. So I think I should find the corresponding W value by interpolating in two dimensions, but I don't know how to do it. I've only implemented one-dimensional interpolation via lookup tables so far. Anyway, thank you very much for your reply and help!🥳
  5. If my requirement does not include the case of negative numbers, can I use the procedure I wrote above.
  6. The change to "librarize" all OpenG functions is a real change in terms of requiring any and every caller to need to be recompiled. This can't be avoided so I'm afraid you will either have to bite the sour apple and make a massive commit or keep using the last OpenG version that was not moved to libraries (which in the long run is of course not a solution).
  7. Hi, I updated recently all my OpenG packages from VIPM directly (OpenG array 6.0.1.20 with LabVIEW 2020). Since I'm using them a lot, I thought it was the correct move. However, by opening afterwards VIs using openG, they got the start and are forced to recompile. Since I'm using Gitlab, I would like to avoid a commit on all my projects because of that. Do you have a better solution? Am I doing something wrong? thanks and regards, Laurent
  8. That part that's still confusing is that it looks like you have just one independent variable (time). If that's the case, that's just 1D interpolation. Also, your time vs x and your time vs C look like it has one slope so potentially, that's even more simple in that it's just a simple Y=m*X+b calculation. Also, it's not clear how much of this is calculable offline (no real time required). Also, your original example used extrapolation and it's not clear if that's a requirement.
  9. No, that probably doesn't work how you expect for negative numbers. Fortunately, for fixed point numbers, the decimals are just the least significant bits. The cool thing about that approach is that the code is just a wiring operation and thus uses ~0 resources and 0 time to calculate.
  10. Yesterday
  11. I seem to have implemented this feature. Using the module round toward-infinity. That should do it, right?🤨
  12. Does anyone know the status of GPM and/or Gcentral? I went to gpackag.io and website isn't working. last commit here https://gitlab.com/mgi/gpm/gpm was a few years ago
  13. Several things can be done to optimize TDMS writing. TDMS has to occasionally write header data to the file to keep track of the data being written. Because of this you can add one TDMS file to the end of another and it will make a valid file. You can't for instance append an Excel file (XLSX) to the end of another and get a valid file. So you want to minimize the amount of times the header data needs to be written to disk. The easiest way to do this is to write multiple samples at once, or writing multiple channels at once. You want to avoid writing single samples. So build up N samples for your N channels and write them once the buffer is full. The buffer doesn't need to be your whole 12-18 hours. You can start small with say 10 samples and see how it performs.
  14. And what is the program on your ESP32 doing? Does it even listen on the according serial port? Does it know what it should do when seeing an *IDN?<new line> on that port? What does it send back when seeing that command? The ESP32 is a capable microcontroller board but it needs a program that can implement the reading of your sensors and react to commands from your LabVIEW program and send something back. And that program needs to be implemented by you in one of the supported programming languages for the ESP32. Most likely you will want to use ESP-IDF as a plugin in either Eclipse or VSCode.
  15. ive been trying to get this function to run all night in labview but i keep getting a "TyperError' message all its supposed to do is output an excel sheet with all the combinations created by the program but im at the point where id just be happy if it could just output a txt file with the combinations if anything. I know the program works in python as ive tested it but i just cant figure out why it errors when i try to call the function. any help would be appreciated generated_sequence.vi file.py
  16. Last week
  17. I am new with labview and i am a little stuck! I build this in order to read the data from 2 senzors one for temperature and humidity and one for air quality conected to an esp32. What i want is to take the data and make it that the values i recevie to be put separately each one in his own output! What to do?
  18. I'm sorry, I probably didn't phrase it very well. As you can see in this graph, each value of X and C corresponds to a value of W, that is, a set of (X,C) determines a W. After sampling the data on this graph, the value of (X,C) that I get now may not correspond exactly to the sampled points. At this point, I need to perform a 2D interpolation to get the W value. This is my idea, not sure if I have expressed it clearly, thanks anyway!
  19. I'm sorry, I probably didn't phrase it very well. As you can see in this graph, each value of X and C corresponds to a value of W, that is, a set of (X,C) determines a W. After sampling the data on this graph, the value of (X,C) that I get now may not correspond exactly to the sampled points. At this point, I need to perform a 2D interpolation to get the W value. This is my idea, not sure if I have expressed it clearly, thanks anyway!
  20. Firstly thank you very much for your reply! My idea is simple, input a fixed point number and how to output its integer part separately from its decimal part. For example, if the input is 1.5, the output will be 1 and 0.5.🤪
  21. Can you post your example? 300-400 points per second should be no problem at all and quite fast
  22. I believe what you described is extrapolation and I think you've under defined your system (or you actually want 1d interpolation). What would points (1,2 and 2,1) correspond to? It's not totally clear how you would want to determine that 0.5,0.5 corresponds to 0.5. A naive approach would be to use the slopes of 1,1 to 1,2 and from 1,1 to 2,1.
  23. I'm not sure I undestand the question. LabVIEW FPGA can handle math caluclation, although decimal numbers are a bit cumbersome, and the straight line formula is pretty straight forward to implement. Are you sure you need a LabVIEW FPGA for this? Do you have a very specific application?
  24. OK , i am looking into using TDMS , but , i am struggling to get it to work how i envisioned. I know i am missing something , i am very tired been up for 1.5 days (travelling) ... anyway , i like the idea of the meta data aspect vs a text file... what i am looking to do is write 350-400 data points per second , for this particular test it is basically 10 rows x 35 or so columns... i have mocked up some simulated data etc... when i try to write the 10 rows , it is very slow ... if i write all 216000 rows at once after the data , it is very fast , however , this test will run 12-18 hours , so i do not want to wait until the end to write the data ... if someone could point me in the right direction that would be great. Regards Dan
  25. This question can be interpreted a bunch of ways. Can you explain with a bit more detail? Maybe show us some pictures?
  26. Some additions: the name ni9871cmp is an abbreviation from NI9871 Create Methods and Properties. when looking for a way to create them, I attempter to use "pylabview" https://github.com/mefistotelis/pylabview to examine VI-s created manually and with scripting and to find their differences; first of all, the "pylabview" is said to be for LabVIEW 2014 - in fact, it couldn't handle VI-s from the LabVIEW 2018 I am using, and it couldn't handle VI-s saved for older LabVIEW versions until I specified as old as 2011; even then, when I used the pylabview to extract contents of a VI containing a valid serial port Method or Property, none of text files produced contained the port name - I found the port name in a binary file only, and it contained UUID-s in "{}", with ">>" as a separator, like "Mod1.{uuid1}>>Port2.{uuid2}" - and I found this all must be exactly the same for the port to be recognized - when I put exactly this string in the alue used for port specification, the scripting produced valid Methods and Properties; then I started to look for a function that can get such a string from my project...
  27. The point (1,1) corresponds to the value 1, the point (2,2) corresponds to the value 2, when I get the point (0.5,0.5) I need to output the value 0.5, similar to this interpolation😐
  28. Firstly, thank you very much for your reply. Please forgive me for uploading the wrong image, what I meant to upload was actually this. Its name is Discrete Transfer Function Direct VI. Also could you please tell me which transfer function is expressed in the example you gave? I'm sorry. I'm probably stupid.
  1. Load more activity
×
×
  • Create New...

Important Information

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