Coder Social home page Coder Social logo

featherweight / featherweight Goto Github PK

View Code? Open in Web Editor NEW
31.0 31.0 28.0 92.62 MB

Featherweight: Application Framework for NI LabVIEW™

Home Page: http://featherweight.io

LabVIEW 0.52% Shell 3.82% CMake 0.34% Makefile 1.81% M4 0.43% C 87.72% C++ 0.94% Perl 0.10% Batchfile 0.10% Objective-C 4.22%
labview

featherweight's Introduction

Featherweight: Application Framework for LabVIEW™

Application Framework for LabVIEW™

featherweight's People

Contributors

andrejpanjan avatar emetzlervsi avatar jackdunaway avatar omarmussa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

featherweight's Issues

What is an Inbox for?

These are open-ended questions that might shed a lot of light on one of the fundamental assumptions FTW appears to make about Actors: Every actor comes with a predefined request-type message interface when it gets launched.

  1. I understand that the Inbox is a parallelized REP socket with some extra features and logic bundled in. Can you enumerate those features and their utility in FTW?
  2. Why not just create an Actor template that has a SyncServer loop for inbound messages and a separate job-worker loop? Why abstract the message processing loop into a dynamically launched VI that the framework maintains on its own?
  3. Are there any known situations where a developer wants to customize an actor's Inbox but can't because it's baked into the framework?
  4. Is it reasonably straightforward to create an Actor and attach a SyncServer or Subscriber to it alongside the Inbox? Is it reasonable to destroy the Inbox event registration when the actor launches and use a different messaging paradigm like Subscriber, instead?

Clean up branches; switch from `expressions` to `master`

Note to all who have forked; this repository will soon be switching from the expressions branch to master as the default branch, and many development branches will be removed.

This is an effort to clean up the repository, but will temporarily break your workflow. To fix things, simply switch to the master branch in your local clone.

Comment here if you have any issues after this change is made! I'll keep the issue open for a few days after the switch.

Add `"SupervisorOwner": true` to the Actor Instance Configuration

This enables Top-Level actors to be the "Owner" of a Supervisor, meaning that it is created prior to the actor launching, and also shuts down after the actor closes. This prevents the bookkeeping of needing to introduce it at the top-level, and the additional "weirdness" of that actor instance effectively having two connections to the Supervisor.

FTW-System-CommandLineExecute.vi invokes a Windows function on any OS

This VI invokes the "SystemExec_Win" function from LabVIEW but doesn't check which OS it's running on. Calling the VI on an RT Linux target results in this error while trying to deploy code to the target:

Deploying FTW-System-CommandLineExecute.viFTW-System-CommandLineExecute.vi loaded with errors on the target and was closed.
LabVIEW: (Hex 0x627) The function name for the LabVIEW:SystemExec_Win:C node cannot be found in the library. To correct this error, right-click the Call Library Function Node and select Configure from the shortcut menu. Then choose the correct function name.

VI conpanes are inconsistent

Some public VIs use the 4224 conpane, and others use 5335. One example is the "FTW-Actor-GetNextJob.vi" (4224) and "FTW-Actor-OpeningHandshake.vi" (5335), both public methods on the FTW-Actor-Instance class. Ideally, all full-sized public VIs should use one conpane or the other.

FTW-Test-JSON-Deserialize.vi can't be deployed to cRIO

I'm trying to run the test on a cRIO-9064. Before deploying code, an error is presented that says, "VI is a member of a project library type that is not supported for remote deployment and will not be downloaded."

error

The VI name that's cut off in this image is FTW-JSON-Fetch.xnode:FTW-JSON-Core-GetFlattenedValue.vi.

Need Message Routing Rules

For instance,

  "MessageRoutingRules":
    {
      "FTW: Poison Pill":
        {
          "QueueSize": -1,
          "Ignore": false,
          "Lossy": false
        },
      "PING":
        {
          "QueueSize": -1,
          "Ignore": false,
          "AutomaticResponse": "PONG",
          "Lossy": false
        },
      "Default":
        {
          "QueueSize": -1,
          "BatchSize": 10,
          "BatchTimeout": 100,
          "Ignore": false,
          "MaxSize": 16384,
          "Action": "DropClient"
        }

SQLite Insert XNode should inherit control display format as means of serializing inputs

While speaking with @andrejpanjan about the SQLite Insert XNode ...

Specifically, we were on the topic of the Timestamp datatype. How should this be serialized when inserted into the database?

There exists at least three distinct use-cases:

  • dates (no time)
  • absolute timestamp
  • relative (elapsed) time

However, the XNode must choose one. We could potentially:

  • create another option on the XNode (an input that determines serialization format of the Timestamp type)
  • create a pre-roll setting of that DB connection, which is another method that caches the preferred display format in the object (à la the JSON format function ... which is a related story)
  • encode a special signal in the data name of the element, such as postpending the data name with [timestamp] or prepending with #date or such

But ideally, the general situation is being able to detect the display format of the data itself. This way, it would be serialized exactly as it is written on the source type definition (e.g., a constant on the diagram, or a control on the panel) (where, the use of the word 'type definition' here is distinct from Type Definition)

One potential issue here is that we'd need to do some upstream type propagation, because I don't think this display format is transmitted on the wire.

msvcr120.dll is missing

On a fresh machine, I cloned this repository and opened FTW.lvproj in LabVIEW 2015. While loading the project, LV threw this error dialog:

error

It appears this is a dependency of ftw32.dll on Windows. I worked around the issue by manually downloading the VS2013 C++ redistributable and installing it on my machine from here: https://www.microsoft.com/en-us/download/details.aspx?id=40784

This should be distributed with the build outputs of the ftw-kernel project and included in the featherweight repo's dependencies.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.