Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by drjdpowell

  1. My own UIs, when I polish them, tend towards mostly white. I could give NI some suggestions on how to improve that UI, but I wouldn't change the basic whiteness. Although my UIs are graph heavy, which I find look better as all white. In a UI whiteout graphs the reasoning is less strong.
  2. Theoretically, there are no roadblocks to developing it to work on RT. See the SQLite Library package, which has conditional disables to point to the .so on Linux RT, as an example.
  3. I note that even though I created a framework, Messenger Library, I did not re-architect any existing project using my framework, but instead just used it to add new features to those projects. Then I used Messenger Library for all new projects, armed with actual experience. Trying to rework the entire architecture of a large project sounds very expensive and risky.
  4. You could also use a DVR, or similar mechanism, to manage access to a com port, instead of using a non-reentrant subVI.
  5. Try just taking out the generated column. Those were added recently, in SQLite 3.31.0. If the NI Linux package for SQLite is an earlier version than that then it will throw an error at the Create Table statement. What error was given? The error should have given useful debug info.
  6. You need see past your specific motor types to think what your generic motor needs to do. Is it returning configuration info? That can be JSON, rather than a typed cluster. Or a Variant, or an object of a "config" subclass. My advice is to NOT learn OOP with a Motor Parent class unless you have enough experience with different motor types so that you can form a solid view of what a generic motor does.
  7. I'll have a read, but that looks a bit more complex than I have the time for. I will just do a simple Messenger-Library-only service discover implementation.
  8. Another possible service-discovery design is a central broker; an actor with TCP Server at a known IP/Port that all services connect to to register their location, and to which clients connect to lookup services.
  9. A beta version is now posted: https://forums.ni.com/t5/JDP-Science-Tools/UDP-Messengers/td-p/4099792 This is of the UDP comms itself; haven't done a service-discovery implementation yet.
  10. https://bitbucket.org/drjdpowell/jsontext/issues/68/report-issue-converting-a-array-of
  11. Decided to update this to 2020 and release (this is 0.3; I never posted 0.2): jdp_science_lib_malleable_buffer-
  12. Note: I've also been thinking about UDP Messenger functionality, and am interested in people's use cases: https://forums.ni.com/t5/JDP-Science-Tools/UDP-Messengers/m-p/4099792#M17 The use case I'm interested in is discoverability on the network. So, allowing actors on different machines to announce their existence (ip address and port) via UDP, so that a TCP Messenger connection can then be established. This could be built in to the new Reconnecting TCP Messengers.
  13. I don't think they did that. There is a couple of my lava packages on there, but I explicitly uploaded them to VIPM.io
  14. Do you use any DVRs? I believe quite a lot happens when the LabVIEW execution system changes a VI from "running top level" to "idle", including destroying any references created by that VI. Not sure what happens if a DVR that it owns is currently being accessed by another VI; I assume it must wait for the DVR to be released before finishing teh transition to "idle".
  15. Unfortunately, the NXG Web module lacks both recursion and VIs for determining the data type inside a variant. This makes porting JSONtext to it very difficult.
  16. Working on Idea (1) https://bitbucket.org/drjdpowell/sqlite-labview/issues/12/add-an-execute-sql-statement-multiple
  17. That's sloppy on my part. Arrays should not be supported at all and that should throw an "Unable to Bind Arrays" error. The code for that is in the Disabled case of "Parse Parameters (Code).vi". I was experimenting with the idea of allowing U8 Arrays as binding as BLOBs, and I seem to have not undone my buggy experimental modification.
  18. That example isn't broken for me in LabVIEW 2020. What happens if you delete the broken wire and reconnect?
  19. Hi Guys, Support for writing multiple rows in this manner is on the Roadmap, but not yet existing, partly because I am debating multiple options: A new function, "Execute SQL Multiple Times", that takes a parameter input of arrays of clusters or a cluster of arrays and does multiple executions of one SQL statement. Integrating it into the existing "Execute SQL" node. Upping the LabVIEW version to 2017 and introducing a new VIM version of either (1) or (2). The problems with (2), which you guys are thinking should work are: "Execute SQL" is a polymorphi
  20. I am trying to shift discussion of Messenger Library to a group at NI, as this conversation is at 12 pages and is hard to follow. New post about a beta feature for TCP that I am working on: https://forums.ni.com/t5/JDP-Science-Tools/New-Beta-feature-Reconnecting-TCP-Messenger/gpm-p/4092514#M5 Here's the image. The idea is to have a persistent TCP Client connection that will try and reestablish itself if broken.
  21. You're right, this needs an example. How you describe it sounds correct. I've had as many as four update Booleans, I think.
  22. It's documented in the DEV Template. I use a feedback timeout that is default 0 ms from every case but the Timeout case (which feeds back -1). This makes the Timeout case execute exactly once after the event queue is empty. Use a "Display needs update" boolean flag to record if the display needs updating in the timeout case. One can do this with Queues as well. With this one is able to look at all incoming data, but do expensive display operations only as often as possible (but as quickly as possible). So you could, for example, have information coming in a 100 a second, a
  23. A Notifier is only usable is you only have one type of message coming in, and your display doesn't include any history, like a chart. Personally, I keep the data transfer lossless, but just make the actual front panel display update lossy.
  24. They way you're using DVRs here, pulling the full data out of the in-place structure, forces a lot of copying. You have to do the work inside the event structure if you wish to prevent copying.
  25. I've submitted a new version to the Tools Network.
  • Create New...

Important Information

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