Jump to content


  • Content Count

  • Joined

  • Days Won


Everything posted by ShaunR

  1. 150 samples @ 50ms is about 24K/s if the samples are double precision. The default TCPIP buffer in Windows is 8K IIRC and if NAGLE is on, you maybe filling the buffer too quickly. I would try U8, if you are currently using doubles, to reduce the data amount and see if the problem perists. If it resolves it, then I would try turning off NAGLE and increasing the buffer to 65K to use doubles again.
  2. How about the Arduino™ Compatible Compiler for LabVIEW
  3. There is a LabVIEW RIO Evaluation Kit which is a fraction of the cost (has FPGA on board). Alternatively you could use the Arduino with Websockets or HTTP and use LabVIEW to communicate with it. There is also an Arduino toolkit, IIRC.
  4. You have to be logged in to see the SQLite software. The main performance criteria for SQLite is the number of rows and/or columns returned/inserted, although there have been significant improvements in recent versions (~15% over 5 years). If you look at the performance graphs, you will see that 0.6 seconds equates to about 450k rows (with 2 columns). The performance test in the Sqlite API for LabVIEW library is based on 10k rows so that you can get repeatable figures and that typically yields 10s of milliseconds. Less than that, and LabVIEW timings become dominant for the purpose of that
  5. I imagine it is C , C++ or Javascript. NULL is a specific type of invalid pointer in C/C++ languages and "not an object" in Javascript (as opposed to "undefined"). In LabVIEW we don't really have either concepts. In JSON, it is a valid type so it depends on how you want to translate it back into a LabVIEW type. Historically I have converted in the following manner: string->empty, numeric->0, boolean->false etc. Unless, of course, it is in quotes. In that case it is the string "NULL", in whatever case, as it's implicity typed.
  6. Get someone else to do it. It requires knowledge of the memory organisation of LabVIEW and C (and how different structures are allocated and stored) and most of the time a small error will completely crash LabVIEW. I would suggest asking on a C forum.
  7. This demonstrates the difference. reentrancy.zip
  8. Well. This will get you some of the way there (quick and dirty example). SetWindowCompositionAttribute.vi You'll still need to blend the accent colours if you want it to behave and I've no idea what will happen if you try to set the VI transparency..
  9. If your looking for the Aero style blur, then that is achieved using "SetWindowCompositionAttribute". I haven't used it, I'm just aware of it, but you'll probably find examples on Github.
  10. If they have internal state memory then they have to be pre-allocated. TCPIP is the most flexible, works between executables and across networks. Events and queues if they are in the same application instance..
  11. If you read a text file then it will work. However. as Jordan states; it is not an actual file. It's is a text output stream from the VFS.
  12. That doesn't work. I would say it is a bug but it's never worked. ¯\_(ツ)_/¯. This is what I have on my Linux box (not a cRIO though) so if you don't get anything; that is definitely a bug.
  13. OK. Got hold of my Linux Box with LabVIEW. Wire a number of bytes to the "Count" (1024?). Ignore the error 4 if you demand too many.
  14. That [attitude] is somewhat problematic for me in that the toolkit isn't just used for connecting safely to servers but often used in laboratories for testing device vulnerabilities and compliance. Limiting the protocols and features because "it's not good practice" or "we don't think XYZ" isn't a good fit for me and this extends outside of just TLS (for example hashes) as the toolkit is also capable of generating certificates, signing/verification and the low-level stuff like raw Diffie Hellman calculations. Of course, I'm limited by the OpenSSL implementation but limiting further based on pr
  15. I don't have a linux machine handy, right now, but try unchecking the "Convert EOL".
  16. Although it may be easier from the User end, it's still fundamentally a port of OpenSSL but without FIPS support. LibreSSL doesn't support TLS1.3, currently, and according to their Git it's sitting at OpenSSL 1.0.1 so it will be a while before it has TLS1.3.
  17. I was failry well insulated (historically) by the NI libraries, from that, since all the LabVIEW versions share the same binaries. NI wanted the binaries to be backwards compatible so they compiled them with the compatibilty flag (and a couple of their own functions). At the time I ummed and ahhd about using my own binaries and took the easy route-especially because of cross platform support where you had no idea what versions of openSSL where installed in Linux distributions on a day-to-day baisis. Not to mention the ball-ache of actually compiling them. Your preference for an intermediary bi
  18. Yes. All it means is that I'm moving focus from the NI binaries to supplying my own. NI have usually been a couple of years behind the latest but my customers are demanding the latest (hence my questions about TLS1.3). Couple that with OpenSSL having recently made some ABI breaking changes between versions means that multi-version LabVIEW support is a little tricky if continuing with the NI binaries. So in LabVIEW 20XX you will have [probably] the long term support version of binaries and with mine you'll have the latest with backward compatibility to LabVIEW 2012.
  19. Yes. I already do all of that for TLS (using the OpenSSL bios rather than the OS. of course) but I used the LabVIEW Open. Connect and Close to keep it cross platform when obtaining the socket. Now I've replaced those with OS sockets so was looking at completeness (of the sub-library) for sockets-I already have things like Linger and TCP_Nodelay and have added open, close, listen. I know I don't really have to worry about cross platform since I've given up on Linux/Mac support in the commercial package but I do still make it all cross platform so that I can use it on them As for your Netw
  20. Indeed. I thought maybe there might have been some moveblock trickery that could have sufficed. Oh well. I've already replaced the listen, connect and close so might as well add read and write.
  21. Does anyone know how to do the reverse? i.e. turn a socket into a LabVIEW refnum? I want to replace the LabVIEW Connect primitive with one that supports IPv6 but don't really want to replace the read and write.
  22. I would suggest the "/proc/meminfo" because you can read it as if it was a text file with the LabVIEW file functions.
  23. Here you go. Set Icon.vi Use it like this: To get back to the original icon just call it with an empty path.
  24. Show us what you have tried. It doesn't matter if it doesn't work, we will help you to get it to work.
  • Create New...

Important Information

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