-
Posts
4,881 -
Joined
-
Days Won
296
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by ShaunR
-
Displaying Individual Pulses
ShaunR replied to crichter's topic in Application Design & Architecture
Not at all. I think it just got missed. Is this the sort of thing your after? (the thing in the for loop is "Interleave 1D array") I'd post the VI but don't have LV 7,1 -
I really appreciate the time your putting in on this. Especially as you already have an implementation. Wish I had come across that article sooner. I could have used the get_table and exec functions as well as the get_column_blob. If I get time at the end of this I might look into it further, but I don't think the possible improvements would be hugely different. I'd rather concentrate on other OSs and the feature-list for now. True. But I don't really see this API being used for internet or remote web-based applications (famous last words ). It would be far easier for people with malicious intent just to delete the file. That's not to say I haven't thought about it. It's something I will look more closely at once I have a more complete feature-list (vtables springs to mind ) The API comes shipped with an X64 dll. you didn't need to create one, just load the project. I've put in the cpability for different OSs. The issue I have is that I don't have Labview on Linux or Mac (well. don't even have a Mac ). But I have got VMWare versions of the OSs although never really used them much. The upshot is that I can't test on those platforms therefore only windows x64 and x32 are supported. I did however include the Linux x32 .so which has been reported as working. But I tend to be an all or nothing kind-a-guy. So if I say it works on Linux (for example) it bloody well better I'm using code:blocks with the MinGW x32 and x64compilers. They were easy to set up and worked pretty much out of the box. But as for setting up for Linux or Mac. I've no idea of the compiler/linker settings to cross compile. If I could get it set up for Mac, I could download the MAC trial from the NI website and test. But the Linux version seems like rocking-horse droppings Something must have changed. The 350 / 90 I quoted earlier was on LV 2009 x64 on Win7. LV 2009 x32 (Win7 x32) is about 350 / 110. Moving to 2010x64 and in-lining it goes down to ~300 / 70. But who are we kidding Bloody fast either way . I'm just happy it isn't 4 seconds any more I don't mind if its just shy of a gnats wisker! (goes down to 60ms with your earlier suggestion about the "step" ) Are you using "shared cache"? I open shared cache by default so that I can have multiple fast asynchronous readers. If your not, then you won't see it. But if you go through my API and set re-entrant willy-nilly you will run into it if you run multiple readers and writers asynchronously. Makes sense. This is particularly pertinent to embedded XP PCs, many of which come with SSD drives or SD cards. You can't use an in-memory DB with the standard high level API components, by the way, since they open and close the DB on each call (Well. You can, but there is no benefit). That's why I included the low level VIs so that if anyone wanted to use an in-memory DB they could roll their own.
-
This by maybe of use. I've never used it but would be worth a try.
-
Be careful with this. For in-lining all the in-lined vis must be re-entrant. This can cause "database locked" errors when running concurrently even with shared cache. Choose which ones are in-lined very carefully. (You'll get about another 10 ms by doing this and LV2010 is about 10 ms faster than LV2009 too ) As an aside. I'd love to see the result from using SQLite on an SD drive. I'm very impressed with SQLite and will be using it a lot in future.
-
Interesting. Did you get sqlite_column_blob working? You probably saw my note about it in the get column VI. Being able to call that function (instead of my work-around) would have saved a lot of effort). Strings are the ultimate variant IMHO. I'm not a fan of the variant data type which I consider a poor relation to strings for many reasons. But that's a personal opinion. You don't need to escape strings with ( ' ). That's a requirement for properly formatted SQL rather than an implementation requirement. The onus is on the user to enforce this rather than as a function of the API. It is was MySQL they would have to do the same. That' is the only place since the subroutines use for-loops instead of while loops. I'll have a play and maybe implement it for the next release. Good call Hmm. I need to think about this one. It "mostly" has... The dll is the killer. Cross-compiling is real "geeks" territory and I avoid C like the plague unless I'm dragged kicking and screaming like a 4 year-old. But then I have a compiler for the particular target and C programmers are plentiful I cannot find a definitive list for the functions supported under RTWin. So the only option is to try it. and hope for the best.
-
Ethics, Charge premium rate for working on bad code?
ShaunR replied to Grampa_of_Oliva_n_Eden's topic in LAVA Lounge
Your anal-ysis would be true if I had seen any -
Not sure whether it should have spaces between the characters but CR and LF should be replaced with \n and \r. Try something like "esc040\n\r" (without quotes) if that doesn't work try the same with spaces. Make sure your string control in the left hand example is set to '\' Codes Display (right click menu). In the max example try the same. It's not SCPI compliant so it won't respond to an IDN? command.
-
Ethics, Charge premium rate for working on bad code?
ShaunR replied to Grampa_of_Oliva_n_Eden's topic in LAVA Lounge
I think your being a bit pedantic. I too agree with your take. But I wouldn't charge a premium rate. It would be my standard rate. Software is software. Like I said. Its a contractor question. Contractors are valued by their time on a specific task. Employees are valued by contributions (not only time) on various goals. -
This is regex we're talking about
-
Ethics, Charge premium rate for working on bad code?
ShaunR replied to Grampa_of_Oliva_n_Eden's topic in LAVA Lounge
I'm reminded of the saying... Software is like a fart. Yours is OK. But everyone else's stinks. Charge more because it stinks so badly I can taste it? That's a contractor question but my view would be the same. I wouldn't charge more. If I think software is too bad, I would decline the contract because you can't sit there and whine after you've taken responsibility for it. You've been contracted to do software! If I really must work with it. then I'll re-code it. I'd just escalate the time-scale to account for the "learning curve" and "recoding". Then they can either accept or decline. -
I you know the maths then use a formula node. There is an example of using the formula node shipped with Labiew.
-
If it is false only the reference you wire to it will be closed. If it is the last reference, the queue is also destroyed regardless if you set it to true or false.What can happen is that you get "intermittent" failures if you don't get the close exactly right. Since one part of your code may close the last ref just before another part tries to dequeue/enqueue etc.. Then a loop that obtains a reference comes around again an re-creates it but you cannot track down where the error is coming from.
-
The definition of a consultant: Someone who borrows your watch, tells you the time and then charges you for the privilege.
-
Funny you should say that. Downland 1.1 I've just posted above. Using the benchmark (supplied in the update) Insert ~350ms Select ~90ms The initial release was really for me to get acquainted with SQLite map out the feature list. I'm thinking I maybe able to shave off a few more ms in the next release. Its a shame the"convenience" functions are unavailable to us Indeed. That's the next feature that I will be implementing and I was also thinking that would improve the insert speed. Good feedback. Not having other (working) implementations to compare against, I really need this kind of input. What are you running Win x64? LVx64? I don' t suppose you happen to have am RT Pharlap target?
-
Awwww. Don't feel bad. I found the info really easily
-
How do you make your application window frontmost?
ShaunR replied to Michael Aivaliotis's topic in User Interface
You can also use "BringWindowToTop" which will not set it as a top level window but will bring it to the top of the Z-Order. -
I've been bitten by this before too.Now I use this vi. It ensures there is only ever 1 reference to a queue, you don't need thousands of wires all over your diagram and you can easily access queues from other VIs.
-
I hope that not the case with my cars ECU Indeed. I don't know here to start with this statement. Of the 161 known issues in LV2010, 125 are from previous versions (~78% if I've counted correctly). Rumour? Should I run for cover now?
-
They're not bugs. they're "unpublished features"
-
Same as 2009 known issues....same as 8.6 known issues..same as.....
-
Go into the VISA settings and look at the conflict manager..You can force certain visa drivers onto individual com ports.
-
What about an RSS feed? Then you know when there's a new idea and can go straight to the interesting ones.
-
Need Help BADLY! Require a simple VI for reference. Stuck.
ShaunR replied to cjx's topic in LabVIEW General
The first error it came up with (with what you described) was here. Check that path exists. I changed if the "c:\ftpscript.txt" and no longer got the file error (obviously). However, it then complained about this one (again doesn't exist...but then it probably wouldn't on my machine) By adding an error out indicator Labview will no longer automatically handle the error. But you really need to think about your error handling because currently the software is not robust and I can see you spending the next 2 weeks creating directories that the software thinks should be there..