-
Posts
410 -
Joined
-
Last visited
-
Days Won
13
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by Black Pearl
-
At first, I was going to post the code with each VI (and folder) marked if it's GPL or BSD. I never thought about any of the code to be non-open (or pwd protected). Currently I'm thinking of releasing it under GPL first. This allows me to show/share an early version of the project. When some clean-up is done, I'll seperately release some of the reusable code under BSD. They can get a seperate entry in the CR, so confusion should be minimal. I'll also place a license-stamp on the description of each VI, so nobody should by mistake place a GPL'd version in his project. The project (tool) as such is comparable with OpenG builder or OpenG package builder (which are LGPL), as there is a clear input/output of (source code) data, which isn't affected by the license. I'll propably put a statement explaining this in the abstract. My second concern was about reusing my own work in other projects (BSD or closed-source), not applying to the tool itself but any small subVI bit I'll find useful some day. The same applies if someone wants to reuse parts of this project and contacts me, I'm able to relicense under a different license (if I understand it correctly, any license that doesn't exclude that it was also seperatly licensed under GPL) Felix
-
Register User Events through VI Server
Black Pearl replied to T Clancy's topic in Calling External Code
I'm not sure if this works, but you can give it a try: Type cast the ref to a more specific type (e.g. string control) before registering the event. Felix -
I could replicate the behavior I saw with a unit cast. VI is attached. Initial Position of the BD is Left=0. After I create the 'Convert Unit', the Pos is Left=6. Observations made in 7.1. Felix BD_Moved.vi
-
Thanks, that's what I'm looking for. Seems not to be implemented in 7.1. I have a style (String) for Node and a Style (numeric) for Scale. But nothing for Constant or Control. Maybe it's available through GetProp. Felix
-
Jim, I'm aware of this and was reading is prior to posting. It's the main reason I want some VIs of this project (reusable components) to be licensed under BSD. Felix
-
Is there a way to distinguish between Controls of the same Type such as: * Round LED, Square LED, Toggle ... * String Control of Classic, MOder or System? Felix
-
I actually should patent my idea to script broken wires! Felix
-
Thanks for the explanation. That makes sense. I did some testing tonight, I could create a broken wire with a tunnel in the middle. I'm aware that it is a pretty unusal idea to script broken wires. Felix
-
Hg I mentioned earlier is also OS/free. It's also known as 'mercurial' and is a distributed RCS like git and bazaar. You also get an explorer extension: TortoiseHg. If you go by SVN, I think that JKI's SVN plugin is worth the money. For Hg, I had to write something similar on my own- Felix
-
Attached a quick draft of what I had envisioned (on the BD ). Just a simple click to mark it. I like the idea to use this with a database. This would open the concept to other issue tracker, task planner, ... Felix
-
Forget about the ShiftRegister, I found a bug in my code. I was using the BD instead of the Loop for calculating the offset. Still Everything I drop inside a for loop is moved by one to the bottom and to the right. Using nested for loops, it only happens once (the inner loop is moved, but not the contents in respect to it). Felix
-
Hmm, seems to be on the BD level already: Create For loop, Create ShftReg, Create Const on BD -> fine (on first look) Create Const on BD, Create For Loop, Create ShftReg -> ShftReg is Offsetted. I'll need to look at the numbers to get more details. Felix
-
ok, found it in the GPL FAQ: I heard that someone got a copy of a GPL'ed program under another license. Is this possible?The GNU GPL does not give users permission to attach other licenses to the program. But the copyright holder for a program can release it under several different licenses in parallel. One of them may be the GNU GPL. The license that comes in your copy, assuming it was put in by the copyright holder and that you got the copy legitimately, is the license that applies to your copy. I would like to release a program I wrote under the GNU GPL, but I would like to use the same code in non-free programs.To release a non-free program is always ethically tainted, but legally there is no obstacle to your doing this. If you are the copyright holder for the code, you can release it under various different non-exclusive licenses at various times. So this actually means that I (as copyright holder) can use the reusable part as I like and if someone else wishes to use it for a non-GPL project I just need to give away the code under a different license (such as BSD)? Felix
-
Had another idea and it did show correct: The original diagram is covering the area of the 'i'-Term. So I need to use the i-Term as the reference postion. Still don't know exactly how to do this, but at least I've a new point to continue experimenting. Felix
-
Labview Programming Structures
Black Pearl replied to murray's topic in Application Design & Architecture
My own approach for larger projects is documented here on the dark side. A very diffrent design pattern class, which is pretty useful on larger app's is dynamical calls via VI server. Currently I'm using (studying) this for recursion, but more commonly you'd see this implemented as 'plugins' and for 'lazy loading'. Going OOP, that'd be the factory design pattern. Felix -
This is a bit of a tricky issue you normally won't notice. But when I create a node on a diagram (For Loop), it's not exactly at the position I want it but there is an offset by 1 pixel. Furthermore, during this process Position and Bounds of the diagram also change. This issue isn't really noticable in most cases, but it becomes pretty severe when creating Shift Registers (I get offsets >100 pixels). This only happens when I have a node above the loop. Deeper investigation of this issue hints me, that this has to do with automatic resizing the diagram. Just creating the for loop gives me a diagram with the bounds of 16x16. When I place the node on the diagram (or the ShiftRegs), it needs to be resized. I guess in this process, I lose the desired integrity of my positions. I target of an exact pixel location, to make the subsequent wireing possible. I did try with 'Make Space', but that moves the 'i'-Term around with even worse effect on diagrams Pos and Bounds. Felix
-
To simple questions I'd like to get some ideas/experience: Q1: How to create a tunnel? For ShiftRegisters (Child Class of Tunnel), there is a method Loop.Add ShiftRegister. For a simple tunnel, I didn't find one. Is it as simple as just to wire through the structures boundary? Q2: Creating a broken wire. The create wires metjod needs a sink Term to be called, but how to create a loose end? I was thinking about creating a temporal variant control (indicator) terminal to wire it 'valid' first and then delet the variant. Felix
-
When working on a project, I normally try to make a feature working first. In this process I leave some VIs in a messy state or apply incomplete bug-fixes on other vi's. So I'd like to mark these VI's as 'needs attention', so at a later stage (when ideas arn't bubbling fast or I'm tired) I'd come back. This idea is scaling up the more I think, as I'd like to put priorities for 'clean-up' done, and also add other marks like 'reuse candidate' or more specific 'TODOs' like 'make Icon' or 'document'. Any standard solutions or should I code my home-brewed tool? Home-brewed: I was thinking about a cluster constant which I can quickly set to the desired state when working on the VI and a 'explorer' that allows me to browse a project by the settings of this constant. Felix
-
I'm working on an OS project (soon coming into the CR) and thinking about the licensing options. I would prefer a 'strong', 'viral' OS license for the App itself, such as GPL. But there are some reuse candidates, which I'd like to be able to use in other projects as well (non-GPL, propretarian). So preferable those VIs would be licensed under BSD. Anyone has suggestions how to correctly deal with this? Felix
-
I found that Hg works a little bit better than SVN. When I rename a vi from LV, SVN did mess up and force me to merge. Hg has an option 'guess renames' to avoid this. The second issue why I prefer Hg is that I'm able to clone me repo on a USB memory stick and work at a customers site with this local repo and push the changes back when I'm back in office. Felix
-
Congratulations from me as well. And happy holidays. Felix
-
[Discuss] quick create a new vi from template
Black Pearl replied to Black Pearl's topic in Code Repository (Uncertified)
Hi shb, I did improve the code dealing with activating another program and check if the Ctrl-Key is still pressed when the VI is Activated (again). Monitoring the Key-up while LV is not the active App won't work (if I don't want to rely on windows). Also I managed to make packages in 7.1. Feedback always welcome. Felix -
GObject To More Specific Class from Class ID
Black Pearl replied to jcarmody's topic in VI Scripting
1. Hmm, I get from ClassName 'BooleanConstant' and the like. But your code in the other thread already does this, so propably I misunderstand your question. 2. Not possible. Constant has the Lable property, it's parent GObject has not. Other childs of GObject have it as well, but you need to downcast them explecite as well. Felix -
New Page for the Class Properties Dialog?
Black Pearl replied to JackDunaway's topic in VI Scripting
I did some tests with 7.1 on a password protected VI. You can't copy a control. But you can read a lot of information: * Type Descriptor * Lable.Text * GetImage * GetTermImage Felix