Jump to content

Porter

Members
  • Posts

    227
  • Joined

  • Last visited

  • Days Won

    26

Everything posted by Porter

  1. They did say that maybe Unicode support is coming to LabVIEW. I would give LabVIEW a plus for that.
  2. Thanks for bringing this to my attention. Not sure why the dlls and so files were stripped out of the source distribution's always included list. This is now fixed in v3.1.2.1
  3. Thanks Rolf for the thorough analysis. I axed support because cross compiling for 32-bit Linux was another hassle, and I suspect that nobody will ever need it. I also noticed that the produced .so was 3MB which seems to be abnormally large and I don't have time to figure out how to get the size back down to a reasonable 300-500kB.
  4. Done. New error code offset is 515000. I also compiled muParser for cRIO RT Linux. You need to manually copy the .so file to /usr/local/lib/ on the cRIO then run ldconfig. Linux 32-bit support has been axed. There is no 32-bit LabVIEW for linux since 2016 if I'm not mistaken.
  5. I would just post it. You can plaster it with a 0-Clause BSD license and walk away. Zero-Clause BSD – Open Source Initiative That way if someone likes they can just take over development without bothering you. It looks like an interesting project but I have no experience with xControls so I wouldn't be the best person to maintain it.
  6. Seems like the 500 000+ range would be a good place for these standard but non-NI certified error codes to go. I will make another release that will be focused on improved error handling/reporting. I can see a few VIs that should be touched up in this regard.
  7. 1) That is indeed the expected behavior. Variable values must be explicitly specified. Their default value is NaN. Note that you are defining x,y,Z as constants in the above example. 2) I was using 5000 range because this package is not NI Tools Network certified and therefore I have no reserved an error range to target. If there is a better starting number, I am open to suggestions. I would not propagate an error code offset input all the way to the top level though. Best to just pick a range and stick with it. But I do understand that 5000 is commonly used at the top level of user applications.
  8. I have uploaded the new release to vipm.io We are now at release v3.0.0 since this is a breaking change. I also started some documentation: LV-muParser User Guide.pdf
  9. There is also Tango Desktop Project which is public domain.
  10. Also from a while ago: Open Icon Library - Browse /0.11 at SourceForge.net
  11. I finally got the 32-bit shared object built on Linux. After 3 hours of fiddling I simply re-installed gcc-multilib and it just worked. 😡 I have pushed the changes to github. After testing, this will be v3.0.0 because I expect the static linking to be a breaking change in some instances. The next step is to compile a large list of test cases to confirm that the new operators are behaving as expected under as many corner cases as we can think of.
  12. What is the path to your vi.lib? Are you using labview 64-bit?
  13. Here is the latest build with bitwise operators implemented: lv_muparser-2.3.0.1.vip I didn't manage to cross-compile for linux 32-bit. So only linux 64-bit gets the new operators for now. Here is the muParser source code (modified): muparser-2.3.5.zip Note that I changed the operator precedence to match that of C as described here: https://www.geeksforgeeks.org/operator-precedence-and-associativity-in-c/
  14. The shared libraries were named libmuparser-x##-lv.XX Where ## is bitness and XX is file extension. So libmuparser-x*-lv.* worked wonderfully on the development version of the code. Unfortunately as soon as I build vipm package, the *s get replaced with 32 and dll. So when I open the vis on x64 labview, they are pointing to the wrong dll. My solution is link the CLFNs to libmuparser-lv.dll and have a post-install vi copy the appropriate version of the shared library to that filename. I know it looks weird to see a dll in linux, but it doesn't seem to break anything.
  15. Yes. Looks like your fix was added to release v2.3.5 of muparser. I will rebuild the dlls and prepare another release for testing.
  16. I tried the .\libmuparser-x*-lv.* trick for the CLFN path but when I build a VIPM package, it converts it to libmuparser-x32-lv.dll because I am building on LV 32-bit, Windows. So then the VIs are broken on 64 bit and Linux. If I can preserve the wildcards in the CLFN path it would be ideal. Here is my latest attempt. Statically linking to libmuparser-lv.dll but located in the vi.lib next to mupLib.lvlib: lv_muparser-2.2.0.6.vip
  17. Give this a try: lv_muparser-2.2.0.4.vip It worked with LV2020 x32 and x64, Windows. In Linux I had to manually copy the .so file to libmuparser-lv.dll. Permission issues with the installer of course. I think that Labview needs to be run as root during the install but my community edition was activated under my user account. After doing that manual copy it worked fine though. All CLFNs are statically linked to "<resource>\libmuparser-lv.dll"
  18. I prefer not to add any overhead to each call by having to retrieve the path to dll. If I recall correctly, when it was not a path constant wired to the CLFN (eg. a shift register instead) there was some overhead added to each call. It will be a bunch of busy of work, but I think that the API is mature enough now that it is worth the effort. I think its about 12 VIs, 4 cases each.
  19. This is going back a while. We are at V2.x already. But this fell off of the list of priorities. It would allow the application builder to pickup the DLL automatically (and drop it in a support dir). I will need to add conditional disable structures around all muparser DLL calls in mupLib.lvlib
  20. The dll should be in the same folder as the exe in order to be found automatically.
  21. Here it is. muParserDLL.cpp
  22. Got it. Thanks. Do you mind if I post it here?
  23. I'd be happy to take a look. Please share the code with me. It would be important to prepare a comprehensive list of test cases to validate the each new operation and make sure that existing operation are not changed. The test cases that I have been using are here: LV-muParser/Testing/eqTestCases_mupExpr.csv at master · rfporter/LV-muParser · GitHub
  24. Example code now includes a new comm tester too.
  25. I've put together a wrapper to the Plasmionique Modbus Master library that makes communication with PLCs a bit easier. It could be used for just about any Modbus device, but I had PLCs in mind when I was developing it. What is easier? - Modicon-style addressing instead of data address and function code. - Data-type conversion built-in(eg. 32-bit float mapped to two U16 registers). Word swapping option. - Poll list and cached data block. Allows you to poll a range of registers then lookup and convert the values elsewhere. The code is up on GitHub: https://github.com/rfporter/Modbus-PLC-Client Its a rough draft at the moment. Comments are welcome and appreciated.
×
×
  • Create New...

Important Information

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